ワークスペースの電話番号から 1 件発信します。すべてのリクエストに一意の 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" }
}'
ワークスペースに電話番号が 2 つ以上ある場合は from が必須です。variables はエージェントの最初のメッセージとプロンプトの {{customer_name}} のようなプレースホルダーを埋めます。
voicemail_detection が有効(既定)の場合、発信時はエージェントが挨拶する前に相手が話すのを待ちます。相手が黙っていれば、2〜3 秒後にエージェントが挨拶します。留守番電話や電話会社の録音が聞こえたら、エージェントは応答メッセージと発信音が終わるのを待って voicemail_message を残し、なければ切断します。こうした通話は ended_reason が voicemail で終わり、通話時間分が課金され、分析や通知は行われません。
キャンペーンでは、留守番電話につながった番号は応答がなかった番号と同じく再度発信され、メッセージは最後の試行でのみ残されるため、同じメッセージが 2 回残ることはありません。
キャンペーンからでも POST /api/v1/voice/calls からでも、すべての発信はまずワークスペースの発信停止リストを確認します。リストにある番号には決して発信しません。API は code が do_not_call の 409 を返し、キャンペーンはその連絡先を outcome が do_not_call の canceled として次に進みます。
エージェントが発信した通話で相手がもう電話しないでほしいと言うと、エージェント自身がその番号をリストに追加して相手に伝え、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 で 1 件削除できますが、相手が電話を受けることに同意した場合にのみ行ってください。