🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

Google Sheets + WhatsApp: welcome leads instantly

Lisa Granqvist Partner Workflow Automation Expert

Leads hit your Google Sheet, and then… nothing happens until someone remembers to open it. By then, the “hot” lead is lukewarm, the phone number is wrong, or your team sent two different messages to the same person.

Sales reps feel it in missed follow-ups. Marketers see it as wasted spend. And a small business owner just sees another task that steals the afternoon. This Sheets WhatsApp automation welcomes new leads fast, and it keeps your sheet updated so you know what actually happened.

Below is the exact workflow, what it fixes, and what you need to run it without switching to the official WhatsApp Business API.

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: Google Sheets + WhatsApp: welcome leads instantly

The Problem: Leads Sit Unanswered (and Numbers Are Messy)

When leads land in a spreadsheet, response time becomes a human habit. Someone has to check the sheet, copy a phone number, paste it into WhatsApp, write a “welcome” message, and then remember to mark the row. It sounds simple until you’re doing it 20 times a day, between calls and meetings. Then the errors start: missing country codes, duplicated outreach, and “sent” statuses that exist only in someone’s head. Worst part? You can’t trust your follow-up list because your sheet is never quite accurate.

The friction compounds. Here’s where it breaks down.

  • You end up spending about 5 minutes per lead just to send a basic hello.
  • Invalid WhatsApp numbers create silent failures, so you keep trying the same dead contacts.
  • Status tracking becomes inconsistent, which means follow-up gets sloppy fast.
  • Once volume increases, nobody wants the job of “spreadsheet patrol” anymore.

The Solution: Verify First, Then Send a WhatsApp Welcome

This workflow watches your Google Sheet on a schedule (every 5 minutes) and looks for leads that are ready to contact. When it finds new rows, it cleans up the WhatsApp number format, then checks the number with the Rapiwa API so you’re not messaging ghosts. If the number is valid, it sends a personalized welcome message that can include the lead’s name. If it’s invalid, it marks the row as “not sent” and “unverified” so your team doesn’t waste time later. Either way, your spreadsheet becomes the source of truth again because the workflow updates each row after every attempt.

The workflow starts with a 5-minute scheduled trigger and a Google Sheets lookup for pending rows. Rapiwa verifies the WhatsApp presence, then an “if” branch either sends the greeting or flags the row. Finally, the workflow waits about 5 seconds between messages and keeps looping through the batch.

What You Get: Automation vs. Results

Example: What This Looks Like

Say you collect 30 leads a day in Google Sheets. Manually, even a quick process (open the row, copy the number, format it, send a WhatsApp hello, then update status) is about 5 minutes per lead, so roughly 2.5 hours daily. With this automation, you spend maybe 10 minutes upfront setting the welcome message and columns, then it runs every 5 minutes and processes leads in batches (up to 60) with a 5-second pause between sends. You’re no longer “sending welcomes.” You’re just checking the sheet for exceptions.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Google Sheets to store leads and statuses.
  • Rapiwa to verify numbers and send WhatsApp messages.
  • Rapiwa Bearer Token (get it from your Rapiwa dashboard)

Skill level: Intermediate. You’ll connect Google OAuth, paste an API token, and keep sheet columns named exactly right.

Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).

How It Works

A timed check runs automatically. Every 5 minutes, n8n starts the workflow and looks for rows in Google Sheets that match your “ready to send” condition (based on your columns).

Lead rows are cleaned and prepared. The workflow normalizes the WhatsApp number (so country codes and formatting don’t break delivery), then caps the run to a manageable batch size.

Rapiwa verifies, then messaging happens. The workflow calls Rapiwa to verify the WhatsApp presence. An “if” branch decides what happens next: send the welcome message with the lead’s name, or mark the row as unverified and skip the send.

Your sheet becomes the log. After each attempt, n8n updates the same row with statuses like “sent,” “not sent,” “verified,” and “unverified,” then waits about 5 seconds before moving to the next lead.

