Aturan pemberian label otomatis dan korelasi

Customer Experience Insights memperkenalkan dua fitur berbasis aturan untuk meningkatkan pemrosesan percakapan:

  • Aturan pemberian label otomatis: Menerapkan label nilai kunci secara otomatis ke percakapan berdasarkan kondisi yang ditentukan.
  • Aturan korelasi: Tentukan cara menautkan segmen percakapan terkait untuk membentuk tampilan interaksi pelanggan yang lengkap.

Kedua jenis aturan menggunakan Common Expression Language (CEL) untuk memberikan definisi aturan yang fleksibel dan dinamis. CEL sangat mendasar untuk aturan korelasi dan pemberian label otomatis. Anda dapat mengonfigurasi aturan ini dengan API atau konsol CX Insights.

Aturan pemberian label otomatis

Aturan pemberian label otomatis hanya memperkaya percakapan dengan label nilai kunci kustom secara otomatis selama impor. Label ini meningkatkan pemfilteran, kategorisasi, dan integrasi dengan analisis dan alur kerja lainnya. Anda dapat melakukan tindakan berikut dengan aturan pemberian label otomatis:

  • Mengategorikan percakapan berdasarkan topik, jenis pelanggan, produk, atau hasil.
  • Ekstrak titik data utama dari metadata percakapan atau parameter Dialogflow, seperti nama callId, isAuthenticated, dan intent, ke dalam label.
  • Beri tanda pada percakapan yang memerlukan perhatian khusus, seperti high_escalation_risk.

Label

Setiap aturan pemberian label otomatis menentukan label dan berisi pesan kondisi yang diurutkan. Setiap label menggunakan ekspresi CEL berikut:

  • Kondisi: mengevaluasi apakah percakapan bernilai benar atau salah. Kondisi kosong secara default bernilai benar.
  • Nilai: menghasilkan nilai string untuk label jika kondisinya benar.

LabelingCondition pertama yang cocok akan menentukan nilai label.

Aturan default

CX Insights secara otomatis menerapkan aturan default untuk label berikut.

sessionEscalated

Label ini menggabungkan sinyal eskalasi default dan Dialogflow untuk mengidentifikasi apakah pengguna akhir atau agen yang melakukan eskalasi percakapan. Nilai label ini menginformasikan metrik rasio eskalasi pada dasbor yang dapat dikonfigurasi. Anda dapat mengonfigurasi aturan Anda sendiri untuk mengganti label ini jika Anda menggunakan panggilan alat eskalasi kustom.

sessionContained

Label ini mengidentifikasi kapan tidak ada eskalasi. Jika nilainya adalah true, hasil percakapan Quality AI tidak dapat ditingkatkan. Anda dapat mengonfigurasi aturan Anda sendiri untuk mengganti label ini.

isRepeatedCallerConversation

Label ini menghitung seberapa sering pengguna menelepon kembali dalam waktu 24 jam, dan mengandalkan label userIdentifier untuk menentukan apakah panggilan balik berasal dari pengguna yang sama. Anda dapat mengonfigurasi aturan Anda sendiri untuk mengganti label ini.

userIdentifier

Label ini menentukan apakah pengguna yang sama menelepon kembali dalam jangka waktu tertentu. Untuk melakukannya, variabel obfuscated_external_user_id digunakan dari session_params di Dialogflow dan Customer Experience Agent Studio, atau permintaan CreateParticipant di Agent Assist. Jika Anda menggunakan variabel parameter sesi yang berbeda untuk identifikasi pengguna, Anda harus menggunakan get_session_params() untuk mengganti label ini.\

lastTransferSubAgentNames

Label ini memberikan nama subagen Customer Experience Agent Studio akhir sebelum seseorang mengeskalasikan percakapan. Nilai default menggunakan get_last_subagent([entry_subagent]), yang mengasumsikan bahwa subagen yang Anda beri nama menangani eskalasi. Jika Anda memiliki agen eskalasi tertentu, Anda harus mengonfigurasi aturan sendiri untuk mengganti nilai default dengan get_last_subagent([escalation_agent_name]).

Mengonfigurasi aturan

Anda juga dapat mengonfigurasi aturan pemberian label otomatis sendiri dengan API atau konsol CX Insights.

API

  1. Gunakan operasi Create untuk mengonfigurasi AutoLabelingRule. Contoh isi permintaan:

    {
      "displayName": "$DISPLAY_NAME",
      "labelKey": "$UNIQUE_KEY_NAME",
      "labelKeyType": LABEL_KEY_TYPE_CUSTOM 
    "conditions": [
        {
          "condition": "conversation.turn_count > 10 && conversation.duration > "60s"",
          "value": "'long_call'"
        },
        {
          "condition": "conversation.agent_id == "agent_007"",
          "value": "'special_agent'"
        }
      ],
    "active": true
    }

    Perintah Curl, jika permintaan disimpan di auto_labeling_rule.json:

      curl-X POST 
    -H "Authorization: Bearer $(gcloud auth --impersonate-service-account=$SA_EMAIL print-access-token)"
    -H "Content-Type: application/json; charset=utf-8"
    -d @auto_labeling_rule.json
    "https://$ENDPOINT/v1/projects/$PROJECT/locations/$LOCATION/autoLabelingRules?auto_labeling_rule_id=$RULE_ID"

  2. Beri nama aturan Anda dalam format berikut: projects/[project-id]/locations/[location-id]/autoLabelingRules/[auto_labeling_rule]. ID [auto_labeling_rule] adalah label_key untuk aturan kustom.

Anda juga dapat menggunakan operasi berikut dengan aturan pemberian label otomatis. Aturan pemberian label otomatis dapat memiliki maksimal 100 label per percakapan dengan maksimal 256 karakter per entri.

  • Get.
    curl  -X GET 
    -H "Authorization: Bearer $(gcloud auth --impersonate-service-account=$SA_EMAIL print-access-token)"
    -H "Content-Type: application/json; charset=utf-8" \ "https://$ENDPOINT/v1/projects/$PROJECT/locations/$LOCATION/autoLabelingRules/$RULE_ID"
  • List.
    curl  -X GET 
    -H "Authorization: Bearer $(gcloud auth --impersonate-service-account=$SA_EMAIL print-access-token)"
    -H "Content-Type: application/json; charset=utf-8" \ "https://$ENDPOINT/v1/projects/$PROJECT/locations/$LOCATION/autoLabelingRules"
  • Update. Bergantung pada kolom yang akan diperbarui, tentukan update_mask.
    curl  -X PATCH 
    -H "Authorization: Bearer $(gcloud auth --impersonate-service-account=$SA_EMAIL print-access-token)"
    -H "Content-Type: application/json; charset=utf-8"
    -d @update_payload.json \ "https://$ENDPOINT/v1/projects/$PROJECT/locations/$LOCATION/autoLabelingRules/$RULE_ID?update_mask=displayName,active"
  • TestAutoLabelingRule. Payload Anda harus berisi aturan yang akan diuji dan contoh percakapan yang akan dievaluasi berdasarkan aturan tersebut. Contoh:
    {
    "conversation": {
    "agentId": "agent_007",
    "turnCount": 15,
    "duration": "75s"
    /# Add other conversation fields relevant to the rule
    },
    "autoLabelingRule": {
    "displayName": "Test Rule",
    "labelKey": "test_category",
    "conditions": [
      {
       "condition": "conversation.turn_count > 10 && conversation.duration > "60s"",
        "value": "'long_call_test'"
      }
    ],
    "active": true
    }
    }

Konsol

  1. Buka konsol CX Insights, login, lalu pilih project Anda. Konsol CX Insights
  2. Klik setelanSetelan > Aturan Pemberian Label Otomatis.
  3. Masukkan ekspresi CEL dengan editor Monaco.
  4. Klik Simpan.

