Bolna

Usage Instructions

Run outbound voice AI calls with Bolna, the voice AI platform built for India. Place single or scheduled calls with per-call variables, run CSV batch campaigns, read transcripts, summaries, extracted data, recordings, and costs, create and update agents, and search and buy phone numbers. Bolna can also trigger workflows when a call ends.

Actions

Bolna Buy Phone Number

Buy a phone number found with Search Phone Numbers. This charges your Bolna account a recurring monthly rental fee (the price shown by Search Phone Numbers) that renews every month until the number is deleted.

Input

ParameterTypeRequiredDescription
apiKeystringYesBolna API key (Bolna dashboard → Developers → API Keys)
countrystringYesCountry of the number: US or IN
phoneNumberstringYesNumber to buy in E.164 format, as returned by Search Phone Numbers
providerstringNoTelephony provider of the number: twilio, plivo, or vobiz
complianceApplicationIdstringNoApproved compliance application to buy under, when the account has more than one (India DLT)

Output

ParameterTypeDescription
idstringID of the purchased phone number record
phoneNumberstringPurchased number (E.164)
agentIdstringAgent linked to the number
pricenumberMonthly price in cents
telephonyProviderstringTelephony provider
renewalbooleanWhether the monthly rental auto-renews
bolnaOwnedbooleanWhether Bolna owns the number
paymentUuidstringPayment transaction ID
telephonySidstringNumber's ID at the telephony provider
createdAtstringWhen the number was bought
updatedAtstringWhen the record last changed

Bolna Create Agent

Create an English Bolna voice AI agent from a name, system prompt, and welcome message, with an OpenAI-compatible LLM, an ElevenLabs voice, and an optional webhook URL for call results.

Input

ParameterTypeRequiredDescription
apiKeystringYesBolna API key (Bolna dashboard → Developers → API Keys)
agentNamestringYesName of the agent
systemPromptstringYesSystem prompt the agent follows on every call. Use {{variable}} placeholders for per-call user data
welcomeMessagestringNoFirst thing the agent says when the call connects
webhookUrlstringNoURL that receives the execution payload as each call progresses
llmProviderstringNoLLM provider: openai (default), anthropic, google, deepseek, azure-openai, or openrouter
llmModelstringNoLLM model ID for that provider (default gpt-5.4-mini)
voiceNamestringNoElevenLabs voice name (default Angelica)
voiceIdstringNoElevenLabs voice ID matching the voice name
voiceModelstringNoElevenLabs model (default eleven_turbo_v2_5)
telephonyProviderstringNoTelephony provider: plivo (default), twilio, exotel, or vobiz
callSummaryEnabledbooleanNoGenerate an AI summary after each call

Output

ParameterTypeDescription
agentIdstringID of the new agent
statestringCreation state (created)
versionIdstringID of the initial agent version

Bolna Create Batch

Create a batch calling campaign for a Bolna agent from a CSV of recipients. The CSV needs a contact_number column (E.164); every other column becomes a prompt variable. The batch does not dial until it is scheduled with Schedule Batch.

Input

ParameterTypeRequiredDescription
apiKeystringYesBolna API key (Bolna dashboard → Developers → API Keys)
agentIdstringYesID of the Bolna agent that places the batch calls
csvContentstringYesRecipients as CSV text with a header row, e.g. "contact_number,customer_name\n+919876543210,Asha"
fromPhoneNumbersstringNoComma-separated caller IDs (E.164) to spread the batch across
webhookUrlstringNoURL that receives the batch payload when it finishes processing and again when every call ends

Output

ParameterTypeDescription
batchIdstringID of the new batch; pass it to Schedule Batch
statestringBatch state (created)

Bolna Get Agent

Get a Bolna voice AI agent's configuration, including its system prompt and task setup.

Input

ParameterTypeRequiredDescription
apiKeystringYesBolna API key (Bolna dashboard → Developers → API Keys)
agentIdstringYesID of the Bolna agent

Output

ParameterTypeDescription
idstringAgent ID
agentNamestringAgent name
agentTypestringAgent type
agentStatusstringAgent status (seeding or processed)
callSummaryEnabledbooleanWhether a summary is generated after each call
createdAtstringWhen the agent was created
updatedAtstringWhen the agent was last updated
systemPromptstringSystem prompt of the first task (agent_prompts.task_1)
agentPromptsjsonPrompts per task, keyed task_1, task_2, ... each with system_prompt
tasksarrayAgent tasks with their task_type, tools_config (llm_agent, synthesizer, transcriber, input, output), toolchain, and task_config

