Dokumen ini menjelaskan skema data metadata transkrip chat. Ini adalah file JSON yang dibuat oleh Contact Center AI Platform (CCAI Platform) untuk transkrip chat yang telah selesai. Data metadata transkrip chat dihasilkan oleh ekspor JSON histori chat dan dapat dikirim melalui upload transkrip CRM dan file transkrip penyimpanan eksternal, bergantung pada konfigurasi instance Anda. Gunakan skema ini untuk mengurai JSON transkrip, memvalidasi payload yang diterima, atau memetakan pesan transkrip ke sistem downstream.
Root skema
Data metadata transkrip chat adalah satu objek JSON yang mewakili satu artefak transkrip chat. Kolom di root mengidentifikasi komunikasi, versi format transkrip, dan kumpulan entri transkrip yang diurutkan.
ID komunikasi comm_type dan comm_id
Bersama-sama, comm_type dan comm_id mengidentifikasi komunikasi yang diwakili oleh data transkrip ini.
comm_typemengidentifikasi jenis komunikasi. Nilainya biasanyachat. Nilainya dapat berupacalluntuk panggilan suara yang menyertakan konten transkrip SMS gabungan.comm_idadalah ID chat atau panggilan yang diwakili oleh transkrip.
Versi format transcript_version
Mengidentifikasi versi format transkrip JSON. Integrasi harus menggunakan kolom ini untuk penguraian yang kompatibel dengan versi baru dan harus mengabaikan kolom yang tidak dikenali.
Diskriminator entri - entries[].type dan entries[].body.type
Setiap item dalam entries mewakili satu pesan atau peristiwa transkrip. Kolom type tingkat entri mencerminkan jenis isi pesan. Objek body bertingkat membawa payload yang bentuknya bervariasi menurut jenis - misalnya, text, markdown, photo, noti, atau action.
Skema metadata transkrip chat
Skema ini menjelaskan struktur data transkrip chat. Bagian berikut menjelaskan komponen inti.
Informasi transkrip inti
Properti berikut memberikan informasi dasar tentang transkrip itu sendiri:
comm_type(string): Jenis komunikasi yang diwakili oleh transkrip. Nilai yang mungkin:chat,call. Nilaicallmenunjukkan panggilan suara dengan konten transkrip SMS gabungan.comm_id(bilangan bulat): ID unik komunikasi yang diwakili oleh transkrip.transcript_version(string): Versi format JSON transkrip. Nilai saat ini adalah"1.0". Lihat Pembuatan versi dan penghentian penggunaan.assigned_at(string, tanggal-waktu): Stempel waktu saat chat ditetapkan.timezone(string): Zona waktu untuk konteks transkrip, seperti"America/Los_Angeles".
Entri transkrip
entries(array): Daftar entri transkrip yang diurutkan. Setiap entri mewakili satu pesan, notifikasi, atau tindakan dalam percakapan.timestamp(bilangan bulat): Stempel waktu epoch Unix, dalam detik, saat sistem membuat entri.type(string): Jenis isi pesan. Nilai ini mencerminkanbody.type. Lihat Definisi untuk jenis bodi yang didukung.body(objek): Payload entri. Bentuknya bergantung pada nilaitype/body.type.role(string): Peran peserta atau komponen sistem yang menghasilkan entri. Nilai yang mungkin:end_user,agent,manager,virtual_agent,external_agent,task_virtual_agent,system.user_data(objek): Metadata pengirim. Untuk entriagent,manager,virtual_agent,external_agent, dantask_virtual_agent, objek ini berisi data tampilan pengirim. Untuk entriend_userdansystem, objek ini kosong.name(string; hanya ada jika metadata pengirim tersedia): Nama tampilan pengirim.id(bilangan bulat; hanya ada jika metadata pengirim tersedia): ID pengirim.avatar_url(string, uri; hanya ada jika metadata pengirim tersedia): URL gambar avatar pengirim.
Isi pesan teks
text(objek): Isi pesan teks biasa.type(string): Selalutext.content(string): Teks pesan.lang(string; hanya ada jika metadata bahasa tersedia): Kode bahasa yang terkait dengan pesan.
text_template(objek): Isi pesan teks yang menggunakan template.type(string): Selalutext_template.content(string): Teks template.
markdown(objek): Isi pesan berformat Markdown.type(string): Selalumarkdown.content(string): Konten Markdown.lang(string; hanya ada jika metadata bahasa tersedia): Kode bahasa yang terkait dengan pesan.
markdown_template(objek): Isi pesan Markdown yang di-template.type(string): Selalumarkdown_template.content(string): Konten template Markdown.
Isi pesan media dan file
photo(objek): Isi pesan foto atau screenshot.type(string): Selaluphoto.media_id(bilangan bulat): ID media foto yang disimpan.
video(objek): Isi pesan video.type(string): Selaluvideo.media_id(bilangan bulat; ada saat sistem menyimpan video sebagai media CCAI Platform): ID media video yang disimpan.title(string; ada saat objek video tersemat mewakili video): Judul video.video(objek; ada saat objek video tersemat mewakili video): Detail video.url(string, uri): URL video.text(string): Teks alternatif atau URL pengganti untuk video.
image(objek): Isi pesan gambar.type(string): Selaluimage.title(string; ada jika pengirim pesan menyediakannya): Judul gambar.image(objek): Detail gambar.url(string, uri): URL gambar.text(string): Teks alternatif atau URL pengganti untuk gambar.
document(objek): Isi pesan dokumen.type(string): Selaludocument.media_id(bilangan bulat; ada saat sistem menyimpan dokumen sebagai media CCAI Platform): ID media dokumen yang disimpan.title(string; ada saat objek dokumen tersemat mewakili dokumen): Judul dokumen.document(objek; ada saat objek dokumen tersemat mewakili dokumen): Detail dokumen.url(string, uri): URL dokumen.text(string): Teks alternatif atau URL pengganti untuk dokumen.
audio(objek): Isi pesan audio.type(string): Selaluaudio.media_id(bilangan bulat; ada saat sistem menyimpan audio sebagai media CCAI Platform): ID media audio yang disimpan.title(string; ada saat objek audio tersemat mewakili file audio): Judul file audio.audio(objek; ada saat objek audio tersemat mewakili file audio): Detail audio.url(string, uri): URL file audio.text(string): Teks alternatif atau URL pengganti untuk file audio.
Isi pesan interaktif
inline_button(objek): Isi pesan tombol inline.type(string): Selaluinline_button.title(string): Judul yang akan ditampilkan di atas tombol.buttons(array): Daftar definisi tombol.title(string): Label tombol.action(string): Tindakan yang terkait dengan tombol.link(string, uri; hanya ada untuk balasan cepat bergaya link): URL yang terkait dengan tombol.
sticky_button(objek): Isi pesan tombol melekat.type(string): Selalusticky_button.title(string): Judul yang akan ditampilkan di atas tombol.buttons(array): Daftar definisi tombol.title(string): Label tombol.action(string): Tindakan yang terkait dengan tombol.link(string, uri; hanya ada untuk balasan cepat bergaya link): URL yang terkait dengan tombol.
content_card(objek): Isi pesan kartu konten.type(string): Selalucontent_card.cards(array): Daftar kartu konten.title(string): Judul kartu.body(string; hanya ada jika Anda mengonfigurasi teks isi kartu): Teks isi kartu.
form_complete(objek): Isi pesan penyelesaian formulir yang dikirim klien saat konsumen menyelesaikan, gagal, atau membatalkan formulir.type(string): Selaluform_complete.signature(string; hanya ada jika peristiwa penyelesaian berisi tanda tangan): Tanda tangan untuk payload penyelesaian formulir.data(objek): Detail pengisian formulir.status(string): Status penyelesaian. Nilai yang mungkin:success,error,cancelled.smart_action_id(bilangan bulat): ID tindakan cerdas yang terkait dengan formulir.timestamp(string, tanggal-waktu): Stempel waktu saat peristiwa pengisian formulir terjadi. Hal ini berbeda dengantimestamptingkat entri, yang merupakan stempel waktu epoch Unix bilangan bulat dalam detik.details(objek; hanya ada jika payload memberikan detail penyelesaian tambahan): Detail status tambahan.error_code(string; hanya ada untuk error dengan kode): Kode error yang terkait dengan hasil penyelesaian.message(string): Detail status yang dapat dibaca manusia.
Isi pesan yang dihasilkan server dan passthrough
server_message(objek): Isi pesan yang dibuat server. Transkrip hanya menyertakan entriserver_messagejika Anda mengaktifkan konten transkrip agen virtual tugas untuk akun Anda; jika tidak, transkrip akan menghilangkan entri ini. Gunakan objek ini saat transkrip merujuk ke pesan sisi server yang disimpan.type(string): Selaluserver_message.message_id(integer): ID pesan server yang disimpan.visibility(string atau null): Setelan visibilitas untuk pesan server yang disimpan.
passthrough(objek): Payload kustom yang diteruskan sistem melalui CCAI Platform untuk integrasi agen virtual atau CCaaS. Integrasi Anda menentukancontent-nya, yang bukan bagian dari skema CCAI Platform; perlakukan sebagai buram.type(string): Selalupassthrough.content(string atau objek): Payload yang ditentukan integrasi. Strukturnya bervariasi menurut integrasi, dan CCAI Platform tidak menafsirkannya.
Isi pesan tindakan
action(objek): Tindakan yang diminta oleh agen virtual atau alur chatbot. Kolomactionmenentukan bentuk payload tindakan.type(string): Selaluaction.action(string): Jenis tindakan. Nilai yang mungkin mencakupescalation,deflection, danend.escalation_reason(string; hanya ada jikaactionadalahescalation): Alasan percakapan dieskalasi.menu_id(bilangan bulat; hanya ada jikaactionadalahescalation): ID menu yang harus menjadi tujuan eskalasi percakapan.language(string; hanya ada jikaactionadalahescalation): Kode bahasa antrean tujuan.deflection_type(string; hanya ada jikaactionadalahdeflection): Jenis pengalihan yang diminta.sip_parameters(objek atau null; hanya ada jikaactionadalahdeflection): Parameter SIP yang akan diteruskan sebagai bagian dari defleksi.
Isi pesan notifikasi
noti(objek): Isi pesan notifikasi. Notifikasi menjelaskan peristiwa sistem yang terjadi selama chat.type(string): Selalunoti.event(string): Nama peristiwa notifikasi.agent(objek; hanya ada untuk peristiwa yang terkait dengan agen manusia): Agen yang terkait dengan peristiwa.id(bilangan bulat): ID agen.email(string, email): Alamat email agen.name(string): Nama tampilan agen.
from_agent(objek; hanya ada untuk peristiwa transfer dengan agen sumber): Agen sumber untuk peristiwa.id(bilangan bulat): ID agen.email(string, email): Alamat email agen.name(string): Nama tampilan agen.
to_agent(objek; hanya ada untuk peristiwa transfer atau eskalasi dengan agen manusia tujuan): Agen manusia tujuan untuk peristiwa tersebut.id(bilangan bulat): ID agen.email(string, email): Alamat email agen.name(string): Nama tampilan agen.
from_virtual_agent(objek; hanya ada untuk peristiwa eskalasi dari agen virtual): Agen virtual sumber untuk peristiwa.id(bilangan bulat): ID agen virtual.name(string): nama tampilan agen virtual.avatar_url(string, uri, atau null): URL gambar avatar agen virtual.
to_virtual_agent(objek; hanya ada untuk peristiwa transfer ke agen virtual): Agen virtual tujuan untuk peristiwa tersebut.id(bilangan bulat): ID agen virtual.name(string): nama tampilan agen virtual.avatar_url(string, uri, atau null): URL gambar avatar agen virtual.
target(string; hanya ada untuk peristiwa transfer): Jenis tujuan transfer. Nilai yang mungkin mencakupmenudanagent.status(string; hanya ada untuk acara yang memiliki status chat): Status chat yang terkait dengan acara.timeout(boolean; hanya ada untuk peristiwa terkait waktu tunggu habis): Apakah waktu tunggu habis menyebabkan peristiwa.memberIdentity(string; hanya ada untuk peristiwa bergabung atau keluarnya peserta): Identitas peserta.memberName(string; hanya ada untuk peristiwa bergabung atau keluarnya peserta): Nama tampilan peserta.name(string; hanya ada untuk peristiwa virtual-agent atau task-va): Nama tampilan yang terkait dengan peristiwa.reason(string; hanya ada untuk peristiwa penyelesaian task-va): Alasan sesi task-va berakhir.escalation_reason(string; hanya ada untuk peristiwa eskalasi): Alasan eskalasi.deflection(objek; hanya ada untuk peristiwa defleksi): Detail defleksi.detail(objek; hanya ada untuk peristiwa notifikasi kustom): Detail peristiwa kustom.key(string): Kunci peristiwa kustom.data(objek): Payload peristiwa kustom.
Nama peristiwa notifikasi
Kolom event mengidentifikasi peristiwa notifikasi. Penyedia chat, yang berfungsi sebagai satu sumber tepercaya, mempertahankan semua peristiwa notifikasi dalam daftar berikut ke JSON transkrip. Daftar ini mengelompokkan peristiwa tersebut berdasarkan kelompok.
Permintaan tindakan cerdas
verificationRequestedphotoRequestedvideoRequestedscreenshotRequestedtextRequestedcobrowseRequestedFromAgent
Hasil tindakan cerdas
- Selesai:
photoFinished,videoFinished,screenshotFinished,textFinished - Dibatalkan:
photoCanceled,videoCanceled,screenshotCanceled,textCanceled - Gagal:
photoFailed,videoFailed,screenshotFailed,textFailed,verificationFailed
Verifikasi
endUserVerified
Co-browse
cobrowseRequestedFromEndUsercobrowseCodeGeneratedcobrowseStartedcobrowseEndedcobrowseFailed
Formulir
formRequestedformSentformCompleted
Transfer
transferStartedtransferAcceptedtransferFailed
Eskalasi agen virtual
escalationStartedescalationAcceptedescalationDeflectedescalationFailed
Agen virtual tugas
taskVaStartedtaskVaFinished
Langganan
agentJoinedmemberJoinedmemberLeft
Siklus proses sesi
chatEndedchatEndedWithPostSessionchatDismissedchatReactivatedcheckInRequiredcheckInTimedOuttranscriptRequestedtranscriptUpdated
Kustom
custom
Untuk data dengan comm_type yang ditetapkan ke call, peristiwa notifikasi transkrip panggilan tambahan mungkin akan muncul. Peristiwa ini terkait dengan penanganan transkrip panggilan atau Agent Assist, bukan kelompok peristiwa chat biasa.
Definisi
Sub-skema berikut muncul dalam dokumen metadata transkrip chat. Bagian ini menentukan setiap sub-skema satu kali; grup properti yang mereferensikannya akan mengarah kembali ke bagian ini, bukan menentukan ulang bentuknya secara inline.
entry (object)
Mewakili satu pesan, notifikasi, atau tindakan transkrip. Setiap entri memiliki timestamp epoch Unix, type level teratas, objek body yang jenisnya cocok dengan bentuk tersebut, role pengirim, dan objek user_data. Lihat Entri transkrip untuk mengetahui daftar lengkap kolom.
user_data (objek)
Menjelaskan pengirim entri transkrip saat metadata pengirim tersedia. Entri agen, pengelola, agen virtual, agen eksternal, dan agen virtual tugas dapat membawa name, id, dan avatar_url. Entri konsumen dan sistem membawa objek kosong.
isi pesan (objek, oneOf)
Objek body pada setiap entri menggunakan nilai body.type untuk memilih salah satu
bentuk isi pesan yang didukung. Jenis isi yang didukung mencakup isi teks,
isi media atau file, isi interaktif, isi yang dihasilkan server, isi
tindakan, dan isi notifikasi. Lihat Isi pesan teks
hingga Isi pesan notifikasi untuk mengetahui daftar lengkap
varian yang terdokumentasi.
peran peserta (string, enum)
Mengidentifikasi kategori pengirim untuk entri transkrip.
Nilai yang diizinkan
end_user- Konsumen.agent- Agen manusia.manager- Peserta pengelola.virtual_agent- Agen virtual.external_agent- Peserta agen eksternal.task_virtual_agent- Agen virtual tugas.system- Entri yang dibuat sistem.
Pembuatan versi dan penghentian penggunaan
Dokumen metadata transkrip chat mendukung evolusi skema yang kompatibel dengan versi lama. Sistem dapat menambahkan kolom baru dan varian isi pesan seiring waktu, dan integrasi harus mengabaikan kunci yang tidak dikenali untuk memastikan fungsionalitas yang berkelanjutan.
Versi format saat ini
transcript_version(string) - Nilai saat ini:"1.0". Integrasi harus mengurai transkrip berdasarkan kolom yang ada dalam payload dan tidak boleh gagal jika versi mendatang menambahkan kolom atau jenis isi pesan baru.
Jenis isi pesan tidak diketahui
Jika entri transkrip berisi type atau body.type yang tidak dikenali, pertahankan entri mentah jika memungkinkan dan lanjutkan mengurai sisa transkrip. Sistem dapat menambahkan jenis isi pesan baru tanpa mengubah arti kolom yang ada.
Kolom yang tidak digunakan lagi
Dokumen ini tidak mencantumkan kolom yang tidak digunakan lagi untuk kumpulan data metadata transkrip chat.