Capture WhatsApp Leads to Google Sheets with Instant Hebrew Auto-Reply
High-Level Summary
This workflow automatically captures incoming WhatsApp messages as leads, stores them in a Google Sheet, and sends an instant confirmation reply in Hebrew. It is designed for businesses using either the WAHA (WhatsApp HTTP API or the Meta WhatsApp Cloud API. The workflow ignores group chats and outgoing messages to avoid clutter. This template is ideal for Israeli businesses or any organization that wants to instantly acknowledge WhatsApp inquiries while building a lead database.
Node-by-Node Walkthrough
- WhatsApp Incoming Message (Webhook) — No auth — Listens for incoming HTTP POST requests at the path `whatsapp-lead-intake. The webhook URL is generated automatically when the workflow is activated. It receives the raw WhatsApp payload from WAHA or WhatsApp Cloud API.
- Normalize Lead Data (Code) — No auth — A JavaScript code node that parses both WAHA and WhatsApp Cloud payloads, extracts the sender name, message text, and normalizes the phone number to Israeli E.164 format (+972...). It also filters out group chats and messages sent by the business itself.
- Add Lead to Google Sheets (Google Sheets) — OAuth2 — Appends a new row to the specified Google Sheet with columns: Timestamp, Name, Phone, Message, Source. The column mapping is configured using expressions from the normalized data.
- Send WhatsApp Auto-Reply (WAHA) (HTTP Request) — Header Auth — Sends a POST request to the WAHA server endpoint
/api/sendTextwith a headerX-Api-Key. The body includes the session, chatId (from normalized data), and a Hebrew reply thanking the lead.
Setup Instructions
- Create a Google Sheet with columns:
Timestamp,Name,Phone,Message,Source. Note the spreadsheet ID and sheet name. - Connect Google Sheets in n8n using OAuth2 (authorize with your Google account).
- Set up WAHA (or WhatsApp Cloud API). For WAHA, you need a running WAHA server. Obtain its base URL (e.g., `https://your-server/api).
- Create a Header Auth credential in n8n** with the header name `X-Api-Key and paste your WAHA API key.
- Update the HTTP Request node Replace `YOUR-WAHA-SERVER with your actual WAHA server URL.
- Edit the Hebrew reply in the HTTP Request node to match your business name.
- **Activate the workflow and copy the webhook URL (Production URL). Point your WAHA webhook settings to this URL.
Use Cases and Variations
- Change country prefix Change the
972inside the Code node to another country code. - Switch to WhatsApp Cloud API Replace the HTTP Request node with the official WhatsApp Business Cloud node (message → send) and adjust the Code node to output the correct chat ID format.
- Add notifications Branch after the Google Sheets node to send a Slack message, email, or Telegram alert.
- Multi-language Modify the auto-reply text in the HTTP Request node to any language.
Category
sales
Tools
- Google Sheets
- WAHA
Workflow JSON
{
"name": "Capture WhatsApp Leads to Google Sheets with Instant Hebrew Auto-Reply",
"nodes": [
{
"parameters": {
"content": "## Capture WhatsApp leads into Google Sheets\n\nEvery incoming WhatsApp message becomes a lead row in Google Sheets, and the sender instantly gets a confirmation reply in Hebrew.\n\n**Flow:**\n1. Webhook receives the message (WAHA or WhatsApp Cloud API)\n2. Code node extracts name + text and normalizes the phone to +972 E.164\n3. The lead is appended to Google Sheets\n4. An auto-reply is sent back on WhatsApp\n\nGroup chats and your own outgoing messages are ignored on purpose.\n\nBuilt by [Achiya Automation](https://achiya-automation.com) — WhatsApp & automation studio from Israel.",
"width": 380,
"height": 500
},
"id": "sticky-overview-t1",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-1080,
-220
]
},
{
"parameters": {
"content": "## Setup (5 minutes)\n1. Point your WAHA webhook (or Meta app webhook) at this workflow's webhook URL — use the **Production URL** after activating.\n2. Create a Google Sheet with the columns: `Timestamp | Name | Phone | Message | Source`.\n3. Connect your Google Sheets credential and pick the spreadsheet + tab in the Sheets node.\n4. In the HTTP node, replace `YOUR-WAHA-SERVER` with your WAHA base URL and attach a Header Auth credential (header `X-Api-Key`).\n5. Edit the Hebrew auto-reply text to match your business, then activate.",
"width": 940,
"height": 240,
"color": 4
},
"id": "sticky-setup-t1",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-660,
-480
]
},
{
"parameters": {
"content": "## Adapting this template\n- **WAHA vs WhatsApp Cloud API:** the Code node handles both payload shapes automatically.\n- **Not in Israel?** Change the `972` country prefix inside the Code node.\n- **Reply via Cloud API instead of WAHA:** swap the HTTP node for the official WhatsApp Business Cloud node (message → send).\n- **Want lead alerts too?** Branch after the Sheets node into Telegram / Email / Slack.",
"width": 940,
"height": 220,
"color": 5
},
"id": "sticky-adapt-t1",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-660,
200
]
},
// ... truncated (copy to see full JSON)How to Import This Workflow
- 1Copy the workflow JSON above using the Copy Workflow JSON button.
- 2Open your n8n instance and go to Workflows.
- 3Click Import from JSON and paste the copied workflow.
Don't have an n8n instance? Start your free trial at n8nautomation.cloud
Related Templates
WhatsApp Lead Qualification Bot with Google Sheets & Slack Alerts
Overview This workflow automates the qualification and routing of incoming WhatsApp messages for sales teams. It receives messages via a WAHA (WhatsApp HTTP API) webhook, normalizes the data, scores leads based on urgency keywords, and then takes action on high-intent leads. Hot leads are simultaneously saved to Google Sheets for record-keeping and sent as a Slack notification to the sales team. An optional auto-reply node is included to acknowledge the message in Portuguese (customizable). This is a free, no-code/low-code solution that replaces expensive AI-based lead scoring with simple keyword matching, making it accessible for small businesses and startups. Node Breakdown WhatsApp Webhook (WAHA) — Webhook (No auth) — Listens for incoming WhatsApp messages at the path . Configure WAHA to POST messages here. No authentication required on the webhook itself; WAHA handles the connection. Normalize & Score Lead — Code node (No auth) — Extracts phone, message, name, and timestamp from the incoming payload. Assigns an (9 or 5) and (HOT or WARM) based on a list of Portuguese/English urgency keywords (e.g., "preço", "buy", "urgente"). Filter Hot Leads — Code node (No auth) — Routes only leads with to the next nodes. All other leads are discarded. Save Lead to Google Sheets — Google Sheets (OAuth2) — Appends lead data (phone, name, message, intent score, urgency) to a specified Google Sheet. Requires a Google Sheets OAuth credential and a valid Sheet ID and range. Notify Sales Team (Slack/Webhook) — HTTP Request (No auth) — Sends a POST request to a Slack incoming webhook URL with a formatted message containing the hot lead details. Requires a Slack webhook URL. Send Auto-Reply (WhatsApp) — WhatsApp (WhatsApp API, OAuth2) — Sends a predefined auto-reply message (Portuguese) to the customer. This node is included but not connected in the current workflow; users should connect it after the webhook or normalization step to reply to all leads. Setup Instructions **WAHA (WhatsApp HTTP API) — Deploy a WAHA instance (self-hosted or cloud) and configure it to send incoming messages to the webhook URL provided by this workflow (e.g., ). Google Sheets — Create a Google Sheet, copy its ID, and set up an OAuth2 credential in n8n for Google Sheets. Slack — Create an incoming webhook in your Slack workspace and copy the webhook URL. WhatsApp — For the auto-reply, you need a WhatsApp Business API credential (or WAHA) configured in n8n. The template name and namespace in the node are placeholders; replace with your own WhatsApp template. Customization — Update the keyword list in the Normalize node to match your business terms. Change the auto-reply message and language as needed. Use Cases & Variations Lead qualification for real estate, services, e-commerce — Replace keywords with industry-specific terms (e.g., "apartment", "quote", "order"). Multi-channel lead routing — Add similar webhooks for Facebook Messenger, Telegram, or email to centralize lead handling. CRM integration — Replace the Google Sheets node with a CRM node (HubSpot, Salesforce) to create leads directly. AI-powered scoring — Swap the keyword logic in the Normalize node with an OpenAI or Gemini node for more accurate intent detection (free tier available). Team assignment — Use the Slack notification to route leads to different channels based on product or region.
Auto-Qualify Google Sheets Leads with OpenAI GPT-4
Overview This workflow automatically qualifies new leads submitted via Google Forms (or directly entered) into a Google Sheet. Using OpenAI's GPT-4, it evaluates each lead against custom criteria (e.g., decision-maker role, team size, email domain) and updates the sheet with a qualification rating and explanation. This saves manual review time and ensures consistent lead scoring for sales teams or community managers. Node-by-Node Breakdown Check for new entries (Google Sheets Trigger – OAuth2) - Listens for new rows added to a specific Google Sheet (connected to a Google Form or standalone). - Configured to poll every minute (adjustable). - Requires: A Google Sheet document ID and sheet name. Qualify leads with GPT (OpenAI – API Key auth) - Uses the chat model. - A system message defines qualification rules (decision-maker, team size, corporate email). - A user message injects the lead's name, email, business area, and team size from the trigger output. - Temperature set to 0.3 for consistent, deterministic responses. - Instructed to reply with a JSON object: . Extract JSON reply (Set Node – no auth) - Parses the from OpenAI's response using . - Stores the resulting object in a new field for downstream nodes. Merge (Merge Node – no auth) - Combines the original lead data (from the trigger) with the parsed GPT reply. - Uses “Combine” mode with “Merge by position” to join the two inputs horizontally. - Input 0 (from trigger) holds the row data; Input 1 (from Extract JSON reply) holds the GPT rating. Update lead status (Google Sheets – OAuth2) - Updates the same Google Sheet with the GPT's rating and explanation. - Matches rows by the column (to avoid updating the wrong row). - Writes the rating into a column (and optionally the explanation if you extend the schema). Setup Instructions Google Cloud / Sheets API - Create a Google Cloud project, enable the Google Sheets API, and create OAuth2 credentials (Desktop app or Web application). - In n8n, add a new Google Sheets credential (OAuth2) using your client ID and secret. OpenAI API Key - Sign up at OpenAI and create an API key. - In n8n, add a new OpenAI credential with your API key. Google Sheet - Use the provided template or create your own with columns: Timestamp, Email Address, Your name, Your business area, Your team size, Rating. - If using Google Forms, submissions will automatically populate the sheet. Configure the workflow - After importing, select each Google Sheets node and choose your credential and the correct sheet/document. - Adjust the polling interval if needed (default: every minute). - Modify the GPT system message to fit your own lead qualification criteria. Use Cases & Adaptations Sales lead scoring: Replace the criteria with your ICP (ideal customer profile) – e.g., industry, company size, budget. Community membership approval: Automatically accept or reject join requests based on responses. Event registration filtering: Qualify attendees for VIP access or follow-up. Extend output: Store the explanation in a separate column by adding it to the Update node's column mapping. Add notifications: Insert a Slack or email node after the Merge to alert your team when a high-quality lead is detected. Use a different model: Switch to for lower cost or for faster responses. This template is a starting point – tweak the prompt, polling frequency, and output columns to match your exact process.
Extract Google Maps Business Leads via Dumpling AI to Google Sheets
Overview This workflow automates the extraction of business listings from Google Maps using Dumpling AI's search-maps API and logs the results into a structured Google Sheet. It's ideal for lead generation, market research, or competitive analysis — allowing you to quickly gather data like business names, ratings, addresses, phone numbers, websites, and booking links without manual browsing. Workflow Steps Trigger: Manual Test Run (Manual Trigger) — Starts the workflow on demand for testing. No authentication required. Search Google Maps via Dumpling AI (HTTP Request) — Sends a POST request to with a JSON body containing the search query (e.g., ) and language. Authentication uses Header Auth — you must provide a Dumpling AI API key as a header (configured in n8n credentials). The response returns an array of places with details like title, rating, address, phone, website, price level, and booking links. Split Places List for Processing (Split Out) — Splits the array from the HTTP response into individual items so each place can be processed separately. No authentication needed. Save Results to Google Sheet (Place Info) (Google Sheets) — Appends each place's data (name, address, rating, price level, type, website, phone, position, booking link) to a specified sheet in a Google Sheets document. Uses OAuth2 authentication (Google account). The sheet name is set to "Google Maps" and the document ID points to a spreadsheet named "Places". Setup Instructions Dumpling AI Account: Sign up at dumplingai.com and obtain an API key. In n8n, create a new Header Auth credential with the key name (e.g., ) and value . Google Sheets: Create a Google Sheet (or use the one referenced in the workflow). In n8n, create a Google Sheets OAuth2 credential by connecting your Google account. Ensure the sheet has a tab named "Google Maps" (or update the sheet name in the node). Customize Query: Edit the of the HTTP Request node to change the search query (e.g., ) or language. Run: Click "Execute Workflow" to test. The first run will prompt you to authorize Google Sheets access. Use Cases & Variations Lead Generation: Replace the query with industry-specific terms (e.g., "dentists in Los Angeles") to build a targeted prospect list. Competitor Analysis: Search for competitors in a niche and analyze their ratings, price levels, and online presence. Real Estate / Local Business Research: Extract data for multiple locations by chaining queries or using a loop. Automation: Replace the Manual Trigger with a Schedule Trigger to run daily/weekly, and add a Set node to dynamically pass queries from a spreadsheet or webhook. Enrichment: Add nodes to clean data, send notifications (Slack/Email), or integrate with a CRM like HubSpot.