Customer Experience Insights memungkinkan Anda mengimpor percakapan dari Agent Assist untuk dianalisis. Dokumen ini akan memandu Anda dalam proses menghitung beberapa metrik percakapan penting pada data Agent Assist yang diimpor.
Prasyarat
Gunakan Agent Assist untuk membuat data percakapan menggunakan fitur smart reply atau ringkasan.
Aktifkan integrasi runtime Dialogflow di Customer Experience Insights.
Ekspor data Anda dari CX Insights ke BigQuery.
Rasio pemicu
Rasio pemicu menjelaskan seberapa sering jenis anotasi muncul dalam percakapan.
Tingkat pemicu tingkat kalimat
Rasio pemicu tingkat kalimat berlaku untuk anotasi yang dapat muncul minimal sekali per kalimat.
| Nama Anotasi | Jenis Anotasi | Kriteria |
|---|---|---|
| Saran artikel | 'ARTICLE_SUGGESTION' |
Setidaknya satu permintaan SuggestArticles dikirim untuk setiap pesan dalam percakapan. |
| Bantuan FAQ | 'FAQ' |
Setidaknya satu permintaan SuggestFaqAnswers atau AnalyzeContent dikirim untuk setiap pesan dalam percakapan. |
| Smart Reply | 'SMART_REPLY' |
Setidaknya satu permintaan SuggestSmartReplies atau AnalyzeContent dikirim untuk setiap pesan dalam percakapan. |

WITH calculation AS ( SELECT COUNTIF( ( SELECT COUNT(*) FROM UNNEST (sen.annotations) AS annotation WHERE annotation.type = 'ANNOTATION_TYPE' ) > 0 ) AS numSentencesAtLeastOneAnnotation, COUNT(*) AS numSentencesTotal FROM BIGQUERY_TABLE, UNNEST (sentences) AS sen ) SELECT numSentencesAtLeastOneAnnotation, numSentencesTotal, numSentencesAtLeastOneAnnotation / numSentencesTotal AS triggerRate FROM calculation;
Rasio pemicu tingkat percakapan
Rasio pemicu tingkat percakapan berlaku untuk anotasi yang dapat muncul paling banyak satu kali per percakapan.
| Nama Anotasi | Jenis Anotasi | Kriteria |
|---|
| Bantuan pengetahuan generatif (GKA) | 'KNOWLEDGE_SEARCH' | Setidaknya satu permintaan SearchKnowledge dikirim untuk setiap pesan dalam percakapan. |
| Bantuan pengetahuan generatif proaktif | 'KNOWLEDGE_SEARCH' | Setidaknya satu permintaan SearchKnowledge atau AnalyzeContent dikirim untuk setiap pesan dalam percakapan. |
| Ringkasan | 'CONVERSATION_SUMMARIZATION' | Setidaknya satu permintaan SuggestConversationSummary dikirim untuk setiap percakapan. |

WITH calculation AS ( SELECT COUNTIF( ( SELECT COUNT(*) FROM UNNEST (sentences) AS sen, UNNEST (sen.annotations) AS annotation WHERE annotation.type = 'ANNOTATION_TYPE' ) > 0 ) AS numConversationsAtLeastOneAnnotation, COUNT(*) AS numConversationsTotal FROM BIGQUERY_TABLE ) SELECT numConversationsAtLeastOneAnnotation, numConversationsTotal, numConversationsAtLeastOneAnnotation / numConversationsTotal AS triggerRate FROM calculation;
Rasio klik-tayang
Rasio klik-tayang menjelaskan seberapa sering agen panggilan mengklik anotasi yang disarankan kepada mereka.
Rasio klik-tayang tingkat kalimat
Rasio klik-tayang tingkat kalimat berlaku untuk anotasi yang dapat diklik beberapa kali per kalimat oleh agen panggilan.
| Nama Anotasi | Jenis Anotasi | Kriteria |
|---|---|---|
| Saran artikel | 'ARTICLE_SUGGESTION' |
Setidaknya satu permintaan SuggestArticles dikirim untuk setiap pesan dalam percakapan. |
| Bantuan FAQ | 'FAQ' |
Setidaknya satu permintaan SuggestFaqAnswers atau AnalyzeContent dikirim untuk setiap pesan dalam percakapan. |
| Smart Reply | 'SMART_REPLY' |
Setidaknya satu permintaan SuggestSmartReplies atau AnalyzeContent dikirim untuk setiap pesan dalam percakapan. |