You can easily modify the 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 Scheduled Interval Trigger

This workflow begins on a timed schedule, so start by setting when the automation should run.

  1. Add the Scheduled Interval Trigger node and open its settings.
  2. Set Rule to an interval in minutes. The current configuration uses minutes as the interval field.
  3. Keep the default structure if you want it to run every minute, or adjust the schedule to your desired frequency.

You can keep the Flowpast Branding sticky note for reference; it does not affect execution.

Step 2: Connect Google Sheets

Three Google Sheets nodes read leads and update status columns during the flow.

  1. Open Retrieve Pending Leads and select the spreadsheet with Document set to [YOUR_ID] and Sheet Name set to gid=0.
  2. Configure the filter in Retrieve Pending Leads with Lookup Column set to check.
  3. Credential Required: Connect your googleSheetsOAuth2Api credentials in Retrieve Pending Leads.
  4. Open Flag Rows Not Sent and set Operation to update. Map values: checkchecked, statusnot sent, validityunverified, and row_number{{ $('Iterate Lead Batch').item.json.row_number }}.
  5. Credential Required: Connect your googleSheetsOAuth2Api credentials in Flag Rows Not Sent.
  6. Open Mark Rows Sent Verified and set Operation to update. Map values: checkchecked, statussent, validityverified, and row_number{{ $('Iterate Lead Batch').item.json.row_number }}.
  7. Credential Required: Connect your googleSheetsOAuth2Api credentials in Mark Rows Sent Verified.

⚠️ Common Pitfall: The sheet includes a column named name (with a trailing space). Ensure your column headers match exactly, or the workflow will not map values correctly.

Step 3: Set Up Processing and Batch Control

This section limits volume, iterates through leads, and normalizes WhatsApp numbers.

  1. Open Cap Batch Size and set Max Items to 60.
  2. Connect Retrieve Pending LeadsCap Batch SizeIterate Lead Batch following the execution flow.
  3. In Normalize WhatsApp Number, paste the full JavaScript Code to clean the field:

