WhatsApp Flows
WhatsApp Flows enable businesses to create interactive, multi-screen experiences that users can complete without leaving WhatsApp. Flows support data collection, form submissions, and complex UI components like text inputs, radio buttons, checkboxes, date pickers, and dropdown menus. Use Flows to build experiences such as appointment booking, lead generation forms, customer surveys, and shopping flows.
With AWS End User Messaging, you can manage your WhatsApp Flows directly through the AWS End User Messaging console or by using the AWS End User Messaging API. You can create, update, publish, preview, deprecate, and delete Flows without needing to use the Meta console or Meta's APIs directly.
Flows are associated with your WhatsApp Business Account (WABA). Each Flow is defined by a JSON
schema that describes its screens, components, and logic. For more information about the Flow JSON
schema, see Flow JSON
Flows support two modes:
Static Flows — All screens, components, and navigation logic are defined in the Flow JSON. No endpoint is required.
Dynamic Flows — Screens fetch data from your own HTTPS endpoint at runtime using the
data_exchangeaction. This enables personalized, data-driven experiences where screen content and navigation depend on your backend logic. For more information, see Setting up Dynamic Flows.
Topics
Key concepts
- Flow
An interactive, multi-screen experience defined by a JSON schema that users complete within WhatsApp.
- Flow JSON
The JSON definition that describes the Flow's screens, components, and logic. Maximum size is 10 MB. We recommend using JSON version 7.3.
- Flow category
A classification that describes the business purpose of the Flow. Categories include: Sign Up, Sign In, Appointment Booking, Lead Generation, Contact Us, Customer Support, Survey, Shopping, and Other.
- Flow status
The lifecycle state of a Flow. See Understanding Flow status.
- Flow token
A unique identifier you provide when sending a Flow to track the session. The token is returned in the Flow response webhook when the user completes the Flow.
- Dynamic Flow
A Flow that calls your own HTTPS endpoint at runtime using the
data_exchangeaction to fetch screen content and decide navigation. The Flow JSON must declaredata_api_versionand the Flow must have anendpoint_uriregistered. For more information, see Setting up Dynamic Flows.- Business public key
An RSA-2048 public key that Meta uses to encrypt data-exchange requests end-to-end. You upload the public key through AWS End User Messaging and hold the corresponding private key at your endpoint for decryption. You can provide a PEM-encoded key directly or reference an AWS KMS asymmetric key.