Bolna
Voice & TelephonyPlace outbound calls from a Bolna conversational voice agent and read the transcript and outcome back. Agents run phone conversations at scale and escalate to a person when the caller needs one.
What This Integration Enables
Bolna is built around two ideas that make it unusually well suited to supervised work. The first is that calls are asynchronous: placing one returns an execution ID, and the real result, transcript, recording URL, cost and agent-extracted data, arrives when you poll for it. The second is that the batch is a first-class object with a gap between creation and dialling. Create Batch uploads the recipients. Schedule Batch is what actually sets it running, at least two minutes out and rounded up to the next ten minute mark. Between those two calls there is a window in which nothing has happened yet and Stop Batch can still cancel the whole thing.
That window is rare, and it is worth designing around. Most calling platforms give you a start button and a regret. Bolna gives you a queued state you can inspect, sample and cancel, plus Stop Call for pulling back an individual scheduled call before it reaches the recipient. An agent can build a reminder run from live appointment data, render the variables, show a person what a few recipients will actually hear, and let that person decide whether the run goes ahead. The digital andon cord is not a metaphor here; the platform ships the cord and FlowRunner decides when to pull it.
Without FlowRunner
With FlowRunner
Use Case Scenarios
Appointment reminder run with a review window
The evening before a clinic's appointment block, a flow reads tomorrow's confirmed bookings and builds a CSV where contact_number holds the patient's number in E.164 format and every other column becomes a prompt variable: first name, appointment time, clinician, location. The agent calls Create Batch, then renders what the agent will say for a sample of rows and posts them with the total count and the wallet balance from Get Current User. If the operations owner confirms, the batch is already scheduled and runs. If they spot that the time column picked up the booking's creation time instead of its start time, the agent calls Stop Batch and nobody gets told to arrive at 3am.
One call per new lead, tracked to completion
A lead lands in the CRM. The agent calls Make Call from the qualifying agent with the lead's details as prompt variables and gets back an execution ID. Because the call is asynchronous, the flow polls Get Execution until the status becomes completed rather than trusting the first response, then writes the transcript, recording URL, duration, cost and extracted fields into Pipedrive. Calls that ended in voicemail get a follow-up SMS instead of a second dial, because the extracted status says the phone was answered by a machine.
Batch progress reported without pulling every record
A large outreach run is underway. Rather than downloading every execution, a monitoring flow polls Get Batch for the count-wise breakdown of calls by status, and only calls List Batch Executions when it needs per-recipient detail for a segment that is failing. When the failure rate for one number range crosses a threshold, the agent stops the run with Stop Batch, leaving the already completed calls untouched, and reports the pattern to the person who owns the campaign as an automation exception rather than continuing to burn balance against a broken route.
Human-in-Loop Highlight
The gate lives in the gap between Create Batch and the moment the batch starts dialling. Bolna will not let a batch start less than two minutes out and rounds the start up to the next ten minute boundary, which is exactly enough room for a person to look before two thousand phones ring. So the reminder agent builds the batch, then posts a message that shows the work rather than announcing it: "Batch ready for the 06 Aug clinic block. 2,412 recipients. Scheduled to start 18:40. Sample of what three recipients will hear, with their rendered variables. Wallet balance 1,190. Confirm to let it run, or reply hold." Silence is not consent here; the flow treats an unconfirmed batch as one to cancel, and calls Stop Batch. A wrong merge field in a reminder run is not a failed job you retry, it is thousands of people told the wrong thing by a voice that sounded certain. The agent does the assembly. The person owns the moment it becomes audible.
Agent Capabilities
19 actionsCalls
5- Make Call Places an outbound call from a Bolna agent to a recipient number and returns an execution ID for tracking. The call is asynchronous, so poll Get Execution for the final status, transcript, recording URL and extracted data. Supports scheduling for a future time, injecting dynamic prompt variables, overriding the agent voice and configuring automatic retries for unanswered calls.
- Stop Call Cancels a call that has not been dialled yet, meaning its status is still queued or scheduled. Used to pull back a scheduled outbound call before it reaches the recipient. Calls already in progress cannot be cancelled here.
- Get Execution Retrieves the full record of a single call: status, transcript, recording URL, conversation duration, cost breakdown, telephony metadata and any data the agent extracted. Note that the call-disconnected status is not final; duration, cost, recording URL and extracted data stay empty until the status becomes completed a few seconds later.
- List Agent Executions Returns a paginated list of calls placed by a single agent within a date range, newest first. Both timestamps are required and the window cannot exceed seven days. Narrow by call status, direction, telephony provider, voicemail detection and batch. This is the primary reporting endpoint for call outcomes.
- List Batch Executions Returns every call belonging to a single batch as a plain array, each with its own status, transcript and cost. Used after a batch runs to collect per-recipient outcomes.
Batches
6- Create Batch Creates a batch of outbound calls for an agent from a CSV of recipients. The CSV must have a contact_number column in E.164 format, and every other column becomes a prompt variable for that recipient. Creating a batch does not start dialling.
- Schedule Batch Schedules a previously created batch to start dialling at a given time, which is what actually sets it running. The start must be at least two minutes out and Bolna rounds it up to the next ten minute mark, so a request for 12:03 begins at 12:10.
- List Batches Returns every calling batch created for an agent, with status, scheduled time, uploaded file name, valid and total contact counts and a count-wise breakdown of call progress.
- Get Batch Retrieves a single batch with its current status, scheduled time, contact counts and the count-wise breakdown of its calls by status. Used to track progress without pulling every call record.
- Stop Batch Halts a batch that is queued or currently placing calls, leaving already completed calls untouched. This is the abort that makes a scheduled run reviewable rather than irreversible.
- Delete Batch Permanently deletes a calling batch from the account. Stop Batch first if the batch is still running.
Agents
3- List Agents Returns every voice agent on the account with its name, type, current build status and configured tasks. These agent IDs are what a call or batch is placed against.
- Get Agent Retrieves the full configuration of a single voice agent, including its prompts, task configuration, ingestion source and build status. Used to confirm a newly created agent has finished seeding before calls run against it.
- Update Agent Updates selected settings on an existing agent: display name, welcome message, telephony provider, allowed calling hours and the webhook URL that receives execution data. Setting the webhook URL replaces whatever value the agent currently holds.
Voices
2- List Voice Providers Returns the text to speech providers available to the account with the models each one offers and any custom voices the account has cloned, filterable by supported language.
- List Voices Returns the individual voices offered by a given provider and model, each with gender, accent, age range, sample use cases and a preview URL. The voice ID returned here is what overrides the voice on a call.
Account
3- List Phone Numbers Returns the numbers provisioned on the account with telephony provider, monthly rental price, renewal date and the agent each is attached to. These are the caller IDs available for calls and batches.
- List Knowledge Bases Returns the knowledge bases uploaded to the account with their processing status and chunking configuration. Used to confirm a document has finished processing before running calls that depend on it.
- Get Current User Returns the account the API key authenticates as, including current wallet balance and how many concurrent calls are running against the account limit. Used as the guard before a large run: a batch that outruns the balance or the concurrency ceiling stops halfway through a list.
Triggers
1 triggersEvent Triggers
1- On Call Finished Fires when a call reaches a finished status. Used to pull the completed execution, write the transcript and extracted fields into the system of record, and branch follow-up work on how the call actually ended rather than on the fact that it ended.
Frequently Asked Questions
What can FlowRunner do with Bolna?
FlowRunner agents can run Make Call, Stop Call, and Get Execution in Bolna, plus 16 more actions.
Does connecting Bolna to FlowRunner require OAuth?
No. Bolna connects to FlowRunner with an API key, no OAuth flow required.
Can Bolna trigger a FlowRunner workflow automatically?
Yes. Bolna supports 1 trigger that can start a FlowRunner workflow automatically.
Start building with Bolna
$100 in credits. No card required. Connect in minutes.