关于 make-call
用于通过 Bolna API 发起和安排外呼的技能,适合管理 Bolna Agent 呼叫的用户。它支持传递联系人变量、设置重试并停止尚未接通的呼叫。
主要功能
- 01发起即时外呼
- 02安排带时区的呼叫
- 03传递动态用户数据
- 04配置重试规则
- 05停止排队或预约的呼叫
适用场景
- 01让 Bolna Agent 发起单次呼叫
- 02安排指定时区的呼叫时间
- 03按结果重试呼叫
- 04取消尚未开始的呼叫
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ bolna-ai/ skills --skill make-call安装后在 Claude Code 中输入/make-call确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
scripts/bulk_make_calls.pymake_call.pyschedule_call.py详细介绍
发起 Bolna 呼叫
端点
- 发起呼叫:
POST https://api.bolna.ai/call - 停止一个排队或已安排的呼叫:
POST https://api.bolna.ai/call/{execution_id}/stop - 检查结果:使用
get-executions和返回的execution_id。
必填字段
agent_id:Bolna Agent UUID。recipient_phone_number:E.164 格式的接收方电话号码,例如+919876543210。
可选字段
from_phone_number:E.164 格式的发送方号码。使用 Bolna 默认外呼号码时可省略。scheduled_at:带时区的 ISO 8601 日期时间,例如2026-05-19T18:30:00+05:30。user_data:提示词或欢迎消息中引用的动态变量,例如{customer_name}。agent_data.voice_id:仅可在同一已配置的 TTS 提供方内覆盖语音。bypass_call_guardrails:为 true 时,跳过此呼叫的 Agent 呼叫时段检查。仅用于测试、紧急情况或明确批准的优先呼叫。retry_config:针对无人接听、占线、失败、错误或语音信箱等情况重试失败的呼叫。
立即呼叫
curl --request POST \
--url https://api.bolna.ai/call \
--header "Authorization: Bearer $BOLNA_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"agent_id": "123e4567-e89b-12d3-a456-426655440000",
"recipient_phone_number": "+919876543210",
"user_data": {
"customer_name": "Amitesh",
"plan": "Pro"
}
}'
预期响应:
{
"message": "done",
"status": "queued",
"execution_id": "123e4567-e89b-12d3-a456-426614174000"
}
始终保存 execution_id;它是 Webhook 和执行查询的关联键。
安排呼叫
{
"agent_id": "123e4567-e89b-12d3-a456-426655440000",
"recipient_phone_number": "+919876543210",
"scheduled_at": "2026-05-19T18:30:00+05:30",
"bypass_call_guardrails": false
}
避免使用不带时区的日期时间字符串。
防护措施
如果 Agent 设置了 calling_guardrails.call_start_hour 和 call_end_hour,Bolna 会根据接收方的当地时区评估这些设置。如果当前时间不在允许的时段内,呼叫可能会被重新安排,而不是立即拨出。仅当用户明确要求忽略该时段时,才使用 bypass_call_guardrails: true。
重试配置
{
"retry_config": {
"enabled": true,
"max_retries": 2,
"retry_on_statuses": ["no-answer", "busy", "failed", "error"],
"retry_on_voicemail": false,
"retry_intervals_minutes": [30, 60]
}
}
对于高流量活动,请注意重试会占用并发容量,也可能与批次呼叫重叠。
停止排队或已安排的呼叫
curl --request POST \
--url "https://api.bolna.ai/call/$EXECUTION_ID/stop" \
--header "Authorization: Bearer $BOLNA_API_KEY"
无法停止已在进行中的呼叫。
脚本
# One-off call
python3 make-call/scripts/make_call.py \
--agent-id "$AGENT_ID" \
--recipient "+919876543210" \
--user-data '{"customer_name":"Amitesh"}'
# Scheduled call (timezone-aware)
python3 make-call/scripts/schedule_call.py \
--agent-id "$AGENT_ID" \
--recipient "+919876543210" \
--at "2026-05-22T15:30:00+05:30"
# Bulk one-off calls from a CSV (for ad-hoc fan-outs; use `create-batch` for proper campaigns)
python3 make-call/scripts/bulk_make_calls.py \
--agent-id "$AGENT_ID" \
--file recipients.csv
另请参阅
create-batch— 基于 CSV 的正式活动,支持监控、重试和停止端点。get-executions— 使用返回的execution_id获取排队呼叫的结果。setup-webhook— 实时接收呼叫更新,而不是轮询。https://raw.githubusercontent.com/bolna-ai/skills/main/references/call-statuses.md— 解读状态转换。bolna-graph-agents/scripts/inject_event.py— 对于图 Agent,向正在进行的呼叫推送实时事件。
评论
支持 Markdown