Einen KI-Assistenten für WhatsApp bauen, von Anfang bis Ende: was es über die Demo hinaus braucht
Eine Demo, die eine WhatsApp-Nachricht mit KI beantwortet, ist an einem Nachmittag gebaut. Ein Assistent, dem ein Gastgewerbe-Betrieb seine Gäste anvertraut, braucht mehr: Er darf nur beantworten, was er weiss, muss in Ihren Systemen ohne Überraschungen handeln, zugeben, wenn er etwas nicht weiss, und aus den Antworten Ihres Teams besser werden. So habe ich StillAnswer gebaut, den Assistenten, der für eine Surfschule mit Hostel läuft, und das habe ich dabei gelernt.
11 Min. Lesezeit
1. Das eigentliche Problem: dieselben Fragen, den ganzen Tag
Im Gastgewerbe sind die meisten Nachrichten dieselben zwanzig Fragen: Wann ist Check-in, gibt es Parkplätze, kann ich eine Lektion dazubuchen, was kostet das Brett. Das Team beantwortet sie zwischen Check-ins und Surflektionen, oft spät, oft in einer Sprache, die es halb spricht. Gäste auf WhatsApp erwarten eine Antwort sofort.
Das Ziel ist also kein Chatbot, der über alles reden kann. Sondern ein Assistent, der die Fragen beantwortet, die Ihr Team schon gut beantwortet hat, in der Sprache des Gastes, zu jeder Stunde, und den Rest still an eine Person weitergibt. Diese Sicht entscheidet jede Designfrage weiter unten.
2. Der Kanal: eine Business-Nummer über einen Anbieter
Der Assistent spricht mit Gästen über die WhatsApp Business Platform, die Sie über einen Anbieter wie Twilio oder Azure Communication Services erreichen. Zwei Plattformregeln prägen das ganze Design. Schreibt ein Gast, öffnet sich ein Kundenservice-Fenster von 24 Stunden, in dem Sie frei antworten dürfen. Ausserhalb dieses Fensters dürfen Sie nur vorab freigegebene Nachrichtenvorlagen schicken, zum Beispiel eine Buchungserinnerung.
Der Assistent muss also wissen, in welchem Modus er ist. Im Fenster antwortet er frei; ausserhalb schickt er eine Vorlage oder überlässt die Nachfrage Ihrem Team. Planen Sie die Vorlagen früh: Sie brauchen eine Freigabe, und die braucht Zeit, die Sie in der Startwoche nicht haben wollen.
3. Der Webhook: prüfen, bestätigen, bündeln
Jede Nachricht kommt als Webhook an. Als Erstes prüft er die Signatur des Anbieters; bei Twilio ist das der Header X-Twilio-Signature, ein HMAC über URL und Parameter mit Ihrem Auth-Token. Alles ohne gültige Signatur wird verworfen, denn sonst kann jeder, der die URL findet, mit Ihrem Agenten und Ihren Tools sprechen.
Dann schnell bestätigen und die Arbeit asynchron erledigen, und die Verarbeitung pro Nachrichten-ID idempotent machen, weil Anbieter wiederholen. Eine Lektion aus dem Betrieb: Gäste schreiben in Schüben. «Hallo» – «wir sind zu dritt» – «können wir Freitag kommen?» kommen innert Sekunden. Eine kurze Pause, die diese Nachrichten zu einer Frage bündelt, ergibt eine viel bessere Antwort als drei Antworten auf drei Bruchstücke.
import twilio from "twilio";
export async function onMessage(req: Request) {
const params = Object.fromEntries(new URLSearchParams(await req.text()));
const valid = twilio.validateRequest(
process.env.TWILIO_AUTH_TOKEN!,
req.headers.get("x-twilio-signature") ?? "",
"https://assistant.example.com/webhook", // the exact public URL
params,
);
if (!valid) return new Response("forbidden", { status: 403 });
await queue.add({ id: params.MessageSid, from: params.From, text: params.Body }); // idempotent by id
return new Response("<Response/>", { headers: { "content-type": "text/xml" } });
}4. Der Agent: freigegebenes Wissen, die Sprache des Gastes
Der Agent bekommt drei Dinge in seinen Kontext: die Hausregeln (Ton, was er nie sagen darf, wann er eskaliert), die freigegebene Wissensbasis und den bisherigen Verlauf. Er antwortet in der Sprache, in der der Gast schreibt, und das sind in einem Hostel vor dem Mittag schnell fünf Sprachen. Er funktioniert mit Gemini, ChatGPT oder Claude; das Modell ist eine Einstellung, nicht das Produkt.
Die wichtigste Regel ist eine Verneinung: Steht die Antwort nicht im freigegebenen Wissen, improvisiert er nicht. Eine selbstsichere falsche Antwort zu Preisen oder Verfügbarkeit kostet mehr Vertrauen als ein kurzes «ich frage beim Team nach». Das teste ich mit einem festen Satz Fragen, inklusive solcher, die der Agent ablehnen muss, jedes Mal, wenn sich Wissen oder Modell ändern.
5. Tools: Dinge nachschlagen, Dinge nur mit einem Ja ändern
Der Unterschied zwischen einem FAQ-Bot und einem Assistenten ist, dass der Assistent handeln kann: eine Buchung oder Bestellung nachschlagen, Verfügbarkeit prüfen, einen Änderungswunsch aufnehmen. Das macht er über Ihre eigenen Tools, definiert per Function Calling, jedes schmal und mit klaren Eingaben.
Lesen ist frei, Ändern nicht. Vor jeder Änderung wiederholt der Assistent in einfachen Worten, was er tun wird, und wartet auf das Ja des Gastes, und das Tool selbst verweigert das Schreiben ohne diese Bestätigung. Zahlungen und Rückerstattungen bleiben bei Ihren bestehenden Systemen und Ihrem Team. Ein Assistent, der auf eine Chatnachricht hin Geld bewegen kann, ist ein Risiko, keine Funktion.
6. Die eigenen Grenzen kennen: der Eskalationsweg
Wenn der Assistent nicht antworten kann, soll der Gast nie eine Sackgasse bemerken. Er sagt dem Gast, dass das Team nachsieht und sich meldet, und alarmiert im selben Moment Ihr Team per E-Mail und auf WhatsApp, mit einem direkten Link zum Gespräch. Wer es übernimmt, sieht den ganzen Chat, kein weitergeleitetes Bruchstück.
Geben Sie jeder Eskalation eine Uhr. Hat nach einer festgelegten Zeit niemand geantwortet, geht der Alarm erneut hinaus oder an jemand anderen. Das schlimmste Ergebnis ist nicht, dass die KI etwas nicht wusste, sondern dass dem Gast eine Antwort versprochen wurde, die nie kam.
7. Der Lernkreis: Antworten des Teams werden zu Wissen
Jede Eskalation ist eine Lücke in der Wissensbasis, darum sollte sie nicht mit einem einzelnen beantworteten Gast enden. Antwortet jemand aus dem Team, wird die Frage zu einem Vorschlag, mit der Antwort bereits ausgefüllt, und ein Klick nimmt sie ins Wissen auf. Bei der Surfschule geht neues Wissen erst live, nachdem eine Führungsperson es freigegeben hat, damit eine in Eile geschriebene Antwort nicht zur offiziellen Wahrheit wird.
Dieser Kreis macht den Assistenten jede Woche besser, ohne dass jemand eine FAQ schreibt. Das Team macht weiter, was es ohnehin tut, nämlich Gästen antworten, und der Assistent lernt aus den Antworten, die jemand abgesegnet hat.
8. Das Team-Postfach, und der echte Betrieb
Das Team braucht einen Ort, um jeden Chat zu lesen, selbst zu antworten und die KI für ein einzelnes Gespräch zu pausieren, etwa wenn ein Gast verärgert ist oder eine Buchung eine menschliche Hand braucht. Pausieren pro Chat ist wichtiger als ein Ein-/Ausschalter für den ganzen Assistenten.
Für den Betrieb gibt es zwei Wege. Mit Ihren eigenen Konten bringen Sie Anbieter- und KI-Keys mit, und ich begleite die Einrichtung. Alles inklusive stelle ich die Nummer und übernehme die ganze Einrichtung, inklusive WhatsApp-Business-Freigabe und Nachrichtenvorlagen. So oder so: Speichern Sie nur, was das Gespräch braucht, legen Sie eine Aufbewahrungsfrist fest, und sagen Sie Gästen in der ersten Nachricht, dass sie mit einem KI-Assistenten schreiben und wie sie eine Person erreichen.
Fazit
Ein guter Assistent für WhatsApp beantwortet nur, was er weiss, handelt nur mit einem Ja, übergibt mit dem ganzen Chat und lernt aus den Antworten, die Ihr Team freigibt.
Echte Projekte dazu
Selbst ausprobieren
Quellen und offizielle Leitfäden
- Twilio: WhatsApp Business Platform with Twilio
- Twilio: WhatsApp key concepts (customer service window, templates)
- Twilio: Send notifications with message templates
- Twilio: Webhooks security (X-Twilio-Signature)
- Azure Communication Services: Advanced Messaging for WhatsApp
- Gemini API: Function calling
- Claude: Tool use overview
- OpenAI: Function calling
Weitere Artikel
- 3'025 Pull Requests in zehn Monaten: ein KI-gestützter Delivery-Prozess von innen
- Der EU AI Act für den Mittelstand: was für Sie gilt, und ab wann
- FinOps für KI-Kosten: Tokens, Caching, Routing und Budgets, die halten
- Ein Restaurant-Netzwerk in KI-Antworten sichtbar machen: ein GEO-Projekt Schritt für Schritt
- Wie diese Website gebaut ist: statisch, wo es geht, streamend, wo es muss
- Kubernetes-Kosten auf EKS und GKE: dasselbe Playbook, andere Hebel
- Eine Landing Zone für den Mittelstand, in Terraform oder Bicep: die Teile, die zählen
- Das Playbook für Legacy-Migrationen: Wellen, Parallelbetrieb und identische Zeilenzahlen und Prüfsummen
- MCP-Sicherheit im Detail: KI-Assistenten ins Produkt lassen, ohne die Türen zu öffnen
- Monitoring auf Geschäftsergebnisse: grüne Dashboards, leere Kasse
- KI-Agenten am Telefon: die Architektur, und die Stolperfallen, die keine Demo zeigt
- Restore-Tests: Ein Backup, das nie wiederhergestellt wurde, ist nur eine Hoffnung
- KI-Antworten auf Azure Static Web Apps streamen: der eine Header, der alles zurückhielt
- Air-gapped-Systeme: kritische Software ganz ohne Internet betreiben
- Produktive KI auf AWS: Amazon Bedrock und AgentCore in einem privaten Setup
- Produktive KI auf Microsoft Foundry: ein privates Referenz-Setup für Agenten
- /goal, /loop oder Routines: Hören Sie auf, Ihren Coding-Agenten zu babysitten
- Claudes neue Pläne: Max, Ultra und was sie für Teams bedeuten
- OpenAI Codex Ende 2026: Goal Mode, Dots und wie man es absichert
- GitHub Copilot, Claude Code oder Codex? So würde ich für ein Unternehmen entscheiden
- GEO-Grundlagen: So erscheinen Sie in KI-Antworten
- Produktive KI auf Google Cloud: von Vertex AI zur Gemini Enterprise Agent Platform
- Lokale LLMs im Air-Gap-Netz: KI für Ihre sensibelsten Daten
- Ich will ein lokales LLM betreiben: Welchen Server soll ich kaufen?
- MiniMax M3: ein offenes Spitzenmodell zum Selbstbetreiben?
- Prompt-Research im grossen Stil mit einem offenen Modell
- SEO und GEO zusammen: ein praktisches Audit in 6 Schritten
- Kubernetes richtig dimensionieren: das Playbook, mit dem ein Cluster von 7 auf 4 Nodes kam
- Private KI für sensible Daten: ein lokales LLM-Setup, das durch die Sicherheitsprüfung kommt
- Vom KI-Prototyp zur Produktion: die acht Schichten, die ich ergänze, in dieser Reihenfolge
