Rapiwa + Google Sheets: verified WhatsApp leads
You finally get leads coming in… and then half the WhatsApp numbers bounce, fail to deliver, or turn into awkward “hey, your number isn’t on WhatsApp” follow-ups. That’s not just annoying. It slows down every campaign and makes your team doubt the list.
Marketing managers feel it when paid leads turn into dead chats. A business owner sees it as wasted ad spend. And a client-facing agency gets blamed for “low-quality leads.” This WhatsApp lead verification automation fixes that before you send a single real outreach message.
You’ll see how the workflow verifies each number with Rapiwa, only sends confirmations to real WhatsApp accounts, and logs everything into Google Sheets with a clean verified/unverified status.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: Rapiwa + Google Sheets: verified WhatsApp leads
flowchart LR
subgraph sg0["Flow 1"]
direction LR
n0["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Cleane Number"]
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Items", pos: "b", h: 48 }
n2["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/webhook.dark.svg' width='40' height='40' /></div><br/>Webhook"]
n3@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If", pos: "b", h: 48 }
n4@{ icon: "mdi:database", form: "rounded", label: "unverified append row in sheet", pos: "b", h: 48 }
n5@{ icon: "mdi:database", form: "rounded", label: "verified append row in sheet", pos: "b", h: 48 }
n6@{ icon: "mdi:cog", form: "rounded", label: "Wait1", pos: "b", h: 48 }
n7["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Format Webhook Response Data"]
n8["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Send Message Using Rapiwa"]
n9["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Check valid whatsapp number .."]
n3 --> n8
n3 --> n4
n2 --> n7
n0 --> n9
n1 --> n0
n8 --> n5
n7 --> n1
n5 --> n6
n4 --> n6
n9 --> n3
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n3 decision
class n4,n5 database
class n2,n8,n9 api
class n0,n7 code
classDef customIcon fill:none,stroke:none
class n0,n2,n7,n8,n9 customIcon
The Problem: Fake or Invalid WhatsApp Leads Ruin Follow-Up
WhatsApp is one of the fastest ways to convert a lead, but only if the number is real and actually registered on WhatsApp. In practice, forms collect messy phone formats, typos, landlines, or people who don’t use WhatsApp at all. Then your team does the worst kind of work: manual checking, reformatting numbers, retrying messages, and updating spreadsheets after the fact. Meanwhile, the real leads sit there waiting. It’s a small delay per lead, but over a week it turns into hours and a lot of lost momentum.
It adds up fast. Here’s where it breaks down in day-to-day operations.
- People submit numbers in every format imaginable, so even valid leads fail if you send without cleaning.
- Your follow-up team wastes time messaging numbers that will never deliver, then has to explain why.
- Your spreadsheet becomes untrustworthy because “submitted” gets confused with “reachable on WhatsApp.”
- When you scale ads or event signups, the manual verification step becomes a quiet bottleneck.
The Solution: Verify WhatsApp Numbers, Then Log Everything
This workflow starts the moment a form submission hits your webhook. n8n pulls out the key fields (name, email, business name, location, WhatsApp number) and stamps the submission date in a simple YYYY-MM-DD format. Next, it sanitizes the WhatsApp number by stripping non-digits, so “+1 (234) 567-8901” becomes a clean value your systems can reliably use. Then it calls the Rapiwa verification endpoint to check if the number actually exists on WhatsApp. If it’s real, the workflow sends a WhatsApp confirmation message via Rapiwa. Either way, the lead gets appended to Google Sheets with a clear “verified” or “unverified” status, so your follow-up stays clean.
The workflow kicks off with an inbound webhook from your form or app. Rapiwa handles the verification and (only when appropriate) the WhatsApp message. Google Sheets becomes the source of truth for what’s reachable, what isn’t, and when each lead arrived.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say your campaign brings in 100 WhatsApp leads a week. Manually, someone often spends about 3 minutes per lead cleaning formats, checking if the number is on WhatsApp, and updating a sheet, which is roughly 5 hours weekly. With this workflow, the “work” is basically just the form submission itself (a few seconds), then the automated verification, optional confirmation message, and a Google Sheets row appended automatically. You still review the sheet, but you’re reviewing clean statuses instead of doing detective work.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Rapiwa for WhatsApp verification and messaging.
- Google Sheets to log verified vs. unverified leads.
- Rapiwa API token (get it from your Rapiwa account/dashboard).
Skill level: Beginner. You’ll paste a webhook into your form and connect Google/Rapiwa credentials in n8n.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
A form submission hits your webhook. Your site, landing page, or app sends an HTTP POST to n8n with fields like name, email, business name, and the WhatsApp number.
The workflow standardizes the payload and date. n8n reshapes the incoming data so every entry matches the same structure, then adds a simple submission date for reporting and filtering later.
Phone digits get cleaned, then verified. The workflow strips spaces, symbols, and punctuation from the WhatsApp field, then checks the cleaned number using the Rapiwa verification API. An If condition branches the flow depending on whether the number exists on WhatsApp.
Confirmed numbers get a message, and every lead gets logged. Verified numbers receive a WhatsApp confirmation via Rapiwa, then the lead is appended to Google Sheets as “verified.” Unverified leads skip messaging and still get appended, clearly marked “unverified.” A short wait helps avoid throttling when volume spikes.
You can easily modify the confirmation message text to match your brand voice based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Webhook Trigger
Set up the inbound endpoint that receives new submissions and starts the verification flow.
- Add the Inbound Webhook Trigger node as the workflow trigger.
- Set HTTP Method to
POST. - Set Path to
a9b6a936-e5f2-4d4c-9cf9-182de0a970d5. - Save the node and copy the generated webhook URL for your form or integration.
Step 2: Connect Google Sheets
Configure both Sheets destinations used to log verified and unverified submissions.
- Open Append Verified Row and set Operation to
append. - Set Document to
[YOUR_ID]and Sheet togid=0. - Map columns using expressions like
{{ $('Normalize Phone Digits').item.json.name }}and set validity toverified. - Repeat the same document and sheet settings in Append Unverified Row, but set validity to
unverified. - Credential Required: Connect your googleSheetsOAuth2Api credentials in both Append Verified Row and Append Unverified Row.
Business Name, Email ) or the append will fail.Step 3: Set Up Payload Shaping and Iteration
Transform the incoming webhook body into a consistent record structure and process each submission.
- In Shape Webhook Payload, keep the provided JavaScript Code to map fields like
business_name,location, andsubmitted_date. - Connect Shape Webhook Payload to Iterate Records to process submissions as separate items.
- Connect Iterate Records output 1 to Normalize Phone Digits (batch processing continues from the second output).
- In Normalize Phone Digits, retain the default script that strips non-numeric characters from
number.
Step 4: Configure WhatsApp Verification and Branching
Verify WhatsApp numbers via Rapiwa and route records based on verification status.
- In Validate WhatsApp via Rapiwa, set URL to
=https://app.rapiwa.com/api/verify-whatsappand Method toPOST. - Set the body parameter number to
{{ $json.whatsapp }}. - Credential Required: Connect your httpBearerAuth credentials in Validate WhatsApp via Rapiwa.
- In Verification Branch, keep the condition
{{ $json.data.exists }}istrueto route verified numbers. - Confirm the execution flow: Validate WhatsApp via Rapiwa → Verification Branch, then true path to Dispatch WhatsApp Notice and false path to Append Unverified Row.
Step 5: Configure WhatsApp Notification and Write Delay
Send a WhatsApp confirmation for verified numbers and add a short delay after writing to Sheets.
- In Dispatch WhatsApp Notice, set URL to
=https://app.rapiwa.com/api/send-messageand Method toPOST. - Configure body parameters: number =
{{ $json.data.phone }}, message_type =text, and message ==Hi {{ $('Normalize Phone Digits').item.json.name }}, Thanks! Your form has been submitted successfully.. - Credential Required: Connect your httpBearerAuth credentials in Dispatch WhatsApp Notice.
- Connect Dispatch WhatsApp Notice → Append Verified Row and both append nodes to Delay After Write.
- Set Delay After Write to wait Amount
2(seconds).
Step 6: Test and Activate Your Workflow
Run an end-to-end test to verify the webhook intake, WhatsApp validation, and Google Sheets logging.
- Click Execute Workflow and send a sample POST request to the Inbound Webhook Trigger URL with fields like
name,email, andwhatsapp. - Confirm the data passes through Shape Webhook Payload and Normalize Phone Digits, then reaches Validate WhatsApp via Rapiwa.
- Verify that verified numbers go through Dispatch WhatsApp Notice and write to Append Verified Row, while unverified numbers write to Append Unverified Row.
- Check your Google Sheet for new rows with the correct validity value and timestamps.
- Toggle the workflow to Active to enable production processing.
Common Gotchas
- Google Sheets permissions can block appends even when the sheet “looks” shared. If things break, check the connected Google account access and the exact sheet/tab name first.
- If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
- Rapiwa tokens and API access can fail due to expired credentials or plan limits. If verification suddenly returns errors, re-check your Bearer token in n8n and confirm your Rapiwa subscription is active.
Frequently Asked Questions
About 30 minutes if your Rapiwa and Google accounts are ready.
No. You will mostly connect accounts and paste your webhook into your form tool.
Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in Rapiwa API costs (Rapiwa requires an active subscription for API access).
Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.
Yes, and it’s honestly the first thing you should do. Update the message text in the “Dispatch WhatsApp Notice” HTTP Request so it matches your brand tone and includes whatever next step you want (a link, a booking prompt, or a quick “reply YES”). You can also route unverified leads somewhere else by changing the “Append Unverified Row” Google Sheets node to a different spreadsheet or adding a Telegram/Discord alert. If you want stricter validation, adjust the “Normalize Phone Digits” code to enforce country codes before verification.
Usually it’s an invalid or expired Bearer token set in your HTTP Request credentials. Update the token in n8n, then re-run a single test execution and check the HTTP response body for permission errors. If the token is fine, you may be hitting plan limits or temporary Rapiwa API throttling, so increasing the wait time after sheet writes can help keep requests spaced out.
It can handle hundreds of leads a day for most small teams, and you can scale further by increasing batch size and server resources.
For this workflow, n8n has a few advantages: more complex logic with unlimited branching at no extra cost, a self-hosting option for unlimited executions, and flexible HTTP requests for services like Rapiwa. Zapier or Make can still work, but they often get expensive once you add filtering, retries, and higher volume. n8n also makes it easier to clean and reshape data before you write to Google Sheets, which matters a lot for phone numbers. The main downside is setup: you spend a bit more time upfront to get a more reliable system later. Talk to an automation expert if you’re not sure which fits.
Once this is running, you stop guessing which leads are real on WhatsApp. You get a clean sheet, a faster follow-up loop, and fewer dead-end conversations.
Need Help Setting This Up?
Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.