Contoh CEL

  • Label menurut ID agen:
    label_key: "agent_category"
    conditions {
    condition: "conversation.agent_id == '007'"
    value: "'special_agent'"
    }
    conditions {
    condition: "conversation.agent_id.startsWith('team_a')"
    value: "'tier_1_support'"
    }
    conditions {
    condition: "" // Default
    value: "'standard'"
    }
  • Menandai sentimen negatif:
    label_key: "needs_review"
    conditions {
    // This example assumes sentiment scores are present in the conversation's latest_analysis
    condition: "has(conversation.latest_analysis.analysis_result.call_analysis_metadata.sentiments) && conversation.latest_analysis. analysis_result.call_analysis_metadata.sentiments.exists(s, s.    sentiment_data.score < -0.5)"
    value: "'true'"
    }
  • Mengekstrak parameter Dialogflow:
    label_key: "df_session_outcome"
    conditions {
    condition: "" // Always try to extract
    value: "conversation.runtime_annotations.map(a, a.dialogflow_interaction.detect_intent_response_v3.query_result.parameters).filter(p, has(p.outcome)).map(p, p.outcome).first_element_or_empty_string()"
    }

Menggunakan label otomatis dalam filter aturan analisis

Aturan pemberian label otomatis dapat menerapkan label yang mengontrol percakapan mana yang diproses oleh aturan analisis utama. Kolom conversation_filter dalam aturan analisis dapat mereferensikan label menggunakan peta label.

Contoh:

// AnalysisRule to run detailed analysis on conversations labeled 'needs_review: true'
display_name: "Detailed Analysis for Reviewed Conversations"
conversation_filter: "labels.needs_review = \"true\""
annotator_selector: {
  run_summarization_annotator: true
  // ... other annotators
}
analysis_percentage: 1.0
active: true

Aturan korelasi

Aturan korelasi menentukan cara Customer Experience Insights mengidentifikasi dan menautkan segmen percakapan terkait. Segmen percakapan merepresentasikan satu bagian percakapan, saat diserap, seperti sesi Dialogflow atau satu interaksi agen. Percakapan lengkap menampilkan percakapan lengkap yang ditautkan dan terdiri dari satu atau beberapa segmen. Secara default, semua percakapan baru dimulai sebagai segmen. Aturan korelasi membantu Anda membuat histori lengkap interaksi pelanggan, bahkan saat interaksi tersebut mencakup beberapa agen, saluran, atau sesi.

Aturan korelasi memberikan manfaat berikut untuk analisis percakapan layanan pelanggan.

  • Transkrip terpadu: Lihat transkrip kronologis tunggal yang menggabungkan ucapan dari beberapa sumber, seperti sesi chatbot yang diikuti dengan panggilan agen live.
  • Analisis lintas saluran: Menautkan interaksi di berbagai saluran, seperti chat dan suara, untuk menganalisis tren sentimen dan perkembangan topik di seluruh perjalanan percakapan.
  • Akurasi metrik: Hitung metrik seperti total waktu pemrosesan atau tingkat penyelesaian untuk interaksi penuh, bukan hanya bagian individual.
  • Konteks untuk agen: Berikan histori lengkap interaksi otomatis sebelumnya kepada agen manusia.

Proses korelasi

Jika aturan korelasi cocok dengan beberapa segmen percakapan, CX Insights akan mengelompokkannya. Kemudian, CX Insights akan membuat entri baru untuk merepresentasikan percakapan lengkap dengan ID percakapan uniknya sendiri. CX Insights menetapkan ID korelasi percakapan lengkap ke kunci umum yang menautkan segmen, dan jenisnya ke FULL. CX Insights menetapkan ID korelasi segmen asli ke kunci umum dan jenisnya ke SEGMENT. Jika segmen tidak berkorelasi dengan segmen lain, CX Insights akan memberikan jenis korelasi SEGMENT dan FULL.

