用工作區的一個電話號碼撥一通電話。每個請求都需要唯一的 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": "Alex", "order_id": "1234" }
}'
工作區有不止一個電話號碼時必須帶 from。variables 會填入 Agent 開場白和提示詞裡 {{customer_name}} 這類佔位符。
開啟 voicemail_detection(預設)時,外撥會先等對方說話,Agent 再打招呼;對方一直不出聲時,Agent 在兩三秒後打招呼。Agent 聽到語音信箱或電信業者的錄音時,會等問候語和嗶聲結束,留下 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": "Asked by email" }'
號碼為國際格式,一次最多 1,000 個。GET /api/v1/voice/do-not-call 依新到舊列出(search、limit、page),每筆都有 source(call、dashboard 或 api)。DELETE /api/v1/voice/do-not-call/%2B14155550100 把一個號碼移出名單;只有在對方同意接聽時才這麼做。