WITH calculation AS ( SELECT COUNTIF( ( SELECT COUNT(*) FROM UNNEST (sen.annotations) AS annotation WHERE annotation.type = 'ANNOTATION_TYPE' AND annotation.displayed = TRUE AND annotation.clicked = TRUE ) > 0 ) AS numSentencesAtLeastOneClickedAndDisplayedAnnotation, COUNTIF( ( SELECT COUNT(*) FROM UNNEST (sen.annotations) AS annotation WHERE annotation.type = 'ANNOTATION_TYPE' AND annotation.displayed = TRUE ) > 0 ) AS numSentencesAtLeastOneDisplayedAnnotation, FROM BIGQUERY_TABLE, UNNEST (sentences) AS sen ) SELECT numSentencesAtLeastOneClickedAndDisplayedAnnotation, numSentencesAtLeastOneDisplayedAnnotation, numSentencesAtLeastOneClickedAndDisplayedAnnotation / numSentencesAtLeastOneDisplayedAnnotation AS clickThroughRate FROM calculation;
Rasio klik-tayang tingkat percakapan
Rasio klik-tayang tingkat Percakapan berlaku untuk anotasi yang dapat diklik beberapa kali oleh agen panggilan per percakapan. Agen panggilan harus secara proaktif mengirim permintaan yang membuat anotasi tingkat percakapan.
| Nama Anotasi | Jenis Anotasi | Kriteria |
|---|---|---|
| Bantuan pengetahuan generatif (GKA) | 'KNOWLEDGE_SEARCH' |
Setidaknya satu permintaan SearchKnowledge dikirim untuk setiap pesan dalam percakapan. |
| Bantuan pengetahuan generatif proaktif | 'KNOWLEDGE_SEARCH' |
Setidaknya satu permintaan SearchKnowledge atau AnalyzeContent dikirim untuk setiap pesan dalam percakapan. |
Metrik khusus fitur
Bagian ini mencantumkan metrik yang khusus untuk setiap fitur.
Bantuan pengetahuan generatif
Bantuan pengetahuan generatif (GKA) memberikan jawaban atas pertanyaan agen berdasarkan informasi dalam dokumen yang Anda berikan. Jika agen tidak dapat menemukan jawaban, GKA akan menyarankan pertanyaan serupa untuk diajukan dan memberikan jawabannya. Fitur ini menghasilkan metrik penelusuran pengetahuan berikut:
| Nama metrik | Definisi | Penghitungan |
|---|---|---|
| Jumlah hasil | Jumlah total jawaban yang diberikan kepada satu agen untuk semua percakapan. | |
| Rasio sumber kueri agen | Proporsi pertanyaan agen terhadap jumlah total pertanyaan. | Hitung jumlah pertanyaan agen dibagi dengan jumlah total pertanyaan. |
| Rasio sumber kueri yang disarankan | Proporsi pertanyaan yang disarankan terhadap jumlah total pertanyaan. | Hitung jumlah saran pertanyaan dibagi dengan jumlah total pertanyaan. |
| Rasio klik URI | Proporsi jawaban dengan setidaknya satu URI yang diklik terhadap jumlah total jawaban. | Hitung jumlah jawaban yang URI-nya diklik oleh agen dibagi dengan jumlah total jawaban. |
| Rasio masukan positif | Proporsi masukan positif tentang jawaban terhadap jumlah total jawaban. | Hitung jumlah jawaban yang menerima masukan positif dibagi dengan jumlah total jawaban. |
| Rasio masukan negatif | Proporsi masukan negatif tentang jawaban terhadap jumlah total jawaban. | Hitung jumlah jawaban yang menerima masukan negatif dibagi dengan jumlah total jawaban. |
Bantuan pengetahuan generatif proaktif
Bantuan pengetahuan generatif proaktif menyarankan pertanyaan berdasarkan konteks percakapan saat ini dan memberikan jawaban berdasarkan informasi dalam dokumen yang Anda berikan. Bantuan pengetahuan generatif proaktif tidak memerlukan interaksi agen. Fitur ini menghasilkan metrik bantuan pengetahuan berikut:
| Nama metrik | Definisi | Penghitungan |
|---|---|---|
| Jumlah hasil | Jumlah total saran yang diberikan kepada satu agen untuk semua percakapan. | |
| Rasio klik URI | Proporsi saran dengan setidaknya satu URI yang diklik terhadap total jumlah saran yang diberikan. | Hitung jumlah saran yang URI-nya diklik oleh agen dibagi dengan total jumlah saran yang diberikan. |
| Rasio masukan positif | Proporsi masukan positif tentang saran terhadap total jumlah saran. | Hitung jumlah saran yang menerima masukan positif dibagi dengan total jumlah saran. |
| Rasio masukan negatif | Proporsi masukan negatif tentang saran terhadap total jumlah saran. | Hitung jumlah saran yang menerima masukan negatif dibagi dengan total jumlah saran. |
Smart Reply
Bagian ini mencantumkan metrik khusus untuk balasan smart.
Rasio klik-tayang efektif (CTR efektif)
Rasio klik-tayang efektif adalah gambaran yang lebih tepat tentang seberapa sering agen panggilan mengklik anotasi balasan smart dibandingkan dengan metrik rasio klik-tayang reguler. Kueri berikut mengambil setiap respons agen dan anotasi balasan smart yang dibuat hanya untuk respons agen tersebut dan diklik oleh agen. Kemudian, jumlah kemunculan saat agen membuat draf respons menggunakan saran balasan smart dihitung, lalu jumlah ini dibagi dengan jumlah total respons agen.

