Hello everyone,
I’m new here on n8n. I’m taking the plunge and switching from Voiceflow to n8n.
I’m currently in the process of recreating my workflow from Voiceflow in n8n.
It involves an AI receptionist for a hotel. The AI handles all incoming inquiries, books them, and answers any follow-up questions.
Unfortunately, I’m currently getting this message from n8n when I test my scenario.
The AI agent collects all the necessary information but doesn’t pass it on to the customer or hotel to generate an email. It also doesn’t enter the data into the designated Google Sheets.
I’d appreciate any help and wish everyone a pleasant day!
What is the error message (if any)?
Please share your workflow
{
"nodes": [
{
"parameters": {
"public": true,
"initialMessages": "Guten Tag und herzlich willkommen im Hotel Le Bristol! Wie kann ich Ihnen heute behilflich sein?",
"options": {
"loadPreviousSession": "memory"
}
},
"id": "7d75f6b4-95a1-485e-a72b-f79c554080da",
"name": "Hotel Le Bristol Chat",
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
"typeVersion": 1.4,
"position": [
256,
736
],
"webhookId": "847b7efa-55e2-460a-b5e7-4cd1f43d5769"
},
{
"parameters": {
"options": {
"systemMessage": "Du bist ein virtueller Assistent des Hotels Le Bristol und stehst Gästen für Anfragen zur Verfügung. Deine Hauptaufgabe ist es, freundlich, präzise und authentisch auf die Gäste einzugehen und sie bei ihrem Anliegen zu unterstützen.\n\nGrundlegende Verhaltensregeln:\n- Sei stets höflich, warmherzig und zuvorkommend.\n- Antworte nur auf Basis der dir bereitgestellten Knowledge Base. Falls eine Information nicht mit 100%iger Sicherheit in der Knowledge Base steht, antworte nicht mit eigener Interpretation, sondern sage, dass du dazu aktuell keine Informationen hast, und biete Hilfe bei anderen Themen an.\n- Stelle sicher, dass jede Antwort faktisch korrekt und vollständig ist. Vermeide jegliches Spekulieren oder Halluzinieren.\n- Bleibe im gesamten Gespräch authentisch und im Stil eines hochwertigen Hotels.\n\nAblauf für die Gästebetreuung:\n\n1. Begrüßung: Begrüße den Gast herzlich mit Namen des Hotels (Le Bristol) und biete deine Hilfe an.\n\n2. Anliegen identifizieren: Frage höflich nach dem konkreten Anliegen. Die möglichen Kategorien sind:\n - Zimmeranfrage oder Umbuchungsanfrage\n - Tischreservierung im Restaurant\n - Eventanfrage (z.B. Meetings, Feiern)\n - Informationen zu Angeboten und Packages\n - Allgemeine Informationen (Lage, Anfahrt, Services)\n\n3. Informationen sammeln: Sobald das Anliegen klar ist, sammle ALLE relevanten Informationen im Gespräch:\n - Zimmeranfrage/Umbuchung: gewünschtes Datum, Zimmertyp, Anzahl Personen, besondere Wünsche, Kontaktdaten (E-Mail ODER Telefon)\n - Tischreservierung: Datum, Uhrzeit, Anzahl Gäste, Name, Telefon/E-Mail, eventuelle Sonderwünsche\n - Eventanfrage: Art des Events, gewünschter Termin, geschätzte Teilnehmerzahl, gewünschter Raum/Services, Kontaktdaten\n - Angebote/Packages: welches Package, gewünschte Daten, Anzahl Personen, Kontaktdaten\n - Allgemeine Informationen: beantworte direkt aus der Knowledge Base\n\n4. WICHTIG - Automatische Buchungsübermittlung: Sobald du ALLE erforderlichen Informationen für eine Buchungsanfrage (Zimmer, Restaurant, Event oder Package) gesammelt hast, nutze SOFORT das Tool 'submit_booking' um die Anfrage an unser Team zu übermitteln. Das Tool sendet automatisch eine E-Mail an unser Team und trägt die Daten in unser System ein.\n\n5. Bestätigung: Nachdem du das submit_booking Tool verwendet hast, bestätige dem Gast: \"Vielen Dank! Ich habe Ihre Anfrage vollständig erfasst und an unser Team weitergeleitet. Sie erhalten innerhalb der nächsten 24 Stunden eine persönliche Rückmeldung von uns. Bei weiteren Fragen stehe ich gerne zur Verfügung!\"\n\nBei Unklarheiten oder fehlenden Daten antworte: Leider kann ich Ihnen dazu aktuell keine genaue Auskunft geben. Bitte wenden Sie sich direkt an unsere Rezeption. Gerne helfe ich Ihnen aber bei anderen Anliegen weiter."
}
},
"id": "f39e784f-6471-467c-9156-3f9feb0af423",
"name": "Le Bristol Assistant Agent",
"type": "@n8n/n8n-nodes-langchain.agent",
"typeVersion": 3.1,
"position": [
752,
736
]
},
{
"parameters": {
"model": {
"__rl": true,
"mode": "id",
"value": "gpt-4o-mini"
},
"builtInTools": {},
"options": {
"temperature": 0.3
}
},
"id": "97fb3c19-e231-4842-89c6-5a9eb0881046",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"typeVersion": 1.3,
"position": [
608,
960
],
"credentials": {
"openAiApi": {
"id": "hCzjOEa7ORWrUrKz",
"name": "n8n free OpenAI API credits"
}
}
},
{
"parameters": {
"contextWindowLength": 10
},
"id": "05656e4f-912c-4885-8e6b-8e4cff136106",
"name": "Conversation Memory",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"typeVersion": 1.3,
"position": [
336,
960
]
},
{
"parameters": {
"mode": "retrieve-as-tool",
"toolDescription": "Durchsucht die Hotel-Wissensdatenbank nach Informationen zu Zimmern, Restaurant, Events, Packages, Kontaktdaten und allgemeinen Hotelinfos. Nutze dieses Tool, um Gästefragen zu beantworten.",
"memoryKey": {
"__rl": true,
"mode": "list",
"value": "vector_store_key"
},
"topK": 5
},
"id": "fef5cd49-abf8-4174-86c8-d063b8682a94",
"name": "Hotel Knowledge Base",
"type": "@n8n/n8n-nodes-langchain.vectorStoreInMemory",
"typeVersion": 1.3,
"position": [
736,
960
]
},
{
"parameters": {
"options": {}
},
"id": "b32994cc-5225-47ee-8c32-dcc8bcf77e19",
"name": "OpenAI Embeddings",
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
"typeVersion": 1.2,
"position": [
816,
1168
],
"credentials": {
"openAiApi": {
"id": "hCzjOEa7ORWrUrKz",
"name": "n8n free OpenAI API credits"
}
}
},
{
"parameters": {
"name": "submit_booking",
"description": "Submits a complete booking request (room, restaurant reservation, event, or package inquiry) to the hotel team. Call this tool ONLY when you have collected ALL required information from the guest including: inquiry type, guest name, contact details (email or phone), and relevant booking details (dates, number of people, etc.). This will automatically send an email to the hotel team and log the request.",
"workflowId": {
"__rl": true,
"mode": "list",
"value": ""
},
"fields": {
"values": [
{
"name": "inquiry_type",
"stringValue": "=$fromAI(\"Type of inquiry - zimmeranfrage, tischreservierung, eventanfrage, packages, or allgemeine_info\")"
},
{
"name": "guest_name",
"stringValue": "=$fromAI(\"Full name of the guest\")"
},
{
"name": "email",
"stringValue": "=$fromAI(\"Guest email address\")"
},
{
"name": "phone",
"stringValue": "=$fromAI(\"Guest phone number\")"
},
{
"name": "date",
"stringValue": "=$fromAI(\"Requested date\")"
},
{
"name": "number_of_people",
"type": "numberValue",
"numberValue": "=$fromAI(\"Number of people/guests\")"
},
{
"name": "room_type",
"stringValue": "=$fromAI(\"Room type if applicable\")"
},
{
"name": "time",
"stringValue": "=$fromAI(\"Time for restaurant reservation\")"
},
{
"name": "event_type",
"stringValue": "=$fromAI(\"Type of event if applicable\")"
},
{
"name": "special_requests",
"stringValue": "=$fromAI(\"Any special requests or notes\")"
},
{
"name": "package_name",
"stringValue": "=$fromAI(\"Package name if applicable\")"
}
]
}
},
"id": "20860b24-697e-4056-9a4d-0ac50f65a355",
"name": "Submit Booking Tool",
"type": "@n8n/n8n-nodes-langchain.toolWorkflow",
"typeVersion": 1.3,
"position": [
1024,
960
]
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "id-1",
"name": "subject",
"value": "=Hotel Le Bristol - Neue {{ $json.inquiry_type }} Anfrage",
"type": "string"
},
{
"id": "id-2",
"name": "body",
"value": "=Neue Gästeanfrage im Hotel Le Bristol:\n\nAnfrageart: {{ $json.inquiry_type }}\nGast: {{ $json.guest_name }}\nE-Mail: {{ $json.email || 'nicht angegeben' }}\nTelefon: {{ $json.phone || 'nicht angegeben' }}\n\nDetails:\nDatum: {{ $json.date || 'nicht angegeben' }}\nAnzahl Personen: {{ $json.number_of_people || 'nicht angegeben' }}\nZimmertyp: {{ $json.room_type || 'nicht zutreffend' }}\nUhrzeit: {{ $json.time || 'nicht zutreffend' }}\nEvent-Art: {{ $json.event_type || 'nicht zutreffend' }}\nPackage: {{ $json.package_name || 'nicht zutreffend' }}\n\nBesondere Wünsche:\n{{ $json.special_requests || 'keine' }}\n\nBitte kontaktieren Sie den Gast zeitnah.",
"type": "string"
},
{
"id": "id-3",
"name": "to",
"value": "={{ $json.email }}",
"type": "string"
},
{
"id": "id-4",
"name": "guest_name",
"value": "={{ $json.guest_name }}",
"type": "string"
},
{
"id": "id-5",
"name": "inquiry_type",
"value": "={{ $json.inquiry_type }}",
"type": "string"
}
]
},
"options": {}
},
"id": "761f704c-b474-46f8-87d5-2d39326b686f",
"name": "Prepare Email Content",
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
480,
304
]
},
{
"parameters": {
"sendTo": "{{ $json.output.guest_email }}",
"subject": "=Neue Anfrage: {{ $json.subject }} - Hotel Le Bristol",
"emailType": "text",
"message": "=Sehr geehrte/r {{ $json.output.guest_name }},\n\nvielen Dank für Ihre Anfrage. Hier sind die Details:\n{{ $json.body }}\n\nMit freundlichen Grüssen,\nHotel Le Bristol",
"options": {
"ccList": "[email protected]"
}
},
"id": "66d5a4d1-ccdb-487a-9ad6-510575442012",
"name": "Send Notification Email",
"type": "n8n-nodes-base.gmail",
"typeVersion": 2.2,
"position": [
704,
304
],
"webhookId": "b4b3de81-0fd2-49bb-a43a-f8b9563f8b3d",
"credentials": {
"gmailOAuth2": {
"id": "pFb1UrUsFp8hMint",
"name": "Gmail account"
}
}
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "id-1",
"name": "timestamp",
"value": "={{ $now.toISO() }}",
"type": "string"
},
{
"id": "id-2",
"name": "inquiry_type",
"value": "={{ $json.inquiry_type }}",
"type": "string"
},
{
"id": "id-3",
"name": "guest_name",
"value": "={{ $json.guest_name }}",
"type": "string"
},
{
"id": "id-4",
"name": "email",
"value": "={{ $json.email || '' }}",
"type": "string"
},
{
"id": "id-5",
"name": "phone",
"value": "={{ $json.phone || '' }}",
"type": "string"
},
{
"id": "id-6",
"name": "date",
"value": "={{ $json.date || '' }}",
"type": "string"
},
{
"id": "id-7",
"name": "number_of_people",
"value": "={{ $json.number_of_people || '' }}",
"type": "string"
},
{
"id": "id-8",
"name": "room_type",
"value": "={{ $json.room_type || '' }}",
"type": "string"
},
{
"id": "id-9",
"name": "time",
"value": "={{ $json.time || '' }}",
"type": "string"
},
{
"id": "id-10",
"name": "event_type",
"value": "={{ $json.event_type || '' }}",
"type": "string"
},
{
"id": "id-11",
"name": "package_name",
"value": "={{ $json.package_name || '' }}",
"type": "string"
},
{
"id": "id-12",
"name": "special_requests",
"value": "={{ $json.special_requests || '' }}",
"type": "string"
}
]
},
"options": {}
},
"id": "4d40b367-37ca-499b-9bab-a50e73ab7359",
"name": "Prepare Sheet Data",
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
928,
304
]
},
{
"parameters": {
"operation": "appendOrUpdate",
"documentId": {
"__rl": true,
"value": "https://docs.google.com/spreadsheets/d/187pBjn0UrcYTqK3AZOk3F5rK3W5bSwBWmetY6goC2oQ/edit?gid=0#gid=0",
"mode": "url"
},
"sheetName": {
"__rl": true,
"value": "https://docs.google.com/spreadsheets/d/187pBjn0UrcYTqK3AZOk3F5rK3W5bSwBWmetY6goC2oQ/edit?gid=0#gid=0",
"mode": "url"
},
"columns": {
"mappingMode": "defineBelow",
"value": {},
"matchingColumns": [],
"schema": [
{
"id": "Anliegen",
"displayName": "Anliegen",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "Vorname",
"displayName": "Vorname",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "Nachname",
"displayName": "Nachname",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "Telefonnummer",
"displayName": "Telefonnummer",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "Mail",
"displayName": "Mail",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "Anzahl Personen",
"displayName": "Anzahl Personen",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "Anzahl Kinder",
"displayName": "Anzahl Kinder",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "Zimmerkategorie",
"displayName": "Zimmerkategorie",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "Anzahl Zimmer",
"displayName": "Anzahl Zimmer",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "Anreisedatum",
"displayName": "Anreisedatum",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "Abreisedatum",
"displayName": "Abreisedatum",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "Essen",
"displayName": "Essen",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "Spezielle Wünsche",
"displayName": "Spezielle Wünsche",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "Datum",
"displayName": "Datum",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "Uhrzeit",
"displayName": "Uhrzeit",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "Anzahl Personen Total",
"displayName": "Anzahl Personen Total",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "Zimmernummer",
"displayName": "Zimmernummer",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "Allergien/Unverträglichkeiten",
"displayName": "Allergien/Unverträglichkeiten",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "Besondere Wünsche",
"displayName": "Besondere Wünsche",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
}
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {}
},
"id": "ef86f6f8-6584-4075-823c-ff35a8203255",
"name": "Log to Google Sheets",
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.7,
"position": [
1152,
304
],
"credentials": {
"googleSheetsOAuth2Api": {
"id": "L9fC6YfKXTON8n3r",
"name": "Google Sheets account"
}
}
},
{
"parameters": {},
"id": "a751920b-3b3a-4376-b6e8-8bd8265b8f67",
"name": "When Booking Submitted",
"type": "n8n-nodes-base.executeWorkflowTrigger",
"typeVersion": 1,
"position": [
256,
304
]
}
],
"connections": {
"Hotel Le Bristol Chat": {
"main": [
[
{
"node": "Le Bristol Assistant Agent",
"type": "main",
"index": 0
}
]
]
},
"Le Bristol Assistant Agent": {
"main": [
[]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "Le Bristol Assistant Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Conversation Memory": {
"ai_memory": [
[
{
"node": "Le Bristol Assistant Agent",
"type": "ai_memory",
"index": 0
},
{
"node": "Hotel Le Bristol Chat",
"type": "ai_memory",
"index": 0
}
]
]
},
"Hotel Knowledge Base": {
"ai_tool": [
[
{
"node": "Le Bristol Assistant Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"OpenAI Embeddings": {
"ai_embedding": [
[
{
"node": "Hotel Knowledge Base",
"type": "ai_embedding",
"index": 0
}
]
]
},
"Submit Booking Tool": {
"ai_tool": [
[
{
"node": "Le Bristol Assistant Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Prepare Email Content": {
"main": [
[
{
"node": "Send Notification Email",
"type": "main",
"index": 0
}
]
]
},
"Send Notification Email": {
"main": [
[
{
"node": "Prepare Sheet Data",
"type": "main",
"index": 0
}
]
]
},
"Prepare Sheet Data": {
"main": [
[
{
"node": "Log to Google Sheets",
"type": "main",
"index": 0
}
]
]
},
"When Booking Submitted": {
"main": [
[
{
"node": "Prepare Email Content",
"type": "main",
"index": 0
}
]
]
}
},
"pinData": {},
"meta": {
"templateCredsSetupCompleted": true,
"instanceId": "e58dd95591a1cef1fb2e5498b6ff8f3b9c78e4f7b550e3e8b84a1cb3ce7b4bec"
}
}Share the output returned by the last node
Information on your n8n setup
- n8n version:
- Database (default: SQLite):
- n8n EXECUTIONS_PROCESS setting (default: own, main):
- Running n8n via (Docker, npm, n8n cloud, desktop app):
- Operating system:
