WhatsApp Flows
WhatsApp Flows are forms that open inside WhatsApp. Customers can sign up, book an appointment or answer a survey without leaving the chat. Every endpoint on this page needs the /flow grant.
Create a flow
Section titled “Create a flow”POST /flow/create
{ "whatsappPhoneId": "123456789012345", "flow": { "name": "Book a demo", "categories": ["APPOINTMENT_BOOKING"], "screens": [ { "id": "DETAILS", "title": "Your details", "layout": { "children": [ { "type": "TextHeading", "text": "Book a demo" }, { "type": "TextInput", "name": "full_name", "label": "Full name", "required": true }, { "type": "TextInput", "name": "email", "label": "Email", "input-type": "email", "required": true }, { "type": "DatePicker", "name": "date", "label": "Preferred date" }, { "type": "Dropdown", "name": "team_size", "label": "Team size", "options": [{ "id": "1", "title": "1–10" }, { "id": "2", "title": "11–50" }] }, { "type": "Footer", "label": "Submit" } ] } } ] }}201: {"success": true, "message": "WhatsApp flow created successfully", "flow_id": "…"}. The new flow is a draft.
Categories
Section titled “Categories”SIGN_UP, SIGN_IN, APPOINTMENT_BOOKING, LEAD_GENERATION, CONTACT_US, CUSTOMER_SUPPORT, SURVEY, OTHER
Field types
Section titled “Field types”| Type | Use for |
|---|---|
TextHeading, TextSubheading, TextBody |
Static text |
TextInput |
One-line input. input-type: text, email, number, phone, passcode, password. Optional helper-text, pattern |
TextArea |
Multi-line input |
Dropdown, RadioButtonsGroup, CheckboxGroup |
Choices, as [{id, title}] options |
DatePicker |
A date |
OptIn |
A consent checkbox |
PhotoPicker, DocumentPicker |
File uploads |
Footer |
The submit button. Wabot adds one if you leave it out |
Update or publish
Section titled “Update or publish”PUT /flow/update
action |
What it does |
|---|---|
update |
Replace the draft with a new flow definition |
update_json |
Upload raw Meta Flow JSON in flow_json |
publish |
Publish the flow so it can be sent. A published flow can’t be edited |
{ "flow_id": "1234567890", "action": "publish" }Delete
Section titled “Delete”DELETE /flow/delete with body {"flow_id": "…"}
A draft is deleted. A published flow can’t be deleted, so Wabot marks it deprecated instead.
