WhatsApp Flows ist eine Funktion der Cloud API, mit der du mehrseitige Formulare direkt in einer WhatsApp-Unterhaltung erstellst. Nutzer tippen sich durch Eingabefelder, Dropdowns und Datumsauswahlen, ohne den Chat zu verlassen, und dein System erhält die erfassten Daten als strukturiertes JSON. Meta beschreibt Flows als Möglichkeit, strukturierte Interaktionen im Business Messaging aufzubauen, etwa für Leadgenerierung und Produktempfehlungen.[1] Wenn du auf der WhatsApp Cloud API entwickelst, bieten dir Flows einen nativen Weg, strukturierte Eingaben direkt im Gespräch zu erfassen. Ein Flow öffnet sich, wenn ein Nutzer in einer interaktiven Nachricht oder einer Template-Nachricht (dem vorab genehmigten Nachrichtentyp, den ein Unternehmen jederzeit senden kann) auf einen Call-to-Action-Button tippt, und das Formular selbst läuft innerhalb von WhatsApp.
Die wichtigsten Punkte
- Für Flows brauchst du die WhatsApp Cloud API und ein WhatsApp Business-Konto (WABA). Meta teilt das WABA in zwei Accounts auf: einen WhatsApp Account, der deine geschäftliche Telefonnummer enthält, und einen Messaging Account, der deine Templates und die Abrechnung enthält.
- Ein Flow ohne Daten-Endpoint (eine URL auf deinem Server, die der Flow für Live-Daten aufruft) sammelt die Formularantworten und übermittelt sie, sobald der Nutzer fertig ist. Ein Flow mit Endpoint tauscht in Echtzeit Daten mit deinem Server aus.
- Ein Flow kann bis zu 100 Screens haben, doch Meta empfiehlt, dass jede Aufgabe weniger als 5 Minuten dauert und sich jeder Screen auf eine einzige Aufgabe konzentriert.
- Flows, die Daten mit deinem Server austauschen, brauchen ein RSA-Schlüsselpaar mit 2048 Bit, dessen öffentlicher Schlüssel über den Verschlüsselungs-Endpoint von 360Dialog signiert wird.
- Ein Flow kostet so viel wie die Nachricht, die ihn überbringt. Ab dem 1. Oktober 2026 berechnet Meta außerdem Antworten innerhalb des 24-Stunden-Kundenservice-Fensters, also des Zeitraums nach der letzten Nachricht eines Nutzers, in dem du ohne Template antworten kannst.
Bereit für deinen ersten Flow? 360Dialog bietet dir Zugang zur Cloud API, die Verwaltung der Verschlüsselungsschlüssel und die Infrastruktur, um Flows zu erstellen und bereitzustellen, abgerechnet pro Nummer und Monat ohne Aufschlag auf Metas Gebühren. Mit API starten.
Was sind WhatsApp Flows und wie funktionieren sie?
WhatsApp Flows ist ein Framework für strukturierte Interaktionen innerhalb der WhatsApp Business Platform. Unternehmen definieren damit mehrseitige Formulare per JSON-Definition, WhatsApp stellt diese Formulare nativ dar, und die Antworten der Nutzer kommen als strukturierte JSON-Payloads per Webhook zurück. Der Nutzer verlässt den Chat dabei nie. Flows bestehen aus Screens (jeder Screen ist ein Knoten in einem Zustandsautomaten), Komponenten (den UI-Elementen auf jedem Screen) und Aktionen (der Logik, die zwischen Screens wechselt oder Daten übermittelt).
Ein Flow startet, wenn ein Nutzer auf einen Call-to-Action-Button tippt, der an eine interaktive Nachricht (Typ "flow") oder eine Template-Nachricht (Button-Typ FLOW) angehängt ist. Der Button öffnet den ersten Screen mit dem Layout, den Komponenten und der Navigationslogik aus deinem Flow JSON. Der Nutzer füllt Felder aus und tippt sich durch die Screens. Auf dem letzten Screen übermittelt die Aktion complete die in ihrem Payload aufgeführten Felder als JSON-Payload per Webhook an dein System.
Der zentrale Unterschied zu anderen Methoden der Datenerfassung in WhatsApp:
| Methode | Datenstruktur | Nutzererlebnis | Geeignet für |
|---|---|---|---|
| WhatsApp Flows | Strukturierter JSON-Payload | Antippbare Formular-Screens im Chat | Lead-Erfassung, Buchung, Umfragen, Bestellformulare |
| Quick Replies in Templates | Auswahl eines einzelnen Buttons | Nutzer tippt auf eine vordefinierte Option | Bestätigungen, Opt-ins (Einwilligung in den Empfang von Nachrichten), einfaches Routing |
| Erfassung per Freitext | Unstrukturierter Text | Nutzer tippt offene Antworten | Offenes Feedback, Support-Unterhaltungen |
Flows lösen ein konkretes Problem: die Erfassung strukturierter Daten von Nutzern, die bereits in einer WhatsApp-Unterhaltung sind. Wenn du in einer einzigen Interaktion einen Namen, eine E-Mail-Adresse, ein Datum und eine Präferenz brauchst, erfasst du mit Flows alle vier in einem antippbaren Formular. Die Erfassung per Freitext braucht dafür mehrere Nachrichtenrunden und Parsing-Logik in deinem Backend, um dieselben Felder zu extrahieren.
Wenn du für deine ersten Flows eine Cloud-API-Nummer brauchst, kannst du über 360Dialog mit API starten.
Statische oder dynamische Flows: Welchen Typ brauchst du?
Der praktische Unterschied liegt darin, ob dein Flow mit einem Daten-Endpoint verbunden ist. Ein Flow ohne Daten-Endpoint legt alle Inhalte im Flow JSON fest und erfasst die Eingaben des Nutzers lokal. Ein Flow mit Daten-Endpoint sendet zur Laufzeit verschlüsselte Anfragen an deinen Server und erhält Daten, die den nächsten Screen füllen. Die beiden Bezeichnungen stehen für zwei Arten der Datenverarbeitung, und sie bestimmen, wie viel Backend-Infrastruktur du brauchst.
Ohne Daten-Endpoint: Das Flow JSON legt jeden Screen, jede Komponente und jeden Navigationspfad schon beim Design fest. Die Eingaben werden lokal erfasst und als JSON-Payload übermittelt, wenn der Flow abgeschlossen ist. Dieser Ansatz eignet sich für Formulare zur Lead-Erfassung, Feedback-Umfragen und Registrierungsabläufe, bei denen jedes Feld vorab feststeht. Die wichtigsten Aktionen sind navigate (zum Wechsel zwischen Screens) und complete (zum Beenden des Flows und Zurückgeben der Daten). Ein Server kommt erst ins Spiel, wenn die finale Übermittlung per Webhook eintrifft.
Mit Daten-Endpoint: Der Flow sendet zur Laufzeit über die Aktion data_exchange verschlüsselte POST-Anfragen an deinen HTTPS-Endpoint.[2][4] Dein Server entschlüsselt die Anfrage, verarbeitet die Daten und gibt den Inhalt für den nächsten Screen zurück. So lassen sich Terminbuchungen mit Live-Verfügbarkeit, Produktkataloge mit Lagerbestand in Echtzeit oder jedes Szenario umsetzen, in dem der Inhalt eines Screens von früheren Auswahlen des Nutzers oder vom Zustand deines Backends abhängt. Anfragen an deinen Endpoint laufen nach 10 Sekunden in ein Timeout, und Meta empfiehlt für den flow_token eine Gültigkeit von 2 bis 3 Tagen, damit Nutzer genug Zeit zum Reagieren haben.[6]
Beide Ansätze nutzen dieselbe Struktur des Flow JSON und dieselben Komponenten. Die Wahl hängt davon ab, ob deine Screens zur Laufzeit Daten von deinem Server brauchen.
Um Flow-Übermittlungen mit deinem bestehenden Automatisierungs-Stack zu verbinden, sieh dir an, wie WhatsApp-Integrationen mit 360Dialog funktionieren.
Welche Komponenten kannst du in einem Flow verwenden?
Flows bieten über 20 Komponententypen in den Kategorien Eingabe, Anzeige, Navigation und Bedingungen. Jeder Screen unterstützt bis zu 50 Komponenten und nutzt ein einspaltiges Layout (SingleColumnLayout, eine vertikale Flexbox).[3] Meta begrenzt den Inhalt des Flow JSON selbst auf 10 MB.
Die wichtigsten Eingabekomponenten:
- TextInput: Einzeiliger Text, E-Mail, Telefon, Zahl, Passwort oder Passcode. Unterstützt Validierung per Regex (ab v6.2). Standardmäßig maximal 80 Zeichen.
- TextArea: Mehrzeilige Texteingabe, standardmäßig 600 Zeichen.
- Dropdown: Einfachauswahl aus bis zu 200 Optionen (100 mit Bildern).
- RadioButtonsGroup: Einfachauswahl aus bis zu 20 Optionen. Meta empfiehlt ab 8 Optionen ein Dropdown.
- CheckboxGroup: Mehrfachauswahl aus bis zu 20 Optionen.
- DatePicker: Datumsauswahl mit zeitzonenunabhängiger Formatierung (ab v5.0).
- CalendarPicker: Auswahl eines einzelnen Datums oder eines Zeitraums (ab v6.1).
- OptIn: Checkbox für eine Einwilligung, bis zu 5 pro Screen.
- ChipsSelector: Kompakte Mehrfachauswahl für 2 bis 20 Optionen (ab v6.3).
Zu den Anzeigekomponenten gehören TextHeading, TextSubheading, TextBody, TextCaption, RichText (ab v5.1, für längere, mit Markdown formatierte Texte), Image (bis zu 3 pro Screen) und ImageCarousel (ab v7.1).
Zu den Navigationskomponenten gehören Footer (auf abschließenden Screens Pflicht, maximal 35 Zeichen), EmbeddedLink (bis zu 2 pro Screen) und NavigationList (ab v6.2). Mit den Upload-Komponenten für Medien (DocumentPicker und PhotoPicker, ab v4.0) können Nutzer Dateien direkt im Flow anhängen.
Mit bedingten Komponenten (If und Switch, verfügbar ab v4.0) kannst du Elemente abhängig von Nutzereingaben oder Datenwerten ein- oder ausblenden, und If-Komponenten lassen sich bis zu 3 Ebenen tief verschachteln. Die Aktion update_data (ab v6.0) aktualisiert Screens in Echtzeit auf Basis von Nutzerinteraktionen, ohne Umweg über den Server. Das hilft etwa bei kaskadierenden Dropdowns oder berechneten Feldern.
Die Einrichtungsschritte bei 360Dialog findest du in der Flows-Dokumentation auf docs.360dialog.com. Die vollständige Referenz aller Komponenten steht in Metas Dokumentation zu den Komponenten.
Wie erstellst du einen Flow über die API? (Der Weg über 360Dialog)
Einen Flow über 360Dialog erstellst du in fünf Schritten: RSA-Schlüsselpaar generieren, öffentlichen Schlüssel hochladen, Flow JSON schreiben, Endpoint konfigurieren und den Flow an Nutzer senden. Die Schritte 1, 2 und 4 brauchst du nur für Flows, die Daten mit deinem Server austauschen, und Meta führt das Schlüsselpaar als Teil der Endpoint-Einrichtung. Im WhatsApp Manager gibt es außerdem einen Flows Builder mit Live-Vorschau, und über die API verwaltest du das Flow JSON aus deinen eigenen Systemen heraus. In beiden Fällen kann ein Flow bis zu 100 Screens haben.
- Generiere dein RSA-Schlüsselpaar. Erstelle mit OpenSSL ein RSA-Schlüsselpaar mit 2048 Bit:
openssl genrsa -des3 -out private.pem 2048
openssl rsa -in private.pem -outform PEM -pubout -out public.pem
Bewahre den privaten Schlüssel sicher auf. Du brauchst ihn, um eingehende Daten aus Flows zu entschlüsseln.
- Lade deinen öffentlichen Schlüssel bei 360Dialog hoch. Signiere den Schlüssel und lade ihn über den Verschlüsselungs-Endpoint von 360Dialog hoch:[5]
POST https://waba-v2.360dialog.io/whatsapp_business_encryption
Sende den vollständigen öffentlichen Schlüssel (inklusive BEGIN- und END-Markierung) als business_public_key im Request Body. Bei Erfolg gibt der Endpoint {"success": true} zurück. Den Status des Schlüssels kannst du mit einer GET-Anfrage an dieselbe URL prüfen.
- Schreibe das Flow JSON. Definiere deine Screens, Layouts, Komponenten und Navigationsaktionen. Das JSON braucht mindestens ein Feld
versionund ein Arrayscreens. Nutze die Version des Flow JSON, die Meta aktuell empfiehlt (7.3), denn Versionen bis 5.0 sind eingefroren und lassen sich nicht mehr veröffentlichen.[7] Jeder Screen hat eineid, einenlayout-Block und optionale Felderdataundtitle. Mindestens ein Screen muss alsterminalmarkiert sein, und jeder abschließende Screen braucht einen Footer. Für Flows mit Endpoint setzt du außerdemdata_api_version(Meta empfiehlt"4.0";"3.0"wird weiterhin unterstützt) und einrouting_model, das festlegt, welche Screens aufeinander folgen können.
- Konfiguriere deinen Daten-Endpoint (nur dynamische Flows). Setze die
endpoint_uriüber die Flows API. Dein Endpoint muss HTTPS-POST-Anfragen mit einem gültigen TLS/SSL-Zertifikat annehmen. Alle Payloads sind verschlüsselt, mit RSA 2048 Bit (OAEP-SHA256) für den Schlüsselaustausch und AES-128-GCM für den Daten-Payload. Validiere eingehende Anfragen über den HeaderX-Hub-Signature-256mit deinem App Secret. Dein Endpoint muss außerdem auf Health-Check-Pings antworten: Auf{"action": "ping"}wird{"data": {"status": "active"}}erwartet.
- Sende den Flow an Nutzer. Hänge den Flow an eine interaktive Nachricht (Typ
"flow") oder eine Template-Nachricht (Button-TypFLOW) an. Eine interaktive Flow-Nachricht brauchtflow_message_versionmit dem Wert"3", den Button-Text inflow_ctaund entweder eineflow_idoder einenflow_name.[8] Im Changelog von Meta istflow_tokenals optional aufgeführt; setze ihn, wenn du jede Antwort einer Session oder einem Nutzer zuordnen musst. Wennflow_actionauf"navigate"steht (der Standard), nenntflow_action_payloadden ersten Screen und kann Felder vorbefüllen, wenn du Nutzerdaten schon aus dem Gesprächskontext kennst.
360Dialog stellt als Official Meta Solution Partner den Verschlüsselungs-Endpoint und die API-Infrastruktur bereit, die die Schlüsselverwaltung für Flows übernehmen. Codebeispiele für die Entschlüsselung am Endpoint gibt es in Python, Node.js, PHP, Java, C# und Go in Metas Entwicklerdokumentation.
Wenn die WhatsApp Business API neu für dich ist, lass zuerst deinen WhatsApp Account genehmigen, bevor du Flows erstellst.
Drei Praxisbeispiele mit Flow JSON
Die folgenden Beispiele zeigen die JSON-Struktur für drei häufige Anwendungsfälle. Alle nutzen Version 7.3 des Flow JSON, die Meta aktuell empfiehlt. Die vollständige Referenz zu Komponenten und Aktionen steht in Metas Dokumentation zum Flow JSON.
Lead-Formular (ein Screen, ohne Endpoint)
Ein minimales Formular zur Lead-Erfassung mit einem Namensfeld, einer Auswahl des Interessengebiets und einer Einwilligungs-Checkbox:
{
"version": "7.3",
"screens": [{
"id": "LEAD_FORM",
"title": "Kontakt aufnehmen",
"terminal": true,
"layout": {
"type": "SingleColumnLayout",
"children": [
{"type": "TextInput", "name": "full_name",
"label": "Vollständiger Name", "required": true,
"input-type": "text"},
{"type": "RadioButtonsGroup", "name": "interest",
"label": "Interessensgebiet", "required": true,
"data-source": [
{"id": "sales", "title": "Vertrieb"},
{"id": "support", "title": "Support"},
{"id": "partnership", "title": "Partnerschaft"}
]},
{"type": "OptIn", "name": "consent",
"label": "Ich stimme zu, Updates zu erhalten"},
{"type": "Footer", "label": "Absenden",
"on-click-action": {
"name": "complete",
"payload": {
"full_name": "${form.full_name}",
"interest": "${form.interest}",
"consent": "${form.consent}"
}
}}
]
}
}]
}
Die Aktion complete im Footer beendet den Flow und sendet die in ihrem Payload aufgeführten Felder an deinen Webhook, führe dort also jedes Feld auf, das du brauchst. Der Webhook liefert eine Nachricht mit dem Typ "interactive" und dem interaktiven Typ "nfm_reply", deren Feld response_json ein JSON-String mit dem flow_token und diesen Feldwerten ist.
Feedback-Formular (zwei Screens, ohne Endpoint)
Ein Feedback-Formular mit zwei Screens erfasst auf dem ersten Screen eine Bewertung und auf dem zweiten optionale Kommentare:
{
"version": "7.3",
"screens": [
{
"id": "RATING",
"title": "Feedback 1 von 2",
"layout": {
"type": "SingleColumnLayout",
"children": [
{"type": "TextHeading",
"text": "Wie war deine Erfahrung?"},
{"type": "RadioButtonsGroup",
"name": "rating", "label": "Bewertung",
"required": true,
"data-source": [
{"id": "5", "title": "Ausgezeichnet"},
{"id": "4", "title": "Gut"},
{"id": "3", "title": "Durchschnittlich"},
{"id": "2", "title": "Schlecht"}
]},
{"type": "Footer", "label": "Weiter",
"on-click-action": {
"name": "navigate",
"next": {"type": "screen", "name": "COMMENTS"},
"payload": {}
}}
]
}
},
{
"id": "COMMENTS",
"title": "Feedback 2 von 2",
"terminal": true,
"layout": {
"type": "SingleColumnLayout",
"children": [
{"type": "TextArea", "name": "comments",
"label": "Kommentar (optional)",
"required": false},
{"type": "Footer", "label": "Absenden",
"on-click-action": {
"name": "complete",
"payload": {
"rating": "${screen.RATING.form.rating}",
"comments": "${form.comments}"
}
}}
]
}
}
]
}
Die Aktion navigate bringt den Nutzer mit einem leeren Payload zum zweiten Screen. Ab Flow JSON v4.0 kann jeder Screen die Eingaben eines anderen Screens über die globale Syntax ${screen.RATING.form.rating} lesen, deshalb übermittelt die Aktion complete auf dem letzten Screen sowohl die Bewertung als auch die Kommentare.
Terminbuchung (dynamisch, mit Endpoint)
Ein dynamischer Flow fragt über die Aktion data_exchange verfügbare Zeitfenster bei deinem Server ab und zeigt sie auf einem zweiten Screen an:
{
"version": "7.3",
"data_api_version": "4.0",
"routing_model": {
"BOOKING": ["SLOTS"],
"SLOTS": []
},
"screens": [
{
"id": "BOOKING",
"title": "Termin buchen",
"layout": {
"type": "SingleColumnLayout",
"children": [
{"type": "DatePicker", "name": "date",
"label": "Datum auswählen", "required": true},
{"type": "Footer",
"label": "Verfügbarkeit prüfen",
"on-click-action": {
"name": "data_exchange",
"payload": {"date": "${form.date}"}
}}
]
}
},
{
"id": "SLOTS",
"title": "Uhrzeit wählen",
"terminal": true,
"data": {
"available_slots": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {"type": "string"},
"title": {"type": "string"}
}
},
"__example__": [
{"id": "1", "title": "08:00"},
{"id": "2", "title": "09:00"}
]
}
},
"layout": {
"type": "SingleColumnLayout",
"children": [
{"type": "Dropdown", "name": "slot",
"label": "Verfügbare Zeiten", "required": true,
"data-source": "${data.available_slots}"},
{"type": "Footer", "label": "Buchung bestätigen",
"on-click-action": {
"name": "complete",
"payload": {
"date": "${screen.BOOKING.form.date}",
"slot": "${form.slot}"
}
}}
]
}
}
]
}
Wenn der Nutzer ein Datum auswählt und auf den Footer tippt, sendet der Flow eine verschlüsselte POST-Anfrage mit dem gewählten Datum an deinen Endpoint. Dein Server entschlüsselt die Anfrage mit deinem privaten RSA-Schlüssel und AES-128-GCM, fragt die verfügbaren Zeitfenster ab und gibt eine verschlüsselte Antwort mit dem nächsten Screen ("screen": "SLOTS") und einem data-Objekt zurück, das available_slots enthält. Der Nutzer wählt eine Uhrzeit, und die Aktion complete sendet Datum und Zeitfenster an deinen Webhook. Sende diesen Flow mit flow_action auf "navigate" und BOOKING als erstem Screen, damit das Öffnen des Flows deinen Endpoint nicht aufruft.
Wie gestaltest du einen Flow, den Nutzer bis zum Ende ausfüllen?
Metas Best Practices für Flows zielen darauf, jede Aufgabe kurz und jeden Screen einfach zu halten, damit Nutzer abschließen, was sie angefangen haben. Für deine eigenen Ergebnisse zeigt der Flows Builder im WhatsApp Manager Interaktionsstatistiken zu veröffentlichten Flows.
Die dokumentierten Best Practices von Meta:
- Beschränke jeden Screen auf eine Aufgabe und halte den gesamten Flow unter 5 Minuten.
- Formuliere einen CTA, der dem Nutzer genau sagt, was nach dem Tippen passiert. Halte den Button-Text kurz, denn unsere Dokumentation setzt ein Limit von 20 Zeichen ohne Emoji.
- Wähle für jeden Eingabetyp die passende Komponente: DatePicker für Datumsangaben, Dropdown ab 8 Optionen, RadioButtonsGroup für eine Einfachauswahl aus weniger Optionen, CheckboxGroup für Mehrfachauswahl.
- Plane mit dem Caching: Sobald ein Nutzer einen Screen abschließt und weitergeht, speichert WhatsApp die Daten dieses Screens im Cache. Wer den Flow verlässt, verliert die Eingaben auf dem aktuellen Screen, also setzen mehrere kurze Screens weniger Daten aufs Spiel als ein langer.
- Beende mehrstufige Flows mit einem Zusammenfassungs-Screen, damit der Nutzer vor dem Absenden alles prüfen kann.
Wie sich Flows in deine übrigen Messaging-Workflows einfügen, erklärt unser Leitfaden zur WhatsApp-Automatisierung.
Was kosten Flows?
Meta berechnet jede zugestellte Nachricht, ein Flow kostet also so viel wie die Nachricht, die seinen Button überbringt.[9] Unsere Tarife werden pro Nummer und Monat abgerechnet und führen keine separate Gebühr für Flows auf. Sendest du den Flow in einer Template-Nachricht, zahlst du den Tarif der Kategorie dieses Templates (Marketing, Utility oder Authentifizierung), der je nach Land variiert.
Sendest du den Flow als interaktive Nachricht in Antwort auf einen Nutzer, geht er innerhalb des 24-Stunden-Kundenservice-Fensters raus. Ab dem 1. Oktober 2026 berechnet Meta diese Antworten als Servicenachrichten, zum selben Tarif wie Utility- und Authentifizierungsnachrichten im jeweiligen Markt, und berechnet auch Utility-Templates, die innerhalb des Fensters gesendet werden.[10] Nachrichten von Nutzern, auch ein übermittelter Flow, werden nicht berechnet. Die aktuellen Tarife pro Nachricht und Land findest du auf unserer Preisseite.
Als SaaS-Unternehmen oder Reseller, das Flows in den eigenen Produkten anbieten will, kannst du über die 360Dialog Partner Platform WhatsApp in dein SaaS integrieren. Die Partner Platform stellt die API-Infrastruktur für Multi-Tenant-Deployments bereit.
Wenn du bereit für deinen ersten Flow bist, kannst du über 360Dialog mit API starten und, falls dein Flow einen Endpoint nutzt, die Schritte zur Einrichtung des Schlüsselpaars in unserer Flows-Dokumentation befolgen.
Häufig gestellte Fragen
Kann ich einen Flow in einer Template-Nachricht senden?
Ja. Du hängst einen Flow an eine Template-Nachricht an, indem du beim Erstellen des Templates einen Button vom Typ FLOW hinzufügst. Der Button identifiziert den Flow über seine ID oder seinen Namen und nennt den ersten Screen, wenn die Aktion des Buttons navigate ist. Tippt der Nutzer auf den Button, öffnet sich der Flow im Chat. Das Template selbst durchläuft den üblichen Prozess der Genehmigung von WhatsApp-Templates, achte also darauf, dass der Inhalt deines Templates und der Zweck des Flows zu Metas Commerce- und Messaging-Richtlinien passen.
Was brauchst du, um einen Flow zu senden?
Du brauchst eine geschäftliche Telefonnummer, die auf der WhatsApp Cloud API registriert ist. Jedes Unternehmen kann im WhatsApp Manager mit dem Erstellen von Flows beginnen, und um sie zu veröffentlichen und zu senden, verlangt Meta ein verifiziertes Unternehmen und eine hohe Nachrichtenqualität.
Kann ich einen Flow vor der Veröffentlichung testen?
Ja. Der Flows Builder im WhatsApp Manager hat eine interaktive Vorschau, die sich wie ein echtes Gerät verhält und echte Anfragen an deinen Endpoint sendet, falls der Flow einen hat. Du kannst den Entwurf auch an ein Testtelefon senden, über die Sendeoption im Builder oder über die API mit mode auf draft. Entwurfsnachrichten zeigen auf dem Gerät ein Warnbanner, und das Testtelefon muss deiner Nummer in den letzten 24 Stunden geschrieben haben. Flows, die seit November 2024 erstellt wurden, bleiben nach der Veröffentlichung über die API oder den Builder bearbeitbar und behalten dieselbe Flow-ID.
Was passiert mit den Eingaben, wenn ein Nutzer den Flow mittendrin schließt?
WhatsApp speichert die Daten eines Screens im Cache, sobald der Nutzer ihn abschließt und zum nächsten Screen wechselt. Daten auf dem aktuellen Screen, die der Nutzer vor dem Tippen auf den Footer-Button eingegeben hat, gehen verloren, wenn er den Flow verlässt. Deshalb empfiehlt Meta, Formulare mit mehreren Feldern auf mehrere kurze Screens aufzuteilen, damit weniger Daten verloren gehen, falls der Nutzer vor dem Ende aussteigt.
Sind die Daten verschlüsselt?
Ja. Alle Daten, die zwischen dem Flow und deinem Endpoint ausgetauscht werden, nutzen einen RSA-Schlüsselaustausch mit 2048 Bit (OAEP-SHA256) in Kombination mit AES-128-GCM zur Verschlüsselung des Payloads. Die eingehende Anfrage enthält drei Felder: encrypted_flow_data, encrypted_aes_key und initial_vector. Du entschlüsselst den AES-Schlüssel mit deinem privaten RSA-Schlüssel und danach den Payload mit AES-GCM. Deine Antwort wird mit demselben AES-Schlüssel und einem Initialisierungsvektor mit invertierten Bits verschlüsselt. Die vollständige Anleitung zur Implementierung der Verschlüsselung mit Codebeispielen in sechs Sprachen findest du in Metas Entwicklerdokumentation.
Quellen
[1] Meta, „WhatsApp Flows,“ developers.facebook.com/docs/whatsapp/flows. Accessed September 29, 2026.
[2] Meta, „Flow JSON Reference,“ developers.facebook.com/docs/whatsapp/flows/reference/flowjson. Accessed September 29, 2026.
[3] Meta, „Components Reference,“ developers.facebook.com/docs/whatsapp/flows/reference/components. Accessed September 29, 2026.
[4] Meta, „Implementing Your Flow Endpoint,“ developers.facebook.com/docs/whatsapp/flows/guides/implementingyourflowendpoint. Accessed September 29, 2026.
[5] 360Dialog, „Flows,“ docs.360dialog.com/docs/messaging/flows. Accessed September 29, 2026.
[6] Meta, „Best Practices,“ developers.facebook.com/docs/whatsapp/flows/guides/bestpractices. Accessed September 29, 2026.
[7] Meta, „Changelog,“ developers.facebook.com/docs/whatsapp/flows/changelogs. Accessed September 29, 2026.
[8] Meta, „Sending a Flow,“ developers.facebook.com/documentation/business-messaging/whatsapp/flows/guides/sendingaflow. Accessed September 29, 2026.
[9] Meta, „Pricing on the WhatsApp Business Platform,“ developers.facebook.com/docs/whatsapp/pricing. Accessed September 29, 2026.
[10] Meta, „Upcoming Pricing Updates for Meta Business Agent, Service and Utility Messages,“ developers.facebook.com/documentation/business-messaging/whatsapp/pricing/non-template-messages. Accessed September 29, 2026.



