to select ↑↓ to navigate
Docs

Docs

Introduction

A WhatsApp Flow is an interactive multi-screen form that opens inside the WhatsApp chat when a customer taps a button on a message. The customer fills in the form — text fields, dropdowns, date pickers, radio buttons — and the structured response is captured in iVendNext Desk as a record. Flows are a Meta Cloud API capability; they are not supported on WASender accounts.

Path in the application

[Path to be confirmed: navigate to WhatsApp Flow in iVendNext Desk.]

Prerequisites

Before you create a WhatsApp Flow, you need:

  • At least one active WhatsApp Account of type Meta configured in iVendNext.

  • A registered test phone number on your Meta Business account if you intend to test the Flow before publishing.

  • A clear definition of the form — what fields to collect, in what order, across how many screens.

  • Permissions on the iVendNext site equivalent to System Manager or higher.

How to create

  1. Open a new WhatsApp Flow record.

  2. Enter a Flow Name to identify the Flow across the system. Flow names must be unique.

  3. Select the WhatsApp Account the Flow will be published under. The account must be of type Meta.

  4. Select a Category for the Flow. Options include APPOINTMENT_BOOKING, LEAD_GENERATION, SURVEY, SIGN_UP, SIGN_IN, CONTACT_US, CUSTOMER_SUPPORT, OTHER, and others as defined by Meta.

  5. Optionally enter a Description of the Flow.

  6. Optionally customise the Call to Action — the label shown on the button customers tap to open the Flow (default: Open Form).

  7. Set the Flow JSON Version (default: 6.0).

  8. Add screens in the Screens child table. Each screen needs:

  • Screen ID — a unique identifier within the Flow (e.g. SCREEN_1, SCREEN_2).

  • Screen Title — the heading shown to the customer on this screen.

  • Terminal — check this on the final screen of the Flow. At least one screen must be marked Terminal.

  • Refresh on Back — optional; controls whether returning to this screen clears its inputs.

  1. Add fields in the Fields child table. Each field needs:
  • Field Type — see the supported types below.

  • Screen — the Screen ID this field belongs to.

  • Field Name — the identifier used in the response payload (for input fields).

  • Label — the visible label shown to the customer.

  • Optional properties depending on type: Required, Helper Text, Initial Value, Min Characters, Max Characters, Options (JSON for dropdown/radio/checkbox fields).

  1. Save the record. The Flow JSON is generated automatically from the screens and fields.

  2. Click Create on WhatsApp to push the Flow to Meta. The Flow's Flow ID populates on the record.

  3. Click Upload Flow JSON to push the current Flow definition to Meta (also runs automatically on initial Create).

  4. Optionally click Send Test to send the Flow as a test message to a registered test phone number for validation.

  5. Click Publish to make the Flow available to all customers. Published Flows cannot be edited — to change the Flow after publishing, click Deprecate and create a new Flow.

Features

Supported input field types

TextInput (single line), TextArea (multi-line, with optional character limits), Dropdown (selection from a JSON-defined option list), RadioButtonsGroup (single selection), CheckboxGroup (multiple selection), DatePicker (date selection), OptIn (consent checkbox).

Supported display field types

TextHeading, TextSubheading, TextBody, TextCaption (text content at varying sizes), Image (embedded image), EmbeddedLink (clickable link), Footer (the screen's submit/navigation button).

Multi-screen Flows

Flows can span multiple screens. Data entered on earlier screens is passed forward to subsequent screens via the screen payload, so a value entered on Screen 1 is available on Screen 2 if referenced in the layout.

Terminal screen

Every Flow must designate at least one screen as Terminal. The Terminal screen is where the Flow submits the collected data and ends the customer's interaction. The submission triggers an nfm_reply webhook event from Meta to iVendNext, where the response is captured.

Client-only execution

Flows in this implementation run entirely on the customer's device — no server endpoint is required to host the Flow. Meta delivers the Flow JSON to the customer's WhatsApp client; the client renders the screens; the responses are returned via webhook on completion. This is simpler to operate than endpoint-driven Flows but provides no dynamic content per screen.

Auto-generated Flow JSON

The system generates the Flow's underlying JSON definition automatically from the screens and fields configured on the record. The generated JSON is visible (read-only) in the Flow JSON field for inspection or troubleshooting. You do not need to edit the JSON manually.

Lifecycle controls

Buttons on the Flow record correspond to the Meta-side lifecycle: Create on WhatsApp registers the Flow with Meta and assigns a Flow ID; Upload Flow JSON pushes the latest definition; Publish moves the Flow to production status; Deprecate marks the Flow as no longer offered for new sends; Delete from WhatsApp removes it from Meta entirely; Get Status refreshes the local record with Meta's current state; Sync from WhatsApp imports the remote Flow definition back into the local record.

Send Test

The Send Test button on the Flow record opens a dialog accepting a phone number and an optional message. The Flow is sent in draft mode to the phone number, which must be registered as a test number in Meta Business Manager. Draft Flows can only be sent to test numbers; production Flows are sent to any customer.

Response capture

When a customer completes a Flow and submits, Meta sends an nfm_reply webhook event to iVendNext. The system parses the response, creates an incoming WhatsApp Message record with content_type = flow, stores the parsed response in the Flow Response Data field as JSON, and publishes a realtime event named whatsapp_flow_response. Downstream automation can react to either the message record or the realtime event.

Sync from Meta

The Sync from WhatsApp action on the WhatsApp Flow list view imports all Flows from a selected WhatsApp Account back into iVendNext. New Flows are created as records; existing Flows are updated with the latest status and JSON. The screen and field structure of the imported Flow is parsed automatically from the JSON definition.

Published Flows are immutable

Once a Flow is in Published status, its definition is locked. To change a published Flow, click Deprecate to retire it and create a new Flow as a new record. Customers who already have an instance of the deprecated Flow open can still complete it; new sends must use the replacement Flow.

**

Last updated 2 weeks ago
Was this helpful?
Thanks!