Démonstration - Agent vocal WhatsApp
Ceci est unMiscellaneous, AI Chatbot, Multimodal AIworkflow d'automatisation du domainecontenant 18 nœuds.Utilise principalement des nœuds comme Webhook, GmailTool, RespondToWebhook, GoogleCalendarTool, McpTrigger. Utiliser Twilio, VAPI, Google Calendar et OpenAI pour créer un assistant vocal WhatsApp
- •Point de terminaison HTTP Webhook (généré automatiquement par n8n)
- •Compte Google et informations d'identification Gmail API
- •Clé API OpenAI
- •URL et Clé API Supabase
Nœuds utilisés (18)
Catégorie
{
"id": "hSC68gkBlh2XuLpG",
"meta": {
"instanceId": "b8a5093b5456db9e25d3dfee5ac3b3b01627b82a51b5b4c92c46527b44088cc7"
},
"name": "Demo- Whatsapp Voice Agent",
"tags": [],
"nodes": [
{
"id": "43b9c5a5-4d0b-4713-a9c5-ea00e24cc320",
"name": "Vector Store Supabase",
"type": "@n8n/n8n-nodes-langchain.vectorStoreSupabase",
"position": [
1216,
-32
],
"parameters": {
"mode": "retrieve-as-tool",
"options": {},
"tableName": {
"__rl": true,
"mode": "list",
"value": "documents",
"cachedResultName": "documents"
},
"toolDescription": "Retrieve this tool to get pricing Informatio or any other General Inquiry."
},
"credentials": {
"supabaseApi": {
"id": "Q4GZ3W6mxCehoH23",
"name": "Supabase account"
}
},
"typeVersion": 1.3
},
{
"id": "07c67c64-9390-472d-807c-3c0c4a0405a7",
"name": "Embeddings OpenAI",
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
"position": [
1216,
112
],
"parameters": {
"options": {}
},
"credentials": {
"openAiApi": {
"id": "I91cpgp1xdieYw6j",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "15ee6172-40e2-439b-bfce-a64850fdf4d1",
"name": "Créer un événement calendrier",
"type": "n8n-nodes-base.googleCalendarTool",
"position": [
-240,
32
],
"parameters": {
"end": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('End', ``, 'string') }}",
"start": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Start', ``, 'string') }}",
"calendar": {
"__rl": true,
"mode": "list",
"value": "nabin.busines@gmail.com",
"cachedResultName": "nabin.busines@gmail.com"
},
"additionalFields": {}
},
"credentials": {
"googleCalendarOAuth2Api": {
"id": "ctueqxNJZ9Heg0WW",
"name": "Google Calendar account"
}
},
"typeVersion": 1.3
},
{
"id": "e5a95d98-88ee-4557-84f7-ee3a4bf56ad1",
"name": "Récupérer les événements calendrier",
"type": "n8n-nodes-base.googleCalendarTool",
"position": [
-96,
32
],
"parameters": {
"options": {},
"timeMax": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Before', ``, 'string') }}",
"timeMin": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('After', ``, 'string') }}",
"calendar": {
"__rl": true,
"mode": "list",
"value": "nabin.busines@gmail.com",
"cachedResultName": "nabin.busines@gmail.com"
},
"operation": "getAll"
},
"credentials": {
"googleCalendarOAuth2Api": {
"id": "ctueqxNJZ9Heg0WW",
"name": "Google Calendar account"
}
},
"typeVersion": 1.3
},
{
"id": "f22f3c2d-1e22-45d8-9cfd-8895733b862b",
"name": "Mettre à jour un événement calendrier",
"type": "n8n-nodes-base.googleCalendarTool",
"position": [
48,
48
],
"parameters": {
"eventId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Event_ID', ``, 'string') }}",
"calendar": {
"__rl": true,
"mode": "list",
"value": "nabin.busines@gmail.com",
"cachedResultName": "nabin.busines@gmail.com"
},
"operation": "update",
"updateFields": {}
},
"credentials": {
"googleCalendarOAuth2Api": {
"id": "ctueqxNJZ9Heg0WW",
"name": "Google Calendar account"
}
},
"typeVersion": 1.3
},
{
"id": "d56e75ab-7086-45cb-bf2c-dca53cfbbe8d",
"name": "Supprimer un événement calendrier",
"type": "n8n-nodes-base.googleCalendarTool",
"position": [
176,
80
],
"parameters": {
"eventId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Event_ID', ``, 'string') }}",
"options": {},
"calendar": {
"__rl": true,
"mode": "list",
"value": "nabin.busines@gmail.com",
"cachedResultName": "nabin.busines@gmail.com"
},
"operation": "delete"
},
"credentials": {
"googleCalendarOAuth2Api": {
"id": "ctueqxNJZ9Heg0WW",
"name": "Google Calendar account"
}
},
"typeVersion": 1.3
},
{
"id": "d8c9f9d7-1fb2-4293-b411-1d72afd03c63",
"name": "Envoyer une notification par email",
"type": "n8n-nodes-base.gmailTool",
"position": [
720,
352
],
"webhookId": "028d9f35-e95f-48db-98cd-d5fbe5e5ddef",
"parameters": {
"sendTo": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('To', ``, 'string') }}",
"message": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Message', ``, 'string') }}",
"options": {},
"subject": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Subject', ``, 'string') }}",
"emailType": "text"
},
"credentials": {
"gmailOAuth2": {
"id": "n8VNOucmPCeP3LOO",
"name": "Gmail account"
}
},
"typeVersion": 2.1
},
{
"id": "45496f90-c8a7-40a5-bbe3-2f0b183828e4",
"name": "Serveur MCP – Calendrier",
"type": "@n8n/n8n-nodes-langchain.mcpTrigger",
"position": [
-240,
-240
],
"webhookId": "1902a1d2-f8a8-4601-b20c-90e824fe478d",
"parameters": {
"path": "1902a1d2-f8a8-4601-b20c-90e824fe478d"
},
"typeVersion": 2
},
{
"id": "9ebb9d32-59ea-4f52-ba5a-f6a57356ac8d",
"name": "Serveur MCP – Gmail",
"type": "@n8n/n8n-nodes-langchain.mcpTrigger",
"position": [
576,
160
],
"webhookId": "41a2ab5f-1a7d-440b-a1e3-1b2308dee744",
"parameters": {
"path": "41a2ab5f-1a7d-440b-a1e3-1b2308dee744"
},
"typeVersion": 2
},
{
"id": "566c8afb-cb1b-4216-a543-5b26cb5182e8",
"name": "Serveur MCP – Base de connaissances",
"type": "@n8n/n8n-nodes-langchain.mcpTrigger",
"position": [
1152,
-240
],
"webhookId": "3643c062-c554-43d8-84d1-692b886b780f",
"parameters": {
"path": "3643c062-c554-43d8-84d1-692b886b780f"
},
"typeVersion": 2
},
{
"id": "61ded9b5-737a-42bf-956e-60614c87fbe2",
"name": "Webhook entrant (VAPI)",
"type": "n8n-nodes-base.webhook",
"position": [
480,
-112
],
"webhookId": "81e240fc-d3fb-4ccd-b91a-0aacbf2d8f2a",
"parameters": {
"path": "81e240fc-d3fb-4ccd-b91a-0aacbf2d8f2a",
"options": {},
"httpMethod": "POST",
"responseMode": "responseNode"
},
"typeVersion": 2.1
},
{
"id": "fe90d72c-fef0-4646-8d07-f90851015ed0",
"name": "Répondre à Webhook (VAPI)",
"type": "n8n-nodes-base.respondToWebhook",
"position": [
816,
-112
],
"parameters": {
"options": {
"responseHeaders": {
"entries": [
{
"name": "Content-Type",
"value": "application/xml"
}
]
}
},
"respondWith": "text",
"responseBody": "=<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Response>\n <Dial>\n <Sip>sip:15795503867@sip.vapi.ai</Sip>\n </Dial>\n</Response>\n"
},
"typeVersion": 1.4
},
{
"id": "2000941e-5340-4f44-91a2-4068a172f316",
"name": "Note adhésive 1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-272,
-432
],
"parameters": {
"color": 4,
"width": 592,
"height": 768,
"content": "📅 Calendar MCP\nHandles Calendar actions:\n- Create\n- Fetch\n- Update\n- Delete\n"
},
"typeVersion": 1
},
{
"id": "e2af4a5c-aaac-4458-a26e-fda5db9c4fa5",
"name": "Note adhésive 2",
"type": "n8n-nodes-base.stickyNote",
"position": [
464,
64
],
"parameters": {
"color": 5,
"width": 496,
"height": 448,
"content": "📧 Gmail MCP\nSends confirmation/reminder emails\nbased on voice commands.\n"
},
"typeVersion": 1
},
{
"id": "68569b1b-a853-47f2-90b3-284594f44c53",
"name": "Note adhésive 3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1088,
-384
],
"parameters": {
"color": 6,
"width": 400,
"height": 656,
"content": "📚 Knowledge Base MCP\nOpenAI generates embeddings from content.\nSupabase Vector Store saves/retrieves data\nfor knowledge base queries.\n"
},
"typeVersion": 1
},
{
"id": "36ab17f2-52f8-401b-af07-419cc50ccb4e",
"name": "Note adhésive",
"type": "n8n-nodes-base.stickyNote",
"position": [
384,
-592
],
"parameters": {
"color": 2,
"width": 640,
"height": 624,
"content": "## Entry Point – Incoming Webhook (VAPI)\n\nThis is the starting point of the workflow. \n- A WhatsApp message or voice input is received via Twilio. \n- Twilio routes the audio stream to VAPI through the TwiML app. \n- VAPI processes the voice command and decides which MCP Server (Calendar, Gmail, Knowledge Base) should handle the request. \n- The request is then passed into this webhook in n8n for execution. \n\n### Flow:\nWhatsApp → Twilio (TwiML app) → VAPI → n8n Incoming Webhook \n"
},
"typeVersion": 1
},
{
"id": "22d6f683-025c-4023-9151-c5ef3f9b0dc8",
"name": "Note adhésive 4",
"type": "n8n-nodes-base.stickyNote",
"position": [
384,
-304
],
"parameters": {
"color": 3,
"width": 272,
"height": 336,
"content": "This webhook is triggered by VAPI when a WhatsApp voice command is received via Twilio. \nVAPI interprets the user’s request and forwards it here. \nFrom this point, the workflow decides which MCP server (Calendar, Gmail, Knowledge Base) should process the action.\n"
},
"typeVersion": 1
},
{
"id": "74243893-60e4-4289-a9d5-8c9f363b897d",
"name": "Note adhésive 5",
"type": "n8n-nodes-base.stickyNote",
"position": [
752,
-304
],
"parameters": {
"color": 3,
"width": 272,
"height": 336,
"content": "This node sends the processed response back to VAPI. \nIt ensures that the result of the MCP server execution (e.g., calendar update, email confirmation, knowledge base query) \nis returned to the user via WhatsApp.\n"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "09fcb8e2-ec67-4f88-a908-d558030605fe",
"connections": {
"07c67c64-9390-472d-807c-3c0c4a0405a7": {
"ai_embedding": [
[
{
"node": "43b9c5a5-4d0b-4713-a9c5-ea00e24cc320",
"type": "ai_embedding",
"index": 0
}
]
]
},
"15ee6172-40e2-439b-bfce-a64850fdf4d1": {
"ai_tool": [
[
{
"node": "45496f90-c8a7-40a5-bbe3-2f0b183828e4",
"type": "ai_tool",
"index": 0
}
]
]
},
"d56e75ab-7086-45cb-bf2c-dca53cfbbe8d": {
"ai_tool": [
[
{
"node": "45496f90-c8a7-40a5-bbe3-2f0b183828e4",
"type": "ai_tool",
"index": 0
}
]
]
},
"e5a95d98-88ee-4557-84f7-ee3a4bf56ad1": {
"ai_tool": [
[
{
"node": "45496f90-c8a7-40a5-bbe3-2f0b183828e4",
"type": "ai_tool",
"index": 0
}
]
]
},
"43b9c5a5-4d0b-4713-a9c5-ea00e24cc320": {
"ai_tool": [
[
{
"node": "566c8afb-cb1b-4216-a543-5b26cb5182e8",
"type": "ai_tool",
"index": 0
}
]
]
},
"f22f3c2d-1e22-45d8-9cfd-8895733b862b": {
"ai_tool": [
[
{
"node": "45496f90-c8a7-40a5-bbe3-2f0b183828e4",
"type": "ai_tool",
"index": 0
}
]
]
},
"61ded9b5-737a-42bf-956e-60614c87fbe2": {
"main": [
[
{
"node": "fe90d72c-fef0-4646-8d07-f90851015ed0",
"type": "main",
"index": 0
}
]
]
},
"d8c9f9d7-1fb2-4293-b411-1d72afd03c63": {
"ai_tool": [
[
{
"node": "9ebb9d32-59ea-4f52-ba5a-f6a57356ac8d",
"type": "ai_tool",
"index": 0
}
]
]
}
}
}Comment utiliser ce workflow ?
Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.
Dans quelles scénarios ce workflow est-il adapté ?
Avancé - Divers, Chatbot IA, IA Multimodale
Est-ce payant ?
Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.
Workflows recommandés
Nabin Bhandari
@knabinbhandariPartager ce workflow