Dokumen ini menjelaskan skema rekaman metadata sesi chat. Catatan metadata adalah dokumen JSON yang dibuat Contact Center AI Platform untuk sesi chat dukungan. CCAI Platform mengirimkan catatan metadata ke integrasi CRM Anda sebagai bagian dari perintah session-end chat. Saat Anda mengaktifkan penyimpanan eksternal, Platform CCAI juga menuliskan rekaman ke konfigurasi penyimpanan eksternal menggunakan file metadata.json. Setiap percakapan menghasilkan satu catatan, yang
diidentifikasi secara unik oleh id tingkat teratas. Gunakan skema ini untuk menyerap rekaman ke dalam sistem hilir, memvalidasi payload yang diterima, atau memetakan kolom ke dalam kolom gudang data.
Root skema
Catatan metadata sesi chat adalah satu objek JSON yang merepresentasikan satu sesi chat. Tiga konsep di tingkat teratas menentukan identitas dan bentuk rekaman.
Kunci utama: id (bilangan bulat)
Mengidentifikasi sesi chat secara unik dalam tenant Anda. Satu rekaman ada per
chat. Semua kolom, array, dan objek bertingkat level teratas lainnya menjelaskan atribut
percakapan yang diidentifikasi oleh id ini.
Diskriminator handler: agent_info (object, oneOf)
Satu objek yang bentuknya bervariasi, bergantung pada handler terakhir chat. Kedua varian tidak dapat muncul bersamaan — hanya satu yang akan muncul:
Varian agen manusia: Hadir saat penangan terakhir chat adalah agen manusia. Membawa
email,first_name,last_name, danagent_numberselain kolomid,name, danavatar_urlyang dibagikan.Varian agen virtual: Hadir saat penanganan terakhir chat adalah agen virtual. Membawa
va_aliasdan menghilangkanemail,first_name,last_name, danagent_number.
Untuk mendeteksi varian yang dibawa oleh suatu rekaman, 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 berbeda pendapat tentang jenis chat yang diwakili oleh suatu rekaman; 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 sebagai kunci; perlakukan kolom ini sebagai aliaschat_typeyang tidak digunakan lagi.session_type_v2: Menggunakan kosakata enum saat ini, yang dapat mencakup perbedaan yang lebih mendetail seperti Masuk Pesan (Chat Seluler). Untuk jenis chat yang tidak memiliki nilai khusus v2,session_type_v2menampilkan string yang sama denganchat_type. Integrasi baru harus menguraisession_type_v2.
Untuk nilai setiap kolom, lihat Informasi inti.
Informasi inti
id(integer): ID unik untuk setiap sesi chat. Kunci utama ini membedakan satu percakapan dengan percakapan 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. Hal ini menyaring nilaichat_typedengan perbedaan yang lebih terperinci. 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 using the API)","Messaging Inbound (SMS Direct)","Messaging Outbound (SMS Direct)", dan"Messaging Outbound (SMS Direct using the 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 selesai dan tidak menerima balasan konsumen sebagai"no_response".)sub_status(string atau null): Detail status yang lebih spesifik untuk chat, jika ada. 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, date-time): Stempel waktu saat CCAI Platform membuat sesi chat.assigned_at(string, date-time, atau null): Stempel waktu saat Platform CCAI menetapkan percakapan ke agen, atau null jika tidak ditetapkan.ends_at(string, date-time, atau null): Stempel waktu saat sesi chat berakhir.updated_at(string, waktu tanggal): Stempel waktu saat CCAI Platform terakhir kali memperbarui data chat.first_msg_sent_at(string, date-time, atau null): Stempel waktu saat peserta mengirim pesan pertama dalam chat.last_msg_sent_at(string, date-time, atau null): Stempel waktu saat peserta mengirim pesan terakhir dalam chat.wait_duration(integer): Total waktu yang dihabiskan konsumen untuk menunggu, dalam detik.chat_duration(integer): Total durasi chat, dalam detik.verified(boolean): Menunjukkan apakah tindakan smart verifikasi memverifikasi interaksi.rating(integer 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 oleh Platform CCAI 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 (benar) atau interaksi chat (salah).fail_reason(string): Alasan kegagalan selama percakapan, atau"nothing"saat percakapan 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 channel khusus penyedia untuk chat.message_count(integer): Jumlah total pesan yang dikirim dan diterima dalam chat.average_response_time(bilangan bulat): Waktu rata-rata yang dibutuhkan agen untuk merespons selama chat, dalam detik.longest_response_time(integer): Waktu terlama yang dibutuhkan agen untuk merespons selama percakapan, 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 tersebut dapat berupa salah satu dari dua jenis.agent(objek): Informasi tentang agen manusia:id(integer): ID unik agen.agent_number(string atau null): ID yang ditetapkan ke 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(integer): 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 di payload; null jika tidak ada alias yang ditetapkan.
Navigasi menu
selected_menu(objek atau null): Informasi tentang menu yang dipilih konsumen selama percakapan.id(integer): ID unik menu.name(string): Nama menu.parent_id(bilangan bulat atau null): ID menu induk, jika ada.position(integer atau null): Posisi menu relatif terhadap menu lain di 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): Mendeskripsikan jalur hierarkis menu yang dijelajahi pelanggan.items_count(integer): Jumlah menu di jalur.name(string atau null): String nama menu yang dipisahkan dengan garis miring (misalnya,"Support/Billing"), atau null jika jalur menu tidak tersedia.materialized_path(string): String ID menu yang dipisahkan dengan garis miring.
queue_priority_level(integer): Prioritas antrean yang ditetapkan untuk 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 pihak tidak bertanggung jawab.repeat_customer(boolean): Menunjukkan apakah sistem eksternal menandai konsumen sebagai pelanggan berulang.
custom_data_secured(objek atau null): Data khusus 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 percakapan.id(integer): 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 smart yang terkait dengan foto, jika ada.transfer_id(integer atau null): ID peristiwa transfer yang terkait dengan foto, jika peserta menguploadnya setelah transfer selesai.
videos(array): Video yang terkait dengan percakapan.id(integer): ID unik untuk video.url(string, uri): URL ke video yang disimpan.smart_action_type(string atau null): Tindakan smart yang terkait dengan video, jika ada.transfer_id(integer 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(integer): ID unik transfer.status(string): Status transfer saat ini. Nilai yang mungkin 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, date-time): Stempel waktu saat transfer dimulai.assigned_at(string, date-time, atau null): Stempel waktu saat CCAI Platform menetapkan transfer.connected_at(string, date-time, atau null): Stempel waktu saat transfer terhubung.updated_at(string, date-time, atau null): Stempel waktu saat CCAI Platform terakhir kali memperbarui catatan transfer.call_duration(integer atau null): Durasi segmen chat yang ditransfer, dalam detik.wait_duration(integer atau null): Waktu tunggu konsumen selama transfer, dalam detik.deflection(string): Jenis pengalihan 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 percakapan asli dan tujuan.from_menu_path/to_menu_path(objek atau null): Jalur menu sebelum dan setelah transfer; bentuknya sama denganmenu_pathdi Definitions.from_agent/to_agent(objek atau null): Agen manusia di setiap sisi transfer; bentuknya sama dengan objekagentdi Definitions.from_virtual_agent/to_virtual_agent(objek atau null): Agen virtual di setiap sisi transfer; bentuknya sama dengan objekvirtual_agentdi Definitions.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 merepresentasikan segmen percakapan yang ditangani oleh agen.id(integer): ID unik untuk durasi penanganan.agent_id(bilangan bulat atau null): ID agen.acw_duration(integer): Durasi kerja setelah chat, dalam detik.chat_duration(integer): Durasi chat selama segmen ini, dalam detik.menu_path_id(integer 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, date-time, atau null): Stempel waktu mulai.ended_at(string, date-time, 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(integer): Waktu respons agen terlama, dalam detik.response_time_avg(angka atau null): Waktu respons rata-rata agen, dalam detik. Nilai ini dapat mencakup presisi desimal.assigned_connection_duration(integer): Durasi konsumen menunggu saat agen yang ditetapkan terhubung selama segmen ini.
Durasi antrean
queue_durations(array): Array objek, yang masing-masing mewakili segmen percakapan tempat konsumen menunggu dalam antrean.id(integer): ID unik.agent_id(integer atau null): ID agen.ended_at(string, date-time): Stempel waktu akhir.lang(string): Bahasa.menu_path_id(integer atau null): ID jalur menu.menu_path(string): Jalur menu.queue_duration(integer atau null): Durasi antrean, dalam detik.started_at(string, date-time): Stempel waktu mulai.transfer_cold(boolean atau null): Apakah percakapan dialihkan tanpa pemberitahuan.transfer(boolean): Apakah transfer terjadi.transfer_id(integer atau null): ID transfer.service_level_abandon_time_threshold(integer): Tingkat layanan batas waktu pengabaian, 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(integer): Persentase target tingkat layanan.service_level_target_time(integer): Waktu target tingkat layanan, dalam detik.
Eskalasi dari agen virtual ke agen manusia
escalations(array): Setiap entri mewakili eskalasi dari agen virtual ke agen manusia.id(integer): ID unik untuk eskalasi.status(string): Status eskalasi saat ini. Nilai yang mungkin:"escalating","escalated","canceled","deflecting", dan"deflected".reason(string): Alasan chat dieskalasikan. 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, date-time): Stempel waktu saat eskalasi dimulai.escalated_at(string, date-time, atau null): Stempel waktu saat eskalasi selesai.from_virtual_agent(objek atau null): Agen virtual yang mengeskalasikan chat. Bentuk yang sama dengan objekvirtual_agentdi Definitions.to_agent(objek atau null): Agen manusia yang menerima eskalasi chat. Bentuk yang sama dengan objekagentdi Definitions.from_menu_path/to_menu_path(objek atau null): Jalur menu sebelum dan setelah eskalasi.
Eskalasi yang dialihkan oleh agen virtual
virtual_agent_deflected_escalations(array): Detail eskalasi dari agen virtual yang dialihkan ke tujuan lain.id(integer): ID unik.deflection(string): Jenis pengalihan untuk eskalasi yang dialihkan. 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(integer): ID peristiwa eskalasi.escalation_reason(string): Alasan eskalasi. Nilai yang sama denganescalations[].reason(lihat 10. Eskalasi dari agen virtual ke agen manusia).escalated_at(string, date-time): Stempel waktu eskalasi.menu_path_id(integer): 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(integer): ID unik.virtual_agent(objek): Detail agen virtual. Lihat Definisi:virtual_agent.chat_duration(integer): Durasi segmen, dalam detik.escalation_reason(string): Alasan eskalasi.finish_reason(string): Alasan interaksi berakhir.response_count(integer): Jumlah respons agen virtual.response_time_total(integer): Total waktu respons agen virtual, dalam detik.response_time_max(integer): Waktu respons agen virtual terlama, dalam detik.response_time_avg(angka atau null): Waktu respons rata-rata agen virtual, dalam detik. Nilai ini dapat mencakup presisi desimal.fallback_response_count(integer): Jumlah respons penggantian.initiated_by(string): Cara sesi agen virtual dimulai. Nilai yang mungkin:"end_user","human_agent", dan"post_session".menu_path_id(integer): 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, date-time): Stempel waktu mulai.ended_at(string, date-time): Stempel waktu akhir.
Durasi penanganan konsumen
consumer_handle_durations(array): Durasi konsumen berada dalam chat.id(integer): ID unik.chat_duration(integer): Durasi segmen konsumen, dalam detik.started_at(string, date-time, atau null): Stempel waktu mulai.ended_at(string, date-time, atau null): Stempel waktu akhir.message_count(integer): Jumlah pesan konsumen.response_count(integer): Jumlah respons konsumen.response_time_total(integer): Total waktu respons konsumen, dalam detik.response_time_max(integer): Waktu respons konsumen terlama, dalam detik.response_time_avg(integer): Waktu respons rata-rata konsumen, dalam detik.
Durasi acara konsumen
consumer_event_durations(array): Detail peristiwa chat konsumen (misalnya, CSAT, pembayaran).id(integer): ID unik.duration(integer): Durasi acara, dalam detik.type(string): Jenis acara. Nilai yang mungkin:"csat".event(string): Hasil peristiwa. Nilai yang mungkin:"finished"dan"abandoned".menu_path_id(integer): ID jalur menu.menu_path(string): Jalur menu.lang(string): Bahasa.started_at(string, date-time): 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(integer): 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 bergabung ke chat. Nilai yang mungkin:"queue_or_transfer","barge", dan"post_session".user_id(integer atau null): ID pengguna jika peserta adalah agen.end_user_id(integer atau null): ID konsumen, jika peserta adalah konsumen.virtual_agent_id(integer 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 virtual-agent.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, date-time, atau null): Stempel waktu saat peserta terhubung.phone_number(string): Nomor telepon peserta. Hanya ditampilkan pada peserta konsumen.chat_id(integer): ID untuk chat.chat_duration(integer atau null): Durasi chat untuk peserta, dalam detik.finished_at(string, date-time, 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 teratas dan darivirtual_agent_params.sip_headers(objek atau null): Header SIP yang terkait dengan peserta ini. Selalu ada di payload; null jika CCAI Platform tidak merekam apa pun.location(string atau null): Lokasi yang dikonfigurasi agen. Hanya ada pada peserta agen.location_id(bilangan bulat atau null): ID lokasi. Hanya hadir di peserta agen.email(string, email): Alamat email agen. Hanya ada di peserta agen.first_name(string atau null): Nama depan agen. Hanya ada di peserta agen.last_name(string atau null): Nama belakang agen. Hanya ada di peserta agen.middle_name(string atau null): Nama tengah agen. Hanya ada di peserta agen.teams(array): Array objek{ id, name }yang menjelaskan tim tempat agen berada. Hanya ada di 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(integer): ID alur check-in.check_in_modal_displayed(string, date-time): Stempel waktu saat CCAI Platform menampilkan modal check-in kepada konsumen. Hanya ada saat Platform CCAI menampilkan modal check-in.check_in_modal_confirmed(string, date-time): Stempel waktu saat konsumen mengonfirmasi bahwa mereka masih Hadir. Hanya ada saat konsumen mengonfirmasi modal check-in.check_in_modal_timed_out(string, date-time): Stempel waktu saat perintah check-in berakhir. Hanya ada saat modal check-in habis waktunya.timeout_modal_rejoin_success(string, date-time): Stempel waktu saat tindakan bergabung kembali berhasil. Hanya ada jika konsumen berhasil bergabung kembali setelah waktu tunggu habis.timeout_modal_rejoin_failed_after_hour(string, date-time): Stempel waktu saat tindakan bergabung kembali gagal karena perilaku di luar jam kerja. Hanya ada jika bergabung kembali gagal karena antrean berada di luar jam kerja.timeout_modal_exit_chat(string, date-time): Stempel waktu saat konsumen memilih untuk keluar dari chat. Hanya ada saat konsumen keluar dari chat dari modal waktu tunggu habis.timeout_modal_time_out_sdk_closed(string, date-time): Stempel waktu saat alur modal waktu tunggu berakhir karena SDK ditutup. Hanya ada jika 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 Platform CCAI menawarkan chat kepada agen.casting_time(string, date-time): Waktu saat Platform CCAI menawarkan chat.group(string): Grup yang ditawari chat oleh CCAI Platform.
Detail lainnya
dismiss_duration(integer): Durasi chat dalam status ditutup, dalam detik. Hanya ada jika waktu yang dihabiskan dalam chat berstatus ditutup.answer_type(string atau null): Cara percakapan 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 dan catatan penyelesaian yang direkam oleh agen. Hanya ada jika Anda mengaktifkan kode atau catatan penyelesaian di akun Anda. Setiap entri dapat berisi kolom yang dirender secara kondisional berdasarkan konfigurasi penyelesaian Anda:user_id(integer): ID agen.transfer_id(integer atau null): ID peristiwa transfer, jika dicatat setelah transfer.participant_id(integer): ID peserta.note(string): Catatan agen teks bebas.original_note(string): Versi asli (sebelum diedit) catatan.code(string): Nama kode disposisi.ujet_code_id(integer atau string kosong): ID kode disposisi yang ditetapkan Platform CCAI; kunci stabil untuk kode (nama tampilan kode dapat berubah). String kosong jika tidak tersedia.list(string): Nama daftar tempat kode berada.list_path(string): Jalur daftar kode yang dipisahkan dengan garis miring.ujet_list_id(bilangan bulat atau string kosong): ID daftar yang ditetapkan Platform CCAI yang berisi kode disposisi; kunci yang 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 buatan AI yang disimpan ke catatan CRM. Hanya ada jika Anda mengaktifkan peringkasan percakapan di akun Anda dan AI berhasil membuat ringkasan. Setiap entri berisi:user_id(integer): ID peserta agen yang terkait dengan ringkasan.participant_id(integer): ID peserta.session_summary(string): Teks ringkasan.session_summary_sections(array atau objek): Ringkasan yang dibagi 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 tindakan smart apa pun 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 menunjuk 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.
Dirujuk 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)
Mendeskripsikan 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.
Dirujuk dari: kolom agent_info saat penanganan 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.
Dirujuk dari: kolom agent_info saat penanganan 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 keluarga pemicu:
Tidak ada pengalihan:
no_deflection,deflectingKelebihan kapasitas, saat antrean melebihi nilai minimum 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 tiba di luar jam kerja yang dikonfigurasi di menu:
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 percakapan:
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 percakapan. Transfer dapat memindahkan percakapan antar-menu, agen, dan agen virtual. Lihat Transfer chat untuk mengetahui daftar lengkap kolomnya.
Dirujuk dari: array transfers tingkat teratas. (Kolom lain yang bernama
transfer_id di seluruh dokumen adalah referensi bilangan bulat ke
id transfer, bukan objek transfer sebaris.)
participant (objek)
Mendeskripsikan satu peserta dalam percakapan. Bentuk peserta bervariasi menurut jenis peserta; peserta agen dapat mencakup profil agen, lokasi, tim, dan kolom Agent Assist, sementara peserta konsumen dan agen virtual mencakup ID khusus jenis. Lihat Peserta untuk mengetahui daftar lengkap kolom yang didokumentasikan.
Dirujuk dari: array participants tingkat teratas;
auto_session_summaries[].participant_id; catatan disposisi.
Baris durasi (objek)
Menjelaskan interval terukur 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 kemampuan null yang berbeda di seluruh tabel.
Dirujuk 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 sebelumnya. 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 di payload untuk kompatibilitas mundur, tetapi integrasi baru harus mengikuti panduan untuk setiap kolom.
Duplikat lama
session_type(string): Alias lamachat_type. Selalu menampilkan nilai yang sama denganchat_typedan menggunakan kosakata enum lama yang sama. Dipertahankan untuk kompatibilitas mundur dengan integrasi yang menggunakansession_typesebagai kunci. Integrasi baru harus menguraichat_typesecara langsung, atau untuk perbedaan yang lebih terperincisession_type_v2(lihat Evolusi kosakata di bawah).
Evolusi kosakata
chat_type dan session_type_v2 menjelaskan jenis chat yang sama dengan
dua kosakata yang berbeda. CCAI Platform memancarkan kedua kolom di setiap
catatan; keduanya tidak duplikat satu sama lain:
chat_typemenggunakan kosakata enum lama. Nilai seperti Messaging Inbound (Chat Aplikasi) dan Messaging (SMS) menjelaskan kategori jenis chat asli.session_type_v2menggunakan kosakata enum saat ini. Hal ini dapat memperkenalkan perbedaan yang lebih terperinci untuk jenis chat yang memiliki nilai khusus v2. Untuk jenis chat yang tidak memiliki nilai khusus v2,session_type_v2menampilkan string yang sama denganchat_type.
Integrasi baru harus mengurai session_type_v2. Nilai untuk setiap kolom
dicantumkan di Informasi inti.
Kolom aditif
Payload metadata sesi chat dapat memperoleh kolom tingkat teratas baru, kolom bertingkat, kolom item array, atau nilai enum dari waktu ke waktu. Integrasi harus mengabaikan kunci yang tidak dikenal dan mempertahankan rekaman mentah jika memungkinkan. Hindari penguraian ketat yang gagal saat properti baru muncul.