const items = $input.all(); const updatedItems = items.map((item) => { let waNo = item?.json["WhatsApp No"]; // Convert to string safely let waNoStr = ""; if (typeof waNo === 'string') { waNoStr = waNo; } else if (waNo !== undefined && waNo !== null) { waNoStr = String(waNo); } // Remove all non-digit characters const cleanedNumber = waNoStr.replace(/\D/g, ""); // Assign cleaned number as a string item.json["WhatsApp No"] = cleanedNumber; return item; } ); return updatedItems;

Step 4: Configure Validation, Routing, and WhatsApp Actions

Leads are verified, routed, and either messaged or flagged based on WhatsApp presence.

  1. In Verify WhatsApp Presence, set URL to =https://app.rapiwa.com/api/verify-whatsapp, Method to POST, and Send Body to true.
  2. Set the body parameter number to {{ String($json.number) }} in Verify WhatsApp Presence.
  3. Credential Required: Connect your httpBearerAuth credentials in Verify WhatsApp Presence.
  4. Configure Branch on Validity with a boolean condition using Left Value {{ $json.data.exists }} and Right Value "true".
  5. Follow the flow: Normalize WhatsApp NumberVerify WhatsApp PresenceBranch on ValidityDispatch WhatsApp Greeting (true) or Flag Rows Not Sent (false).
  6. In Dispatch WhatsApp Greeting, set URL to =https://app.rapiwa.com/api/send-message, Method to POST, and Send Body to true.
  7. Set body parameters in Dispatch WhatsApp Greeting as follows: number{{ $json.data.phone }}, message_typetext, message=Hi *{{ $('Normalize WhatsApp Number').item.json['name '] }}*, Thanks for purchasing from *Spagreen Creative*. Your product purchase has been confirmed. We truly appreciate your trust in our products. If you have any questions, feel free to message us here anytime! – Team *Spagreen Creative*.
  8. Credential Required: Connect your httpBearerAuth credentials in Dispatch WhatsApp Greeting.
  9. Ensure Dispatch WhatsApp Greeting routes to Mark Rows Sent Verified, then to Pause Between Messages, and back to Iterate Lead Batch.
  10. Ensure Flag Rows Not Sent routes to Pause Between Messages and back to Iterate Lead Batch for continued batch processing.

The Pause Between Messages node throttles sending. Keep it connected after both success and failure branches so all leads are processed in sequence.

Step 5: Test and Activate Your Workflow

Run a manual test to confirm the WhatsApp verification and sheet updates behave as expected.

  1. Click Execute Workflow and watch items move from Scheduled Interval Trigger through Retrieve Pending Leads and Iterate Lead Batch.
  2. Verify that leads with WhatsApp accounts go through Dispatch WhatsApp Greeting and are updated in Mark Rows Sent Verified with status = sent and validity = verified.
  3. Verify invalid numbers go to Flag Rows Not Sent and are updated with status = not sent and validity = unverified.
  4. Once results are correct, toggle the workflow Active to enable scheduled execution.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • Google Sheets OAuth credentials can expire or lose access if a workspace admin changes permissions. If things break, check the n8n credential status and the shared sheet access 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 requests can fail if your Bearer Token is old or your subscription is inactive, and you’ll see it immediately in the HTTP Request node response. Also, keep the sheet column name exactly as name (with the trailing space) or the personalization will quietly break.

Frequently Asked Questions

How long does it take to set up this Sheets WhatsApp automation?

About an hour if your sheet columns and accounts are ready.

Do I need coding skills to automate Google Sheets WhatsApp welcomes?

No. You’ll mostly connect accounts and paste your Rapiwa token. The only “technical” part is keeping your Google Sheet columns named exactly as expected.

Is n8n free to use for this Sheets WhatsApp automation workflow?

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 costs (about $5/month) to verify numbers and send messages.

Where can I host n8n to run this Sheets WhatsApp automation?

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.

Can I customize this Sheets WhatsApp automation workflow for different welcome messages?

Yes, and it’s the part you should spend time on. You’ll edit the message body in the HTTP Request that sends the WhatsApp message (the Rapiwa “send-message” call), and you can merge in extra fields from Google Sheets like product, source, or salesperson name. Common tweaks include multilingual templates, different messages by lead type (using the Switch node), and sending an attachment link pulled from Google Drive. Just keep the Rapiwa verify call in place so you don’t burn time on invalid numbers.

Why is my Google Sheets connection failing in this workflow?

Most of the time, it’s OAuth access: the credential expired, the Google account changed passwords, or the sheet moved into a Drive where that account can’t see it. Reconnect the Google Sheets credential in n8n and confirm the exact spreadsheet is shared with that account. Also check that your workflow is still filtering the right rows; a renamed column can make it look “broken” when it’s just returning zero leads.

How many leads can this Sheets WhatsApp automation handle?

This workflow is set up to process up to 60 leads per cycle, and it runs every 5 minutes with a 5-second pause between messages.

Is this Sheets WhatsApp automation better than using Zapier or Make?

Often, yes, because this flow needs looping, branching, and status updates that get clunky (and pricey) in simpler tools. n8n handles the “verify → if valid → send → update row” logic cleanly, and you can self-host for unlimited executions. Zapier or Make can still work if you only need a tiny 2-step automation, like “new row added → send message,” but you’ll miss the validation and the robust error handling. Frankly, validation is the difference between scaling and spamming dead numbers. Talk to an automation expert if you want help choosing.

Once this is running, your spreadsheet stops being a graveyard of “maybe we contacted them” rows. The workflow handles the repetitive follow-up hygiene so you can focus on the conversations that turn into revenue.

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.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal