🔓 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

WhatsApp + Google Sheets: intake logged, replies fast

Lisa Granqvist Partner Workflow Automation Expert

Your WhatsApp inbox turns into a messy intake form fast. People send voice notes, screenshots, PDFs, half-finished details, and you’re left piecing it together, then copying it into a spreadsheet you don’t even trust anymore.

This WhatsApp Sheets automation hits support leads first, but clinic admins and service businesses feel it too. You get every message captured in Google Sheets, plus a clean, consistent reply back to the sender so you’re not typing the same thing 30 times a week.

Below is the workflow logic, what it changes day-to-day, and what you’ll need to run it safely (especially if you deal with sensitive information).

How This Automation Works

See how this solves the problem:

n8n Workflow Template: WhatsApp + Google Sheets: intake logged, replies fast

The Challenge: WhatsApp Intake Is Unstructured (And It Spreads)

WhatsApp is great for speed. It’s terrible for consistency. One person sends a neat text message, the next sends a 2-minute voice note, and the next drops a blurry photo of a document with “can you check this?” Now you’re hunting for context, asking follow-up questions, and manually logging details into Google Sheets so the rest of the team can see what’s going on. The real cost isn’t just time. It’s the mental load of remembering what’s missing, plus the mistakes that happen when you’re doing copy-paste while multitasking.

None of these alone is the problem. Together, they are.

  • Messages arrive in different formats, so your “intake process” changes every single time.
  • Manual logging to Sheets steals focus, and it’s easy to miss a field or enter the wrong value.
  • Follow-up questions get repetitive, which means response quality drops when the inbox gets busy.
  • Audio, images, and PDFs force you to switch tools just to understand what the customer sent.

The Fix: Multi-Format WhatsApp Intake Logged to Google Sheets

This n8n workflow turns incoming WhatsApp messages into structured intake records and reliable replies. It starts the moment a message hits your WhatsApp Business API webhook, then routes it based on what the person actually sent (plain text, audio, image, or a document). Audio gets downloaded and transcribed, images can be analyzed for context, and PDFs can be extracted into readable text. From there, an AI “orchestrator” agent decides which specialized helper should handle the request, so intake, scheduling, and document review don’t all get mushed together. Finally, key details are summarized, logged into Google Sheets, and the workflow sends a consistent response back through WhatsApp (as text or audio).

The workflow starts with WhatsApp capture and normalization. Then it processes media into text, routes the conversation through the right AI agent, and stores the outcome in Google Sheets (with conversation memory so replies stay coherent). The sender gets a clean next-step message without you jumping into the thread.

What Changes: Before vs. After

Real-World Impact

Say you handle 25 WhatsApp inquiries a day. Manually, you might spend about 5 minutes understanding the message (especially voice notes and screenshots) and another 3 minutes logging it into Google Sheets, which is roughly 3 hours daily. With this workflow, the “work” becomes reviewing a summary and a pre-drafted reply, usually under a minute per inquiry. That’s about 2 hours back each day, while your sheet stays up to date automatically.

Requirements

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • WhatsApp Business API to receive and send messages.
  • Google Sheets to store intake and appointment records.
  • OpenAI API key (get it from the OpenAI dashboard).
  • PostgreSQL database for conversation memory across chats.

Skill level: Intermediate. You’ll connect credentials, confirm sheet columns, and test a few message types (text, audio, image, PDF).

Need help implementing this? Talk to an automation expert (free 15-minute consultation).

The Workflow Flow

A WhatsApp message arrives. The workflow triggers from your WhatsApp Business integration and immediately checks that there’s real input (so empty pings don’t waste executions).

The content gets normalized. Text messages are cleaned up, while audio is downloaded and transcribed, images are analyzed, and PDFs are extracted into readable text via HTTP download plus file extraction.

An AI orchestrator routes the request. A main agent decides which specialized “tool” should handle the conversation next, like patient registration, appointment scheduling, medical report analysis, or prescription review. Conversation memory keeps context across multiple back-and-forth messages.

Results get logged and a reply goes out. The workflow appends structured rows to Google Sheets (patient record, appointment record, lookups, IDs), then responds in WhatsApp as text or synthesized audio depending on the situation.

You can easily modify Google Sheets fields to match your intake form and swap the reply style to fit your brand voice. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the WhatsApp Trigger

This workflow starts with WhatsApp inbound messages and routes them by media type.

  1. Add and open WhatsApp Entry Hook.
  2. Set the webhook configuration as needed; keep Updates to messages.
  3. Credential Required: Connect your whatsAppTriggerApi credentials.
  4. Confirm the execution flow: WhatsApp Entry HookRoute by Media Type.

