Handle voice-based appointment bookings with OpenAI, Cal.com and WhatsApp
Ready for 3.0What this workflow does
This workflow has 22 nodes and runs when an HTTP POST request hits its webhook URL. It uses only n8n's built-in nodes. It also calls api.openai.com, api.elevenlabs.io and api.sendgrid.com over HTTP.
How it runs
Trigger: When an HTTP POST request hits its webhook URL.
- Wait: waits 15 seconds
- Set Business Config (Edit Fields (Set)): sets 15 fields: businessName, businessTimezone, workingHoursStart…
- Whisper STT - Transcribe Audio (HTTP Request): calls api.openai.com (POST)
- ElevenLabs STT - Alt Transcription (HTTP Request): calls api.elevenlabs.io (POST)
- JS - Merge Transcription Result (Code): runs custom JavaScript code
- AI - Extract Booking Intent (HTTP Request): calls api.openai.com (POST)
- JS - Parse Extracted Intent (Code): runs custom JavaScript code
- Filter: keeps only the items that match a condition
- Cal.com - Check Available Slots (HTTP Request): calls an HTTP API
- Google Calendar - Check Busy Times (HTTP Request): calls an HTTP API
…plus 11 more steps. See the full node list below.
HTTP calls to: api.openai.com, api.elevenlabs.io, api.sendgrid.com, sheets.googleapis.com
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 (8)
- Webhook
n8n-nodes-base.webhook - Edit Fields (Set)
n8n-nodes-base.set - HTTP Request
n8n-nodes-base.httpRequest - Code
n8n-nodes-base.code - Filter
n8n-nodes-base.filter - If
n8n-nodes-base.if - Respond to Webhook
n8n-nodes-base.respondToWebhook - Wait
n8n-nodes-base.wait
From the author
This workflow handles incoming voice calls or audio messages, transcribes them using Whisper (OpenAI) or ElevenLabs, extracts booking intent and preferred time slots using AI, checks availability on Cal.com or Google Calendar, books the appointment…