WITH calculation AS ( SELECT sen.sentence AS agentResponse, ( # Get a list of effective smart replies that map to each agent response. SELECT ARRAY_AGG(JSON_QUERY(PARSE_JSON(JSON_VALUE(annotation.annotationRecord)), "$.reply")) FROM UNNEST (sentences) AS sen2, UNNEST (sen2.annotations) AS annotation WHERE annotation.type='SMART_REPLY' AND annotation.clicked=TRUE AND annotation.annotationRecord IS NOT NULL AND annotation.createTimeNanos >= ( # Get the timestamp of the agent response that immediately precedes # the current agent response. The timestamp of the effective smart # reply must be greater than this timestamp. SELECT MAX(sen3.createTimeNanos) FROM UNNEST(sentences) AS sen3 WHERE sen3.participantRole = 'HUMAN_AGENT' AND sen3.createTimeNanos < sen.createTimeNanos ) AND annotation.createTimeNanos <= sen.createTimeNanos ) AS effectiveSmartRepliesPerAgentResponse FROM BIGQUERY_TABLE, UNNEST (sentences) AS sen WHERE sen.participantRole = 'HUMAN_AGENT' ) SELECT COUNTIF(ARRAY_LENGTH(effectiveSmartRepliesPerAgentResponse) > 0) / COUNT(agentResponse) AS effectiveCTR FROM calculation;
Edit tarif
Agen dapat memilih untuk menggunakan respons balasan smart yang disarankan secara verbatim, atau mengedit respons sebelum mengirimkannya kepada pelanggan. Menghitung rasio pengeditan respons balasan smart dapat menunjukkan seberapa sering balasan yang disarankan diedit. Kueri berikut mengambil setiap balasan smart yang disarankan dan respons agen yang langsung mengikuti balasan smart tersebut. Kemudian, hitung jumlah kemunculan saat respons agen tidak berisi saran balasan cerdas yang sesuai, lalu bagi jumlah ini dengan total jumlah saran balasan cerdas.

WITH calculation AS ( SELECT JSON_VALUE(PARSE_JSON(JSON_VALUE(annotation.annotationRecord), wide_number_mode=>'round'), "$.reply") AS smartReply, ( # Get the agent response that immediately follows the smart reply. SELECT sen2.sentence FROM UNNEST (sentences) AS sen2 WHERE sen2.createTimeNanos = ( SELECT MIN(sen3.createTimeNanos) FROM UNNEST (sentences) AS sen3 WHERE sen3.createTimeNanos > sen.createTimeNanos AND sen3.participantRole = 'HUMAN_AGENT' ) ) AS agentResponseThatFollows, FROM BIGQUERY_TABLE, UNNEST (sentences) AS sen, UNNEST (sen.annotations) AS annotation WHERE annotation.type='SMART_REPLY' AND annotation.clicked=TRUE AND annotation.annotationRecord IS NOT NULL ) SELECT COUNTIF(REGEXP_CONTAINS(agentResponseThatFollows, smartReply)) / COUNT(smartReply) AS editRate FROM calculation;
Ringkasan
Bagian ini mencantumkan metrik yang khusus untuk peringkasan.
- Jenis
GENERATOR_SUGGESTION_RESULTakan berisi semua hasil generator, termasuk ringkasan. - Jenis
CONVERSATION_SUMMARIZATION_SUGGESTIONakan berisi ringkasan lama.
Ringkasan Generator
Contoh kueri untuk mengakses ringkasan generator dan pengeditan agen pada ringkasan sebagai JSON:
SELECT IF (JSON_VALUE(annotation.annotationRecord) != '', JSON_QUERY(PARSE_JSON(JSON_VALUE(annotation.annotationRecord)), "$.generatorSuggestion.summarySuggestion"), NULL) AS generator_summary, IF (JSON_VALUE(annotation.detailedFeedback) != '', JSON_QUERY(PARSE_JSON(JSON_VALUE(annotation.detailedFeedback)), "$.summarizationFeedback.summaryText"), NULL) AS feedback, FROM BIGQUERY_TABLE AS c, UNNEST(c.sentences) AS sentences, UNNEST(sentences.annotations) AS annotation WHERE annotation.type = 'GENERATOR_SUGGESTION_RESULT' AND JSON_QUERY(PARSE_JSON(JSON_VALUE(annotation.annotationRecord)), "$.generatorSuggestion.summarySuggestion") IS NOT NULL LIMIT 10 ;
Jarak pengeditan
Jarak pengeditan ringkasan adalah ukuran seberapa besar perbedaan ringkasan yang diedit agen dengan ringkasan yang disarankan. Metrik ini berkorelasi dengan jumlah waktu yang dihabiskan agen untuk mengedit ringkasan yang disarankan.
Kueri ringkasan dan ringkasan yang direvisi (jika ada).
Karena agen panggilan dapat mengirimkan revisi ringkasan tanpa menetapkan boolean
clickedketrue, kueri ringkasan, terlepas dari statusclicked-nya. Jika ringkasan agen bernilai null, agen tidak merevisi ringkasan yang disarankan atau ringkasan yang direvisi tidak dikirim ke Agent Assist menggunakan rute masukan pilihan.Bandingkan ringkasan yang disarankan dengan ringkasan revisi agen menggunakan algoritma jarak pengeditan yang Anda sukai untuk menghitung jarak pengeditan ringkasan. Misalnya, jarak Levenshtein dengan penalti yang sama untuk penyisipan, penghapusan, dan penggantian.

SELECT JSON_VALUE(PARSE_JSON(JSON_VALUE(annotation.annotationRecord)), "$.text") AS suggestedSummary, IF (JSON_VALUE(annotation.detailedFeedback) != '', JSON_QUERY(PARSE_JSON(JSON_VALUE(annotation.detailedFeedback)), "$.summarizationFeedback.summaryText"), NULL) AS feedback, FROM BIGQUERY_TABLE, UNNEST (sentences) AS sen, UNNEST (sen.annotations) as annotation WHERE type='CONVERSATION_SUMMARIZATION_SUGGESTION';
Edit tarif
Anda dapat menghitung rasio pengeditan untuk ringkasan dengan membagi jarak pengeditan dengan panjang string ringkasan yang diedit. Metrik ini mencerminkan seberapa banyak ringkasan yang diedit oleh agen. Tingkat pengeditan ini tidak memiliki batas atas, tetapi jika nilainya sama dengan atau lebih besar dari satu, berarti ringkasan yang dihasilkan buruk dan fitur ini mungkin harus dinonaktifkan.
Edit persentase
Persentase pengeditan adalah ukuran persentase dari jumlah total ringkasan yang disarankan yang diedit oleh agen, bukan digunakan kata demi kata. Metrik ini dihitung sebagai jumlah ringkasan yang diedit agen dibagi dengan jumlah ringkasan yang disarankan. Metrik ini merupakan sinyal yang baik untuk kualitas model jika nilainya mendekati 0. Namun, jika mendekati 1, tidak berarti kualitas model buruk karena pengeditan bisa saja kecil dan tetap dihitung sebagai ringkasan yang disarankan telah diedit.

WITH summaryAndEdits AS ( SELECT JSON_VALUE(PARSE_JSON(JSON_VALUE(annotation.annotationRecord)), "$.text") AS suggestedSummary, IF (JSON_VALUE(annotation.detailedFeedback) != '', JSON_QUERY(PARSE_JSON(JSON_VALUE(annotation.detailedFeedback)), "$.summarizationFeedback.summaryText"), NULL) AS editedSummary, FROM BIGQUERY_TABLE, UNNEST (sentences) AS sen, UNNEST (sen.annotations) AS annotation WHERE type='CONVERSATION_SUMMARIZATION_SUGGESTION' ) SELECT countif (suggestedSummary IS NOT NULL) AS totalSummaries, countif (editedSummary IS NOT NULL) AS editedSummaries, countif (editedSummary IS NOT NULL) / countif (suggestedSummary IS NOT NULL) AS editRate FROM summaryAndEdits;