Tip: If WhatsApp messages are not arriving, verify the webhook ID in WhatsApp Entry Hook matches your Meta webhook configuration.

Step 2: Connect Google Sheets

Patient and appointment data is stored in Google Sheets using multiple tool nodes.

  1. Open Append Patient Record and verify Operation is append.
  2. Set the spreadsheet IDs where required, for example in Append Patient Record set Document ID to REPLACE_WITH_YOUR_GOOGLE_SHEET_ID and Sheet Name to the “Patients” sheet.
  3. Repeat for scheduling data: Append Appointment Record, Fetch Availability Slots, Get Last Appointment ID, Retrieve Clinic List, Retrieve Doctor List, Lookup Patient Record, and Fetch Last Patient ID.
  4. Credential Required: Connect your googleSheetsOAuth2Api credentials to all Google Sheets tool nodes (8+ nodes handle patient, appointment, clinic, and availability data).

⚠️ Common Pitfall: Leaving REPLACE_WITH_YOUR_GOOGLE_SHEET_ID in any Sheets node will cause tool failures and the AI tools will return empty results.

Step 3: Configure Media Routing and Normalization

The workflow routes messages by type and normalizes them into a consistent prompt for AI processing.

  1. In Route by Media Type, keep the rules that test for message payloads such as ={{ $json.messages[0].image }}, ={{ $json.messages[0].document }}, ={{ $json.messages[0].audio }}, and ={{ $json.messages[0].text }}.
  2. For text messages, verify Normalize Incoming Text outputs sessionId and chatInput, then Build Text Prompt sets mode to text.
  3. For audio messages, ensure Fetch Audio URL uses ={{ $json.messages[0].audio.id }}, Download Audio File uses ={{ $json.url }}, and Transcribe Audio Clip sends output into Build Audio Prompt with mode set to audio.
  4. For images, confirm Notify Image Analysis sends Analyzing image… and then Fetch Image URL uses ={{ $('WhatsApp Entry Hook').item.json.messages[0].image.id }} before Analyze Image Content builds the prompt.
  5. For documents, check Fetch Document URL uses ={{ $json.messages[0].document.id }}, then Download Document FileCheck PDF TypeExtract PDF TextBuild Document Prompt with mode set to document.

Tip: If the workflow doesn’t reply to images or documents, confirm that the media URL steps (Fetch Image URL, Fetch Document URL) have valid WhatsApp access and the files are accessible via ={{ $json.url }}.

Step 4: Set Up the AI Orchestration and Memory

The agent-driven AI layer controls scheduling, registration, reports, and prescription review with shared conversation memory.

  1. Open Appointment Orchestrator and confirm Text is ={{ $json.chatInput }} and the system prompt is set to the provided medical assistant instructions.
  2. Credential Required: Connect your openAiApi credentials to Primary LLM Chat, which is the language model for Appointment Orchestrator.
  3. Credential Required: Connect your postgres credentials to Chat Memory Core (memory for the main agent). Keep Session Key as ={{ $('Input Presence Check').item.json.sessionId }}.
  4. Ensure sub-tools are wired to the parent agent: Patient Intake Tool, Scheduling Assistant Tool, Medical Report Tool, and Prescription Review Tool connect to Appointment Orchestrator as AI tools.
  5. For the AI tool sub-nodes, add credentials to their parent nodes: LLM Intake Model and Registration Memory belong to Patient Intake Tool; LLM Scheduler Model and Scheduler Memory belong to Scheduling Assistant Tool; LLM Report Model and Report Memory belong to Medical Report Tool; LLM Prescription Model and Prescription Memory belong to Prescription Review Tool.

⚠️ Common Pitfall: Do not attach API credentials to the AI tool sub-nodes (Registration Memory, Scheduler Memory, etc.) directly in the tool settings—credentials should be set on the connected AI model or memory node itself.

Step 5: Configure WhatsApp and OpenAI Media Services

This workflow uses WhatsApp media endpoints and OpenAI for transcription, image analysis, and audio synthesis.

  1. Credential Required: Connect your whatsAppApi credentials to all WhatsApp send/receive nodes (6+ nodes: Fetch Audio URL, Download Audio File, Fetch Image URL, Download Image File, Fetch Document URL, Download Document File, Notify Image Analysis, Send Text Reply, Send Audio Reply).
  2. Credential Required: Connect your openAiApi credentials to Transcribe Audio Clip, Analyze Image Content, and Synthesize Audio Reply.
  3. In Analyze Image Content, keep the prompt text set to =Please analyze this image and tell me what's in it. If it's a document, summarize the key details. If it's a photo, describe the contents..
  4. In Synthesize Audio Reply, keep Input as ={{ $json.output }} and Voice set to fable.
  5. In Send Text Reply and Send Audio Reply, replace Phone Number ID with your WhatsApp business ID: REPLACE_WITH_YOUR_PHONE_NUMBER_ID.

