This workflow corresponds to n8n.io template #17140 — we link there as the canonical source.
This workflow follows the Agent → Google Sheets recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"id": "BxFZuoVrIQpKYz3z",
"meta": {
"templateCredsSetupCompleted": true
},
"name": "Gymbot Ai Agent",
"tags": [],
"nodes": [
{
"id": "bcd72f1e-91c7-429a-8b7b-8ad06cfe187a",
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"position": [
76784,
128720
],
"parameters": {},
"typeVersion": 2
},
{
"id": "88db5f33-ca64-482f-84d8-3b00c25dd2b1",
"name": "Normalize Message",
"type": "n8n-nodes-base.code",
"position": [
77136,
128720
],
"parameters": {},
"typeVersion": 2
},
{
"id": "184a0e03-01ac-4fda-8eca-ce7fee68f211",
"name": "IF: Is Voice?",
"type": "n8n-nodes-base.if",
"position": [
77760,
129168
],
"parameters": {},
"typeVersion": 2
},
{
"id": "7931d1ca-7b58-46fb-babe-67dc42273fb1",
"name": "Download Audio",
"type": "n8n-nodes-base.httpRequest",
"position": [
77984,
129088
],
"parameters": {},
"typeVersion": 4
},
{
"id": "adf9adfd-b19a-4325-b239-86a3efb9f5b7",
"name": "Transcribe (Whisper)",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
78208,
129088
],
"parameters": {},
"typeVersion": 1
},
{
"id": "9c9d675b-370e-49c9-9198-587e3058ba37",
"name": "Merge Transcription",
"type": "n8n-nodes-base.code",
"position": [
78432,
129088
],
"parameters": {},
"typeVersion": 2
},
{
"id": "34c33a32-0219-4788-8428-82e08732ef8d",
"name": "Lookup Session",
"type": "n8n-nodes-base.googleSheets",
"position": [
78704,
129184
],
"parameters": {},
"typeVersion": 4.7,
"alwaysOutputData": true
},
{
"id": "ba1b66d0-9991-4c49-b046-dc6b01411e41",
"name": "Check Session Expiry",
"type": "n8n-nodes-base.code",
"position": [
78880,
129184
],
"parameters": {},
"typeVersion": 2
},
{
"id": "35186628-f9f6-4269-986c-be698f3b9e1a",
"name": "Format Response",
"type": "n8n-nodes-base.code",
"position": [
80560,
129632
],
"parameters": {},
"typeVersion": 2
},
{
"id": "cccc71e6-e8f4-496f-9d43-005e3f63c1cf",
"name": "Send WhatsApp",
"type": "n8n-nodes-base.httpRequest",
"position": [
80944,
129632
],
"parameters": {},
"typeVersion": 4
},
{
"id": "851f517e-c478-43db-970d-68c571b4826f",
"name": "Read Active Members",
"type": "n8n-nodes-base.googleSheets",
"position": [
77808,
128432
],
"parameters": {},
"typeVersion": 4.7
},
{
"id": "8f250b30-a9a1-4114-acb9-169b1ee428d0",
"name": "Filter Active Members",
"type": "n8n-nodes-base.code",
"position": [
77984,
128432
],
"parameters": {},
"typeVersion": 2
},
{
"id": "1fe3c3df-3dc6-488d-914e-326324fe02c2",
"name": "Send Survey",
"type": "n8n-nodes-base.httpRequest",
"position": [
78176,
128432
],
"parameters": {},
"typeVersion": 4
},
{
"id": "1340ff0f-c1e9-4501-877c-670a87dba9d9",
"name": "Mark Survey Sent",
"type": "n8n-nodes-base.googleSheets",
"position": [
78368,
128432
],
"parameters": {},
"typeVersion": 4.7,
"alwaysOutputData": false
},
{
"id": "1bbbcf53-b8cb-4ff1-a68d-bdfbca3fe13c",
"name": "Parse Survey Response",
"type": "n8n-nodes-base.code",
"position": [
77984,
128720
],
"parameters": {},
"typeVersion": 2
},
{
"id": "007911af-661e-4478-9769-8b8bdf1d4690",
"name": "Append Survey Response",
"type": "n8n-nodes-base.googleSheets",
"position": [
78400,
128624
],
"parameters": {},
"typeVersion": 4.7
},
{
"id": "35a9fcd1-2617-45e3-9088-ad68f4c8dad3",
"name": "Format Thank You",
"type": "n8n-nodes-base.code",
"position": [
78576,
128624
],
"parameters": {},
"typeVersion": 2
},
{
"id": "2feaf0ab-2d6c-483b-8984-e63e75530286",
"name": "Send Thank You",
"type": "n8n-nodes-base.httpRequest",
"position": [
78736,
128624
],
"parameters": {},
"typeVersion": 4.3
},
{
"id": "b285913a-eafa-44ff-a007-cc25b43e0593",
"name": "Format Staff Notification",
"type": "n8n-nodes-base.code",
"position": [
78928,
128624
],
"parameters": {},
"typeVersion": 2
},
{
"id": "ea3987ab-6dd7-484a-bb66-549df4b24709",
"name": "Notify Staff Survey",
"type": "n8n-nodes-base.httpRequest",
"position": [
79344,
128624
],
"parameters": {},
"typeVersion": 4.3
},
{
"id": "c798a036-f09f-481a-bd66-6ac24abd43d2",
"name": "Prepare Staff Listt",
"type": "n8n-nodes-base.code",
"position": [
79168,
128624
],
"parameters": {},
"typeVersion": 2
},
{
"id": "5c42c295-bd4e-4274-8107-8311a2ed3703",
"name": "Detect Staff Survey Command",
"type": "n8n-nodes-base.code",
"position": [
77328,
128720
],
"parameters": {},
"typeVersion": 2
},
{
"id": "ed72e9bb-c233-40bc-88ce-91dacd3d5d71",
"name": "Format Staff Confirmation",
"type": "n8n-nodes-base.code",
"position": [
78560,
128432
],
"parameters": {},
"typeVersion": 2
},
{
"id": "0c9b4cd9-2d28-4e9c-ac18-a7dcd5682b2d",
"name": "Send Staff Confirmation",
"type": "n8n-nodes-base.httpRequest",
"position": [
78768,
128432
],
"parameters": {},
"typeVersion": 4.3
},
{
"id": "fd5b78f3-49f0-48f3-9896-8aa604c83618",
"name": "Switch: Staff Command or Survey",
"type": "n8n-nodes-base.switch",
"position": [
77536,
128704
],
"parameters": {},
"typeVersion": 3.4
},
{
"id": "ce3389b7-3ff5-4622-9a9d-b3a9fe111fbc",
"name": "Determine Latest Question",
"type": "n8n-nodes-base.code",
"position": [
81568,
129648
],
"parameters": {},
"typeVersion": 2
},
{
"id": "d35959de-bc01-47e5-8073-4d4ac50d96cd",
"name": "If",
"type": "n8n-nodes-base.if",
"position": [
81264,
129632
],
"parameters": {},
"typeVersion": 2.3
},
{
"id": "a638bb2e-d6bf-4a4a-87fd-6a9447fe6b92",
"name": "Send Price List",
"type": "n8n-nodes-base.httpRequest",
"position": [
81408,
129504
],
"parameters": {},
"typeVersion": 4.3
},
{
"id": "1685d6f5-918c-418c-bd2c-e76299960ed7",
"name": "Cancel Booking",
"type": "@n8n/n8n-nodes-langchain.toolWorkflow",
"position": [
79584,
129904
],
"parameters": {},
"typeVersion": 2.2
},
{
"id": "53615c3b-669d-4344-9588-d6f69ca60324",
"name": "Get Bookings",
"type": "@n8n/n8n-nodes-langchain.toolWorkflow",
"position": [
79712,
129904
],
"parameters": {},
"typeVersion": 2.2
},
{
"id": "2f121873-4aaa-4796-825b-a34fc28d061c",
"name": "AI Agent",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
79696,
129632
],
"parameters": {},
"typeVersion": 3.1
},
{
"id": "fcfcf378-cfc5-4f8c-9dc2-71256aa911c4",
"name": "Log Question",
"type": "@n8n/n8n-nodes-langchain.toolWorkflow",
"position": [
79840,
129904
],
"parameters": {},
"typeVersion": 2.2
},
{
"id": "9c5fbf29-0ffd-4567-979a-dd71e843405f",
"name": "Classes",
"type": "@n8n/n8n-nodes-langchain.toolWorkflow",
"position": [
79968,
129904
],
"parameters": {},
"typeVersion": 2.2
},
{
"id": "0d7ab02e-449d-4ad0-97e3-354911a3bd7b",
"name": "Location",
"type": "@n8n/n8n-nodes-langchain.toolWorkflow",
"position": [
80096,
129904
],
"parameters": {},
"typeVersion": 2.2
},
{
"id": "1c77de9d-d694-4311-9260-5ed68fe2999f",
"name": "FAQ",
"type": "@n8n/n8n-nodes-langchain.toolWorkflow",
"position": [
80224,
129904
],
"parameters": {},
"typeVersion": 2.2
},
{
"id": "f74cb2b9-9927-4479-963b-47af4a385c9b",
"name": "Create Booking",
"type": "@n8n/n8n-nodes-langchain.toolWorkflow",
"position": [
80352,
129904
],
"parameters": {},
"typeVersion": 2.2
},
{
"id": "3863aefc-c2d6-4098-97f9-f52715683a64",
"name": "Anthropic Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
"position": [
79440,
129904
],
"parameters": {},
"typeVersion": 1.3
},
{
"id": "a7b0f387-d83b-4ecd-9659-f65aedc23e10",
"name": "Split Response",
"type": "n8n-nodes-base.code",
"position": [
80768,
129632
],
"parameters": {},
"typeVersion": 2
},
{
"id": "ad3e93d3-41fb-4571-8c5c-c94ee4e91ae1",
"name": "Update Members Sheet",
"type": "n8n-nodes-base.googleSheets",
"position": [
79536,
128624
],
"parameters": {},
"typeVersion": 4.7
},
{
"id": "46e8c583-e208-44cd-8bc5-cffb39ddef1e",
"name": "Update Session_State Sheet",
"type": "n8n-nodes-base.googleSheets",
"position": [
79744,
128624
],
"parameters": {},
"typeVersion": 4.7
},
{
"id": "7c32e9d4-7210-48e0-8803-bf4e4e138e16",
"name": "Update Session State",
"type": "n8n-nodes-base.googleSheets",
"position": [
81760,
129648
],
"parameters": {},
"typeVersion": 4.7
},
{
"id": "f802b597-3e6b-4f25-8668-cb121ac83a12",
"name": "IF Waitlist Handled",
"type": "n8n-nodes-base.if",
"position": [
79328,
129184
],
"parameters": {},
"typeVersion": 2.3
},
{
"id": "4e50f22b-1f46-4b18-a167-07ccf64e0729",
"name": "Send Waitlist Response",
"type": "n8n-nodes-base.httpRequest",
"position": [
79552,
129072
],
"parameters": {},
"typeVersion": 4.2
},
{
"id": "8720268a-75cb-4ba7-9256-6132aea578d5",
"name": "Check Waitlist Offer",
"type": "n8n-nodes-base.executeWorkflow",
"position": [
79104,
129184
],
"parameters": {},
"typeVersion": 1.3
},
{
"id": "006591a3-359c-4016-9788-1bd4876cffd7",
"name": "Lookup Session For Survey",
"type": "n8n-nodes-base.googleSheets",
"position": [
77792,
128720
],
"parameters": {},
"typeVersion": 4.7,
"alwaysOutputData": true
},
{
"id": "d2475981-590e-4ff1-9239-98e7af8204db",
"name": "IF Valid Survey",
"type": "n8n-nodes-base.if",
"position": [
78176,
128720
],
"parameters": {},
"typeVersion": 2.3
},
{
"id": "e346ca60-599b-40ff-8911-f1db8f901153",
"name": "Send Already Submitted Reply",
"type": "n8n-nodes-base.httpRequest",
"position": [
78400,
128816
],
"parameters": {},
"typeVersion": 4.2
},
{
"id": "debbeb4b-d131-42e5-aad7-5bf697cb3f02",
"name": "Restore Session Data",
"type": "n8n-nodes-base.code",
"position": [
79504,
129632
],
"parameters": {},
"typeVersion": 2
},
{
"id": "d5ae9eef-9e2a-4659-bf4c-4bed74616ca3",
"name": "Read Config",
"type": "n8n-nodes-base.googleSheets",
"position": [
76960,
128720
],
"parameters": {},
"typeVersion": 4.7
},
{
"id": "0df7bcf0-18c2-475d-bbe4-e9de7b8d7015",
"name": "Overview",
"type": "n8n-nodes-base.stickyNote",
"position": [
76032,
128336
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "954b62da-2937-4b02-9597-f8ef541f54b4",
"name": "Section: Entry Point",
"type": "n8n-nodes-base.stickyNote",
"position": [
76768,
128480
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "dd1fabae-1e02-4e75-b22f-86dea5997564",
"name": "Section: Voice",
"type": "n8n-nodes-base.stickyNote",
"position": [
77744,
128960
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "fc799744-19a0-4d00-87ab-60c13e5f9faa",
"name": "Section: Survey",
"type": "n8n-nodes-base.stickyNote",
"position": [
77744,
128176
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "e1b8c64e-5c5b-4ce8-a309-07056509a7c3",
"name": "Section: Session",
"type": "n8n-nodes-base.stickyNote",
"position": [
78672,
128976
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "723cd69b-a6fd-4d30-abee-044ad94292fe",
"name": "Section: Waitlist",
"type": "n8n-nodes-base.stickyNote",
"position": [
79296,
128912
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "85834c78-e2d4-4bb9-8e55-f931bd240acc",
"name": "Section: AI Agent",
"type": "n8n-nodes-base.stickyNote",
"position": [
79296,
129328
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "72c5f2c7-f528-4459-8fdc-9695928d753b",
"name": "Section: Response",
"type": "n8n-nodes-base.stickyNote",
"position": [
80512,
129440
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "ebe8f836-ab0e-43e5-8dc7-b7d486684e69",
"name": "Section: Session Update",
"type": "n8n-nodes-base.stickyNote",
"position": [
81552,
129456
],
"parameters": {
"content": ""
},
"typeVersion": 1
}
],
"active": true,
"settings": {
"binaryMode": "separate",
"availableInMCP": true,
"executionOrder": "v1"
},
"versionId": "1e62ec03-cf5a-4081-bbe1-702386ed4bef",
"nodeGroups": [],
"connections": {
"If": {
"main": [
[
{
"node": "Send Price List",
"type": "main",
"index": 0
}
],
[
{
"node": "Determine Latest Question",
"type": "main",
"index": 0
}
]
]
},
"FAQ": {
"ai_tool": [
[
{
"node": "AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Classes": {
"ai_tool": [
[
{
"node": "AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Webhook": {
"main": [
[
{
"node": "Read Config",
"type": "main",
"index": 0
}
]
]
},
"AI Agent": {
"main": [
[
{
"node": "Format Response",
"type": "main",
"index": 0
}
]
]
},
"Location": {
"ai_tool": [
[
{
"node": "AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Read Config": {
"main": [
[
{
"node": "Normalize Message",
"type": "main",
"index": 0
}
]
]
},
"Send Survey": {
"main": [
[
{
"node": "Mark Survey Sent",
"type": "main",
"index": 0
}
]
]
},
"Get Bookings": {
"ai_tool": [
[
{
"node": "AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Log Question": {
"ai_tool": [
[
{
"node": "AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"IF: Is Voice?": {
"main": [
[
{
"node": "Download Audio",
"type": "main",
"index": 0
}
],
[
{
"node": "Lookup Session",
"type": "main",
"index": 0
}
]
]
},
"Send WhatsApp": {
"main": [
[
{
"node": "If",
"type": "main",
"index": 0
}
]
]
},
"Cancel Booking": {
"ai_tool": [
[
{
"node": "AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Create Booking": {
"ai_tool": [
[
{
"node": "AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Download Audio": {
"main": [
[
{
"node": "Transcribe (Whisper)",
"type": "main",
"index": 0
}
]
]
},
"Lookup Session": {
"main": [
[
{
"node": "Check Session Expiry",
"type": "main",
"index": 0
}
]
]
},
"Send Thank You": {
"main": [
[
{
"node": "Format Staff Notification",
"type": "main",
"index": 0
}
]
]
},
"Split Response": {
"main": [
[
{
"node": "Send WhatsApp",
"type": "main",
"index": 0
}
]
]
},
"Format Response": {
"main": [
[
{
"node": "Split Response",
"type": "main",
"index": 0
}
]
]
},
"IF Valid Survey": {
"main": [
[
{
"node": "Append Survey Response",
"type": "main",
"index": 0
}
],
[
{
"node": "Send Already Submitted Reply",
"type": "main",
"index": 0
}
]
]
},
"Send Price List": {
"main": [
[
{
"node": "Determine Latest Question",
"type": "main",
"index": 0
}
]
]
},
"Format Thank You": {
"main": [
[
{
"node": "Send Thank You",
"type": "main",
"index": 0
}
]
]
},
"Mark Survey Sent": {
"main": [
[
{
"node": "Format Staff Confirmation",
"type": "main",
"index": 0
}
]
]
},
"Normalize Message": {
"main": [
[
{
"node": "Detect Staff Survey Command",
"type": "main",
"index": 0
}
]
]
},
"IF Waitlist Handled": {
"main": [
[
{
"node": "Send Waitlist Response",
"type": "main",
"index": 0
}
],
[
{
"node": "Restore Session Data",
"type": "main",
"index": 0
}
]
]
},
"Merge Transcription": {
"main": [
[
{
"node": "Lookup Session",
"type": "main",
"index": 0
}
]
]
},
"Notify Staff Survey": {
"main": [
[
{
"node": "Update Members Sheet",
"type": "main",
"index": 0
}
]
]
},
"Prepare Staff Listt": {
"main": [
[
{
"node": "Notify Staff Survey",
"type": "main",
"index": 0
}
]
]
},
"Read Active Members": {
"main": [
[
{
"node": "Filter Active Members",
"type": "main",
"index": 0
}
]
]
},
"Anthropic Chat Model": {
"ai_languageModel": [
[
{
"node": "AI Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Check Session Expiry": {
"main": [
[
{
"node": "Check Waitlist Offer",
"type": "main",
"index": 0
}
]
]
},
"Check Waitlist Offer": {
"main": [
[
{
"node": "IF Waitlist Handled",
"type": "main",
"index": 0
}
]
]
},
"Restore Session Data": {
"main": [
[
{
"node": "AI Agent",
"type": "main",
"index": 0
}
]
]
},
"Transcribe (Whisper)": {
"main": [
[
{
"node": "Merge Transcription",
"type": "main",
"index": 0
}
]
]
},
"Filter Active Members": {
"main": [
[
{
"node": "Send Survey",
"type": "main",
"index": 0
}
]
]
},
"Parse Survey Response": {
"main": [
[
{
"node": "IF Valid Survey",
"type": "main",
"index": 0
}
]
]
},
"Update Members Sheet": {
"main": [
[
{
"node": "Update Session_State Sheet",
"type": "main",
"index": 0
}
]
]
},
"Append Survey Response": {
"main": [
[
{
"node": "Format Thank You",
"type": "main",
"index": 0
}
]
]
},
"Determine Latest Question": {
"main": [
[
{
"node": "Update Session State",
"type": "main",
"index": 0
}
]
]
},
"Format Staff Confirmation": {
"main": [
[
{
"node": "Send Staff Confirmation",
"type": "main",
"index": 0
}
]
]
},
"Format Staff Notification": {
"main": [
[
{
"node": "Prepare Staff Listt",
"type": "main",
"index": 0
}
]
]
},
"Lookup Session For Survey": {
"main": [
[
{
"node": "Parse Survey Response",
"type": "main",
"index": 0
}
]
]
},
"Detect Staff Survey Command": {
"main": [
[
{
"node": "Switch: Staff Command or Survey",
"type": "main",
"index": 0
}
]
]
},
"Switch: Staff Command or Survey": {
"main": [
[
{
"node": "Read Active Members",
"type": "main",
"index": 0
}
],
[
{
"node": "Lookup Session For Survey",
"type": "main",
"index": 0
}
],
[
{
"node": "IF: Is Voice?",
"type": "main",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
A complete WhatsApp AI chatbot that handles class bookings, cancellations, FAQ responses, schedule lookups, location queries, waitlist management, booking reminders, survey, and staff notifications — all through WhatsApp in English, Arabic, or French. Receives WhatsApp messages…
Source: https://n8n.io/workflows/17140/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
A complete WhatsApp AI chatbot that handles class bookings, cancellations, FAQ responses, schedule lookups, location queries, waitlist management, booking reminders, and staff notifications — all thro
This workflow turns your WhatsApp Business number into a 24/7 AI-powered customer assistant — without any third-party chatbot platform. It receives incoming WhatsApp messages via Evolution API, unders
VEP WAPP. Uses openAi, lmChatOpenAi, toolCalculator, agent. Webhook trigger; 100 nodes.
⏺ 🚀 How it works
CLINICAINTEGRAL_secretary. Uses postgres, mcpClientTool, googleDriveTool, toolWorkflow. Webhook trigger; 89 nodes.