Dokumen ini menjelaskan skema data metadata sesi chat. Data metadata adalah dokumen JSON yang dibuat Contact Center AI Platform untuk sesi chat dukungan. CCAI Platform mengirimkan data metadata ke integrasi CRM Anda sebagai bagian dari perintah session-end chat. Saat Anda mengaktifkan penyimpanan eksternal, CCAI Platform juga menulis rekaman ke konfigurasi penyimpanan eksternal Anda menggunakan file metadata.json. Setiap chat menghasilkan satu data, yang
diidentifikasi secara unik oleh id tingkat teratas. Gunakan skema ini untuk menyerap data ke dalam sistem downstream, memvalidasi payload yang diterima, atau memetakan kolom ke kolom data warehouse.
Root skema
Data metadata sesi chat adalah satu objek JSON yang mewakili satu sesi chat. Tiga konsep di tingkat teratas menentukan identitas dan bentuk data.
Kunci utama: id (bilangan bulat)
Mengidentifikasi sesi chat secara unik dalam tenant Anda. Satu data ada per
chat. Semua kolom, array, dan objek bertingkat tingkat teratas lainnya menjelaskan atribut
chat yang diidentifikasi oleh id ini.
Handler discriminator: agent_info (object, oneOf)
Satu objek yang bentuknya bervariasi bergantung pada pengendali terakhir chat. Kedua varian ini bersifat eksklusif — hanya satu yang akan ada:
Varian agen manusia: Ada saat penangan terakhir chat adalah agen manusia. Membawa
email,first_name,last_name, danagent_numberselain kolomid,name, danavatar_urlbersama.Varian agen virtual: Ada saat penangan terakhir chat adalah agen virtual. Membawa
va_aliasdan menghilangkanemail,first_name,last_name, danagent_number.
Untuk mendeteksi varian yang dibawa oleh data, periksa keberadaan kolom khusus varian, biasanya agent_info.email untuk varian agen manusia atau agent_info.va_alias untuk varian agen virtual. Definisi lengkap untuk
setiap varian muncul di Definisi: agent dan Definisi:
virtual_agent.
Diskriminator bentuk chat: chat_type, session_type, session_type_v2
(string)
Tiga tampilan paralel dari jenis chat pokok yang sama. Keduanya tidak pernah berselisih pendapat tentang jenis chat yang diwakili oleh data; keduanya hanya berbeda dalam kosakata yang digunakan untuk menamainya.
chat_type: Menggunakan kosakata enum lama, seperti Messaging Inbound (App Chat), Messaging (SMS), dan Messaging (WhatsApp).session_type: Selalu menampilkan string yang sama denganchat_type. Kolom ini ada untuk kompatibilitas mundur dengan integrasi yang menggunakan kolom ini; anggap kolom ini sebagai aliaschat_typeyang tidak digunakan lagi.session_type_v2: Menggunakan kosakata enum saat ini, yang mungkin mencakup perbedaan yang lebih mendetail seperti Messaging Inbound (Mobile Chat). Untuk jenis chat yang tidak memiliki nilai khusus v2,session_type_v2akan menampilkan string yang sama denganchat_type. Integrasi baru harus menguraisession_type_v2.
Untuk nilai setiap kolom, lihat Informasi inti.
Informasi inti
id(bilangan bulat): ID unik untuk setiap sesi chat. Kunci utama ini membedakan satu chat dengan chat lainnya.lang(string): Kode bahasa ISO 639 yang digunakan selama chat (misalnya,"en"untuk bahasa Inggris,"es"untuk bahasa Spanyol).chat_type(string): Jenis chat, menggunakan kosakata jenis lama. Nilai mencakup"Messaging Inbound (App Chat)","Messaging Inbound (Web Chat)","Messaging (SMS)","Messaging (WhatsApp)", dan"Messaging (Apple Messaging for Business)".session_type(string): Duplikatchat_type(nilai yang sama), dipertahankan untuk kompatibilitas mundur. Lihat Pembuatan versi dan penghentian penggunaan: Duplikat lama.session_type_v2(string): Jenis chat, menggunakan kosakata jenis saat ini. Atribut ini menyaring nilaichat_typedengan perbedaan yang lebih mendetail. Nilai mencakup"Messaging Inbound (Mobile Chat)","Messaging Inbound (Web Chat)","Messaging (WhatsApp)","Messaging (Apple Messaging for Business)","Messaging (SMS)","Messaging Inbound (SMS)","Messaging Outbound (SMS)","Messaging Outbound (SMS via API)","Messaging Inbound (SMS Direct)","Messaging Outbound (SMS Direct)", dan"Messaging Outbound (SMS Direct via API)".status(string): Status chat saat ini. Nilai yang mungkin:"queued","selecting","assigned","va_assigned","dismissed","va_dismissed","check_in_timeout","finished","no_response","canceled", dan"failed". (CCAI Platform melaporkan chat yang telah selesai dan tidak menerima balasan konsumen sebagai"no_response".)sub_status(string atau null): Detail status yang lebih spesifik untuk chat, jika tersedia. Nilai yang mungkin:"selecting","queued","ongoing","dismissed","finished","timeout","deflected","abandoned","expired","failed","disconnected_by_agent","disconnected_by_end_user","no_messages","no_messages_disconnected_by_agent","no_messages_disconnected_by_end_user", dan"end_user_opt_out".created_at(string, tanggal-waktu): Stempel waktu saat CCAI Platform membuat sesi chat.assigned_at(string, tanggal-waktu, atau null): Stempel waktu saat CCAI Platform menetapkan chat ke agen, atau null jika tidak ditetapkan.ends_at(string, tanggal-waktu, atau null): Stempel waktu saat sesi chat berakhir.updated_at(string, tanggal-waktu): Stempel waktu saat CCAI Platform terakhir kali memperbarui data chat.first_msg_sent_at(string, tanggal-waktu, atau null): Stempel waktu saat peserta mengirim pesan pertama dalam chat.last_msg_sent_at(string, tanggal-waktu, atau null): Stempel waktu saat peserta mengirim pesan terakhir dalam chat.wait_duration(bilangan bulat): Total waktu yang dihabiskan konsumen untuk menunggu, dalam detik.chat_duration(bilangan bulat): Total durasi chat, dalam detik.verified(boolean): Menunjukkan apakah tindakan cerdas verifikasi memverifikasi interaksi.rating(bilangan bulat atau null): Rating kepuasan pelanggan (CSAT) yang diberikan konsumen, atau null jika konsumen tidak memberikan rating.has_feedback(boolean): Menunjukkan apakah konsumen memberikan masukan setelah chat.out_ticket_id(string atau null): ID tiket yang dibuat CCAI Platform di sistem CRM eksternal.out_ticket_url(string, uri, atau null): URL tiket CRM.is_out_ticket_account(boolean atau null): Menunjukkan apakah tiket CRM mewakili pelanggan (true) atau interaksi chat (false).fail_reason(string): Alasan kegagalan selama chat, atau"nothing"jika chat tidak gagal. Nilai yang mungkin:"nothing","unknown","expired","after_hours","escalation_failed","check_in_timed_out","check_in_timed_out_expired","expired_menu_selection","end_user_opt_out","over_cap_email","group_deleted_no_substitute","presession_deflection_unknown","presession_deflection_timeout","presession_deflection_message_delivery_failed","sms_error", dan"force_ended".provider_type(string): Jenis penyedia chat yang digunakan. Nilai yang mungkin:"unknown","messaging","twilio_conversations","nexmo_conversations", dan"ujet_conversations".provider_channel_id(string atau null): ID saluran khusus penyedia untuk chat.message_count(bilangan bulat): Jumlah total pesan yang dikirim dan diterima dalam chat.average_response_time(bilangan bulat): Waktu rata-rata yang diperlukan agen untuk merespons selama chat, dalam detik.longest_response_time(bilangan bulat): Waktu terlama yang diperlukan agen untuk merespons selama chat, dalam detik.transcript(boolean): Menunjukkan apakah transkrip chat ada untuk sesi tersebut.
Informasi agen dan agen virtual
agent_info(objek): Informasi tentang agen manusia atau agen virtual yang terakhir menangani chat. Kolom ini menggunakan kata kuncioneOfuntuk menentukan bahwa kolom ini dapat berupa salah satu dari dua jenis.agent(objek): Informasi tentang agen manusia:id(bilangan bulat): ID unik agen.agent_number(string atau null): ID yang ditetapkan untuk agen.email(string, email): Alamat email agen.name(string): Nama lengkap agen.last_name(string): Nama belakang agen.first_name(string): Nama depan agen.avatar_url(string, uri, atau null): URL gambar avatar agen.
virtual_agent(objek): Informasi tentang agen virtual:id(bilangan bulat): ID unik agen virtual.name(string): Nama agen virtual.avatar_url(string, uri, atau null): URL gambar avatar agen virtual.va_alias(string atau null): Alias tampilan agen virtual, jika dikonfigurasi. Selalu ada dalam payload; null jika tidak ada alias yang ditetapkan.
Navigasi menu
selected_menu(objek atau null): Informasi tentang menu yang dipilih konsumen selama chat.id(integer): ID unik menu.name(string): Nama menu.parent_id(bilangan bulat atau null): ID menu induk, jika ada.position(bilangan bulat atau null): Posisi menu relatif terhadap menu lain pada tingkat yang sama.deleted(boolean): Menunjukkan apakah administrator menghapus menu.menu_type(string): Jenis menu (misalnya,"sms_menu","web_menu").hidden(boolean): Apakah menu terlihat atau tersedia untuk digunakan.menu_path(objek atau null): Menjelaskan jalur hierarkis menu yang dijelajahi pelanggan.items_count(bilangan bulat): Jumlah menu di jalur.name(string atau null): String nama menu yang dipisahkan garis miring (misalnya,"Support/Billing"), atau null jika jalur menu tidak tersedia.materialized_path(string): String ID menu yang dipisahkan garis miring.
queue_priority_level(bilangan bulat): Prioritas antrean yang ditetapkan ke antrean yang dipilih chat. Hanya ada jika prioritas antrean diaktifkan di akun Anda.
Detail pengguna akhir
end_user(objek atau null): Informasi tentang konsumen:id(bilangan bulat atau null): ID internal konsumen.identifier(string atau null): ID eksternal untuk konsumen.out_contact_id(string atau null): ID konsumen di CRM.
Flag pelanggan dan data yang disediakan SDK
customer_flag(objek): Flag yang menandai atribut konsumen penting yang disediakan atau diperbarui oleh sistem eksternal selama sesi. Hanya ada jika sistem eksternal memberikan atau memperbarui tanda pelanggan terkait autentikasi selama sesi.verified_customer(boolean): Menunjukkan apakah sistem eksternal menandai konsumen sebagai terverifikasi.bad_actor(boolean): Menunjukkan apakah sistem eksternal menandai konsumen sebagai pelaku kejahatan.repeat_customer(boolean): Menunjukkan apakah sistem eksternal menandai konsumen sebagai pelanggan berulang.
custom_data_secured(objek atau null): Data kustom yang ditandatangani dengan aman yang disediakan oleh SDK atau Apps API.custom_data_not_secured(objek atau null): Data kustom yang ditandatangani secara tidak aman yang disediakan oleh SDK atau Apps API.sip_headers(objek): Header SIP masuk yang diambil untuk chat. Kunci dan nilai mencerminkan header SIP yang diterima dari penyedia upstream. Hanya ada jika Anda mengaktifkan pengambilan header SIP di akun dan mengonfigurasinya agar muncul di metadata sesi
Lampiran media
photos(array): Foto atau screenshot yang terkait dengan chat.id(bilangan bulat): ID unik untuk foto.photo_type(string): Jenis foto. Nilai yang mungkin mencakup"photo"dan"screenshot".url(string, uri): URL ke foto yang disimpan.smart_action_type(string atau null): Tindakan cerdas yang terkait dengan foto, jika ada.transfer_id(bilangan bulat atau null): ID peristiwa transfer yang terkait dengan foto, jika peserta menguploadnya setelah transfer selesai.
videos(array): Video yang terkait dengan chat.id(bilangan bulat): ID unik untuk video.url(string, uri): URL ke video yang disimpan.smart_action_type(string atau null): Tindakan cerdas yang terkait dengan video, jika ada.transfer_id(bilangan bulat atau null): ID peristiwa transfer yang terkait dengan video, jika peserta menguploadnya setelah transfer selesai.
Transfer chat
transfers(array): Satu entri per peristiwa transfer selama chat. Mencatat transfer antara agen, agen virtual, dan menu.id(bilangan bulat): ID unik transfer.status(string): Status transfer saat ini. Nilai yang memungkinkan mencakup"transferring","transferred","failed", dan"deflected".fail_reason(string): Alasan transfer gagal, atau"nothing"jika tidak gagal. Nilai yang mungkin:"nothing","timeout","canceled","ag_connection_timeout","va_failure","agent_detection_missed","unknown", dan"unreachable_phone_number".created_at(string, tanggal-waktu): Stempel waktu saat transfer dimulai.assigned_at(string, tanggal-waktu, atau null): Stempel waktu saat CCAI Platform menetapkan transfer.connected_at(string, tanggal-waktu, atau null): Stempel waktu saat transfer terhubung.updated_at(string, tanggal-waktu, atau null): Stempel waktu saat CCAI Platform terakhir kali memperbarui data transfer.call_duration(bilangan bulat atau null): Durasi segmen chat yang ditransfer, dalam detik.wait_duration(bilangan bulat atau null): Waktu tunggu konsumen selama transfer, dalam detik.deflection(string): Jenis defleksi yang terkait dengan transfer. Lihat Definisi:deflectionuntuk mengetahui nilai yang diizinkan.answer_type_path(string atau null): Jalur yang menjelaskan cara agen atau menu menjawab chat asli dan tujuan.from_menu_path/to_menu_path(objek atau null): Jalur menu sebelum dan setelah transfer; bentuknya sama denganmenu_pathdi Definisi.from_agent/to_agent(objek atau null): Agen manusia di setiap sisi transfer; bentuknya sama dengan objekagentdi Definisi.from_virtual_agent/to_virtual_agent(objek atau null): Agen virtual di setiap sisi transfer; bentuknya sama dengan objekvirtual_agentdi Definisi.from_queue_priority_level/to_queue_priority_level(bilangan bulat atau null): Prioritas antrean sebelum dan setelah transfer.
Durasi penanganan chat
handle_durations(array): Array objek, yang masing-masing mewakili segmen chat yang ditangani oleh agen.id(bilangan bulat): ID unik untuk durasi penanganan.agent_id(bilangan bulat atau null): ID agen.acw_duration(bilangan bulat): Durasi pekerjaan setelah chat, dalam detik.chat_duration(bilangan bulat): Durasi chat selama segmen ini, dalam detik.menu_path_id(bilangan bulat atau null): ID jalur menu.menu_path(string): Nama jalur menu.lang(string): Bahasa yang digunakan.transfer(boolean): Apakah transfer terjadi.transfer_id(bilangan bulat atau null): ID transfer.started_at(string, tanggal-waktu, atau null): Stempel waktu mulai.ended_at(string, tanggal-waktu, atau null): Stempel waktu akhir.response_count(integer): Jumlah respons agen.response_time_total(bilangan bulat): Total waktu respons agen, dalam detik.response_time_max(bilangan bulat): Waktu respons agen terlama, dalam detik.response_time_avg(angka atau null): Waktu respons agen rata-rata, dalam detik. Nilai ini dapat mencakup presisi desimal.assigned_connection_duration(bilangan bulat): Durasi konsumen menunggu saat agen yang ditugaskan terhubung selama segmen ini.
Durasi antrean
queue_durations(array): Array objek, yang masing-masing mewakili segmen chat tempat konsumen menunggu dalam antrean.id(bilangan bulat): ID unik.agent_id(bilangan bulat atau null): ID agen.ended_at(string, date-time): Stempel waktu akhir.lang(string): Bahasa.menu_path_id(bilangan bulat atau null): ID jalur menu.menu_path(string): Jalur menu.queue_duration(bilangan bulat atau null): Durasi antrean, dalam detik.started_at(string, tanggal-waktu): Stempel waktu mulai.transfer_cold(boolean atau null): Apakah chat ditransfer tanpa diketahui.transfer(boolean): Apakah transfer terjadi.transfer_id(bilangan bulat atau null): ID transfer.service_level_abandon_time_threshold(bilangan bulat): Batas pengabaian tingkat layanan, dalam detik.service_level_event(string): Status peristiwa tingkat layanan. Nilai yang mungkin mencakup"excluded","in_sla", dan"not_in_sla".service_level_target_percent(bilangan bulat): Persentase target tingkat layanan.service_level_target_time(bilangan bulat): Waktu target tingkat layanan, dalam detik.
Eskalasi dari agen virtual ke manusia
escalations(array): Setiap entri mewakili eskalasi dari agen virtual ke agen manusia.id(bilangan bulat): ID unik untuk eskalasi.status(string): Status eskalasi saat ini. Nilai yang mungkin:"escalating","escalated","canceled","deflecting", dan"deflected".reason(string): Alasan chat dieskalasi. Nilai yang mungkin:"unknown","by_end_user_ask","by_end_user_message","by_virtual_agent","payload_failure","could_not_resume","by_human_agent","invalid_queue", dan"dismissed".created_at(string, tanggal-waktu): Stempel waktu saat eskalasi dimulai.escalated_at(string, tanggal-waktu, atau null): Stempel waktu saat eskalasi selesai.from_virtual_agent(objek atau null): Agen virtual yang mengeskalasi chat. Bentuk yang sama dengan objekvirtual_agentdi Definisi.to_agent(objek atau null): Agen manusia yang menerima eskalasi chat. Bentuknya sama dengan objekagentdi Definisi.from_menu_path/to_menu_path(objek atau null): Jalur menu sebelum dan setelah eskalasi.
Eskalasi yang dialihkan agen virtual
virtual_agent_deflected_escalations(array): Detail eskalasi dari agen virtual yang dialihkan ke tujuan lain.id(bilangan bulat): ID unik.deflection(string): Jenis defleksi untuk eskalasi yang didefleksikan. Nilai yang mungkin:"no_deflection","over_cap","over_cap_email","over_cap_virtual_agent","over_cap_human_agent","over_cap_sip","over_cap_extension","after_hours","after_hours_email", dan"after_hours_virtual_agent".escalation_id(bilangan bulat): ID peristiwa eskalasi.escalation_reason(string): Alasan eskalasi. Nilai yang sama denganescalations[].reason(lihat 10. Eskalasi dari agen virtual ke manusia).escalated_at(string, tanggal-waktu): Stempel waktu eskalasi.menu_path_id(bilangan bulat): ID jalur menu.menu_path(string): Jalur menu.lang(string): Bahasa.virtual_agent(objek): Detail agen virtual. Lihat Definisi:virtual_agent.
Durasi penanganan agen virtual
virtual_agent_handle_durations(array): Segmen waktu saat chat ditangani oleh agen virtual.id(bilangan bulat): ID unik.virtual_agent(objek): Detail agen virtual. Lihat Definisi:virtual_agent.chat_duration(bilangan bulat): Durasi segmen, dalam detik.escalation_reason(string): Alasan eskalasi.finish_reason(string): Alasan interaksi selesai.response_count(integer): Jumlah respons agen virtual.response_time_total(bilangan bulat): Total waktu respons agen virtual, dalam detik.response_time_max(bilangan bulat): Waktu respons agen virtual terlama, dalam detik.response_time_avg(angka atau null): Waktu respons agen virtual rata-rata, dalam detik. Nilai ini dapat mencakup presisi desimal.fallback_response_count(bilangan bulat): Jumlah respons penggantian.initiated_by(string): Cara sesi agen virtual dimulai. Nilai yang mungkin:"end_user","human_agent", dan"post_session".menu_path_id(bilangan bulat): ID jalur menu.menu_path(string): Jalur menu.lang(string): Bahasa.transfer(boolean): Apakah chat ditransfer.transfer_id(bilangan bulat atau null): ID peristiwa transfer.started_at(string, tanggal-waktu): Stempel waktu mulai.ended_at(string, date-time): Stempel waktu akhir.
Durasi penanganan konsumen
consumer_handle_durations(array): Durasi konsumen berada dalam chat.id(bilangan bulat): ID unik.chat_duration(bilangan bulat): Durasi segmen konsumen, dalam detik.started_at(string, tanggal-waktu, atau null): Stempel waktu mulai.ended_at(string, tanggal-waktu, atau null): Stempel waktu akhir.message_count(bilangan bulat): Jumlah pesan konsumen.response_count(bilangan bulat): Jumlah respons konsumen.response_time_total(bilangan bulat): Total waktu respons konsumen, dalam detik.response_time_max(bilangan bulat): Waktu respons konsumen terlama, dalam detik.response_time_avg(bilangan bulat): Waktu respons konsumen rata-rata, dalam detik.
Durasi acara konsumen
consumer_event_durations(array): Detail peristiwa chat konsumen (misalnya, CSAT, pembayaran).id(bilangan bulat): ID unik.duration(bilangan bulat): Durasi peristiwa, dalam detik.type(string): Jenis peristiwa. Nilai yang mungkin:"csat".event(string): Hasil peristiwa. Nilai yang mungkin:"finished"dan"abandoned".menu_path_id(bilangan bulat): ID jalur menu.menu_path(string): Jalur menu.lang(string): Bahasa.started_at(string, tanggal-waktu): Stempel waktu mulai.ended_at(string, date-time): Stempel waktu akhir.
Peserta
participants(array): Informasi tentang setiap peserta dalam chat (misalnya, pengguna akhir, agen, agen virtual).id(bilangan bulat): ID unik untuk peserta.type(string): Jenis peserta. Nilai yang mungkin:"end_user","agent","manager","virtual_agent","external_agent", dan"task_virtual_agent".entry_type(string): Cara peserta memasuki chat. Nilai yang mungkin:"queue_or_transfer","barge", dan"post_session".user_id(bilangan bulat atau null): ID Pengguna jika peserta adalah agen.end_user_id(bilangan bulat atau null): ID konsumen, jika peserta adalah konsumen.virtual_agent_id(bilangan bulat atau null): ID agen virtual jika peserta adalah agen virtual.virtual_agent_params(objek): Metadata kustom yang digunakan oleh agen virtual. Hanya ada saat Anda mengonfigurasi penyertaan metadata kustom agen virtual.status(string): Status peserta. Nilai yang mungkin:"waiting","connecting","invited","connected","wrapping_up","finished","failed","resuming", dan"post_session_in_progress".fail_reason(string): Alasan kegagalan, jika ada. Nilai yang mungkin:"nothing","canceled","ag_connection_timeout", dan"unknown".connected_at(string, tanggal-waktu, atau null): Stempel waktu saat peserta terhubung.phone_number(string): Nomor telepon peserta. Hanya ada pada peserta konsumen.chat_id(bilangan bulat): ID untuk chat.chat_duration(bilangan bulat atau null): Durasi chat untuk peserta, dalam detik.finished_at(string, tanggal-waktu, atau null): Stempel waktu saat keterlibatan peserta berakhir.agent_assist(objek): Setelan Agent Assist aktif untuk peserta. Selalu ada; objek default kosong jika Agent Assist tidak dikonfigurasi.virtual_agent(objek atau null): Detail agen virtual yang berfungsi sebagai peserta ini; berbeda dariagent_infotingkat atas dan darivirtual_agent_params.sip_headers(objek atau null): Header SIP yang terkait dengan peserta ini. Selalu ada dalam payload; null jika CCAI Platform tidak menangkap apa pun.location(string atau null): Lokasi agen yang dikonfigurasi. Hanya ada pada peserta agen.location_id(bilangan bulat atau null): ID lokasi. Hanya ada pada peserta agen.email(string, email): Alamat email agen. Hanya ada pada peserta agen.first_name(string atau null): Nama depan agen. Hanya ada pada peserta agen.last_name(string atau null): Nama belakang agen. Hanya ada pada peserta agen.middle_name(string atau null): Nama tengah agen. Hanya ada pada peserta agen.teams(array): Array objek{ id, name }yang menjelaskan tim tempat agen berada. Hanya ada pada peserta agen.
Log check-in
check_in_logs(array): Peristiwa check-in yang dicatat selama sesi chat. Setiap item mengelompokkan peristiwa check-in untuk satu alur check-in.check_in_id(bilangan bulat): ID alur check-in.check_in_modal_displayed(string, tanggal-waktu): Stempel waktu saat CCAI Platform menampilkan modal check-in kepada konsumen. Hanya ada saat CCAI Platform menampilkan modal check-in.check_in_modal_confirmed(string, tanggal-waktu): Stempel waktu saat konsumen mengonfirmasi bahwa mereka masih Hadir. Hanya ada jika konsumen mengonfirmasi modal check-in.check_in_modal_timed_out(string, tanggal-waktu): Stempel waktu saat waktu tunggu perintah pemeriksaan habis. Hanya ada jika waktu tunggu modal check-in habis.timeout_modal_rejoin_success(string, tanggal-waktu): Stempel waktu saat tindakan bergabung kembali berhasil. Hanya ada saat konsumen berhasil bergabung kembali setelah waktu tunggu habis.timeout_modal_rejoin_failed_after_hour(string, tanggal-waktu): Stempel waktu saat tindakan bergabung kembali gagal karena perilaku di luar jam kerja. Hanya ditampilkan jika bergabung kembali gagal karena antrean berada di luar jam kerja.timeout_modal_exit_chat(string, tanggal-waktu): Stempel waktu saat konsumen memilih untuk keluar dari chat. Hanya ada saat konsumen keluar dari chat dari modal waktu tunggu.timeout_modal_time_out_sdk_closed(string, tanggal-waktu): Stempel waktu saat alur modal waktu tunggu berakhir karena SDK ditutup. Hanya ada saat SDK ditutup setelah waktu tunggu habis.
Menawarkan acara
offer_type(string atau null): Cara CCAI Platform menawarkan chat kepada agen.offer_events(array): Peristiwa saat CCAI Platform menawarkan chat kepada agen.casting_time(string, tanggal-waktu): Waktu CCAI Platform menawarkan chat.group(string): Grup yang ditawari chat oleh CCAI Platform.
Detail lainnya
dismiss_duration(bilangan bulat): Durasi chat dalam status ditutup, dalam detik. Hanya ada jika chat menghabiskan waktu dalam status ditutup.answer_type(string atau null): Cara chat dijawab. Nilai yang mungkin:"manual","auto","outbound", dan"deflection".inbound_number(string): Nomor telepon masuk yang terkait dengan chat. Hanya ada jika nomor telepon masuk dikaitkan dengan chat.outbound_number(string): Nomor telepon keluar yang terkait dengan chat. Hanya ada jika nomor telepon keluar dikaitkan dengan chat.after_hours(boolean): Apakah chat terjadi di luar jam kerja.dispositions(array): Kode penyelesaian dan catatan yang direkam agen. Hanya ada jika Anda mengaktifkan kode atau catatan penyelesaian di akun Anda. Setiap entri dapat berisi kolom yang dirender secara bersyarat berdasarkan konfigurasi penyelesaian Anda:user_id(bilangan bulat): ID agen.transfer_id(bilangan bulat atau null): ID peristiwa transfer, jika dicatat setelah transfer.participant_id(bilangan bulat): ID peserta.note(string): Catatan agen teks bebas.original_note(string): Versi asli (sebelum diedit) dari catatan.code(string): Nama kode disposisi.ujet_code_id(string bilangan bulat atau kosong): ID kode disposisi yang ditetapkan CCAI Platform; kunci stabil untuk kode (nama tampilan kode dapat berubah). String kosong jika tidak tersedia.list(string): Nama daftar yang memiliki kode tersebut.list_path(string): Jalur yang dipisahkan garis miring dari daftar kode.ujet_list_id(bilangan bulat atau string kosong): ID yang ditetapkan CCAI Platform untuk daftar yang memuat kode disposisi; kunci stabil untuk daftar. String kosong jika tidak tersedia.custom_list_id(string atau bilangan bulat): ID daftar yang ditentukan pelanggan, jika dipetakan.custom_code_id(string atau bilangan bulat): ID kode yang ditentukan pelanggan, jika dipetakan.
auto_session_summaries(array): Ringkasan sesi yang dibuat AI yang disimpan ke data CRM. Hanya ada jika Anda mengaktifkan ringkasan percakapan di akun Anda dan AI berhasil membuat ringkasan. Setiap entri berisi:user_id(bilangan bulat): ID peserta agen yang terkait dengan ringkasan.participant_id(bilangan bulat): ID peserta.session_summary(string): Teks ringkasan.session_summary_sections(array atau objek): Ringkasan yang dipecah menjadi bagian terstruktur, jika tersedia.
transfer_limit(objek atau null): Data batas transfer untuk chat.enabled(boolean): Apakah pelacakan batas transfer diaktifkan untuk chat.limit_count(bilangan bulat): Jumlah transfer yang diizinkan.limit_reached(boolean): Apakah chat mencapai batas transfer yang dikonfigurasi.
email(string, email, atau null): Alamat email konsumen.feedback(string atau null): Masukan konsumen.smart_action_text(string atau null): Teks dari tindakan cerdas yang dilakukan.
Definisi
Sub-skema berikut muncul di beberapa titik dalam dokumen metadata sesi chat. Setiap sub-skema muncul satu kali. Grup properti yang mereferensikannya akan mengarah kembali ke bagian ini, bukan mendefinisikan ulang bentuknya secara inline.
menu_path (objek)
Menjelaskan jalur menu hierarkis yang dilalui chat. Lihat Navigasi menu untuk mengetahui daftar lengkap kolomnya.
Direferensikan dari: kolom menu_path tingkat teratas; setiap
transfers[].from_menu_path dan transfers[].to_menu_path; setiap
escalations[].from_menu_path dan escalations[].to_menu_path.
agent (objek)
Menjelaskan agen manusia. Ini adalah salah satu dari dua varian diskriminator agent_info tingkat teratas (lihat Root skema). Lihat Informasi agen dan agen virtual untuk mengetahui daftar lengkap kolomnya.
Direferensikan dari: kolom agent_info saat pengendali terakhir chat adalah
agen manusia; setiap transfers[].from_agent dan transfers[].to_agent; setiap
escalations[].to_agent.
virtual_agent (objek)
Menjelaskan agen virtual. Ini adalah salah satu dari dua varian diskriminator agent_info tingkat teratas (lihat Root skema). Lihat Informasi agen dan agen virtual untuk mengetahui daftar lengkap kolomnya.
Direferensikan dari: kolom agent_info saat pengendali terakhir chat adalah
agen virtual; setiap transfers[].from_virtual_agent dan
transfers[].to_virtual_agent; setiap escalations[].from_virtual_agent; setiap
virtual_agent_handle_durations[].virtual_agent; setiap
virtual_agent_deflected_escalations[].virtual_agent; setiap
participants[].virtual_agent.
deflection (string, enum)
Status pengalihan yang terkait dengan transfer. Nilai mengikuti pola <trigger>_<destination>, dengan awalan mengidentifikasi kondisi yang memicu pengalihan dan akhiran mengidentifikasi tujuan atau perlakuan (misalnya, _phone, _voicemail, _message, _queue, _sip, _extension, _callback, _wait).
Nilai yang diizinkan, dikelompokkan menurut kelompok pemicu:
Tidak ada pengalihan:
no_deflection,deflectingKapasitas berlebih, saat antrean melebihi batas kapasitasnya:
over_cap_phone,over_cap_voicemail,over_cap_callback,over_cap_wait,over_cap_message,over_cap_ewt_only,over_cap_queue,over_cap_sip,over_cap_extension,over_cap_phone_with_extensionDi luar jam kerja, saat chat masuk di luar jam operasional menu yang dikonfigurasi:
after_hours_voicemail,after_hours_phone,after_hours_message_only,after_hours_message,after_hours_queue,after_hours_sip,after_hours_extension,after_hours_phone_with_extensionPengalihan sementara, saat pengalihan sementara dikonfigurasi di menu:
temp_redirection_phone,temp_redirection_message,temp_redirection_voicemail,temp_redirection_queue,temp_redirection_sip,temp_redirection_extension,temp_redirection_phone_with_extensionPra-sesi IVR:
ivr_presession_deflectionPengalihan agen virtual, saat agen virtual mengalihkan chat:
va_redirection_phone,va_redirection_sip
Direferensikan dari: setiap transfers[].deflection. (Eskalasi yang dialihkan agen virtual di Eskalasi yang dialihkan agen virtual menggunakan kosakata pengalihan yang terpisah dan lebih kecil, yang didokumentasikan secara inline di sana.)
transfer (objek)
Menjelaskan transfer yang terjadi selama chat. Transfer dapat memindahkan chat antara menu, agen, dan agen virtual. Lihat Chat transfers untuk mengetahui daftar lengkap kolomnya.
Direferensikan dari: array transfers tingkat teratas. (Kolom lain bernama
transfer_id di seluruh dokumen adalah referensi bilangan bulat untuk
id transfer, bukan objek transfer yang di-inline.)
participant (objek)
Menjelaskan satu peserta dalam chat. Bentuk peserta bervariasi menurut jenis peserta; peserta agen dapat menyertakan kolom profil agen, lokasi, tim, dan Agent Assist, sedangkan peserta konsumen dan agen virtual menyertakan ID khusus jenis. Lihat Peserta untuk mengetahui daftar lengkap kolom yang didokumentasikan.
Direferensikan dari: array participants tingkat teratas;
auto_session_summaries[].participant_id; data disposisi.
Baris durasi (objek)
Menjelaskan interval yang diukur dalam chat, seperti waktu penanganan agen, waktu antrean, waktu penanganan konsumen, waktu peristiwa konsumen, atau waktu penanganan agen virtual. Setiap array durasi memiliki bentuk barisnya sendiri karena kolom dengan nama yang sama dapat memiliki presisi atau nullability yang berbeda di seluruh tabel.
Direferensikan dari: handle_durations, queue_durations,
virtual_agent_handle_durations, consumer_handle_durations, dan
consumer_event_durations.
Pembuatan versi dan penghentian penggunaan
Dokumen metadata sesi chat dirancang untuk evolusi skema yang kompatibel dengan versi lama. Kolom dan array baru dapat ditambahkan kapan saja, dan integrasi harus mengabaikan kunci yang tidak dikenali untuk memastikan fungsi yang berkelanjutan. Kolom berikut adalah kolom lama atau digantikan secara tidak langsung; kolom tersebut tetap ada dalam payload untuk kompatibilitas mundur, tetapi integrasi baru harus mengikuti panduan untuk masing-masing kolom.
Duplikat lama
session_type(string): Alias lama darichat_type. Selalu menampilkan nilai yang sama denganchat_typedan menggunakan kosakata enum lama yang sama. Dipertahankan untuk kompatibilitas mundur dengan integrasi yang menggunakansession_type. Integrasi baru harus menguraichat_typesecara langsung, atau untuk perbedaan yang lebih mendetail,session_type_v2(lihat Evolusi kosakata di bawah).
Evolusi kosakata
chat_type dan session_type_v2 menjelaskan jenis chat pokok yang sama dengan
dua kosakata yang berbeda. CCAI Platform memunculkan kedua kolom di setiap data; keduanya bukan duplikat satu sama lain:
chat_typemenggunakan kosakata enum lama. Nilai seperti Messaging Inbound (App Chat) dan Messaging (SMS) menjelaskan kategori jenis chat asli.session_type_v2menggunakan kosakata enum saat ini. Hal ini dapat memperkenalkan perbedaan yang lebih mendetail untuk jenis chat yang memiliki nilai khusus v2. Untuk jenis chat yang tidak memiliki nilai khusus v2,session_type_v2akan menampilkan string yang sama denganchat_type.
Integrasi baru harus mengurai session_type_v2. Nilai untuk setiap kolom
tercantum dalam Informasi inti.
Kolom aditif
Payload metadata sesi chat dapat memperoleh kolom tingkat teratas, kolom bertingkat, kolom item array, atau nilai enum baru seiring waktu. Integrasi harus mengabaikan kunci yang tidak dikenali dan mempertahankan data mentah jika memungkinkan. Hindari penguraian ketat yang gagal saat properti baru muncul.