Menambahkan otomatisasi dengan Dialogflow

Dialogflow adalah alat natural language understanding (NLU) yang memproses input pengguna, memetakannya ke intent yang diketahui, dan merespons dengan balasan yang sesuai. Ada dua edisi Dialogflow. Dengan mengintegrasikan agen Business Messages dengan Dialogflow ES, Anda dapat dengan mudah membuat otomatisasi sederhana untuk memulai pengembangan agen. Dengan mengintegrasikan dengan Dialogflow CX, Anda dapat membuat otomatisasi lanjutan untuk percakapan yang lebih kompleks.

Agen Business Messages mendukung integrasi langsung dengan

Untuk mengintegrasikan agen Business Messages dengan fitur lain dari Dialogflow ES atau Dialogflow CX, lihat setiap dokumentasi produk.

Saat pengguna mengirim pesan ke agen yang memiliki integrasi Dialogflow, Business Messages meneruskan pesan pengguna ke Dialogflow dan mengirim respons Dialogflow ke agen dalam objek dialogflowResponse pesan. Anda dapat mengonfigurasi agen untuk otomatis mengirim respons Dialogflow kepada pengguna tanpa perlu melakukan tindakan apa pun. Lihat Respons otomatis untuk mengetahui detailnya.

Integrasi Dialogflow

Sebelum dapat memanfaatkan otomatisasi berbasis Dialogflow melalui Business Messages, Anda harus mengaktifkan integrasi Dialogflow.

Prasyarat

Untuk memulai, Anda memerlukan

  • agen Business Messages
  • agen Dialogflow di wilayah Global dengan bahasa utama Inggris (en)

Jika Anda tidak memiliki agen Dialogflow, buat agen.

Dialogflow ES

Sebelum dapat mengaktifkan integrasi Dialogflow ES, Anda memerlukan project ID agen Dialogflow. Untuk menemukan project ID,

  1. Buka Konsol Dialogflow.
  2. Pilih agen Dialogflow yang ingin Anda hubungkan ke Business Messages, lalu klik ikon roda gigi di samping nama agen.
  3. Di bagian Project Google, perhatikan nilai Project ID.

Dialogflow CX

Sebelum dapat mengaktifkan integrasi Dialogflow CX, Anda memerlukan project ID dan ID agen agen Dialogflow Anda. Untuk menemukan ID ini,

  1. Buka Dialogflow CX Console.
  2. Pilih project Dialogflow Anda.
  3. Di pemilih agen, klik menu tambahan di samping agen Dialogflow Anda.
  4. Klik Salin nama. Tindakan ini akan menyalin nama lengkap agen Anda dalam format berikut: projects/PROJECT_ID/locations/REGION_ID/agents/AGENT_ID.
  5. Perhatikan nilai project ID dan ID agen.

Mengaktifkan integrasi

  1. Di Business Communications Developer Console, buka Integrations.
  2. Untuk Dialogflow, klik Enable integration.
  3. Klik Hubungkan model yang ada.
  4. Untuk Edisi Dialogflow, pilih edisi yang akan diaktifkan.
  5. Masukkan project ID agen Dialogflow Anda.
  6. Untuk mengaktifkan Dialogflow CX, masukkan juga ID agen Dialogflow Anda.
  7. Jika Anda ingin Business Messages merespons pengguna secara otomatis dengan respons Dialogflow, pilih Enable auto-response.
  8. Klik Next.
  9. Salin email akun layanan. Akun ini menghubungkan agen Business Messages dan agen Dialogflow Anda.
  10. Di Google Cloud Console, pilih project Dialogflow Anda.
  11. Buka izin IAM.
  12. Klik Add, lalu masukkan email akun layanan untuk New principals.
  13. Untuk Select a role, pilih Dialogflow Console Agent Editor.
  14. Klik Tambahkan peran lain, lalu pilih Dialogflow API Client.
  15. Klik Simpan.
  16. Di Konsol Developer Komunikasi Bisnis, klik Berikutnya.
  17. Klik Mulai integrasi.

Perlu waktu sekitar dua menit untuk menghubungkan Business Messages dan Dialogflow.

Memperbarui integrasi

  1. Di Business Communications Developer Console, buka Integrations.
  2. Klik ikon roda gigi di samping Dialogflow.
  3. Aktifkan Aktifkan respons otomatis, bergantung pada apakah Anda ingin Pesan Bisnis merespons pengguna secara otomatis dengan respons Dialogflow atau tidak.

Beralih antaredisi Dialogflow

Agen Business Messages hanya dapat mendukung satu integrasi Dialogflow pada satu waktu. Untuk beralih dari satu edisi Dialogflow ke edisi lainnya, Anda harus menonaktifkan integrasi saat ini sebelum mengaktifkan yang baru.

Menonaktifkan integrasi

  1. Di Business Communications Developer Console, buka Integrations.
  2. Klik ikon roda gigi di samping Dialogflow.
  3. Klik Nonaktifkan integrasi.
  4. Klik Nonaktifkan.

Perlu waktu sekitar satu menit untuk menonaktifkan integrasi Dialogflow yang ada.

Aktifkan integrasi Dialogflow baru dengan mengikuti langkah-langkah berikut.

Pencocokan intent

Setelah Anda mengaktifkan integrasi Dialogflow untuk agen Business Messages, agen Anda dapat menggunakan intent yang dikonfigurasi oleh project Dialogflow untuk memahami dan merespons pertanyaan pengguna tanpa harus menulis kode. Untuk mempelajari intent lebih lanjut, lihat dokumentasi untuk Dialogflow ES dan Dialogflow CX.

Konfigurasikan intent Dialogflow Anda untuk setiap opsi percakapan yang ingin Anda dukung melalui otomatisasi. Agen Business Messages mengandalkan Dialogflow untuk memahami pesan pengguna.

Saat memanggil Dialogflow API, Business Messages akan meneruskan payload pesan pengguna ke intent dan webhook pemenuhan Anda. Saat pesan pengguna dicocokkan dengan intent, Anda dapat mengakses payload ini dalam format Struct di kolom business_messages_payload dalam QueryParameters.

Payload berisi semua kolom dari pesan pengguna kecuali DialogflowResponse.

Untuk Dialogflow CX, Business Messages juga meneruskan parameter sesi bernama channel dengan nilai google_business_messages ke intent dan Anda dapat mereferensikannya di agen dengan format berikut: $session.params.channel.

Parameter ini dapat digunakan untuk menambahkan kondisional ke fulfillment Dialogflow Anda untuk mendukung beberapa saluran di agen Dialogflow yang sama.

Untuk informasi selengkapnya tentang parameter kueri, lihat referensi Dialogflow ES dan Dialogflow CX.

Prasyarat

Saat membuat model NLU dalam Dialogflow, Anda dapat mengonfigurasi berbagai jenis respons untuk intent. Business Messages mendukung respons Default, yang dapat mencakup hal berikut:

  • Teks
  • Payload kustom
  • Pengalihan agen langsung (khusus Dialogflow CX)

Payload kustom harus cocok dengan objek respons pesan JSON Business Messages yang valid. Saat mengonfigurasi respons payload kustom untuk intent, Business Messages akan mengabaikan kolom berikut:

  • name
  • messageId
  • representative

Lihat contoh respons berikut.

Teks dengan saran

{
  "text": "Hello World!",
  "fallback": "Hello World!\n\nReply with \"Hello\" or \"Hi!\"",
  "suggestions": [
    {
      "reply": {
        "text": "Hello",
        "postbackData": "hello-formal"
      }
    },
    {
      "reply": {
        "text": "Hi!",
        "postbackData": "hello-informal"
      }
    }
  ]
}

Kartu informasi

{
  "fallback": "Hello, world!\nSent with Business Messages\n\nReply with \"Suggestion #1\" or \"Suggestion #2\"",
  "richCard": {
    "standaloneCard": {
      "cardContent": {
        "title": "Hello, world!",
        "description": "Sent with Business Messages.",
        "media": {
          "height": "TALL",
          "contentInfo":{
            "altText": "Google logo",
            "fileUrl": "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png",
            "forceRefresh": "false"
          }
        },
        "suggestions": [
          {
            "reply": {
              "text": "Suggestion #1",
              "postbackData": "suggestion_1"
            }
          },
          {
            "reply": {
              "text": "Suggestion #2",
              "postbackData": "suggestion_2"
            }
          }
        ]
      }
    }
  }
}
{
  "fallback": "Card #1\nThe description for card #1\n\nCard #2\nThe description for card #2\n\nReply with \"Card #1\" or \"Card #2\"",
  "richCard": {
    "carouselCard": {
      "cardWidth": "MEDIUM",
      "cardContents": [
        {
          "title": "Card #1",
          "description": "The description for card #1",
          "suggestions": [
            {
              "reply": {
                "text": "Card #1",
                "postbackData": "card_1"
              }
            }
          ],
          "media": {
            "height": "MEDIUM",
            "contentInfo": {
              "fileUrl": "https://my.files/cute-dog.jpg",
              "forceRefresh": false
            }
          }
        },
        {
          "title": "Card #2",
          "description": "The description for card #2",
          "suggestions": [
            {
              "reply": {
                "text": "Card #2",
                "postbackData": "card_2"
              }
            }
          ],
          "media": {
            "height": "MEDIUM",
            "contentInfo": {
              "fileUrl": "https://my.files/elephant.jpg",
              "forceRefresh": false
            }
          }
        }
      ]
    }
  }
}

