Skip to content
Meta Business PartnerStep-by-step guide

How to build a Flow on the WhatsApp Business API

WhatsApp Flows let you collect structured input — appointment bookings, lead qualification, order details, feedback — inside a single, native in-chat form instead of a messy back-and-forth of questions. This tutorial walks you through building a Flow end to end on the official WhatsApp Business API with InfiQ: designing the screens, wiring the Flow JSON, attaching it to a template, testing on your own number, and publishing to customers. Every step below is practical and specific to how Flows actually behave, including the mistakes that most commonly trigger rejections or broken submissions.

Beginner-friendly, no-code
Difficulty
Under an hour for a simple Flow
Time to build
Only for data_exchange endpoints
Developer needed
navigate and data_exchange
Flow types
Per delivered launch message, by category
Billing
India-based, guided setup
Support

What you'll do

Build a WhatsApp Flow in five stages — prepare your verified account, design the screens and Flow JSON, connect it to a message template and endpoint, test on your own number, then publish and monitor. InfiQ handles the platform plumbing so you focus on the form itself.

Step 1 — Prepare your account and decide the Flow's job

Before you open the Flow Builder, get the foundations in place. A Flow can only be sent from an active, verified WhatsApp Business API account, so confirm yours is live with InfiQ and that your Meta Business Manager verification is complete. Then get crystal clear on what the Flow is for, because that single decision shapes everything downstream — the screens you design, the template category you'll pick, and whether you need a server endpoint at all. Sketch the exact fields you want to collect and the order a customer should see them in.

  • Confirm your WhatsApp Business API account is active and verified with InfiQ, with a healthy quality rating on the sending number.
  • Write down the Flow's single purpose — booking, lead capture, order form, survey — and the exact fields it must collect.
  • Decide the Flow type early: choose 'navigate' if the form just gathers answers, or 'data_exchange' if it must call your systems for live data.
  • Note where submissions must land (CRM, webhook, InfiQ inbox) so you can map fields cleanly in Step 3.

Step 2 — Design the screens and the Flow JSON

This is the heart of the build. In InfiQ's visual Flow Builder you lay out one or more screens, each holding the input components your form needs — text fields, dropdowns, radio buttons, checkboxes, date pickers, and a footer button to advance or submit. Under the hood this generates the Flow JSON, which you can also edit directly for fine control. Keep each screen short and single-minded; long screens hurt completion. Give every input a stable, descriptive field key, because that key is exactly how the answer arrives in your payload later.

  • Add screens in the order the customer should experience them, and keep each screen focused on one small chunk of the task.
  • Give every component a clear, stable field name — these keys become the JSON keys in the submission payload.
  • Mark required fields and add validation (email format, numeric ranges) so bad input is caught inside the Flow, not after.
  • Make the final screen a true terminal screen with a submit action — a Flow that never terminates will be rejected.

Step 3 — Connect the Flow to a template and your data

A Flow doesn't send itself — it's launched by a message template carrying a Flow button, or triggered from an interactive reply. In InfiQ you attach the published Flow to a template and choose the right template category, which both governs the message's compliance and determines its cost. For a 'data_exchange' Flow you also wire the endpoint that InfiQ calls mid-Flow, and its responses must be prompt and well-formed JSON. Finally, route submissions to wherever they belong so the answers you collect actually reach a person or a system.

  • Attach the published Flow (not a draft) to a message template, and pick the category honestly — marketing, utility, or authentication.
  • Category matters twice: the wrong one risks rejection, and it sets the per-delivered-message price.
  • For data_exchange Flows, configure the endpoint InfiQ calls, and make sure it replies quickly with valid, expected JSON.
  • Map the Flow's field keys to your destination — CRM fields, webhook payload, or the InfiQ inbox — so nothing is lost.

Step 4 — Test on your own number before anyone else

