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
Click "Flow Builder" in the left sidebar under the Voice section.
Click the "+ New Procedure" button. Choose between Flow Builder (visual, step-by-step) or Agentic (AI-driven, flexible). Give it a name.
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.
Steps automatically connect in order. Use the Link button to connect a step to an existing node elsewhere in the flow.
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:
| Node | What It Does | When 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).
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:
| Feature | Flow 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 |
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.
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 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.
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.
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.
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_birthis much clearer thandobwhen 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.