Back to Catalog

Send WhatsApp bulk messages from Google Sheets

SpaGreen CreativeSpaGreen Creative
3825 views
2/3/2026
Official Page

WhatsApp Bulk Message Broadcast via Google Sheets (n8n Workflow)

Use Case

This workflow enables automated bulk WhatsApp message broadcasting using the WhatsApp Business Cloud API. It pulls recipient and message data from a Google Sheet, sends templated messages (optionally with image headers), and updates the sheet with the message status. It is ideal for marketing teams, support agents, and businesses handling high-volume outreach.


Who Is This For?

  • Businesses conducting WhatsApp marketing or outreach campaigns
  • Customer support or notification teams
  • Administrators seeking an automated, no-code message distribution system using Google Sheets

What This Workflow Does

  • Triggers automatically every minute to scan for pending messages
  • Fetches unsent entries from a Google Sheet
  • Limits the number of messages processed per execution to comply with API usage guidelines
  • Sanitizes WhatsApp numbers for proper formatting
  • Sends messages using a pre-approved WhatsApp template (text and optional image)
  • Marks the row as "Sent" in the sheet upon successful delivery

Workflow Breakdown (Node by Node)

1. Trigger Every 5 Minutes

Initiates the workflow every minute using a scheduled trigger to continuously monitor pending rows.

2. Fetch All Pending Queries for Messaging

Reads rows from a Google Sheet where the Status column is empty, indicating they haven’t been processed yet.

3. Limit

Restricts processing to 2 rows per execution to manage API throughput.

4. Loop Over Items

Uses SplitInBatches to iterate through each row individually.

5. Clean WhatsApp Number

A code node that strips non-numeric characters from the WhatsApp No field, ensuring the format is valid for the API.

6. Send Message to 300 Phone No

Sends a WhatsApp message using the WhatsApp Cloud API and a pre-approved template.
Template includes:

  • An image from the Image URL column (as header, optional)
  • Dynamic variables for the recipient's Name and Message fields

Template variables must be pre-defined and approved in the Meta Developer Portal, such as {{1}}, {{2}}.

7. Change State of Rows in Sent1

Updates the Status column to Sent for each successfully processed row using the row number as a reference.


Google Sheet Format

Structure your Google Sheet as shown below:

| WhatsApp No | Name | Message | Image URL | Status | |--------------|------------|---------------------------|---------------------|--------| | +8801XXXXXXX | John Doe | Hello, your order shipped | https://.../img.jpg | |

Leave the Status column empty for rows that need to be processed.


Requirements

  • WhatsApp Business Cloud API access via Meta for Developers
  • A properly structured Google Sheet as described above
  • Active OAuth2 credentials configured in n8n for:
    • googleSheetsOAuth2Api
    • whatsAppApi

Customization Options

  • Update the Limit node to control how many rows are processed in each run
  • Adjust the trigger schedule (e.g., change to every 5 minutes)
  • Replace the message template ID with your own custom-approved one from Meta
  • Add error-handling logic (e.g., IF or Try/Catch nodes) to log failures or set Status = Failed

Sample Sheet Template

View Sample Google Sheet


Workflow Highlights

  • Automated execution every 1 minute
  • Reads and processes only pending records
  • Verifies WhatsApp numbers and delivers templated messages
  • Updates Google Sheet after each attempt

Support & Community

Need help setting up or customizing the workflow?

Send WhatsApp Bulk Messages from Google Sheets

This n8n workflow automates the process of sending personalized bulk WhatsApp messages to a list of contacts stored in a Google Sheet. It's designed to streamline communication for marketing campaigns, notifications, or any scenario requiring mass messaging.

What it does

This workflow simplifies sending bulk WhatsApp messages by:

  1. Triggering on a Schedule: The workflow can be set to run at specific intervals (e.g., daily, weekly) to check for new messages to send.
  2. Reading Data from Google Sheets: It connects to a specified Google Sheet to retrieve a list of contacts, including their phone numbers and the message content.
  3. Processing Data in Batches: The workflow iterates through each row of the Google Sheet, allowing for individual message processing.
  4. Formatting Phone Numbers: A Code node ensures that all phone numbers are correctly formatted for WhatsApp, adding the country code if missing.
  5. Sending WhatsApp Messages: For each contact, it sends a personalized message using the WhatsApp Business Cloud API.
  6. Limiting Messages (Optional): An optional "Limit" node is included, which can be used to restrict the number of messages sent in a single run, useful for testing or managing API quotas.

Prerequisites/Requirements

To use this workflow, you will need:

  • n8n Instance: A running n8n instance.
  • Google Sheets Account: A Google Sheets spreadsheet containing the contact list. The sheet should have columns for phone numbers and message content.
  • WhatsApp Business Cloud Account: Access to the WhatsApp Business Cloud API with a configured phone number and message templates.
  • n8n Credentials:
    • Google Sheets Credential: An OAuth2 credential for Google Sheets to allow n8n to read your spreadsheet.
    • WhatsApp Business Cloud Credential: An API key or token for your WhatsApp Business Cloud account.

