# WhatsApp Flow

Send a form you built and published in WhatsApp Manager to a WhatsApp customer behind a button, inside the messaging window, and keep each submission under Forms.

## Getting here

**Automate → Workflows**, open a workflow, click **+** on the canvas, then pick **WhatsApp Flow (form)** under **Add Steps**.

## Before you start

- An **owner**, **admin** or **agent** can add this step and save the workflow. Publishing that workflow — the thing that makes it run on live conversations — is an **owner** or **admin** action.
- Building and running workflows depends on your plan; see [pricing](/pricing).
- The Flow must already be **published** in WhatsApp Manager. Inchat does not build or publish Flows — you build them in WhatsApp Manager, then send them from here.
- A WhatsApp number must be connected to this workspace.

## Set up

1. Open the workflow and click **+** where the form belongs.
2. Pick **WhatsApp Flow (form)**.
3. Write the **Message** the customer sees above the button. You can insert variables into it.
4. Under **Select Flow**, pick one of your published Flows. If the list is empty or cannot be read, click **Enter Flow ID** and type the number WhatsApp Manager shows for the Flow.
5. Check **First screen ID**. It is filled in from the Flow when Inchat can read it — confirm it, or type the screen ID from WhatsApp Manager if it could not be read.
6. Write the **Button** text, and optionally a **Header** and **Footer Text**.
7. Save the step, then publish the workflow.

## Fields

| Field | What it means | Default | Limits |
| --- | --- | --- | --- |
| Message | The text shown above the button. Variables can be inserted into it. | — | — |
| Header (optional) | A short line shown above the message. Variables in it are filled in at send time. | empty | — |
| Footer Text (optional, max 60 chars) | A small line shown below the message. | empty | At most 60 characters. |
| Button (required, max 20 chars) | The text on the button the customer taps to open the form, e.g. **Open form**. | — | Required, and at most 20 characters. The step cannot be saved without it. |
| Select Flow | The published Flow to send, listed by name from the Flows on your WhatsApp numbers. **Preview flow** opens WhatsApp's preview when it gives one. | — | Only published Flows are listed. **Enter Flow ID** is the fallback when the list is empty or cannot be read; a Flow ID is digits only. |
| First screen ID | The screen the Flow opens on. WhatsApp needs it to send the Flow. | — | Required — the step cannot be saved or published without it. It is prefilled from the Flow; when the Flow does not say which screen opens first, Inchat fills in the first screen in its list, so check it in WhatsApp Manager. |

## How it works

- The step sends your message with a button. When the customer taps it, the Flow opens inside WhatsApp; nothing is sent to them again when they finish.
- It is a free-form send, so it follows the same 24-hour messaging-window check as **Send a Message**, and it is WhatsApp only.
- Each send is kept by Inchat with its own token, so a submission can be matched back to the send it answered.
- When the customer submits the Flow, the answers are saved under **Forms → WhatsApp Flows** — open the Flow to see its responses, one row per submission, with the contact, each answer, and when it was submitted. Each row links to the conversation.
- The conversation thread shows the submission as a line that starts **Form submitted —**.

## When it fails

- Messaging window closed: the send is refused before it reaches WhatsApp, and the step is recorded as failed in the workflow's **Activity** tab. Nothing reaches the customer.
- Wrong Flow ID or first screen ID, or a Flow WhatsApp will not send: the step fails with WhatsApp's own reason in the execution log.
- A throttled send is not retried as plain text — a message without its Flow button is not the step you built, so the step fails instead.
- The step cannot be saved or published while the Flow, the first screen ID, the message or the button text is missing.

## Limits

- It sends only inside the 24-hour window. Outside it, use **Send WhatsApp Template** — this step does not send a Flow through a template.
- WhatsApp only. On any other channel the step does not send.
- The Flow must be published in WhatsApp Manager first. This step cannot create, edit or publish a Flow.
- It does not copy the customer's answers into contact fields. The answers stay under **Forms → WhatsApp Flows** and in the thread's **Form submitted —** line.

## Best practices

- Put this step right after a message the customer just sent, or on a path that runs well inside the window, and use **Send WhatsApp Template** for anything that can run a day later.
- Open the Flow once in WhatsApp Manager and confirm the first screen before you publish the workflow, especially when Inchat had to guess it.

## Use cases

- A booking form sent when a customer asks to book a slot.
- A short survey sent after a conversation is resolved, while the window is still open.

## FAQ and troubleshooting

### Where do the customer's answers go?

Under **Forms → WhatsApp Flows**. Open the Flow to see one row per submission. The conversation also shows a **Form submitted —** line.

### My Flow is not in the list.

Only published Flows are listed. Publish it in WhatsApp Manager, or click **Enter Flow ID** and type its ID.

### Can I send a Flow after the 24-hour window has closed?

Not with this step. Use **Send WhatsApp Template** to reopen the conversation, then send the Flow once the customer replies.

## Related

- [Send a Message](https://inchat.inseller.my/help/workflows/send-a-message)
- [Send WhatsApp Template](https://inchat.inseller.my/help/workflows/send-whatsapp-template)
- [Workflow triggers](https://inchat.inseller.my/help/workflows/workflow-triggers)
- [Test and publish a workflow](https://inchat.inseller.my/help/workflows/test-and-publish)
- [Workflows: how a flow runs](https://inchat.inseller.my/help/workflows/workflows-overview)

---

Source files: `src/lib/workflows/canvas-model.ts`, `src/lib/workflows/engine-message-actions.ts`, `src/lib/workflows/form-payload.ts`, `src/lib/workflows/window-lint.ts`, `src/components/workflows/WhatsAppFlowStepEditor.tsx`, `src/lib/i18n/messages/whatsapp-flows.ts`
