Help Centerโ€บVoiceโ€บFlow Builder

Flow Builder

Create visual conversation flows that guide your AI agent step-by-step through customer calls.

What is the Flow Builder?

The Flow Builder is where you design exactly how your AI handles phone calls. Using a visual drag-and-drop canvas, you create a series of steps โ€” like asking a question, speaking a message, or checking a condition โ€” that your AI follows during a call.

Think of it like drawing a flowchart: each box is a step in the conversation, and lines connect them to show the order. When a caller phones in, your AI walks through this flowchart from top to bottom.

What You Can Do Here

๐Ÿ”€

Build Visual Flows

Drag and drop steps on a canvas to build conversation paths your AI will follow.

๐Ÿค–

Create Agentic Procedures

Give your AI written instructions for a more natural, flexible conversation style.

๐Ÿ“

Save Drafts & Publish

Work on flows in draft mode, then publish when they're ready for live calls.

๐Ÿงช

Create Variants for A/B Tests

Make alternate versions of a procedure to test which one performs better.

Getting Started

Open the Flow Builder

Click "Flow Builder" in the left sidebar under the Voice section.

Create a new procedure

Click the "+ New Procedure" button. Choose between Flow Builder (visual, step-by-step) or Agentic (AI-driven, flexible). Give it a name.

Add your first step

Click the "+" button on the canvas or "Add your first step." Pick a node type (like Ask or Say) and configure it in the side panel.

Connect steps together

Steps automatically connect in order. Use the Link button to connect a step to an existing node elsewhere in the flow.

Save and publish

Click "Save Draft" to save your progress. When you're ready, click "Publish" to make the flow live for incoming calls.

Node Types Explained

Each step in your flow is a "node." Here's what each type does:

NodeWhat It DoesWhen to Use It
โ“ Ask Asks the caller a question and saves their answer to a variable. Gathering account numbers, dates, names, or choices.
๐Ÿ’ฌ Say Speaks a message to the caller without expecting a response. Greetings, confirmations, sharing information.
โšก Action Calls an external API (like your CRM) to fetch or send data. Looking up customer records, checking balances, creating tickets.
โ—† Condition Checks a value and sends the call down different paths. Routing based on account type, balance thresholds, or choices.
๐Ÿ”— Jump Sends the caller to a different procedure or escalates to a human agent. Transferring to specialized flows or handing off to an agent.
๐Ÿ“ฑ SMS Sends a text message to the caller during the call. Sending confirmation links, appointment details, or reference numbers.
๐Ÿšจ Escalation Transfers the call to a human agent. When the AI can't resolve the issue or the caller requests a person.

Ask Node โ€” In Detail

The Ask node is one of the most powerful and commonly used steps. Here's how to get the most out of it:

Writing the Prompt

This is what the AI says to the caller. Keep it short and clear โ€” remember, people are listening, not reading. For example: "What's your account number?" works better than "Could you please provide me with the account number associated with your profile?"

Setting a Variable Name

The caller's answer is saved to a variable you name. Use descriptive names like account_number or date_of_birth, not vague names like value1. You can use these variables later in other nodes by writing {{account_number}}.

Validation

You can add rules to make sure the caller's answer is in the right format. For example, require exactly 10 digits for a phone number. If the answer doesn't match, the AI will ask again.

Confirmation

For important information like account numbers or dates, turn on confirmation. The AI will repeat back what it heard and ask "Is that correct?" before moving on.

Retry Logic

Set how many times the AI should re-ask if it doesn't understand. You can write custom retry messages that get progressively more helpful, and decide what happens after the maximum retries (usually escalate to a human).

๐Ÿ’ก Tip Enable sentiment response on Ask nodes at high-friction points. If the caller sounds frustrated during data collection, the AI will adjust its tone to be more empathetic.

Using Variables

Variables are how information flows through your procedure. When an Ask node collects a piece of data, or an Action node fetches something from an API, the result is stored in a variable that you can use in later steps.

To insert a variable into any text field, use double curly braces:

Hello {{customer_name}}, I see your balance is ${{account_balance}}.

Built-in Variables

These are always available, even without any Ask or Action nodes:

  • {{caller_phone}} โ€” The caller's phone number
  • {{callSid}} โ€” A unique ID for this call
  • {{last_asr}} โ€” The last thing the caller said (speech recognition result)

Flow Builder vs. Agentic Procedures

BLEUM offers two ways to build call procedures. Here's how to decide which to use:

FeatureFlow Builder (Visual)Agentic (AI-Driven)
How it works Step-by-step nodes on a visual canvas Written instructions the AI follows flexibly
Best for Strict processes with clear steps Natural conversations and FAQ handling
Conversation order Fixed โ€” follows the flow exactly Flexible โ€” AI adapts to what the caller says
Setup effort More work upfront, but very predictable Faster to set up, but requires good instructions
Example use case Account verification, appointment booking General support, product Q&A, troubleshooting
โ„น๏ธ Good to know You can use both types in the same account. Many businesses use Flow Builder for structured processes (like verifying identity) and Agentic procedures for open-ended support questions.

