ThunderPhone 2.0 เปิดให้ใช้งานแล้วเริ่มใช้งานได้ด้วยตัวเอง ราคาเริ่มต้น 2 เซนต์ต่อนาที.อ่านประกาศเปิดตัว

Developer cookbook

โทรออก (API)

ทริกเกอร์การโทรออกที่ขับเคลื่อนด้วย AI จากโค้ดของคุณเอง สำหรับโฟลว์แบบสำรวจ ติดตามผล หรือยืนยัน

การโทรออกช่วยให้คุณส่งหมายเลขปลายทางและการกำหนดค่าเอเจนต์ให้ ThunderPhone แล้วให้ AI โทรแทนคุณ กรณีการใช้งานทั่วไป:

  • การยืนยันนัดหมาย
  • การโทรกลับเพื่อทำแบบสำรวจ
  • การติดตามผล "ครั้งที่สอง" หลังจากรับสายไม่ทัน
  • การแจ้งเตือนรูปแบบการจัดส่ง

ข้อกำหนดเบื้องต้น

  1. เตรียมหมายเลข VoIP

    การโทรออกกำหนดให้คุณต้องเป็นเจ้าของ from_number ผ่าน การเชื่อมต่อ VoIP หมายเลข ThunderPhone ใช้สำหรับสายเข้าเท่านั้น ดู นำหมายเลขของคุณมาใช้เอง

  2. สร้างเอเจนต์

    พรอมป์ต์สำหรับการโทรออกมักเริ่มต้นด้วยการที่เอเจนต์ระบุตัวตนและวัตถุประสงค์ — "สวัสดี นี่คือ Acme โทรมาเพื่อยืนยันนัดหมายของคุณสำหรับพรุ่งนี้เวลา 15:00 น.…" ตั้งค่า outbound_speak_order เป็น agent_first (ค่าเริ่มต้น)

  3. รักษายอดคงเหลือให้เป็นบวก

    การโทรออกจะส่งกลับ 402 Payment Required หากยอดคงเหลือ ≤ $0.00 เติมเงินผ่าน POST /v1/billing/top-up หรือเปิดใช้ การเติมเงินอัตโนมัติ

โทรด้วยเอเจนต์ที่บันทึกไว้

วิธีที่ง่ายที่สุด — อ้างอิงเอเจนต์ด้วย id:

curl -X POST https://api.thunderphone.com/v1/call \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from_number": "+15551234567",
    "to_number":   "+14155550199",
    "agent_id":    12
  }'

การตอบกลับ:

{ "call_id": 987654321, "status": "initiated" }

โทรด้วยการกำหนดค่าแบบอินไลน์

หากคุณต้องการพรอมป์ต์ใช้ครั้งเดียวที่ไม่คุ้มค่าจะบันทึกเป็นเอเจนต์ ให้ส่ง config แทน โครงสร้างจะตรงกับสคีมาการตอบกลับของ เว็บฮุก call.incoming:

curl -X POST https://api.thunderphone.com/v1/call \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from_number": "+15551234567",
    "to_number":   "+14155550199",
    "config": {
      "prompt":  "You are confirming Jane Doe appointment for 3pm tomorrow…",
      "voice":   "john",
      "product": "spark"
    }
  }'

ติดตามสาย

ในขณะเดียวกัน ให้สมัครรับ เว็บฮุก telephony.complete — วิธีที่เร็วที่สุดในการทราบว่าสายสิ้นสุดแล้ว หากคุณไม่สามารถรับ เว็บฮุกขาเข้าได้ ให้ตรวจสอบ GET /v1/calls/{call_id} ทุกสองสามวินาที ระเบียนจะมี end_reason, duration_seconds และ URL ของไฟล์บันทึกเสียง เมื่อสายสิ้นสุด

รูปแบบความล้มเหลวที่ควรจัดการ

ข้อผิดพลาดวิธีแก้ไข
402 Payment Requiredเติมเงินในยอดคงเหลือหรือเปิดใช้การเติมเงินอัตโนมัติ
403 บล็อกการโทรออก (หมายเลข ThunderPhone)ใช้หมายเลข VoIP แทน
403 บล็อกการโทรออก (VoIP ที่ยังไม่ได้ยืนยัน)เรียกใช้ POST /v1/phone-numbers/{id}/verify-voip
404 from_number is not registered to this organizationยืนยันว่า from_number ตรงกับหมายเลขโทรศัพท์ที่คุณเป็นเจ้าของ
502 Bad Gatewayความล้มเหลวชั่วคราวของ SIP / LiveKit สามารถลองใหม่ได้อย่างปลอดภัย

การควบคุมเวลาพักสาย

การโทรออกที่ใช้เวลานานเนื่องจากผู้รับสายตอบสนองช้า (เมนู IVR คิว) สามารถกำหนดเพดานได้ด้วย max_hold_seconds:

{
  "from_number": "+15551234567",
  "to_number":   "+14155550199",
  "agent_id":    12,
  "max_hold_seconds": 120
}

เอเจนต์จะวางสายหากไม่ได้รับเสียงจากมนุษย์ภายใน N วินาทีที่ผ่านมา ค่าเริ่มต้นคือ 900 (15 นาที)


ขั้นตอนถัดไป