Penyerahan agen langsung

{
  "metadata": {}
}

Bot FAQ

Setelah mengaktifkan integrasi Dialogflow ES untuk agen Business Messages, Anda dapat membuat bot FAQ. Jika Anda memberikan pertanyaan dan jawaban sebagai dokumen pengetahuan yang didukung, Business Messages dan Dialogflow akan membuat infrastruktur yang diperlukan untuk memahami dan merespons pertanyaan pengguna tanpa harus menulis kode.

Untuk melihat cara kerja bot FAQ, chat dengan Bot FAQ Business Messages.

Prasyarat

Sebelum membuat bot FAQ, Anda memerlukan pertanyaan dan jawaban yang tersedia sebagai dokumen pengetahuan (maks. 50 MB): file HTML atau file CSV yang tersedia untuk publik.

Umumnya, dokumen pengetahuan

  • Dapat menyertakan Markdown terbatas dalam jawaban, seperti yang ditentukan dalam Teks lengkap.
  • Memiliki ukuran maksimum 50 MB.
  • Tidak boleh melebihi 2.000 pasangan pertanyaan/jawaban.
  • Jangan mendukung pertanyaan duplikat dengan jawaban yang berbeda.

Untuk file HTML,

  • File dari URL publik harus di-crawl oleh pengindeks penelusuran Google sehingga file tersebut ada di indeks penelusuran. Anda dapat memeriksanya dengan Google Search Console. Perhatikan bahwa pengindeks tidak selalu memperbarui konten Anda. Anda harus secara eksplisit memperbarui dokumen saat konten sumber berubah.
  • Dialogflow akan menghapus tag HTML dari konten saat membuat respons. Oleh karena ini, sebaiknya hindari tag HTML dan gunakan teks biasa jika memungkinkan.
  • File dengan satu pasangan pertanyaan/jawaban tidak didukung.

Untuk file CSV,

  • File harus memiliki pertanyaan di kolom pertama dan jawaban di kolom kedua, tanpa header.
  • File harus menggunakan koma sebagai pembatas.

Membuat bot FAQ

  1. Di Business Communications Developer Console, buka Integrations.
  2. Di bagian Pusat informasi (FAQ), klik Buat pusat informasi.
  3. Masukkan nama untuk pusat informasi, lalu klik Berikutnya.
  4. Pilih Mime type.
  5. Tambahkan dokumen pengetahuan.
    • Jika Anda memilih HTML untuk Jenis MIME, masukkan URL yang dapat diakses secara publik untuk FAQ Anda di URL.
    • Jika Anda memilih CSV untuk Jenis MIME, klik Upload, lalu pilih file CSV Anda.
  6. Klik Tambahkan dan selesai.

Untuk menambahkan dokumen lain ke bot FAQ, klik tombol Tambahkan dokumen.

Setelah Anda mengikuti langkah-langkah tersebut, Business Messages akan menyertakan objek dialogflowResponse dalam pesan pengguna yang dikirimkan ke agen Anda. Jika Anda mengaktifkan respons otomatis, Business Messages akan merespons pengguna dengan pasangan pertanyaan/jawaban yang memiliki skor matchConfidence tertinggi jika dibandingkan dengan pesan pengguna.

Respons otomatis

Jika Anda mengaktifkan respons otomatis selama integrasi Dialogflow, Business Messages akan otomatis merespons pengguna melalui Dialogflow. Agen Business Message merespons dengan tingkat keyakinan tertinggi yang cocok. Dengan integrasi Dialogflow ES, jika ada kecocokan dengan jawaban FAQ dan intent kustom, Business Messages akan merespons dengan kecocokan yang memiliki tingkat keyakinan tertinggi.

Business Messages menandai semua pesan yang direspons otomatis sebagai berasal dari BOT perwakilan. Jika agen Anda mendukung agen langsung, Business Messages menangguhkan respons otomatis setelah REPRESENTATIVE_JOINED peristiwa dan melanjutkan respons otomatis setelah REPRESENTATIVE_LEFT peristiwa. Lihat Menyerahkan dari bot ke agen langsung.

