Peristiwa sesi eksternal

Kemampuan peristiwa sesi eksternal memungkinkan streaming data real-time dari CCAI Platform ke sistem eksternal Anda menggunakan webhook. Hal ini memberikan visibilitas langsung ke siklus proses sesi untuk pelaporan kustom, pembaruan data CRM, atau alur kerja pasca-interaksi otomatis.

Peristiwa sesi eksternal menyediakan mekanisme berbasis push untuk memberi tahu server Anda setiap kali status panggilan suara atau chat berubah. Dengan menyediakan endpoint API, Platform CCAI akan mengirimkan data peristiwa berformat JSON ke infrastruktur Anda saat terjadi transisi—misalnya, panggilan terhubung, agen ditetapkan, sesi terputus.

Mengonfigurasi peristiwa sesi eksternal

Untuk mengonfigurasi peristiwa sesi eksternal, ikuti langkah-langkah berikut:

  1. Di portal Platform CCAI, klik Setelan > Setelan Developer. Jika Anda tidak melihat menu Setelan, klik Menu.

  2. Di panel Session Data Export, klik Manage Data Export Settings. Halaman Session Data Export akan muncul.

  3. Buka panel Peristiwa Sesi Eksternal, lalu klik tombol untuk mengaktifkannya.

  4. Lakukan salah satu atau kedua hal berikut:

    • Untuk mengonfigurasi peristiwa sesi panggilan eksternal, lakukan hal berikut:

      1. Centang kotak Peristiwa panggilan - Kirim peristiwa sesi panggilan.

      2. Di kolom API Endpoint, masukkan URL HTTPS lengkap dari target API Anda.

      3. Masukkan nama pengguna dan sandi. Platform menggunakan kredensial ini untuk autentikasi dasar.

    • Untuk mengonfigurasi peristiwa sesi chat eksternal, lakukan hal berikut:

      1. Centang kotak Peristiwa chat - Kirim peristiwa sesi chat.

      2. Di kolom API Endpoint, masukkan URL HTTPS lengkap dari target API Anda.

      3. Masukkan nama pengguna dan sandi. Platform menggunakan kredensial ini untuk autentikasi dasar.

  5. Klik Simpan.

Siklus proses peristiwa dan logika status

Saat sesi berlangsung, Platform CCAI mengirim beberapa update. Setiap pembaruan memperkaya objek item dengan lebih banyak metadata saat tersedia.

Tabel progres status

Urutan peristiwa Negara bagian/Provinsi Status peserta Titik data utama ditambahkan
1. Mulai connected Eksternal: connected call_id, Pelanggan dn (nomor telepon).
2. Merutekan connected Eksternal: connected queue_path_names, initiator (Agen Virtual).
3. Ditugaskan connected Agen: accepted Nama dan ID agen aktif ditambahkan.
4. Aktif connected Agen: connected Aliran media dibuat (percakapan dimulai).
5. Akhiri disconnected Keduanya: disconnected Stempel waktu ends_at diisi.
6. Akhir disconnected Agen: dispositionSubmitted Objek dispositions yang berisi kode penutup.

Referensi skema data peristiwa

Peristiwa dikirim ke webhook dalam objek. Setiap peristiwa webhook memiliki struktur yang sama, yang ditampilkan dalam tabel berikut:

Objek root

Kolom Jenis Deskripsi
count Bilangan bulat Jumlah objek peristiwa dalam payload saat ini.
events Array Kumpulan objek peristiwa yang berisi detail sesi.

Kolom sesi utama

  • event_id: UUID untuk notifikasi acara.
  • timestamp: Waktu epoch dalam milidetik saat peristiwa dibuat.
  • connected_at dan ends_at: Stempel waktu ISO 8601 untuk durasi sesi.
  • initiator: Mengidentifikasi entitas yang menangani perubahan status—misalnya, virtual_agent_15 atau agent_1.
  • dispositions: Objek bertingkat yang berisi code, custom_code_id, dan note agen.

Keamanan

Semua permintaan dikirim dengan header Otorisasi standar: Authorization: Basic <base64_encoded_credentials>

Persyaratan pengiriman

  • Metode: POST
  • Content-Type: application/json
  • Waktu tunggu: Server Anda harus merespons dalam waktu lima detik.
  • Pengakuan: Endpoint Anda harus menampilkan kode status 200 OK. Platform mungkin menggunakan percobaan ulang backoff eksponensial jika kode non-200 diterima.

Contoh payload

Berikut adalah contoh payload yang diterima dalam pesan peristiwa ke webhook.

Percakapan aktif (media terhubung)

{
  "count": 1,
  "events": [
    {
      "event_id": "fc066edb-d99f-4db4-ba04-fb5dfea0e86a",
      "timestamp": 1767874769480,
      "type": "CallState",
      "item": {
        "call_id": 1395,
        "state": "connected",
        "queue_path_names": "Test/Talk to Andrew/English",
        "participants": [
          { "state": "connected", "type": "external", "dn": "+15555555555" },
          { "state": "connected", "type": "agent", "name": "Joe Smith", "agent_number": "528431" }
        ]
      }
    }
  ]
}

Penyelesaian akhir (pekerjaan pasca-panggilan)

{
  "count": 1,
  "events": [
    {
      "event_id": "479798ff-b1ed-4a5c-a910-17a7edb3f283",
      "timestamp": 1767874769480,
      "type": "CallState",
      "item": {
        "call_id": 1395,
        "state": "disconnected",
        "participants": [
          {
            "type": "agent",
            "state": "dispositionSubmitted",
            "dispositions": {
              "code": "Call completed",
              "custom_code_id": "callComplete",
              "note": "none"
            }
          }
        ]
      }
    }
  ]
}