> ## Documentation Index
> Fetch the complete documentation index at: https://knowledge.flowella.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Build a WhatsApp Flow in the Flowella designer

> Build a WhatsApp Flow on a blank canvas in Flowella: add fields and screens, set logic and routing, publish versions and review submissions.

The Flow designer builds a WhatsApp Flow on a blank canvas, without a HubSpot form. You add fields and screens, decide which fields show and which screen comes next, then publish. Every publish creates a new version, and every submission is stored against the version the contact completed.

Use the designer when the form only needs to exist in WhatsApp, or when you don't use HubSpot forms. To turn an existing HubSpot form into a Flow and send answers back to HubSpot, [sync the form](https://knowledge.flowella.io/app/flows.md) instead.

## Before you start

* A WhatsApp number is connected to Flowella. Flows belong to one WhatsApp number, so select the number you will send from before you create the Flow.
* To send the Flow, you need an approved template with a Flow button. See [Send the Flow](#send-the-flow).

## Create a Flow

**1. Open the Flows page**

In the sidebar, select **Flows**.

**2. Start a new Flow**

Select **New Flow**, enter a **Flow name**, for example "Contact request", and select **Create Flow**.

**3. Build it**

The designer opens on the **Build** tab with an empty first screen. Your Flow is listed under **Your Flowella Flows** on the Flows page, with an **Open designer** link.

The designer has six tabs: **Build**, **Submissions**, **Versions**, **Logic**, **Routing** and **Settings**.

## Build tab

The **Build** tab has three areas: the **Field palette**, the **Screen canvas** with a live phone preview, and **Field properties**.

### Add fields

Select a field type in the palette to add it to the current screen:

| Field | What the contact does |
| - | - |
| **Short answer** | Types a single line. |
| **Paragraph** | Types several lines. |
| **Email** | Types an email address. |
| **Phone** | Types a phone number. |
| **Number** | Types a number. |
| **Dropdown** | Picks one option from a list. |
| **Single choice** | Picks one option. |
| **Multiple choice** | Picks one or more options. |
| **Date** | Picks a date. |
| **Photo or document** | Uploads a photo or a document. |
| **Opt-in** | Ticks a box, for example to agree to marketing messages. |

### Set field properties

Select a field on the canvas to edit it in **Properties**:

* **Field label** and **Help text**: what the contact sees.
* **Required**: the contact cannot continue until they answer.
* **Validation**: for text fields, check the answer is an **Email address**, a **Phone number** or a **Web address**.
* **Options**: for choice fields, add, rename and remove options.
* **Permanent field ID**: the ID that identifies this field in submissions, exports and webhooks. Select **Copy field ID** to copy it.

Field IDs never change and are never reused. If you remove a field that is in a published version, it stays in the list marked **Removed in draft, ID reserved**, and you can **Restore** it.

### Add screens

Select **Add screen** to add another screen. Each screen can hold up to 50 components, which is Meta's limit. The designer warns you as a screen gets close, and you cannot publish a screen that goes over.

The phone preview shows the selected screen as the contact will see it. Use **Continue** and **Back** in the preview to move between screens.

## Logic tab

**Conditional logic** shows or hides fields based on earlier answers. Select **Add rule**, then choose:

* **Trigger field**: the answer the rule checks.
* **Operator** and **Value**: the condition, for example equals **Yes**.
* **Action**: **Show** or **Hide**.
* **Target fields**: the fields the rule shows or hides.

If a contact answers a field and a later answer hides it, Flowella keeps the answer and submits it. Don't treat an answer as proof that the field was visible.

## Routing tab

**Screen routing** chooses which screen follows each answer and where every path ends.

* The first screen is the **Entry** screen.
* Add a **Conditional** branch to send the contact to a different screen depending on an answer, and a **Fallback** for everyone else.
* Mark the last screen of each path as a **Terminal screen**. A terminal screen can count as a **Successful outcome** and can have its own **Completion message for this screen**.

Back in WhatsApp returns the contact to the previous screen with their answers kept, following the path they actually took. If the routing has a problem, for example a screen no path reaches or a path with no end, the tab lists it under **Fix routing before publishing** and the designer won't publish until you fix it.

## Save and publish

* **Save draft** keeps your changes without changing what contacts see.
* **Publish v1**, or **Publish as v2** and so on, publishes the draft to WhatsApp as a new version.

If WhatsApp rejects the Flow, the designer shows **WhatsApp could not publish this Flow**, with the screen and component to fix. Fix it, save the draft and publish again. A failed publish never changes the version that is already live.

## Versions tab

**Versions** lists every version you have published. Published versions cannot be edited: expand one to see what it contained. The current version shows **Live** and earlier ones show **Retired**, each with its number of submissions.

**Carrier template** shows the approved template whose Flow button opens the live version. If no template opens it yet, the tab says so.

> [!NOTE]
>
> A template keeps opening the version it was built with. Publishing a new version does not change what an existing template sends, so contacts never see a Flow change halfway through a campaign. To send the new version, create or update a template so its Flow button uses it.

## Submissions tab

**Submissions** shows each contact's answers against the version they completed. Use the version filter to show **All versions** or one version. If a submission came from a retired version, its questions show with the labels they had then.

Select **Export CSV** to download the submissions.

## Settings tab

* **Completion message**: what the contact sees after they submit.
* **Language**: the language of the Flow.
* **Destinations**: where submissions go. The **Flowella submission store** is always on, so every submission appears on the **Submissions** tab. You can also send each submission to one of your organisation's webhooks. Set up webhook URLs and signing secrets in [Settings → Webhooks](https://knowledge.flowella.io/settings/webhooks.md) first.

Select **Save settings** to keep your changes.

## Send the Flow

A Flow reaches contacts through an approved template with a Flow button.

1. Create a template with a Flow button and choose this Flow. See [Buttons](https://knowledge.flowella.io/app/template-reference.md#buttons).
2. Submit the template for approval.
3. Send it from a bulk send, the Inbox, a HubSpot workflow or the API.

When a contact submits, the answers appear on the **Submissions** tab and go to any webhook you chose in **Settings**.

## Related

> [card] [Sync a HubSpot form to a Flow](https://knowledge.flowella.io/app/flows.md)
>
> Build a Flow from a HubSpot form and send answers back to HubSpot.

> [card] [Form design best practices](https://knowledge.flowella.io/app/form-design-best-practices.md)
>
> Keep Flows short and easy to finish on a phone.

> [card] [Webhooks](https://knowledge.flowella.io/settings/webhooks.md)
>
> Send submissions to your own systems.

> [card] [Template reference](https://knowledge.flowella.io/app/template-reference.md)
>
> Add a Flow button to a template.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.