Respons otomatis dengan jawaban FAQ

Dengan integrasi Dialogflow ES, jika jawaban FAQ memiliki tingkat keyakinan tertinggi, Business Messages akan memetakan jawaban ke pesan teks. Jika ada jawaban terkait tetapi berbeda, pesan akan menampilkan "Lihat saran jawaban lainnya". Jika tidak, pesan akan menyertakan pertanyaan dan saran balasan untuk menanyakan apakah pesan tersebut memenuhi permintaan pengguna.

Merespons otomatis dengan respons intent

Respons intent dapat menyertakan satu atau beberapa respons berikut.

Jika respons intent memiliki tingkat keyakinan tertinggi yang cocok, hal berikut akan berlaku.

  • Jika respons memiliki setidaknya satu nilai Teks, Business Messages akan memetakan nilai ini ke pesan teks.
  • Jika respons memiliki setidaknya satu payload Kustom dengan struktur objek JSON Business Messages yang valid, Business Messages akan membuat pesan menggunakan objek JSON yang disediakan.
  • Jika respons memiliki setidaknya satu respons handoff Agen langsung, lihat Respons otomatis dengan permintaan agen langsung.

Karena Dialogflow dapat menyertakan beberapa respons dalam satu pencocokan intent, Business Messages akan mengirimkan setiap respons Teks, payload Kustom, atau Handoff agen langsung sebagai pesan terpisah. Jika ada beberapa pesan dalam kecocokan intent, tetapi beberapa pesan tersebut salah format, Business Messages hanya akan mengirimkan pesan yang valid sebagai respons otomatis.

Respons otomatis dengan permintaan agen langsung

Dialogflow CX mendukung respons Handoff agen langsung. Ini menandakan bahwa percakapan harus diserahkan kepada perwakilan manusia, dan memungkinkan Anda meneruskan metadata kustom untuk prosedur handoff Anda. Jika respons intent memiliki tingkat keyakinan tertinggi yang cocok, dan mencakup handoff agen Live, Business Messages akan mengirimkan peristiwa permintaan agen langsung ke webhook Anda. Untuk menangani peristiwa ini, lihat Menyerahkan dari bot ke agen langsung.

Merespons otomatis dengan pesan penggantian

Jika Dialogflow tidak mendapatkan tingkat keyakinan yang tinggi, Business Messages akan mengirimkan respons penggantian. Penggantian ditangani secara berbeda dalam Dialogflow ES dan Dialogflow CX.

Dialogflow ES

Untuk bot FAQ, jika tidak ada kecocokan dengan jawaban FAQ, Business Messages akan mengirimkan pesan penggantian yang tidak dapat ditemukan jawabannya.

Untuk intent yang dikonfigurasi, jika tidak ada kecocokan dengan respons intent, Business Message akan mengirimkan respons intent fallback. Anda dapat menggunakan teks penggantian yang disediakan oleh Dialogflow, atau mengonfigurasi penggantian dengan teks dan payload kustom tambahan.

Berikut adalah contoh respons intent fallback yang dapat diterima webhook Anda:

{
  "intentResponses": [
    {
      "intentName": "projects/df-integration/agent/intents/12345",
      "intentDisplayName": "Default Fallback Intent",
      "intentDetectionConfidence": "1.0",
      "fulfillmentMessages": [
        {
          "text": "One more time?"
        }
      ]
    }
  ]
}

Dialogflow mengisi otomatis intent_name dan intent_display_name.

Dialogflow CX

Dialogflow CX menangani respons intent fallback sebagai peristiwa bawaan. Jika tidak ada kecocokan dengan respons intent, Business Messages akan mengirimkan pesan penggantian dari peristiwa default No-match di Dialogflow. Anda dapat menggunakan teks penggantian yang disediakan oleh Dialogflow, atau mengonfigurasi penggantian dengan teks tambahan, payload kustom, dan opsi handoff agen langsung.

Berikut adalah contoh respons intent fallback yang dapat diterima webhook Anda:

{
  "intentResponses": [
    {
      "intentName": "sys.no-match-default",
      "intentDisplayName": "Default Fallback Intent",
      "intentDetectionConfidence": "0.3",
      "fulfillmentMessages": [
        {
          "text": "I missed that, say that again?"
        }
      ]
    }
  ]
}

Business Messages melakukan hard code intent_name dan intent_display_name.

Kolom khusus dialogflow