Bolna Get Execution

Get a Bolna call by execution ID: status, transcript, summary, extracted data, recording, cost, and telephony details. Duration, cost, recording, and extractions are final only once status is completed or another terminal status.

Input

ParameterTypeRequiredDescription
apiKeystringYesBolna API key (Bolna dashboard → Developers → API Keys)
executionIdstringYesExecution ID returned by Make Call

Output

ParameterTypeDescription
executionIdstringExecution ID of a placed or stopped call
messagestringResponse message from Bolna
statusstringCall status
idstringExecution, agent, or phone number record ID
agentIdstringAgent ID
batchIdstringBatch ID
conversationDurationnumberConversation length in seconds
totalCostnumberTotal call cost in cents
transcriptstringCall transcript ("assistant:" / "user:" turns)
summarystringAI call summary, when enabled on the agent
extractedDatajsonPost-call extracted data
errorMessagestringCall error message
answeredByVoiceMailbooleanWhether voicemail answered
recordingUrlstringCall recording URL
toNumberstringRecipient phone number
fromNumberstringCaller phone number
hangupBystringWhich side ended the call
hangupReasonstringWhy the call ended
callTypestringinbound or outbound
createdAtstringCreation timestamp
updatedAtstringLast update timestamp
costBreakdownjsonCost breakdown in cents (llm, network, platform, synthesizer, transcriber, totalCostToDeduct)
telephonyDatajsonTelephony details (duration, toNumber, fromNumber, recordingUrl, provider, providerCallId, hangupBy, hangupReason, hangupProviderCode, ...)
contextDetailsjsonRecipient context the call ran with
executionsjsonCalls on this page (id, status, conversationDuration, createdAt, telephonyData)
totalnumberTotal matching calls
pageNumbernumberPage returned
pageSizenumberResults per page
hasMorebooleanWhether another page is available
agentsjsonAgents (id, agentName, agentType, agentStatus, callSummaryEnabled, createdAt, updatedAt)
agentNamestringAgent name
agentTypestringAgent type
agentStatusstringAgent status
callSummaryEnabledbooleanWhether call summaries are on
systemPromptstringAgent system prompt (task_1)
agentPromptsjsonPrompts per task (task_1, ...)
tasksjsonAgent task configuration
statestringResult state (created, updated, scheduled)
versionIdstringInitial version ID of a created agent
phoneNumbersjsonPhone numbers: owned (id, phoneNumber, agentId, price, telephonyProvider, rented, renewalAt) or available (phoneNumber, region, locality, provider, price)
phoneNumberstringPurchased phone number
pricenumberMonthly price of the purchased number in cents
telephonyProviderstringTelephony provider of the number
renewalbooleanWhether the number rental auto-renews
bolnaOwnedbooleanWhether Bolna owns the number
paymentUuidstringPayment transaction ID
telephonySidstringNumber's ID at the telephony provider

Bolna List Agent Executions

List an agent's calls created within a date range of at most 7 days, newest first, with optional status, call type, provider, voicemail, and batch filters. List results are a trimmed projection; use Get Execution for the full call record.

Input

ParameterTypeRequiredDescription
apiKeystringYesBolna API key (Bolna dashboard → Developers → API Keys)
agentIdstringYesID of the Bolna agent whose calls to list
fromstringYesStart of the created_at range, UTC ISO 8601 (e.g. 2026-06-07T00:00:00.000Z). At most 7 days before To
tostringYesEnd of the created_at range, UTC ISO 8601 (e.g. 2026-06-14T00:00:00.000Z)
statusstringNoOnly calls with this status (e.g. completed, no-answer, busy, failed)
callTypestringNoOnly inbound or outbound calls
providerstringNoOnly calls on this provider: twilio, plivo, exotel, vobiz, trunk, sip-trunk, web-call, or websocket
answeredByVoiceMailbooleanNoFilter by whether voicemail answered the call
batchIdstringNoOnly calls from this batch
pageNumbernumberNoPage to return, starting at 1 (default 1)
pageSizenumberNoResults per page, 1-50 (default 20)

