Skip to main content

Book WhatsApp consultations and sync contacts with Airtable and Google Calendar

Workflow preview

Workflow preview
100%
Book WhatsApp consultations and sync contacts with Airtable and Google Calendar preview
Open on n8n.io

1. Workflow Overview

WhatsApp Booking Flow Consultation Scheduling This n8n template automates appointment booking via WhatsApp Flows with real time calendar availability, AI powered intent classification, and CRM sy...

Best for

  • Support Chatbot automation workflows
  • AI Chatbot automation workflows
  • advanced n8n builders looking for reusable templates

Tools used

n8n-nodes-base.webhook, n8n-nodes-base.code, n8n-nodes-base.respondtowebhook, n8n-nodes-base.if, n8n-nodes-base.stickynote, n8n-nodes-base.httprequest, n8n-nodes-base.switch, @n8n/n8n-nodes-langchain.lmchatopenai

Source and attribution

This workflow is cataloged by N8N Workflows and links back to its original n8n.io source page by Blaine Holt.

Original n8n.io source

1.1 Workflow description

Title
Book WhatsApp consultations and sync contacts with Airtable and Google Calendar
Workflow name
Book WhatsApp consultations and sync contacts with Airtable and Google Calendar
WhatsApp Booking Flow | Consultation Scheduling

This n8n template automates appointment booking via WhatsApp Flows with real-time calendar availability, AI-powered intent classification, and CRM synchronization. It transforms manual booking conversations into a seamless self-service experience directly within WhatsApp.

Who is this for?

Service businesses wanting WhatsApp-based appointment booking Consultants and agencies offering scheduled calls or consultations Teams using Airtable for CRM and Google Calendar for scheduling Businesses looking to reduce booking friction with conversational commerce

What problem does this workflow solve?

Appointment booking typically involves back-and-forth messaging to find available times, collect customer details, and confirm bookings. This workflow eliminates that friction by providing an interactive booking flow within WhatsApp that checks real-time calendar availability, collects customer information, and automatically syncs bookings to your CRM and calendar.

How it works

Webhook Entry Point: A single webhook handles both GET (Meta verification) and POST (messages/flows) requests - required due to Meta's single-webhook-per-app restriction.

Message Routing: Incoming requests are classified as either regular WhatsApp messages or encrypted Flow requests, then routed accordingly.

WhatsApp Flow Handling: Flow requests are decrypted using RSA/AES-GCM encryption. The workflow handles multiple Flow actions:

  • INIT: Returns consultation types and date constraints
  • SERVICE_SELECTION: Processes service and customer details
  • DATE_TIME_SELECTION: Queries calendar availability for selected date
  • CONFIRMATION: Displays booking summary
  • COMPLETE_BOOKING: Finalizes the booking

AI Agent: For regular text messages, an OpenAI-powered agent classifies user intent. When booking intent is detected, it triggers the consultation template with the WhatsApp Flow.

Booking Process: On completion, the workflow:

  1. Creates or updates customer in Airtable
  2. Creates booking record with event details
  3. Creates Google Calendar event
  4. Sends WhatsApp confirmation message
Good to Know

Verify Token: The WHATSAPP_VERIFY_TOKEN environment variable is required for Meta webhook verification. Set this to any secure string and use the same value in Meta Developer Portal.

Cloud vs Self-hosted: Cloud n8n instances are easier to configure as they have public URLs. Self-hosted instances require additional setup for public accessibility.

Hostinger/Docker Setup: For self-hosted instances, configure public webhook access in your docker-compose.yml or reverse proxy configuration.

Meta Prerequisites: You'll need:

  • Facebook Account
  • Meta Developer App
  • WhatsApp Business Account (linked to Developer App)
  • WhatsApp Business Phone Number

Health Checks: Meta sends periodic ping requests to verify webhook availability. The workflow handles these automatically with a 200 response.

Single Webhook Restriction: Meta only allows one webhook URL per WhatsApp app, which is why all message types flow through a single endpoint with routing logic.

Encryption: WhatsApp Flows use end-to-end encryption. The workflow handles RSA decryption (for AES key exchange) and AES-128-GCM encryption/decryption for Flow data.

Requirements
  • Meta Business Account with WhatsApp Business API access
  • WhatsApp Business App in Meta Developer Portal
  • n8n instance (cloud or self-hosted with public URL)
  • OpenAI API key (for intent classification with GPT-4o)
  • Airtable account with base containing: Customers, Services, Bookings tables
  • Google Calendar with OAuth credentials
Environment Variables
Variable Description
WHATSAPP_VERIFY_TOKEN Webhook verification token (match in Meta Developer Portal)
WHATSAPP_PRIVATE_KEY RSA private key for Flow encryption (PEM format)
WHATSAPP_PRIVATE_KEY_PASSPHRASE Passphrase for the RSA private key
GOOGLE_CALENDAR_ID Calendar ID for availability checks and event creation
Setup
  1. Meta Business Setup
  • Create a Meta Developer App at developers.facebook.com
  • Add WhatsApp product to your app
  • Set up a WhatsApp Business Account
  • Generate a permanent access token
  1. Import Workflow
  • Import personal-booking-whatsapp-flow.json into n8n
  • Replace placeholder credential IDs with your actual credentials
  1. Configure Credentials
  • WhatsApp: HTTP Bearer Auth with your access token
  • OpenAI: API key for GPT-4o
  • Airtable: OAuth2 authentication
  • Google Calendar: OAuth2 authentication
  1. Set Environment Variables
  • Configure all variables listed above in n8n settings
  1. Configure Webhook in Meta
  • Navigate to WhatsApp > Configuration in Developer Portal
  • Set webhook URL to your n8n webhook endpoint
  • Enter your verify token
  • Subscribe to messages webhook field
  1. Create WhatsApp Flow
  • In WhatsApp Manager, create a new Flow
  • Use the JSON from whatsapp-flow.json as your Flow definition
  • Publish the Flow and note the Flow ID
  1. Create Message Template
  • Create a template with a Flow button component
  • Link it to your published Flow
  • Submit for approval
