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

# Build your first flow

> Create a small conversation flow, test its branches, and publish a version for an assistant.

A flow gives an assistant an explicit conversation path: ask a question, collect an answer, choose a branch, and take an action. Start with one short journey before adding integrations.

## Before you start

Open the client subaccount where the assistant will run. You need access to that subaccount and working model access in **LLM Config**. A flow assigned to an assistant must belong to the same subaccount.

## Create a simple flow

1. Open **Flow Builder** and create a flow with a recognizable name, such as “Appointment enquiry”.
2. Keep a Conversation node as the start of your example. Give it one task: ask whether the visitor wants a new appointment or help with an existing booking.
3. Add two Conversation nodes for those outcomes. Add a condition to each outgoing path and connect its handle to the matching destination.
4. Add an **End Convo** node for a clear finish. Connect any path that should end the conversation.
5. Use **Global Prompt** for instructions that apply throughout the conversation. Use each node's prompt for its specific task.
6. Wait for **Saved**, then open **Test**. Click **Start conversation**. The drawer’s channel choices do not reproduce the live channel.
7. Test both paths and an unclear answer. Check that the flow asks for clarification instead of claiming an action happened.

Use Logic for decisions based on known variables, Extraction to collect values from conversation, Tool for reusable actions, and Request for a direct HTTP call. Frame and Sticky nodes organize the canvas; they do not perform customer actions.

## Publish and use the flow

Click **Publish** after the draft tests pass. Saving updates the draft; publishing creates the version assistants use. In the assistant's model selector, choose the published flow, then publish the assistant and test its actual channel.

A successful editor conversation checks the flow's conversation path. A phone call or website test also checks routing, audio or embedding, and the connected actions.

## If something is missing

* **Flow is absent from the assistant selector:** check the subaccount and publish the flow.
* **A branch never runs:** confirm its condition and connect the corresponding handle.
* **The editor works but the assistant behaves differently:** publish the latest flow and confirm the assistant is assigned to it.

Continue with [conversation nodes](/v3/guides/flows/conversation-node), [testing](/v3/guides/flows/test), and [model access](/v3/guides/flows/model-access).

## Node types

The add-node menu contains these 12 choices. Choose a processing node only when its inputs and outgoing connections are ready.

| Node | Purpose and setup |
| - | - |
| Conversation | Prompted or fixed response, outgoing conversational conditions, shared/global routing, examples, and optional model override. [All settings](/v3/guides/flows/conversation-node). |
| Tool | Run a tool assigned from the subaccount; configure synchronous/background behavior and optional spoken filler. [All settings](/v3/guides/flows/run-tools). |
| API Call | Configure a direct HTTP request, headers, query/body values, and response variable. [All settings](/v3/guides/flows/api-requests). |
| Logic | Compare existing values with ordered branches and a default path. [All operators](/v3/guides/flows/conditions). |
| Extraction | Ask the model to extract named values from conversation. [All field types](/v3/guides/flows/collect-values). |
| Variable | Assign named values without an extraction model call. [Assignment behavior](/v3/guides/flows/collect-values). |
| End Convo | Finish the conversation; optional fixed closing text and end webhook. [All settings](/v3/guides/flows/execution#end-convo-settings). |
| Personal agent | Forward the latest user message to a paired external agent. Select an existing connection or create one, copy its one-time token/setup command, and complete pairing. Check connection status before using it; **Revoke** removes that connection’s access. It is not an ordinary prompted Conversation node. |
| Frame | Group canvas content visually; no conversation action. |
| Sticky Note | Add canvas notes; no conversation action. |
| Channel | Visible in the menu, but currently has no executable routing behavior. Use Logic with a channel value explicitly supplied to the flow. |
| Transfer | Visible in the menu, but currently has no executable transfer behavior. Use a configured transfer tool through a Tool node and test the actual call. |

## Flow-wide controls

| Control | What it changes |
| - | - |
| Flow name | Identifies the flow in the editor and assistant selector. |
| Global Prompt | Instructions applied with Conversation node instructions. |
| Variables | Named defaults and optional first-turn initialization webhook. [Every built-in and initialization option](/v3/guides/flows/variables). |
| LLM Config | Provider credentials, default model, temperature, and fallback. [All settings](/v3/guides/flows/model-access). |
| Test | Runs the saved draft with a separate test session. [Controls and limitations](/v3/guides/flows/test). |
| Publish | Creates the version used by assigned assistants. |
| Version history | Review saved versions and restore a selected version to the editor; test and publish the restored draft when ready. |
| Knowledge | Available in support-mode flows. It is not a general replacement for assigning a knowledge base to the assistant. |

Choose a starting node using **Make starting point**. A flow needs one reachable start and connected exits for each intended path. Canvas layout, notes, and frames do not fix missing connections.


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