Peristiwa sesi eksternal

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

Peristiwa sesi eksternal menyediakan mekanisme berbasis push untuk memberi tahu server Anda setiap kali panggilan chat atau suara berubah status. Dengan menyediakan endpoint API, Platform CCAI akan mengirim data peristiwa berformat JSON ke infrastruktur Anda saat transisi terjadi—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 Ekspor Data Sesi, klik Kelola Setelan Ekspor Data. Halaman Ekspor Data Sesi 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 Endpoint API, masukkan URL HTTPS lengkap API target Anda.

      3. Masukkan nama pengguna dan sandi. Platform menggunakan nama pengguna dan sandi 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 Endpoint API, masukkan URL HTTPS lengkap API target Anda.

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

  5. Klik Simpan.

Siklus proses peristiwa dan logika status

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

Tabel progres status

Urutan peristiwa Status Status peserta Poin data utama ditambahkan
1. Mulai connected Eksternal: connected call_id, dn Pelanggan (nomor telepon).
2. Pemilihan rute connected Eksternal: connected queue_path_names, initiator (Agen Virtual).
3. Ditetapkan connected Agen: accepted Nama dan ID agen live ditambahkan.
4. Aktif connected Agen: connected Streaming media dibuat (percakapan dimulai).
5. Akhiri disconnected Keduanya: disconnected Stempel waktu ends_at diisi.
6. Final disconnected Agen: dispositionSubmitted Objek dispositions yang berisi kode penutup.

Referensi skema data peristiwa

Peristiwa dikirim ke webhook dalam sebuah 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 peristiwa.
  • timestamp: Waktu epoch dalam milidetik untuk saat peristiwa dibuat.
  • connected_at dan ends_at: Stempel waktu ISO 8601 untuk durasi sesi.
  • initiator: Mengidentifikasi entity yang menangani perubahan status —misalnya, virtual_agent_15 atau agent_1.
  • dispositions: Objek bertingkat yang berisi code, custom_code_id, dan `note` agen.note

Keamanan

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

Persyaratan pengiriman

  • Metode: POST
  • Content-Type: application/json
  • Batas waktu: Server Anda harus merespons dalam waktu lima detik.
  • Konfirmasi: 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" }
        ]
      }
    }
  ]
}

Disposisi akhir (pekerjaan pascapanggilan)

{
  "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"
            }
          }
        ]
      }
    }
  ]
}