Airtable Schema

Customers Table:

  • customer_name (text)
  • customer_email (email)
  • phone_number (text)
  • created_at (date)

Services Table:

  • service_name (text)
  • service_key (text) - e.g., "30_min", "60_min"
  • duration_minutes (number)

Bookings Table:

  • customer_email (text)
  • service_type (linked to Services)
  • event_date (date)
  • event_time (text)
  • booking_status (select: Pending, Confirmed, Cancelled)
  • calendar_event_id (text)
  • created_at (date)
Customizing this workflow

Consultation Types: Modify the INIT handler code node to add/change consultation options and durations.

Business Hours: Adjust the calendar availability logic in the date refresh handler to match your working hours.

AI Agent Prompts: Customize the system prompt in the AI Agent node to match your business context and available services.

Messaging Templates: Create additional WhatsApp templates for different services (quotes, information requests) and add corresponding tools to the AI agent.

CRM Fields: Extend the Airtable schema and update the booking creation nodes to capture additional customer data.

Made by www.fenrirlabs.nl

1.2 Logical Blocks

This catalog entry is organized from the workflow JSON. The node-level section below shows the executable blocks available for review before importing the template.

2. Block-by-Block Analysis

Block 1 - GET: Verify Webhook

Type / Role
n8n-nodes-base.webhook - webhook
Config choices
Version 2

Block 2 - Verify Token

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 3 - Return Challenge

Type / Role
n8n-nodes-base.respondToWebhook - respondToWebhook
Config choices
Version 1.1

Block 4 - Is Regular Message?

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2

Block 5 - Return 200 OK (Regular Message)

Type / Role
n8n-nodes-base.respondToWebhook - respondToWebhook
Config choices
Version 1.1

Block 6 - POST: Receive Messages1

Type / Role
n8n-nodes-base.webhook - webhook
Config choices
Version 2

Block 7 - Decrypt WhatsApp Request1

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 8 - Sticky Note

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 9 - Sticky Note1

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 10 - Sticky Note2

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 11 - Sticky Note4

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 12 - Return Ping Response

Type / Role
n8n-nodes-base.respondToWebhook - respondToWebhook
Config choices
Version 1.1

Block 13 - Handle INIT - Return Consultation Types

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 14 - Handle Confirm Booking

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 15 - Send WhatsApp Confirmation

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Block 16 - Merge Paths

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 17 - Encrypt Response

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 18 - Respond to Webhook

Type / Role
n8n-nodes-base.respondToWebhook - respondToWebhook
Config choices
Version 1.1

Block 19 - Switch on Action

Type / Role
n8n-nodes-base.switch - switch
Config choices
Version 3

Block 20 - Switch

Type / Role
n8n-nodes-base.switch - switch
Config choices
Version 3.4

Block 21 - OpenAI Chat Model

Type / Role
@n8n/n8n-nodes-langchain.lmChatOpenAi - lmChatOpenAi
Config choices
Version 1.3

Block 22 - whatsapp_consult_template

Type / Role
n8n-nodes-base.httpRequestTool - httpRequestTool
Config choices
Version 4.3

Block 23 - whatsapp_message_tool

Type / Role
n8n-nodes-base.httpRequestTool - httpRequestTool
Config choices
Version 4.3

Block 24 - Search Existing Customer

Type / Role
n8n-nodes-base.airtable - airtable
Config choices
Version 2.1

Showing the first 24 of 41 workflow blocks. Download the JSON for the full node graph.

3. Summary Table

Workflow Book WhatsApp consultations and sync contacts with Airtable and Google Calendar
Complexity advanced
Nodes 41
Categories Support Chatbot, AI Chatbot
Author Blaine Holt
Published 16 Jan 2026

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/12763/12763.json as the source template for this automation.

  2. 2. Import the template into n8n

    Open n8n, import the downloaded JSON, and review each node before activating the workflow.

  3. 3. Configure credentials and variables

    Replace placeholder credentials, API keys, webhook URLs, account IDs, and environment-specific values with your own settings.

  4. 4. Test with sample data

    Run the workflow manually or in a staging workspace, inspect node output, and confirm downstream systems receive the expected data.

  5. 5. Activate and monitor

    Enable the workflow only after testing, then monitor executions, errors, and rate limits during the first production runs.

5. General Notes & Resources

Review imported nodes carefully before activation. This catalog entry is intended to help you inspect the workflow structure, understand required services, and find related templates faster.

Node names, credentials, schedules, webhook paths, and external service limits may need adjustment for your workspace.

Frequently asked questions

What does Book WhatsApp consultations and sync contacts with Airtable and Google Calendar do?

WhatsApp Booking Flow Consultation Scheduling This n8n template automates appointment booking via WhatsApp Flows with real time calendar availability, AI powered intent classification, and CRM sy...

What do I need before importing this workflow?

Review the workflow JSON, configure any required credentials in n8n, and test the automation in a safe workspace before using it in production.

Can I customize this workflow?

Yes. Use the block-by-block analysis and the downloadable JSON to inspect each node, then adjust credentials, prompts, schedules, filters, or destinations for your Support Chatbot, AI Chatbot use case.