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: Creates or updates customer in Airtable Creates booking record with event details Creates Google Calendar event 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
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
Import Workflow Import personal-booking-whatsapp-flow.json into n8n Replace placeholder credential IDs with your actual credentials
Configure Credentials WhatsApp: HTTP Bearer Auth with your access token OpenAI: API key for GPT-4o Airtable: OAuth2 authentication Google Calendar: OAuth2 authentication
Set Environment Variables Configure all variables listed above in n8n settings
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
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
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
Related Templates
Automate Daily Keyword Research with Google Sheets, Suggest API & Custom Search
Who's it for This workflow is perfect for SEO specialists, marketers, bloggers, and content creators who want to automa...
USDT And TRC20 Wallet Tracker API Workflow for n8n
Overview This n8n workflow is specifically designed to monitor USDT TRC20 transactions within a specified wallet. It u...
Add product ideas to Google Sheets via a Slack
Use Case This workflow is a slight variation of a workflow we're using at n8n. In most companies, employees have a lot o...
🔒 Please log in to import templates to n8n and favorite templates
Workflow Visualization
Loading...
Preparing workflow renderer
Comments (0)
Login to post comments