从工作区的某个电话号码打出一通电话。每个请求需要一个唯一的 Idempotency-Key;用同一个值重发会返回同一通电话,不会重复拨打。
curl https://evasay.com/api/v1/voice/calls \
-X POST \
-H "Authorization: Bearer sk-your-key" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"agent_id": "AGENT_ID",
"to": "+14155550100",
"variables": { "customer_name": "王先生", "order_id": "1234" }
}'
工作区有多个电话号码时必须填 from。variables 用来替换开场白和提示词里的 {{customer_name}} 这类占位符。
Agent 开着 voicemail_detection(默认开)时,外呼接通后先听对方开口再说开场白;对方一直不说话,等两三秒后照常开场。听出是语音信箱或运营商的录音提示时,等提示音结束后留下 voicemail_message,没填就直接挂断。这样的通话 ended_reason 为 voicemail,只按实际时长扣点数,不做通话分析,也不发通话通知。
外呼任务里,接到语音信箱的号码和没接通一样按规则重拨,只在最后一次拨打时留言,同一个人不会收到好几条一样的留言。
每一通外呼,不管来自外呼任务还是 POST /api/v1/voice/calls,拨号前都会先查工作区的拒呼名单。名单上的号码不会被拨打:API 返回 409,code 为 do_not_call;外呼任务把这个联系人标为 canceled、outcome 为 do_not_call,接着拨下一个。
Agent 外呼时对方要求不要再打来,Agent 会自己把号码加进名单并告诉对方,同时发送 call.do_not_call Webhook。也可以在 外呼任务 → 拒呼名单 里或用 API 添加、移除号码:
curl https://evasay.com/api/v1/voice/do-not-call \
-X POST \
-H "Authorization: Bearer sk-your-key" \
-H "Content-Type: application/json" \
-d '{ "phones": ["+14155550100"], "note": "邮件里要求不再来电" }'
号码用国际格式,一次最多 1000 个。GET /api/v1/voice/do-not-call 按加入时间从新到旧列出(可带 search、limit、page),每条带来源 source(call、dashboard 或 api)。DELETE /api/v1/voice/do-not-call/%2B14155550100 把号码移出名单;只在对方同意再接电话时才这样做。