Output

ParameterTypeDescription
executionsarrayCalls on this page, newest first
totalnumberTotal matching calls
pageNumbernumberPage returned
pageSizenumberResults per page
hasMorebooleanWhether another page is available

Bolna List Agents

List every voice AI agent in the Bolna account with its name, type, and status.

Input

ParameterTypeRequiredDescription
apiKeystringYesBolna API key (Bolna dashboard → Developers → API Keys)

Output

ParameterTypeDescription
agentsarrayAgents in the account
↳ idstringAgent ID
↳ agentNamestringAgent name
↳ agentTypestringAgent type
↳ agentStatusstringAgent status (seeding or processed)
↳ callSummaryEnabledbooleanWhether a summary is generated after each call
↳ createdAtstringWhen the agent was created
↳ updatedAtstringWhen the agent was last updated

Bolna List Phone Numbers

List the phone numbers in the Bolna account with their linked agent, provider, monthly price, and renewal date.

Input

ParameterTypeRequiredDescription
apiKeystringYesBolna API key (Bolna dashboard → Developers → API Keys)

Output

ParameterTypeDescription
phoneNumbersarrayPhone numbers in the account
↳ idstringPhone number record ID
↳ phoneNumberstringPhone number (E.164)
↳ agentIdstringAgent linked to the number
↳ pricestringMonthly rental price (e.g. $5.0)
↳ telephonyProviderstringTelephony provider
↳ rentedbooleanWhether the number was bought from Bolna
↳ renewalAtstringNext renewal date
↳ createdAtstringWhen the number was added
↳ updatedAtstringWhen the number was last updated

Bolna Make Call

Place an outbound phone call from a Bolna voice AI agent, now or at a scheduled time. Returns the execution ID used to track the call.

Input

ParameterTypeRequiredDescription
apiKeystringYesBolna API key (Bolna dashboard → Developers → API Keys)
agentIdstringYesID of the Bolna agent that places the call
recipientPhoneNumberstringYesPhone number to call, in E.164 format (e.g. +919876543210)
fromPhoneNumberstringNoCaller ID in E.164 format; must be a number in your Bolna account. Defaults to the account's default number
scheduledAtstringNoWhen to place the call, as ISO 8601 with a time zone offset (e.g. 2026-06-05T16:35:00+05:30). Leave empty to call now
userDatajsonNoVariables injected into the agent prompt and welcome message, e.g. {"customer_name": "Asha"} fills {{customer_name}}
bypassCallGuardrailsbooleanNoIgnore the agent's calling-hours guardrails and call immediately

Output

ParameterTypeDescription
executionIdstringExecution ID of the call; use it with Get Execution
statusstringInitial call status (queued)
messagestringResponse message from Bolna

Bolna Schedule Batch

Schedule a created Bolna batch to start calling at a time up to 30 days ahead. Times less than 10 minutes ahead start immediately.

Input

ParameterTypeRequiredDescription
apiKeystringYesBolna API key (Bolna dashboard → Developers → API Keys)
batchIdstringYesID of the batch returned by Create Batch
scheduledAtstringYesStart time as ISO 8601 with a numeric offset (e.g. 2026-06-23T18:30:00+05:30), within 30 days
bypassCallGuardrailsbooleanNoIgnore the agent's calling-hours guardrails for every call in the batch

Output

ParameterTypeDescription
messagestringResponse message (success)
statestringBatch state (scheduled)

Bolna Search Phone Numbers

Search phone numbers available to buy in the US or India, optionally by a 3-digit prefix and provider, with their monthly price in USD.

Input

ParameterTypeRequiredDescription
apiKeystringYesBolna API key (Bolna dashboard → Developers → API Keys)
countrystringYesCountry to search: US or IN
patternstringNo3-character prefix the number should start with
providerstringNoTelephony provider: twilio, plivo, or vobiz

Output

ParameterTypeDescription
phoneNumbersarrayNumbers available to buy
↳ phoneNumberstringPhone number (E.164)
↳ regionstringRegion of the number
↳ localitystringLocality, when available
↳ friendlyNamestringFriendly label, when set
↳ providerstringTelephony provider
↳ pricenumberMonthly price in USD

Bolna Stop Call