Tip: If audio replies fail, confirm Adjust Audio MIME is converting audio/mp3 to audio/mpeg before Send Audio Reply.

Step 6: Configure Output Routing and Response Modes

The AI output is routed to text or audio responses based on the detected mode.

  1. Verify Input Presence Check uses the condition ={{ $json.chatInput }} and passes to Appointment Orchestrator.
  2. In Response Mode Check, confirm the condition compares ={{ $('Input Presence Check').item.json.mode }} to audio.
  3. Ensure Response Mode Check routes to Synthesize Audio Reply (audio branch) and Send Text Reply (text branch).
  4. Confirm Adjust Audio MIME runs before Send Audio Reply in the audio path.

⚠️ Common Pitfall: If you see empty replies, check that Build Text Prompt, Build Audio Prompt, Build Image Prompt, and Build Document Prompt all set chatInput correctly (e.g., ={{ $json.text }} or ={{ $json.content }}).

Step 7: Test and Activate Your Workflow

Validate end-to-end messaging and AI responses before going live.

  1. Click Execute Workflow and send a WhatsApp message to your connected number.
  2. Verify that WhatsApp Entry Hook triggers and that Route by Media Type sends the payload to the correct branch.
  3. Confirm AI processing completes and that the output reaches Send Text Reply or Send Audio Reply.
  4. Successful execution should show a reply in WhatsApp and populated rows in your Sheets when registration or appointment actions occur.
  5. When you’re ready, toggle the workflow to Active for production use.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Watch Out For

  • WhatsApp Business API credentials can expire or require specific permissions. If things break, check your WhatsApp app/dashboard access and webhook status first.
  • If you’re using Wait nodes or external processing (transcription, vision, or PDF extraction), processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
  • OpenAI prompts ship generic by default. Add your tone, disclaimers, and “what to ask next” rules early or you will be editing outputs forever.

Common Questions

How quickly can I implement this WhatsApp Sheets automation automation?

About 30-45 minutes if your credentials are ready.

Can non-technical teams implement this intake logged solution?

Yes, but you’ll want someone comfortable with connecting accounts and testing webhooks. Once it’s connected, day-to-day use is just “message comes in, sheet updates, reply goes out.”

Is n8n free to use for this WhatsApp Sheets 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 OpenAI API costs (often a few cents per conversation, more with vision or long documents).

Where can I host n8n to run this 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.

How do I adapt this WhatsApp Sheets automation solution to my specific challenges?

Start by adjusting what gets written to Google Sheets in the “Append Patient Record” and “Append Appointment Record” parts of the workflow. You can also replace the OpenAI chat model nodes with a different model/provider while keeping the same routing logic in the “Appointment Orchestrator” agent. Common tweaks include changing the intake questions, adding a “priority” column for urgent cases, and forcing replies to always be text (instead of audio).

Why is my WhatsApp connection failing in this workflow?

Usually it’s expired access tokens or a webhook mismatch. Confirm the WhatsApp Business API credentials inside n8n, then verify the webhook is still pointing to the right public URL. If media downloads fail, it can also be missing permissions to fetch audio/image/document URLs. Rate limiting can show up too when you suddenly process lots of messages at once, so retries matter.

What’s the capacity of this WhatsApp Sheets automation solution?

On n8n Cloud, capacity depends on your plan’s monthly executions. If you self-host, there’s no hard execution cap (it mostly depends on your server size and WhatsApp/OpenAI limits). Practically, teams run this for dozens to a few hundred conversations per day without drama, as long as you keep an eye on media processing and API rate limits.

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

Often, yes. This workflow uses branching, multi-step routing, and conversation memory, which is where Zapier and Make can get clunky or expensive. n8n also lets you self-host for unlimited runs, and it’s more flexible when you need to handle files like PDFs, images, and audio. If your goal is only “WhatsApp message → new row in Sheets,” Zapier/Make can be fine. If you want agents, media handling, and real logic, n8n is the better fit. Talk to an automation expert if you want a quick recommendation for your exact setup.

Once this is running, your WhatsApp inbox stops being a liability and starts acting like a real intake channel. The workflow handles the repetitive sorting, summarizing, logging, and replying so you can focus on the conversations that actually need a human.

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