This workflow corresponds to n8n.io template #8251 โ we link there as the canonical source.
This workflow follows the Agent โ Googledocstool 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": "{{CREDENTIAL_ID}}",
"name": "voice and audio chatbot",
"tags": [],
"nodes": [
{
"id": "9428edaa-24a2-4137-b078-9359c6db6dbf",
"name": "WhatsApp Trigger",
"type": "n8n-nodes-base.whatsAppTrigger",
"position": [
-496,
304
],
"parameters": {},
"typeVersion": 1
},
{
"id": "10cd7dd7-a14a-4b92-a5c7-91bb2c76bd79",
"name": "Transcribe a recording",
"type": "@n8n/n8n-nodes-langchain.googleGemini",
"position": [
400,
96
],
"parameters": {},
"typeVersion": 1
},
{
"id": "782dc37a-9f7c-4638-abf1-7131ad795fb3",
"name": "AI Agent",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
912,
240
],
"parameters": {},
"typeVersion": 2.2
},
{
"id": "c911b184-08c1-4418-aba3-daea79cdc006",
"name": "Google Gemini Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
848,
464
],
"parameters": {},
"typeVersion": 1
},
{
"id": "dcdef524-8dea-4fa5-bfe2-2e116808f5ac",
"name": "Simple Memory",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"position": [
976,
464
],
"parameters": {},
"typeVersion": 1.3
},
{
"id": "6d212773-4ca4-4a29-8bfd-317019bb2b2a",
"name": "Append or update row in sheet in Google Sheets",
"type": "n8n-nodes-base.googleSheetsTool",
"position": [
1104,
464
],
"parameters": {},
"typeVersion": 4.7
},
{
"id": "d005c2b9-1978-4fdf-9f9e-f7cc2cf68f36",
"name": "Aggregate",
"type": "n8n-nodes-base.aggregate",
"position": [
624,
240
],
"parameters": {},
"typeVersion": 1
},
{
"id": "a7ef40f2-136d-4973-a743-2337d8ca5827",
"name": "Send message",
"type": "n8n-nodes-base.whatsApp",
"position": [
1536,
240
],
"parameters": {},
"typeVersion": 1
},
{
"id": "b6276da2-9a32-4166-af8a-44025f6d1b0e",
"name": "Send message1",
"type": "n8n-nodes-base.whatsApp",
"position": [
-48,
576
],
"parameters": {},
"typeVersion": 1
},
{
"id": "ac011f6f-f983-49f7-886b-125e25e6f769",
"name": "Analyze image",
"type": "@n8n/n8n-nodes-langchain.googleGemini",
"position": [
400,
384
],
"parameters": {},
"typeVersion": 1
},
{
"id": "56c2e243-dcda-494e-b148-2c60c93a60bd",
"name": "audio receiver1",
"type": "n8n-nodes-base.httpRequest",
"position": [
-48,
96
],
"parameters": {},
"typeVersion": 4.2
},
{
"id": "33036a79-dde3-4615-b1e2-37cb2d27c1c1",
"name": "audio receiver 2",
"type": "n8n-nodes-base.httpRequest",
"position": [
176,
96
],
"parameters": {},
"typeVersion": 4.2
},
{
"id": "c0993db9-5c5c-46c6-8790-832e9cc7b08e",
"name": "image receiver 1",
"type": "n8n-nodes-base.httpRequest",
"position": [
-48,
384
],
"parameters": {},
"typeVersion": 4.2
},
{
"id": "39256523-5f18-40f4-99bc-83b28442c0e7",
"name": "image receiver2",
"type": "n8n-nodes-base.httpRequest",
"position": [
176,
384
],
"parameters": {},
"typeVersion": 4.2
},
{
"id": "452e3b0e-42d4-47bb-96a9-8a0873317d3c",
"name": "Get a document in Google Docs",
"type": "n8n-nodes-base.googleDocsTool",
"position": [
1248,
464
],
"parameters": {},
"typeVersion": 2
},
{
"id": "cb8fcc38-a2cb-48e8-94dc-a217ee1dc2ef",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1344,
-32
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "9f296d30-c60e-4ee2-9584-a00fe9447024",
"name": "clean response",
"type": "n8n-nodes-base.code",
"position": [
1312,
240
],
"parameters": {},
"typeVersion": 2
},
{
"id": "aee1a710-4304-486c-8866-76b001a5bebf",
"name": "Switch(route incoming messages based on type)",
"type": "n8n-nodes-base.switch",
"position": [
-272,
272
],
"parameters": {},
"typeVersion": 3.2
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "f18a82e3-3e16-450d-a330-0b21c2c6af05",
"connections": {
"AI Agent": {
"main": [
[
{
"node": "clean response",
"type": "main",
"index": 0
}
]
]
},
"Aggregate": {
"main": [
[
{
"node": "AI Agent",
"type": "main",
"index": 0
}
]
]
},
"Analyze image": {
"main": [
[
{
"node": "Aggregate",
"type": "main",
"index": 0
}
]
]
},
"Simple Memory": {
"ai_memory": [
[
{
"node": "AI Agent",
"type": "ai_memory",
"index": 0
}
]
]
},
"clean response": {
"main": [
[
{
"node": "Send message",
"type": "main",
"index": 0
}
]
]
},
"audio receiver1": {
"main": [
[
{
"node": "audio receiver 2",
"type": "main",
"index": 0
}
]
]
},
"image receiver2": {
"main": [
[
{
"node": "Analyze image",
"type": "main",
"index": 0
}
]
]
},
"WhatsApp Trigger": {
"main": [
[
{
"node": "Switch(route incoming messages based on type)",
"type": "main",
"index": 0
}
]
]
},
"audio receiver 2": {
"main": [
[
{
"node": "Transcribe a recording",
"type": "main",
"index": 0
}
]
]
},
"image receiver 1": {
"main": [
[
{
"node": "image receiver2",
"type": "main",
"index": 0
}
]
]
},
"Transcribe a recording": {
"main": [
[
{
"node": "Aggregate",
"type": "main",
"index": 0
}
]
]
},
"Google Gemini Chat Model": {
"ai_languageModel": [
[
{
"node": "AI Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Get a document in Google Docs": {
"ai_tool": [
[
{
"node": "AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Switch(route incoming messages based on type)": {
"main": [
[
{
"node": "Aggregate",
"type": "main",
"index": 0
}
],
[
{
"node": "audio receiver1",
"type": "main",
"index": 0
}
],
[
{
"node": "image receiver 1",
"type": "main",
"index": 0
}
],
[
{
"node": "Send message1",
"type": "main",
"index": 0
}
]
]
},
"Append or update row in sheet in Google Sheets": {
"ai_tool": [
[
{
"node": "AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Overview ๐
Source: https://n8n.io/workflows/8251/ โ 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.
This template is designed for anyone who wants to use WhatsApp as a personal AI assistant hub. If you often juggle tasks, emails, calendars, and expenses across multiple tools, this workflow consolida
This workflow implements an AI-powered WhatsApp booking assistant for a hair salon. The system allows customers to book, reschedule, or cancel appointments automatically via text or voice messages on
WhatsApp AI Assistant for Clinic Appointment Booking Automate your entire appointment lifecycle with an intelligent AI assistant that lives on WhatsApp. This workflow empowers any clinic or independen
Wait Splitout. Uses whatsAppTrigger, whatsApp, httpRequest, memoryBufferWindow. Event-driven trigger; 35 nodes.
Wait Splitout. Uses whatsAppTrigger, whatsApp, httpRequest, memoryBufferWindow. Event-driven trigger; 35 nodes.