Book and manage WhatsApp appointments with OpenAI and Google Calendar
Ready for 3.0What this workflow does
This AI workflow has 30 nodes and runs on WhatsApp events. Along the way it connects WhatsApp Business Cloud, OpenAI Chat Model, Google Calendar and Slack.
How it runs
Trigger: On WhatsApp events.
- Settings (Edit Fields (Set)): sets or maps fields
- Normalise The Incoming Message (Code): runs custom JavaScript code
- Classify The Message Intent (AI Agent): runs an AI agent, with model: OpenAI Chat Model; output parser: Classification Format
- Shape The Classification (Edit Fields (Set)): sets or maps fields
- Route By Intent (Switch): routes items into branches
- Read The Diary For The Requested Window (Google Calendar): uses Google Calendar
- Look Up The Existing Booking By Phone (Data table): uses Data table
- Prepare The Owner Alert (Code): runs custom JavaScript code
- Work Out The Nearest Free Slot (Code): runs custom JavaScript code
- Do We Have A Booking On File? (If): checks a condition and branches into true / false
…plus 17 more steps. See the full node list below.
Services it uses
Before you upgrade to n8n 3.0
Nothing in this workflow is removed in n8n 3.0, so it should import and run after the upgrade.
Nodes used (13)
- WhatsApp Trigger
n8n-nodes-base.whatsAppTrigger - Edit Fields (Set)
n8n-nodes-base.set - Code
n8n-nodes-base.code - AI Agent
@n8n/n8n-nodes-langchain.agent - OpenAI Chat Model
@n8n/n8n-nodes-langchain.lmChatOpenAi - Structured Output Parser
@n8n/n8n-nodes-langchain.outputParserStructured - Switch
n8n-nodes-base.switch - Google Calendar
n8n-nodes-base.googleCalendar - If
n8n-nodes-base.if - Data table
n8n-nodes-base.dataTable - WhatsApp Business Cloud
n8n-nodes-base.whatsApp - Wait
n8n-nodes-base.wait - Slack
n8n-nodes-base.slack
From the author
Quick overview Someone messages your WhatsApp asking for an appointment. I work out whether they want to book, move or cancel, check your real Google Calendar, and handle it. Anything I cannot read confidently goes to you on Slack instead of being guessed at.…