Setup/Usage

  1. Import the Workflow:

    • Download the provided JSON file for this workflow.
    • In your n8n instance, click "Workflows" in the left sidebar.
    • Click "New" -> "Import from JSON" and paste the workflow JSON or upload the file.
  2. Configure Credentials:

    • Locate the "Google Sheets" node and click on it.
    • Under "Credentials", select an existing Google Sheets credential or click "Create New" to set one up. Ensure it has access to the spreadsheet you intend to use.
    • Locate the "WhatsApp Business Cloud" node and click on it.
    • Under "Credentials", select an existing WhatsApp Business Cloud credential or click "Create New" to set one up.
  3. Configure Google Sheet Details:

    • In the "Google Sheets" node:
      • Specify the "Spreadsheet ID" of your Google Sheet.
      • Specify the "Sheet Name" where your contact data is located.
      • Ensure the "Read All Rows" operation is selected.
  4. Configure the Code Node:

    • The "Code" node is responsible for formatting phone numbers. Review the JavaScript code to ensure it matches your expected phone number format (e.g., adding a specific country code if numbers in your sheet don't include it).
    • Modify the item.json.phone and item.json.message references to match the column headers in your Google Sheet. For example, if your phone number column is named ContactNumber, change item.json.phone to item.json.ContactNumber.
  5. Configure WhatsApp Message:

    • In the "WhatsApp Business Cloud" node:
      • Set the "Phone Number ID" from your WhatsApp Business Account.
      • Set the "To" field to ={{ $json.phone }} to use the formatted phone number from the previous step.
      • Choose "Send Template Message".
      • Select your "Template Name" and "Language".
      • Map the "Header Parameters" and "Body Parameters" to the corresponding data from your Google Sheet (e.g., ={{ $json.message }}).
  6. Configure the Schedule Trigger:

    • Open the "Schedule Trigger" node.
    • Set the desired "Interval" (e.g., every 1 hour, every day at a specific time) for when the workflow should check for and send messages.
  7. Activate the Workflow:

    • Once all configurations are complete, click the "Activate" toggle in the top right corner of the n8n editor to enable the workflow.

Note on the Limit Node: The "Limit" node (ID: 1237) is currently disconnected. If you wish to limit the number of messages sent per execution (e.g., for testing or to stay within API rate limits), you can connect it between the "Loop Over Items" node and the "Code" node, and configure its settings.

Related Templates

Add Project Tasks to Google Sheets with GPT-4.1-mini Chat Assistant

Let your team create, track, and manage project tasks through natural conversation. This workflow uses an AI Project Manager Agent that chats with users, gathers the task details it needs, and automatically adds them to a Google Sheet. --- ✅ What this template does Lets you chat naturally with an AI to add new project tasks Automatically detects if the user wants to create or update an item (updates coming soon) Collects Task, Description, and Status fields — allows “don’t know” responses Appends new entries directly into your connected Google Sheets Provides real-time confirmation when the task is added > Trigger: n8n Chat Trigger > Integrations: OpenAI GPT-4.1-mini + Google Sheets (OAuth2) --- 🧠 How it works The Chat Trigger starts a chat with the user. The AI Project Manager Agent asks guiding questions to gather the task name, description, and status. When all fields are complete (all Info = Yes), the data is passed to the Google Sheets node. The task is automatically added to your project tracker sheet. The AI confirms completion in chat. --- ⚙️ Setup instructions Connect OpenAI Go to OpenAI Platform → copy your API key. In n8n, create New Credentials → OpenAI API and paste your key. Ensure your account has active billing under OpenAI Billing. Connect Google Sheets (OAuth2) In n8n → Credentials → New → Google Sheets (OAuth2) Sign in with your Google account and grant access. Select your spreadsheet and tab (e.g., “Tasks”) when prompted. Example sheet: https://docs.google.com/spreadsheets/d/1pbK-B-Q9p8fVjxJIsjEVrAfRgqEPCeYw8rZojZPAb84/edit Test your chat Click Execute Workflow, then start chatting: > “Add a task for reviewing the project report tomorrow.” The agent will ask questions if needed, then add the record to your sheet. --- 🧩 Customization ideas Add a Date Added or Assigned To column to the Google Sheet Integrate with Slack or Outlook to message assigned users Extend the agent to support task updates and deletes Replace Google Sheets with Airtable or Notion if preferred --- 🪄 Requirements n8n version ≥ 1.100 OpenAI API key Google Sheets account --- 📬 Contact Need help customizing this (e.g., adding deadlines, linking to Notion, or Slack notifications)? 📧 robert@ynteractive.com 🔗 Robert Breen 🌐 ynteractive.com

Robert BreenBy Robert Breen
10823

Send Rapiwa WhatsApp apology & reorder link when Shopify order is cancelled

Who Is This For? This n8n workflow listens for order cancellations in Shopify, extracts relevant customer and order data, checks if the customer’s phone number is registered on WhatsApp via the Rapiwa API, and sends a personalised apology message with a re-order link. It also logs successful and unsuccessful attempts in Google Sheets for tracking. What This Workflow Does Listens for cancelled orders in your Shopify store Extracts customer details and order information Generates a personalised apology message including a reorder link Sends the message to customers via WhatsApp using a messaging API (e.g., Twilio or Rapiwa) Logs the communication results for tracking purposes Key Features Real-Time Cancellation Detection: Automatically triggers when an order is cancelled Personalised Messaging: Includes customer name, order details, and a direct reorder link WhatsApp Integration: Sends messages via WhatsApp for higher engagement Error Handling: Logs successful and failed message deliveries Reorder Link: Provides a convenient link for customers to reorder with one click Requirements n8n instance with nodes: Shopify Trigger, HTTP Request (for WhatsApp API), Code, Google Sheets (optional) Shopify store with API access WhatsApp messaging provider account with API access Valid customer phone numbers stored in Shopify orders How to Use — Step-by-Step Setup Credentials Setup Shopify API: Configure Shopify API credentials in n8n to listen for order cancellations WhatsApp API: Set up WhatsApp messaging credentials (e.g., Twilio, Rapiwa, or any supported provider) Google Sheets (Optional): Configure Google Sheets OAuth2 if you want to log communications Configure Trigger Set the workflow to trigger on Shopify order cancellation events Customize Message Content Modify the apology message template to include your store branding and tone Ensure the reorder link dynamically includes the customer's cancelled order info Set Up WhatsApp Node Connect your WhatsApp API credentials Ensure the phone numbers are formatted correctly for WhatsApp delivery Google Sheet Required Columns You’ll need two Google Sheets (or two tabs in one spreadsheet): A Google Sheet formatted like this ➤ sample The workflow uses a Google Sheet with the following columns to track coupon distribution: | Name | Number | Email | Address | Price | Title | Re-order Link | Validity | Status | | -------------- | ------------- | --------------------------------------------------- | ----------------- | ----------- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------ | ---------- | | Abdul Mannan | 8801322827799 | contact@spagreen.net | Dhaka, Bangladesh | BDT 1955.00 | Pakistani Lawn | Link 🔗 | unverified | not sent | | Abdul Mannan | 8801322827799 | contact@spagreen.net | Dhaka, Bangladesh | BDT 1955.00 | Pakistani Lawn | Link 🔗 | verified | sent | Important Notes Phone Number Validation: Ensure customer phone numbers are WhatsApp-enabled and formatted properly API Rate Limits: Respect your WhatsApp provider’s API limits to avoid throttling Data Privacy: Always comply with privacy laws when messaging customers Error Handling: Monitor logs regularly to handle failed message deliveries Testing: Test thoroughly with dummy data before activating the workflow live Useful Links Dashboard: https://app.rapiwa.com Official Website: https://rapiwa.com Documentation: https://docs.rapiwa.com Support & Help WhatsApp: Chat on WhatsApp Discord: SpaGreen Community Facebook Group: SpaGreen Support Website: https://spagreen.net Developer Portfolio: Codecanyon SpaGreen

RapiwaBy Rapiwa
103

Automate job searching & resume customization with AI, LinkedIn & Google Sheets

🤖 AI-Powered Job Matcher & Resume Customizer Description This advanced workflow automates the entire job search and preparation process, moving beyond simple notifications to provide AI-driven career intelligence. It connects to LinkedIn to scrape fresh job postings, filters against jobs you've already seen, and then uses powerful LLMs (Mistral Large/Small) to perform a detailed resume-to-job match, generate tailored cover letters, and provide concrete resume improvement suggestions. All data is logged into a Google Sheet for comprehensive tracking, and a clean, single Daily Digest Email summarizes the top 5 matches found each day. --- ✨ Key Features Automated Scheduling: Runs daily to find new job postings. Multi-Keyword Search: Uses your main job title and three alternate titles generated by an AI Agent for maximum search coverage. LinkedIn Web Scraping: Pulls new job URLs, details, location, and salary data from LinkedIn Search results. Duplicate Prevention: Uses the Compare Datasets node to ensure only new, unseen jobs are processed against your master Google Sheet. Intelligent Matching (LLM): The workflow performs a detailed job-to-resume comparison, generating: A Match Score (0-100) with evidence for alignment in skills, experience, and domain. A Tailored Cover Letter specific to the job title and company. Actionable Resume Improvement points (e.g., [ADD], [QUANTIFY]) to optimize your resume for the specific role. Centralized Tracking: Saves all job data, match scores, cover letters, and resume suggestions to a Google Sheet. Professional Daily Digest: Sends a single, clean HTML email summarizing the top 5 highest-scoring job matches for easy review. --- 🛠️ Prerequisites n8n Credentials: Google Drive: To download your resume (PDF/DOCX file URL). Google Sheets: To connect to your job tracking sheet. Gmail: To send the daily digest email. Mistral Cloud: For the LLM processing (Resume Breakdown, Job Matching, and Resume Analysis). External Files: A Job Tracking Google Sheet (used as a master database). Your current Resume file (PDF recommended, hosted on Google Drive). Setup Notes: Update the file links (Download Resume node) and Google Sheet details (Get row(s)/Append nodes). Set your personal email address in the Send Digest Email node. Review the LLM prompts to tailor the AI agent's persona and output fields to your exact needs.

Jordan HoyleBy Jordan Hoyle
1405