System Flows โ€” Welcome and Escalation

Every BLEUM account has two built-in system flows that run automatically and cannot be deleted: the Welcome flow and the Escalation flow. You can edit and customise them, but they are always present.

Welcome flow

The Welcome flow is the entry point for every incoming call. When a caller rings your number, the Welcome flow runs first โ€” before any of your published procedures. It typically plays an opening message, optionally gathers some initial context, and then the AI routes the caller to the most relevant published procedure based on what they say.

By default the Welcome flow contains a single Say node with a generic greeting. You can edit it to match your brand โ€” add your company name, set the tone, or use an Ask node to gather the caller's name or account number upfront before routing begins.

๐Ÿ’ก Tip Keep the Welcome flow short and warm. Callers haven't told you what they need yet โ€” this is just the handshake. Save the detail for your published procedures.

Escalation flow

The Escalation flow handles transfers to a human agent. It only runs when a published procedure explicitly triggers escalation โ€” for example, when a caller asks to speak to a person, or when an after-hours condition routes them out. It is not the default ending for calls; most calls resolve fully through your published procedures without ever reaching escalation.

The Escalation flow contains a Say node (your hold message) and an Agent Escalation node where you configure phone forwarding or Zendesk Talk routing.

How system flows appear in the interface

System flows are shown in the System Flows section at the top of the Flow Builder list โ€” separate from your published and draft procedures. They have a lock icon indicating they cannot be deleted. You can click either system flow to open and edit it on the canvas just like any other procedure.

The Call Journey rail at the top of the Flow Builder page shows you a live visual of the full call path: Incoming call โ†’ Welcome โ†’ Your procedures (the AI routes dynamically between them) โ†’ Call resolved or Escalation if needed.

โ„น๏ธ Line Groups: System flows are always available to all callers on all line groups. The "Available on" group assignment does not appear when editing a system flow โ€” it applies automatically across every line.

Line Group Assignment

If your organization has Line Groups set up (on the Phone Numbers page), each procedure must be assigned to one or more groups before callers on those lines can reach it. The assignment is controlled directly from the canvas header when you open a procedure.

The "Available on" row

When you open a procedure in Flow Builder, you'll see an Available on: row just below the back button. It shows each of your line groups as a checkbox. Check the groups this procedure should be available to. If all groups are checked, the hint reads "Available to all line groups" in green.

โš ๏ธ Important: If you have groups defined but leave a procedure with no groups checked, callers won't be routed to it. You'll see a warning when publishing an unassigned procedure.

How procedures are grouped in the list view

On the Flow Builder list page, published procedures are organized into buckets based on their exact group assignment โ€” for example, procedures assigned to only "Sales" appear under a Sales heading, and procedures assigned to both "Sales" and "Support" appear under their own combined heading. This makes it easy to see at a glance which procedures serve which lines.

๐Ÿ’ก Single number? If you have no line groups defined, the "Available on" row doesn't appear at all. All published procedures are automatically available to all callers.

Publishing and Drafts

Every procedure starts as a draft. Drafts are only visible to you โ€” they won't affect live calls. When you're ready, click Publish to make the procedure available for incoming calls.

After publishing, you can still make changes. Just edit, save as a draft, and publish again when you're ready. Your previous published version stays live until you publish the new one.

โš ๏ธ Important Publishing takes effect immediately. Always test your flow with a real phone call before publishing changes to a procedure that's already handling live traffic.

Tips & Best Practices

  • Start simple โ€” Build a basic flow first, test it, then add complexity. It's easier to troubleshoot a small flow than a large one.
  • Save drafts often โ€” Your work isn't automatically saved. Click "Save Draft" frequently, especially after making big changes.
  • Keep prompts conversational โ€” Write the way you'd speak. Avoid formal or robotic language.
  • Use descriptive variable names โ€” date_of_birth is much clearer than dob when you revisit the flow later.
  • Enable confirmation on critical data โ€” Account numbers, dates, and phone numbers should always be confirmed with the caller.
  • Plan for errors โ€” Always set retry messages and decide what happens when the caller can't provide valid input.
  • Test with real calls โ€” The best way to find issues is to call your number and go through the flow yourself.

Common Questions

The Welcome flow is a system flow that runs at the start of every incoming call. It plays your opening message and then the AI routes the caller to the appropriate published procedure. You can fully edit the Welcome flow โ€” change the greeting, add nodes, adjust the tone โ€” but you cannot delete it. It appears in the System Flows section at the top of the Flow Builder.

Yes. BLEUM matches incoming calls to the right procedure based on the topic detected in the caller's initial request. You can have as many published procedures as you need.

BLEUM validates your flow when you publish. If there's a structural issue (like a node with no connections), you'll see a warning. If an error occurs during a live call, the system will gracefully escalate to a human agent if one is configured.

Open the procedure you want to test, then click "+ Add Variant." This creates a copy of the flow that you can modify. Once published, BLEUM will automatically split traffic between the original and the variant so you can compare performance.

Currently, each publish overwrites the previous version. We recommend saving drafts at key milestones and testing thoroughly before publishing.