Never let a customer be your first tester. Send the Flow to your own WhatsApp number and walk through it exactly as a real user would — tap the launch button, complete every screen, submit, and then confirm the payload actually landed where you mapped it in Step 3. This is where you catch the subtle failures: a required field that blocks submission, a data_exchange call that times out, a next-screen action pointing at the wrong screen, or field keys that don't match your CRM. Fix, publish a new version, and test again until a full run is clean end to end.

  • Trigger the Flow from the real template on your own number so you're testing the exact production path.
  • Complete and submit the Flow, then verify the structured data arrived correctly at its destination.
  • For data_exchange Flows, deliberately test slow or error responses from your endpoint to see how the Flow behaves.
  • Re-test after every JSON edit — publish a new version and confirm the live template points at it.

Step 5 — Publish, go live, and monitor

Once a full test run passes cleanly, publish the Flow and enable the template for real customers. Going live isn't the finish line — the first hours of real traffic tell you whether your screens make sense to people who didn't design them. Watch delivery and read status on the launch messages, keep an eye on your number's quality rating, and track how many people open the Flow versus how many actually submit. A high open-but-low-submit rate usually points to a screen that's too long or a field that's confusing, both of which you can fix by editing the JSON and publishing a new version.

  • Publish the Flow and enable its template only after a clean end-to-end test.
  • Monitor delivery and read status, and watch the sending number's quality rating for any dip.
  • Track open-to-submit completion rate — a big gap signals a screen or field worth simplifying.
  • Iterate safely by publishing new Flow versions and pinning the template to the version you've tested.

Do this in InfiQ now

Talk to InfiQ

Want us to set this up with you?

Tell us where you’re stuck — we’ll walk you through it and get you live.

Step 1 of 2
WhatsApp

Protected by invisible spam checks · replies within 1 working day

Frequently asked questions

What is a WhatsApp Flow, exactly?+
A Flow is a native, in-chat form made of one or more screens with structured inputs — dropdowns, date pickers, text fields, radio buttons — that a customer completes without leaving WhatsApp. It replaces a clunky sequence of chat questions with a single guided experience, and returns the answers to you as a clean structured payload.
How long does it take to build a Flow?+
A simple single-screen Flow can be built and tested in well under an hour once your WhatsApp Business API account is active with InfiQ. Multi-screen Flows with a data_exchange endpoint take longer because you also configure and test the server side.
Do I need a developer to build a Flow?+
For most Flows, no. InfiQ's visual Flow Builder lets you design screens and attach them to templates without code. You only need developer involvement if your Flow uses a data_exchange endpoint to fetch or validate live data against your own systems.
What's the difference between a 'navigate' and a 'data_exchange' Flow?+
A 'navigate' Flow moves through pre-defined screens and simply returns the collected answers — no server needed. A 'data_exchange' Flow calls your endpoint mid-Flow to fetch or validate data, so it can show live availability, verify a customer ID, or branch based on what your backend returns.
How much does sending a Flow cost?+
You pay per delivered message for the template that launches the Flow, priced by its category — marketing, utility, or authentication —. InfiQ shows transparent ₹ pricing (ex-GST) on those rates. Messages a customer sends back inside the free 24-hour service window don't carry a per-message charge.
Why is my Flow being rejected or failing?+
The most common causes are the wrong template category, attaching a draft Flow version instead of a published one, a non-terminal final screen, or a data_exchange endpoint that responds too slowly or with malformed JSON. Test on your own number first to catch these before customers do.
Can I edit a Flow after it's live?+
Yes. You edit the Flow JSON and publish a new version. Keep the template pinned to a specific version so an in-progress edit never silently changes what live customers see, and re-test on your own number before rolling the update out widely.
Where does the submitted Flow data go?+
Submissions arrive as a structured payload that InfiQ can route to your CRM, a webhook, a spreadsheet, or the InfiQ inbox — whatever you configure in Step 3. Map the field keys carefully so nothing is dropped between the Flow and your system of record.

Ready to build your first WhatsApp Flow?

Get your official WhatsApp Business API account live with InfiQ and ship a working, tested Flow — with India-based support guiding every step.