Cancel a Bolna call that is still queued or scheduled. Calls already dialing or in progress cannot be stopped.

Input

ParameterTypeRequiredDescription
apiKeystringYesBolna API key (Bolna dashboard → Developers → API Keys)
executionIdstringYesExecution ID of the queued or scheduled call to stop

Output

ParameterTypeDescription
executionIdstringExecution ID of the stopped call
statusstringNew call status (stopped)
messagestringResponse message from Bolna

Bolna Update Agent

Partially update a Bolna agent: name, welcome message, system prompt, webhook URL, calling-hours window, or call summary. Fields left empty keep their saved values.

Input

ParameterTypeRequiredDescription
apiKeystringYesBolna API key (Bolna dashboard → Developers → API Keys)
agentIdstringYesID of the Bolna agent to update
agentNamestringNoNew agent name
welcomeMessagestringNoNew welcome message spoken when the call connects
systemPromptstringNoNew system prompt for the first task (task_1)
webhookUrlstringNoNew URL that receives the execution payload as each call progresses
callStartHournumberNoStart of the allowed outbound calling window, 0-23 in the recipient's time zone. Set together with the end hour
callEndHournumberNoEnd of the allowed outbound calling window, 0-23 in the recipient's time zone, at or after the start hour
callSummaryEnabledbooleanNoGenerate an AI summary after each call

Output

ParameterTypeDescription
messagestringResponse message (success)
statestringUpdate state (updated)

Triggers

A Trigger is a block that starts a workflow when an event happens in this service.

Bolna Call Completed

Trigger workflow when a Bolna call reaches a final status, with its transcript, summary, extracted data, recording, and cost

Configuration

ParameterTypeRequiredDescription
completedOnlybooleanNoRun only when the call status is completed. When off, the trigger also runs for no-answer, busy, failed, canceled, stopped, error, and balance-low calls.
restrictToBolnaIpsbooleanNoReject deliveries that do not come from Bolna’s documented webhook IPs (13.203.39.153, 13.126.9.249, 13.202.133.53).

Output

ParameterTypeDescription
idstringExecution (call) ID
agentIdstringAgent that ran the call
batchIdstringBatch the call belongs to, if any
statusstringFinal call status: completed, no-answer, busy, failed, canceled, stopped, error, or balance-low
conversationDurationnumberConversation length in seconds; 0 means no conversation happened
totalCostnumberTotal call cost in cents
transcriptstringNewline-delimited transcript of "assistant:" and "user:" turns
summarystringAI call summary (only when the agent's call summary is enabled)
extractedDatajsonPost-call extractions configured on the agent, keyed by category then field
errorMessagestringError message, if any
answeredByVoiceMailbooleanWhether voicemail answered the call
recordingUrlstringCall recording URL
toNumberstringRecipient phone number (E.164)
fromNumberstringCaller phone number (E.164)
hangupBystringWhich side ended the call
hangupReasonstringWhy the call ended
callTypestringinbound or outbound
createdAtstringWhen the execution was created
updatedAtstringWhen the execution last changed
costBreakdownobjectcostBreakdown output from the tool
↳ llmnumberLLM cost in cents
↳ networknumberTelephony cost in cents
↳ platformnumberBolna platform cost in cents
↳ synthesizernumberVoice synthesis cost in cents
↳ transcribernumberTranscription cost in cents
↳ totalCostToDeductnumberWallet deduction in cents
telephonyDataobjecttelephonyData output from the tool
↳ durationnumberProvider-reported call duration in seconds
↳ toNumberstringRecipient number (E.164)
↳ fromNumberstringCaller number (E.164)
↳ recordingUrlstringCall recording URL
↳ hostedTelephonybooleanWhether the number is Bolna-hosted
↳ providerCallIdstringTelephony provider's call ID
↳ callTypestringinbound or outbound
↳ providerstringTelephony provider
↳ hangupBystringWhich side ended the call
↳ hangupReasonstringNormalized hangup reason
↳ hangupProviderCodenumberProvider's raw hangup code
↳ ringDurationnumberSeconds spent ringing
↳ postDialDelaynumberSeconds from dial to first ring
↳ toNumberCarrierstringCarrier of the dialed number
contextDetailsjsonRecipient context the call ran with (recipient_phone_number, recipient_data)
payloadjsonThe full execution payload as Bolna delivered it