🧩 Zusammenfassung
Viele Nutzer von n8n stoßen bei der Nutzung des Telegram Send and Wait-Nodes auf ein irritierendes Verhalten: Egal welcher Button im Telegram-Chat geklickt wird, die Antwort ist stets „undefined“. Obwohl die Nutzereingabe korrekt verarbeitet scheint, liefert der Node kein erwartetes Ergebnis zurück. Was steckt dahinter – ein Bug, ein Missverständnis oder ein Konfigurationsfehler?
🔍 Das Wichtigste auf einen Blick
- • Der Telegram-Node in n8n benötigt eine exakte Konfiguration des Callback-Datenformats
- • Häufige Ursache für „undefined“ ist die fehlende Übergabe von Daten im richtigen JSON-Format
- • Die Button-Antworten müssen über `callback_data` korrekt definiert werden
- • Telegram-Webhooks können unvollständige Daten liefern, wenn der Node nicht exakt auf die Antwortstruktur vorbereitet ist
⚙️ Technische Details: Was passiert im Hintergrund?
Der Send and Wait for Reply-Node in n8n funktioniert folgendermaßen:
- Der Node sendet eine Nachricht an den Telegram-User, oft mit Inline-Buttons.
- Er wartet dann auf eine Antwort – konkret auf eine callback_query vom Telegram Bot.
- Sobald der Nutzer auf einen Button klickt, wird `callback_data` zurückgesendet.
In vielen Fällen ist jedoch genau dieses `callback_data` nicht korrekt gesetzt oder wird vom Node nicht richtig abgefangen. Statt des erwarteten Wertes (z. B. `{ approved: true }`) kommt dann einfach `undefined` zurück.
Ein typisches Beispiel für einen fehlerhaften Button:
{ "text": "Genehmigen", "callback_data": "{ \"approved\": true }" }
In der Theorie sollte das funktionieren – in der Praxis aber muss die Datenstruktur genau so verarbeitet werden, dass n8n sie interpretieren kann. Wenn der JSON-String nicht korrekt geparst wird, schlägt die Übergabe fehl.
🛠 Praktische Anwendung: So behebst du den Fehler
Hier ein konkretes Beispiel aus einem realen Workflow:
Ausgangslage:
Ein Telegram-Bot sendet diese Nachricht:{ "chat_id": "123456789", "text": "Möchten Sie fortfahren?", "reply_markup": { "inline_keyboard": [[ { "text": "Ja", "callback_data": "APPROVE" }, { "text": "Nein", "callback_data": "REJECT" } ]] } }
Problem:
Der Send and Wait-Node gibt bei Klick auf „Ja“ oder „Nein“ lediglich `undefined` zurück.Lösung:
Statt direkt mit `callback_data` als JSON zu arbeiten, empfiehlt es sich, einfache Strings zu verwenden (z. B. `APPROVE`, `REJECT`) und diese anschließend im nächsten Node weiterzuverarbeiten. Im n8n-Node kannst du dann eine `Switch`-Bedingung einsetzen, die je nach Antwort („APPROVE“ oder „REJECT“) den Workflow steuert.Alternativ kannst du mit einem `Function`-Node die `callback_query.data` manuell parsen:
javascript const input = $json["callback_query"]["data"];
try { return [{ json: JSON.parse(input) }]; } catch (error) { return [{ json: { raw: input, error: "JSON Parse Error" } }]; }
So kannst du selbst bei komplexeren Datenstrukturen sicherstellen, dass die Antwort korrekt ausgewertet wird.
🔁 Realitätscheck: Ist das ein Bug oder Feature?
Viele Nutzer vermuten einen Bug im n8n-Telegram-Node – in Wirklichkeit ist es jedoch eine Kombination aus Limitierungen der Telegram API und fehlender Validierung auf n8n-Seite.
Telegram sendet nicht automatisch strukturierte JSON-Objekte zurück – alles, was du im `callback_data` speicherst, wird als einfacher String übertragen. Daher ist eine saubere Serialisierung und anschließende Deserialisierung Pflicht.
Auch der Screenshot im n8n-Forum zeigt: Die Antwort wurde zwar als Objekt erwartet, aber der Node gibt `undefined` aus – weil der String nicht korrekt in ein Objekt umgewandelt wurde.
🔮 Ausblick: Was bringt die Zukunft?
Die n8n-Community wächst rasant – und mit ihr auch die Zahl der Integrationen. In kommenden Versionen ist zu erwarten, dass der Telegram-Node bessere Validierung und eine vereinfachte Antwortverarbeitung erhält.
Ein Feature-Request für die direkte Auswertung von `callback_data` als JSON wurde bereits mehrfach eingebracht. Bis dahin bleibt es jedoch bei Workarounds über `Function`-Nodes oder externe Dienste.
Langfristig könnten auch neue Trigger-Mechanismen (wie persistente Session-IDs oder kontextbezogene Antwortverarbeitung) helfen, das Zusammenspiel zwischen Telegram und n8n stabiler zu gestalten.
📌 Fazit
Wenn dein Telegram Send and Wait-Node in n8n immer wieder „undefined“ zurückgibt, liegt das meist nicht an einem Bug, sondern an einer ungenauen Konfiguration der Button-Daten. Wer die Struktur der Telegram-API versteht und einfache Workarounds nutzt, kann stabile, interaktive Workflows aufbauen.
Ob du Genehmigungen abfragst, Benutzereingaben verwertest oder Entscheidungen treffen lässt – mit der richtigen Struktur funktioniert Telegram als Interface für Automatisierungen erstaunlich gut.
🚀 Ihre nächsten Schritte
Sofort umsetzen (5 Minuten): Ersetze in deinem Telegram-Node die `callback_data` durch einfache Strings wie `APPROVE` oder `REJECT` und verarbeite sie im nächsten Node per `Switch`-Logik weiter.
Tool-Empfehlung: n8n - Das Open-Source-Automatisierungstool mit integrierter Telegram-Integration und visueller Workflow-Erstellung.
Weiterführend: n8n Community Forum – Tausche dich mit anderen Entwicklern aus, finde Beispiele und Workarounds für Telegram-Nodes.