Setelah Anda mengaktifkan integrasi Dialogflow, pesan pengguna yang diterima oleh agen akan menyertakan objek dialogflowResponse. Webhook Anda menerima payload untuk semua pesan pengguna, terlepas dari apakah Pesan Bisnis merespons pesan tersebut secara otomatis atau tidak. Untuk memeriksa respons otomatis, lihat nilai kolom autoResponded dan tentukan apakah Anda perlu merespons pengguna.

Dialogflow ES

...
"dialogflowResponse": {
  "queryText": "TEXT",
  "intentResponse": {
    "intentName": "INTENT_ID",
    "intentDisplayName": "INTENT_NAME",
    "intentDetectionConfidence": "CONFIDENCE_NUMERIC",
    "fulfillmentMessages": [{
      "text": "FULFILLMENT_TEXT",
      "jsonPayload": "JSON",
      "error": "ERROR_STATUS",
    }],
  "faqResponse": {
    "userQuestion": "USER_QUESTION",
    "answers": [{
      "faqQuestion": "FAQ_QUESTION",
      "faqAnswer": "FAQ_ANSWER",
      "matchConfidenceLevel": "CONFIDENCE_LEVEL",
      "matchConfidence": "CONFIDENCE_NUMERIC",
    }],
  },
  "autoResponded": "BOOLEAN",
  "autoRespondedMessages": [{
    "message": "MESSAGE_JSON",
    "responseSource": "SOURCE",
  }],
},
...
Kolom Deskripsi
queryText Teks kueri percakapan asli. Jika koreksi ejaan otomatis diaktifkan untuk model Dialogflow, queryText akan berisi input pengguna yang telah diperbaiki.
intentName ID unik dari intent yang cocok.
intentDisplayName Nama intent yang cocok.
intentDetectionConfidence Rating keyakinan numerik dalam kecocokan antara queryText dan intentName.
text Respons teks.
jsonPayload Respons payload kustom. String ini cocok dengan payload kustom yang ditentukan dalam Dialogflow. Jika payload tidak memiliki struktur objek JSON Business Messages yang valid, error akan menjelaskan masalahnya.
error Deskripsi error dengan pesan pemenuhan intent.
userQuestion Pertanyaan yang diajukan pengguna, seperti yang diuraikan oleh Dialogflow.
faqQuestion Pertanyaan dari Dialogflow cocok dengan pertanyaan pengguna.
faqAnswer Jawaban dari Dialogflow cocok dengan pertanyaan pengguna.
matchConfidenceLevel Tingkat keyakinan dalam kecocokan antara userQuestion dan faqQuestion.
matchConfidence Rating keyakinan numerik dalam kecocokan antara userQuestion dan faqQuestion.
autoResponded Apakah Business Messages otomatis merespons pengguna dengan jawaban dari Dialogflow atau tidak.
message Payload respons otomatis.
responseSource Sumber respons otomatis. Lihat ResponseSource.

Dialogflow CX

...
"dialogflowResponse": {
  "queryText": "TEXT",
  "intentResponse": {
    "intentName": "INTENT_ID",
    "intentDisplayName": "INTENT_NAME",
    "intentDetectionConfidence": "CONFIDENCE_NUMERIC",
    "fulfillmentMessages": [{
      "text": "FULFILLMENT_TEXT",
      "jsonPayload": "JSON",
      "error": "ERROR_STATUS",
      "liveAgentHandoff": {
        "metadata": {}
      }
    }],
  "autoResponded": "BOOLEAN",
  "autoRespondedMessages": [{
    "message": "MESSAGE_JSON",
    "responseSource": "SOURCE",
  }],
},
...
Kolom Deskripsi
queryText Teks kueri percakapan asli. Jika koreksi ejaan otomatis diaktifkan untuk model Dialogflow, queryText akan berisi input pengguna yang telah diperbaiki.
intentName ID unik dari intent yang cocok.
intentDisplayName Nama intent yang cocok.
intentDetectionConfidence Rating keyakinan numerik dalam kecocokan antara queryText dan intentName.
text Respons teks.
jsonPayload Respons payload kustom. String ini cocok dengan payload kustom yang ditentukan dalam Dialogflow. Jika payload tidak memiliki struktur objek JSON Business Messages yang valid, error akan menjelaskan masalahnya.
error Deskripsi error dengan pesan pemenuhan intent.
liveAgentHandoff Metadata kustom untuk prosedur handoff agen langsung.
autoResponded Apakah Business Messages otomatis merespons pengguna dengan jawaban dari Dialogflow atau tidak.
message Payload respons otomatis.
responseSource Sumber respons otomatis. Lihat ResponseSource.