Flows API

Send a published WhatsApp Flow and read its submissions. 4 ops: list_flows, send_flow, list_flow_submissions, update_flow_mapping.

Send a published WhatsApp Flow and read its submissions.

List Flows · POST /api/v1/list_flows · scope flows:read or GET …?input=

The WhatsApp Flows (interactive forms built in Meta's Flow Builder) on the organization's accounts, refreshed from Meta: id, name, status (only published Flows can be sent to customers), categories and the field mapping that copies answers onto contacts. The sandbox has a sample feedback Flow to try. Send one with send_flow.

curl -X POST https://getwabi.dev/api/v1/list_flows \  -H "Authorization: Bearer wabi_…"

Send a Flow · POST /api/v1/send_flow · scope flows:write

Sends a published WhatsApp Flow to a customer as an interactive message: a body text and a button (cta) that opens the form. Inside the customer's 24-hour window only (outside it, send a template with a Flow button). The reply is stored as a submission (list_flow_submissions), mapped onto the contact with the Flow's field mapping, and emits flow.submitted. mode draft sends an unpublished Flow to test it. Returns the message.

curl -X POST https://getwabi.dev/api/v1/send_flow \  -H "Authorization: Bearer wabi_…" \  -H "Content-Type: application/json" \  -d '{"phone_number_id":"phone_number_id","to":"15550100001","flow_id":"flow_id","body":"It would save us a trip to Meta Business Manager.","cta":"cta"}'

List Flow submissions · POST /api/v1/list_flow_submissions · scope flows:read or GET …?input=

Answers customers submitted through Flows, newest first: the Flow, the contact, the conversation, the raw response and whether it was mapped onto the contact.

curl -X POST https://getwabi.dev/api/v1/list_flow_submissions \  -H "Authorization: Bearer wabi_…"

Map Flow answers to contact fields · POST /api/v1/update_flow_mapping · scope flows:write

Sets which Flow answers are copied onto the contact when a submission arrives: { "<Flow field name>": "name" | "email" | "locale" | "timezone" | "external_id" | "attributes.<key>" }. Applies to submissions from now on. Returns the Flow.

curl -X POST https://getwabi.dev/api/v1/update_flow_mapping \  -H "Authorization: Bearer wabi_…" \  -H "Content-Type: application/json" \  -d '{"flow_id":"flow_id","field_mapping":{}}'