Demo - WhatsApp-Sprachagent

Experte

Dies ist ein Miscellaneous, AI Chatbot, Multimodal AI-Bereich Automatisierungsworkflow mit 18 Nodes. Hauptsächlich werden Webhook, GmailTool, RespondToWebhook, GoogleCalendarTool, McpTrigger und andere Nodes verwendet. Erstelle einen WhatsApp-Sprachassistenten mit Twilio, VAPI, Google Kalender und OpenAI

Voraussetzungen
  • HTTP Webhook-Endpunkt (wird von n8n automatisch generiert)
  • Google-Konto + Gmail API-Anmeldedaten
  • OpenAI API Key
  • Supabase URL und API Key
Workflow-Vorschau
Visualisierung der Node-Verbindungen, mit Zoom und Pan
Workflow exportieren
Kopieren Sie die folgende JSON-Konfiguration und importieren Sie sie in n8n
{
  "id": "hSC68gkBlh2XuLpG",
  "meta": {
    "instanceId": "b8a5093b5456db9e25d3dfee5ac3b3b01627b82a51b5b4c92c46527b44088cc7"
  },
  "name": "Demo- Whatsapp Voice Agent",
  "tags": [],
  "nodes": [
    {
      "id": "43b9c5a5-4d0b-4713-a9c5-ea00e24cc320",
      "name": "Supabase Vector Store",
      "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": "Kalendertermin erstellen",
      "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": "Kalendertermine abrufen",
      "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": "Kalendertermin aktualisieren",
      "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": "Kalendertermin löschen",
      "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": "E-Mail-Benachrichtigung senden",
      "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": "MCP Server – Kalender",
      "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": "MCP Server – 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": "MCP Server – Wissensdatenbank",
      "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": "Eingehender Webhook (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": "Auf Webhook antworten (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": "Notizzettel 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": "Notizzettel 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": "Notizzettel 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": "Notizzettel",
      "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": "Notizzettel 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": "Notizzettel 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
          }
        ]
      ]
    }
  }
}
Häufig gestellte Fragen

Wie verwende ich diesen Workflow?

Kopieren Sie den obigen JSON-Code, erstellen Sie einen neuen Workflow in Ihrer n8n-Instanz und wählen Sie "Aus JSON importieren". Fügen Sie die Konfiguration ein und passen Sie die Anmeldedaten nach Bedarf an.

Für welche Szenarien ist dieser Workflow geeignet?

Experte - Verschiedenes, KI-Chatbot, Multimodales KI

Ist es kostenpflichtig?

Dieser Workflow ist völlig kostenlos. Beachten Sie jedoch, dass Drittanbieterdienste (wie OpenAI API), die im Workflow verwendet werden, möglicherweise kostenpflichtig sind.

Workflow-Informationen
Schwierigkeitsgrad
Experte
Anzahl der Nodes18
Kategorie3
Node-Typen8
Schwierigkeitsbeschreibung

Für fortgeschrittene Benutzer, komplexe Workflows mit 16+ Nodes

Externe Links
Auf n8n.io ansehen

Diesen Workflow teilen

Kategorien

Kategorien: 34