WhatsApp Flows (forms)
Build native in-chat forms for WhatsApp. Field types, publishing to Meta, letting the AI send the right form at the right moment, and where submissions land.
A Flow is a form that opens inside WhatsApp. The customer never leaves the chat, never loads a web page, and you get structured fields instead of details scattered across ten messages.
Use them for lead capture, appointment requests, service bookings, feedback and registration.
Building a form
Flows → New Flow.
| Setting | What it does |
|---|---|
| Name | Internal reference |
| Title | Shown at the top of the form |
| CTA label | The button text that opens it, e.g. "Book appointment" |
| Category | Lead generation, appointment booking, survey and others |
| Fields | The questions |
Field types
| Type | Renders as | Use for |
|---|---|---|
text |
Single-line input | Names, short answers |
email |
Email keyboard + validation | Email addresses |
phone |
Numeric keyboard + validation | Phone numbers |
number |
Numeric input | Quantities, ages |
paragraph |
Multi-line text area | Comments, descriptions |
date |
Date picker | Appointment dates |
dropdown |
Select list | One choice from many |
radio |
Radio buttons | One choice from a few |
checkbox |
Checkbox group | Multiple choices |
Each field has a label, an optional placeholder, and a required flag. Choice fields need options.
The input type drives the phone keyboard and WhatsApp's own client-side validation, so an email field rejects a malformed address before it ever reaches you.
Publishing
A Flow is draft until published. Publish creates it on your WhatsApp Business Account through Meta.
Only a published Flow can be sent to a real customer. Drafts are for building and previewing.
Editing a published Flow republishes it — the form definition is generated from your field list each time, so a change to how a field type renders applies to every existing form on its next publish rather than being frozen at creation.
Letting the AI send it
This is where Flows get genuinely useful.
Turn on Agent enabled for a form and write an agent hint — plain language telling the AI when the form is appropriate:
Send this when the customer wants to book a site visit
or asks to see a property in person.
The agent now sends that form on its own, mid-conversation, when it detects that intent. No keyword rules.
Anti-spam guardrails
Every send is recorded. The agent will not:
- Send the same form twice to someone who already submitted it
- Re-send repeatedly to someone who received it and has not filled it in
Without this, an assistant re-sends a form every time the customer says something that looks like intent, which reads as spam, gets the number reported, and drags the quality rating down. The guardrail is not optional.
Agent enabled is off by default. A form built for one campaign should not start appearing in unrelated conversations.
Submissions
A completed form arrives as structured data, resolved against your field spec — you see real labels, not Meta's internal screen keys.
Submissions appear in the dashboard against the contact, with the submitting number, name and timestamp.
The AI does not chat back at a submitted form. A form is structured data, not a conversation opener, and a chatty reply to a form someone just filled in reads badly.
Pushing submissions elsewhere
Submissions can be forwarded to your CRM, a webhook, Google Sheets or n8n. Ask us — it is a custom module and a small one.
Need it to work differently?
The platform is the starting point, not the ceiling. Tell us what your process needs and we will build it — at a price we will negotiate.