mcpField
M
make-call

make-call

github.com/bolna-ai其他366 次安装2 天前更新
代码仓库

关于 make-call

用于通过 Bolna API 发起和安排外呼的技能,适合管理 Bolna Agent 呼叫的用户。它支持传递联系人变量、设置重试并停止尚未接通的呼叫。

主要功能

  1. 01发起即时外呼
  2. 02安排带时区的呼叫
  3. 03传递动态用户数据
  4. 04配置重试规则
  5. 05停止排队或预约的呼叫

适用场景

  1. 01让 Bolna Agent 发起单次呼叫
  2. 02安排指定时区的呼叫时间
  3. 03按结果重试呼叫
  4. 04取消尚未开始的呼叫

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/bolna-ai/skills --skill make-call

安装后在 Claude Code 中输入/make-call确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

scripts/
bulk_make_calls.py
make_call.py
schedule_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