TABLE OF CONTENTS
- What are WhatsApp Flows?
- Types of Flows: Static vs Dynamic Flows
- Set up an Endpoint: ExoFlow Connect
- Create and Configure WhatsApp Flow on the Chatbot
What are WhatsApp Flows?
WhatsApp Flows (also called WhatsApp Forms) allow you to send interactive forms inside WhatsApp. Customers can fill details, browse options, book appointments, place orders, or provide feedback - all without leaving the conversation.
On Exotel Chatbot, you can connect these forms to nodes in your bot journey. This guide explains:
What WhatsApp Flows are.
The difference between Static and Dynamic Flows.
How to create a Flow on Meta’s WhatsApp Manager.
How to configure the Flow on Exotel Chatbot.
How to capture and use responses inside your bot.
Common troubleshooting steps.
All flows must first be created in Meta’s WhatsApp Business Manager → Flows section.
Types of Flows: Static vs Dynamic Flows
Static Flows: Simple forms built fully in Meta’s Flow Builder. No backend required. Great for surveys, lead capture, or sign-up forms.
Built in Meta’s Flow Builder (choose Without Endpoint).
No backend or middleware required.
Supports all components except images.
Best for simple, one-way data collection.
Dynamic Flows: Advanced, backend-driven forms with real-time data exchange. Ideal for order management, scheduling, or personalized journeys.
Built for advanced use cases like product catalogs, payments, or scheduling.
Requires a backend endpoint (ExoFlow Connect) + encryption key pair.
Supports images, real-time validation, and conditional flows.
Managed by Exotel Developers (customers request setup, not self-serve today).
Dynamic requires you to set up an Endpoint - Mandatory.
Think of Static flows like a fixed form, and Dynamic flows like a mini web app inside WhatsApp.
Set up an Endpoint
Dynamic Flow requires any business to create an Endpoint that provides dynamic data for the screens and control routing, i.e. upon screen submission, the flow can make a request to the endpoint to get the name of the next screen and the data to display on it.
Also, the endpoint can instruct the flow to terminate and control whether an outgoing message should be sent to a chat as a result of the flow completion. The endpoint can additionally provide a data payload to be passed with a completion message.
Setting up an endpoint consists of the following steps:
- Create a key pair and upload and sign the public key using the Cloud API.
- Set up the HTTP endpoint - URL
- Implement Payload Encryption/Decryption.
- Link the endpoint to your flow on the Meta Business Manager.
ExoFlow Connect App (for Dynamic Form)
You need not worry, as these complex steps of Endpoint setup are solved by Exotel using our ExoFlow Connect App.
ExoFlow Connect is a middleware service that creates the Endpoint for you and space to write your Flow's logic. This generates a unique endpoint for each flow, automatically links it with your bot, and securely manages real-time data exchange with WhatsApp.
To enable this, please reach out to your respective Account Manager for more details.
Important context (Dynamic Forms): The Exotel middleware (ExoFlow Connect) that hosts dynamic Flow endpoints is an internal feature managed by Exotel Delivery Developers. Customers must reach out to their Exotel Delivery Team / Account Manager for provisioning, endpoint setup, key management, and any middleware logic. This guide assumes that Exotel Developers will perform Dynamic Flow endpoint work on behalf of the customer.
Create and Configure WhatsApp Flow on the Chatbot
Now, let us understand how to create and configure a WhatsApp Flow on the Chatbot. This can be divided into 2 steps:
- Create the Flow on Meta Business Manager
- Configure the WhatsApp Flow on the Chatbot (this needs to be done by the Exotel Team)
Prerequisites
Before you begin, ensure you have:
Access to Exotel Chatbot with permissions to create/edit workflows - You can create your first bot and test the flows here - Exotel Chatbot Platform
A WhatsApp number integrated with WhatsApp API (Onboarded with Exotel preferred).
Access to Meta Business Manager (for Flow creation).
(For Dynamic flows) Support from Exotel Developers to enable ExoFlow Connect App.
Step A - Create the Flow on Meta Business Manager
Create the Flow on Meta's Flow Builder
For Static Flow - This can be created by the business, CX, or the Exotel Delivery Team as per the required use case.
For Dynamic Flow - This needs to be done by the Exotel Team as it requires providing dynamic details in the Form while creating it.
Go to WhatsApp Manager → Account Tools → Flows → Start Building Flows.
Select:
Without Endpoint → Static flow.
With Endpoint → Dynamic flow.
Design the Flow
Use Meta’s UI builder or JSON editor to add screens and components (text, inputs, lists, buttons).
Or
To simplify:
You can start from Meta’s Templates section → Marketing → Flows - To quickly create forms.
This will also create a linked Flow in the Flows section for reuse.
Click Run Preview to test.
Endpoint Setup on Meta console - Required Only for Dynamic Flow
To be handled by Exotel Developers:
Set Endpoint URL (from ExoFlow Connect ).
Upload Public Key for secure data exchange.
Connect Meta App to your Flow ID + WABA ID.
Run Health Check to validate the connection.
After the Flow is created, you will need these details to Configure the Flow on the Chatbot Console:
Flow ID
WABA ID
Flow Mode (Status):
Draft - Draft if the Flow is still being built or tested.
Published - Use Published if it’s live on WhatsApp.
Flow Action:
Navigate (for Static & Dynamic)
Data Exchange (only for Dynamic)
Screen Name: The name/id of the screen that you want to open on the Flows button click. Refer to the image below
Step B - Configure Flow in Exotel Chatbot Console
Note: These configuration steps in Exotel Chatbot need to be performed by the Exotel Team (Delivery Developers/admins) for versioning reasons. The steps below are a reference from version 8, and they may vary for some customer based on their versions.
Create or open the Bot in ExoChatbot.
Ensure the WhatsApp channel is configured and the number is integrated with the bot.
In the bot, go to Workflow > under Flows, open the node that will trigger the WhatsApp Form.
Click Add More on the node > navigate to WhatsApp Flows under Bot Prompts.
Enter all the Flow details in the “WhatsApp Flows” Prompts (refer to the table below) and click Save.
Save the node.
For Static forms, the mapping is complete.
For Dynamic flows, additional middleware logic may be required in the ExoFlow Connect App.
Save the node.
Test the flow in a WhatsApp conversation.
Field-by-field Explanation
This explains what to enter on the WhatsApp Flows prompt.
Note: The Chatbot console enforces the Flow Type / Action rules, if you configure a static flow with a Dynamic action, the message will fail.
How to pass existing data (pre-fill)
Use the Flow Data field to pass all the required details to the WhatsApp Form using the Chatbot Variables. Example:
Use bot variables using “ { } “ and select the variable from the dropdown to pass the values.
Example: {/name/}
Store and use responses inside the Chatbot
Create/select a variable in the Select Variable to Store Response field.
Select the type as String.
On Form submission, the full response JSON sent from Meta will be saved in that variable.
You can reference values in downstream nodes, webhook payloads, or make decisions inside flows (e.g., route to different nodes based on answers).
Testing Checklist
Preview flow in Meta before publishing.
For Dynamic flows, confirm Health Check passes.
In Exotel Chatbot, test sending the flow message.
Verify:
CTA button appears.
Pre-filled values work.
Response is captured in your variable.
Common Errors & Fixes
Flow Mode mismatch: Ensure you configure the correct flow mode. Set both the Meta & Chatbot node to “Draft” or “Published” based on the required setup.
Static vs Dynamic mismatch: Ensure you configure the correct flow type.
Empty variable after submission: Check “Store Response in Variable” is enabled.
Health check fails (Dynamic): The Endpoint that hosts the Dynamic Logic for your form is having some errors.
If the Endpoint is owned by the customer: Check and fix the error if the endpoint and retry again.
If the Endpoint is owned by Exotel Middlware: Raise to your respective Account Manager (endpoint setup needed).
Best Practices
Keep your form short, with minimal typing for users.
Use pre-filled data (via Flow Data JSON) to reduce friction.
For multilingual bots, create one Flow per language.
Monitor performance metrics (delivery, clicks, completions, drop-offs).
For business-critical flows, ask Exotel Developers to enable extra API logging.
Support
For Static flows: You can set up directly via Meta + Exotel Chatbot.
For Dynamic flows: Please reach out to your Account Manager.