Aturan korelasi menautkan segmen percakapan terkait dari berbagai sumber dan saluran. CX Insights mengikuti langkah-langkah berikut untuk menautkan segmen percakapan:

  1. Kelompokkan menurut kunci gabungan: CX Insights mengevaluasi ekspresi kunci gabungan CEL untuk mengekstrak ID umum dari percakapan, seperti callId. Percakapan yang membagikan kunci gabung yang sama adalah kandidat potensial untuk penautan. Kunci gabungan harus spesifik. Jika kunci cocok dengan lebih dari 20 percakapan, korelasi mungkin ditolak untuk mencegah masalah performa.
  2. Perbaiki dengan batasan: Ekspresi batasan CEL adalah pemeriksaan boolean opsional yang dievaluasi berpasangan antara kandidat. Ekspresi ini membantu mengonfirmasi apakah dua segmen yang berbagi kunci harus ditautkan. Pemeriksaan ini bersifat dua arah, sehingga dapat mencakup segmen A yang ditautkan ke segmen B dan segmen B yang ditautkan ke segmen A.
  3. Link transitif: Penautan bersifat transitif. Jika percakapan A ditautkan ke B, dan B ditautkan ke C, maka A, B, dan C digabungkan ke dalam satu grup percakapan FULL.

Percakapan gabungan dapat berisi maksimum lima segmen.

Mengonfigurasi aturan korelasi

Anda dapat mengonfigurasi aturan korelasi menggunakan API atau konsol CX Insights.

API

  1. Jalankan kode berikut untuk menyiapkan CorrelationConfig.
    curl  -X PATCH 
    -H "Authorization: Bearer $(gcloud auth --impersonate-service-account=$SA_EMAIL print-access-token)"
    -H "Content-Type: application/json; charset=utf-8"
    -d @update_corr_config.json
    "https://$ENDPOINT/v1/projects/$PROJECT/locations/$LOCATION/correlationConfig?update_mask=fullConversationConfig"
  2. Beri nama aturan Anda dengan format berikut: projects/{project-id}/locations/{location-id}/correlationConfig.
  3. Lihat hasilnya di kolom Conversation.CorrelationInfo.

Anda dapat menggunakan salah satu operasi berikut dengan aturan korelasi.

  • GetCorrelationConfig.
    curl-X GET 
    -H "Authorization: Bearer $(gcloud auth --impersonate-service-account=$SA_EMAIL print-access-token)"
    -H "Content-Type: application/json; charset=utf-8"
    "https://$ENDPOINT/v1/projects/$PROJECT/locations/$LOCATION/correlationConfig"
  • UpdateCorrelationConfig. Contoh isi permintaan, jika disimpan dalam updated_corr_config.json:
    {
    "fullConversationConfig": {
    "correlationRules": [
      {
        "joinKeyExpression": "conversation.labels.uui",
        "active": true
      }
    ]
    }
    }
  • TestCorrelationConfig. Payload Anda harus menentukan detail percakapan contoh selain aturan korelasi yang akan diuji. Contoh:
    {
    "correlationConfig": {
    "fullConversationConfig": {
      "correlationRules": [
       {
          "joinKeyExpression": "conversation.agent_id",
         "active": true
        }
      ]
    }
    },
    "filter": "agent_id="agent_007"",
    "maxSampleCount": 100
    }

Konsol

  1. Buka konsol CX Insights, login, lalu pilih project Anda. Konsol CX Insights
  2. Klik settingsSetelan > Konfigurasi Korelasi.
  3. Klik Simpan.

Administrator dapat menentukan dan mengelola entri CorrelationRule dalam CorrelationConfig. Anda dapat menguji aturan korelasi dengan memilih percakapan. Hasil pengujian ditambahkan ke set data untuk ditinjau.

Contoh CEL

Menautkan berdasarkan callId dari Dialogflow:

join_key_expression:
// Extracts 'callId' from Dialogflow parameters, falls back to conversation name.
default(conversation.runtime_annotations.map(a,
  a.dialogflow_interaction.detect_intent_response_v3.query_result.parameters)
  .filter(p, has(p.callId))
  .map(p, p.callId)
  .first_element_or_empty_string(), conversation.name)

Fungsi utilitas CEL

CX Insights menyediakan beberapa fungsi utilitas yang dapat Anda gunakan dalam ekspresi CEL untuk mengevaluasi percakapan.

Tanda tangan fungsi Deskripsi
get_label(string key) Menampilkan nilai string label yang terkait dengan key tertentu dari percakapan saat ini.
exists_call_back_conversation(
  string filter)
Menampilkan true jika ada percakapan "panggilan balik" yang cocok dengan filter yang diberikan. Fitur ini menelusuri percakapan dengan ID pengguna yang sama (ID pengguna yang di-obfuscate atau label ID pengguna yang telah ditentukan sebelumnya) dalam jangka waktu mendatang default (24 jam). filter yang diberikan ditambahkan ke kriteria ini.
has_same_caller_conversation_in_n_hours(
  int hours)


has_same_caller_conversation_in_n_hours(
  int hours, string filter)
Menampilkan true jika ada percakapan dari penelepon/pengguna yang sama dalam jumlah hours yang ditentukan (positif untuk masa mendatang, negatif untuk masa lalu). filter opsional dapat diberikan untuk membatasi penelusuran lebih lanjut.
get_same_caller_conversations_in_n_hours(
  int hours)


get_same_caller_conversations_in_n_hours(
  int hours, string filter)
Menampilkan daftar percakapan dari penelepon/pengguna yang sama dalam jumlah hours yang ditentukan. filter opsional dapat diberikan.
get_session_params(string key) Mengambil nilai string parameter sesi (dari Dialogflow atau CES) yang terkait dengan key tertentu. Alat ini menelusuri anotasi runtime dan anotasi pergantian CES dalam urutan kronologis terbalik. Menampilkan string kosong jika tidak ditemukan.
get_last_subagent()

get_last_subagent(list excludes)
Menampilkan nama tampilan sub-agen terakhir yang terlibat dalam percakapan. Dapat secara opsional mengecualikan subagen yang tercantum dalam daftar excludes (yang biasanya mencakup subagen yang secara khusus menangani eskalasi) kecuali jika subagen tersebut adalah satu-satunya subagen.
get_last_subagent_id()

get_last_subagent_id(list excludes)
Menampilkan ID sub-agen terakhir yang terlibat dalam percakapan. Dapat secara opsional mengecualikan subagen yang tercantum dalam daftar excludes (yang biasanya mencakup subagen yang secara khusus menangani eskalasi) kecuali jika subagen tersebut adalah satu-satunya subagen.
list.first_element_or_empty_string() Tersedia di daftar string. Menampilkan elemen pertama dari daftar jika berupa string; jika tidak (atau jika kosong), menampilkan string kosong.

Analisis tingkat segmen dan percakapan

Dengan CX Insights, Anda dapat menganalisis percakapan pada berbagai tingkat perincian, termasuk analisis per-segmen dan per-percakapan untuk semua fitur. Halaman Conversation Hub dan Quality AI di konsol membandingkan data tingkat percakapan dan segmen, yang menunjukkan struktur multi-segmen dari percakapan yang ditautkan.

Untuk menargetkan tingkat analisis tertentu, gunakan filter berikut dengan aturan analisis.

Tampilan tingkat segmen

Tujuan tampilan ini adalah untuk menganalisis bagian tertentu dari interaksi, seperti giliran agen tunggal. Gunakan parameter correlation_info.correlation_types:SEGMENT untuk memfilter tampilan tingkat segmen.

Tampilan percakapan lengkap

Gunakan tampilan ini untuk menganalisis seluruh perjalanan pelanggan, baik yang terdiri dari percakapan tertaut maupun mandiri. Gunakan parameter correlation_info.correlation_types:FULL untuk memfilter tampilan percakapan lengkap.