# Cách tích hợp chatbot Dialogflow vào SquareHub?

> Thanh Phong · Cập nhật lần cuối ngày 15 thg 5, 2023

Chatbot rất hữu ích cho nhiều nhóm chăm sóc khách hàng. Chúng xử lý hiệu quả các câu hỏi đơn giản và giải phóng nhân viên hỗ trợ để tập trung vào những vấn đề quan trọng hơn.

Dialogflow và [Rasa.ai](http://rasa.ai/) là các nền tảng NLP (Xử lý Ngôn ngữ Tự nhiên) hàng đầu để xây dựng chatbot tùy chỉnh. Trong hướng dẫn này, chúng tôi giải thích cách tạo bot trong Dialogflow và tích hợp dễ dàng với SquareHub chỉ trong vài giây.

## Cách tạo bot Dialogflow?

**Bước 1.** Truy cập [Dialogflow Console](https://dialogflow.cloud.google.com/). Chúng tôi sẽ sử dụng Dialogflow Essentials cho bài viết này. Nhấp vào "Create Agent". Bạn sẽ thấy các tùy chọn như sau:

**Bước 2.** Bạn cần tạo các intent dựa trên cách bạn muốn bot phản hồi. Sẽ có 2 intent mặc định trong dự án là "Default Fallback Intent" và "Default Welcome Intent", như minh họa bên dưới.

Vậy là hoàn tất cấu hình bot cơ bản. Bây giờ hãy tạo tài khoản dịch vụ và kết nối với SquareHub.

> Bạn cũng có thể tạo thêm các intent cho các trường hợp sử dụng cụ thể của mình.  
> SquareHub cũng hỗ trợ các intent nâng cao cho phép [chuyển giao cho nhân viên hỗ trợ](https://docs.squareomni.com/docs/product/channels/live-chat/integrations/dialogflow/#creating-a-handoff-intent), [tin nhắn tương tác](https://docs.squareomni.com/hc/squarehub-user-guide-cloud-version/en/advanced-features-explained/495), v.v.  
> Tham khảo: Cuộn xuống phần "Advanced Intents".

**Bước 3.** Tạo tài khoản dịch vụ[​](https://docs.squareomni.com/docs/product/channels/live-chat/integrations/dialogflow/#create-a-service-account "Direct link to heading"). Để kết nối bot này với SquareHub, bạn cần tạo tài khoản dịch vụ trên Google Cloud Console. Điều hướng đến bảng điều khiển dự án trong Google Cloud bằng cách nhấp vào **Project ID** trong phần cài đặt dự án.

Điều hướng đến **IAM & Admin -> Service Accounts**. Bạn sẽ thấy giao diện như hình bên dưới. Nhấp vào "Create Service Account".

Nhập tên và mô tả cho tài khoản dịch vụ như hình bên dưới.

Để cấp quyền truy cập, chọn Dialogflow API Client từ danh sách thả xuống.

![](/assets/images/e1a93149_dialogflow_api_client.png)

Tiếp tục và nhấp vào "Done". Lúc này bạn sẽ thấy tài khoản dịch vụ hiển thị trong bảng điều khiển. Bước tiếp theo là tạo khóa để có thể chia sẻ với SquareHub. Nhấp vào tài khoản dịch vụ rồi chọn tab "Keys". Sau đó nhấp vào "Add Key". Bạn sẽ thấy màn hình như bên dưới.

![](/assets/images/6b1c34c5_api_key.png) Nhấp vào "JSON" rồi nhấp "Create". Hệ thống sẽ tạo khóa cho tài khoản dịch vụ của bạn. Tải khóa xuống và lưu lại để sử dụng sau.

## Thiết lập tích hợp Dialogflow trong SquareHub[​](https://docs.squareomni.com/docs/product/channels/live-chat/integrations/dialogflow/#configuring-dialogflow-integration-in-squarehub "Direct link to heading")

SquareHub có tích hợp Dialogflow sẵn có. Bạn có thể kết nối bot với SquareHub chỉ qua hai bước nhanh chóng.

**Bước 1.** Vào "Cài đặt -> Ứng dụng -> Dialogflow". Nhấp vào "Configure".

![](/assets/images/6233b248_adding_dialogflow_option_in_chatwoot.png)

**Bước 2.** Nhấp vào nút "Add a new hook". Một cửa sổ thiết lập sẽ mở ra. Bạn cần nhập "Project ID", "Project Key file" và một inbox để tạo hook. Sao chép nội dung của tệp khóa đã tải xuống trước đó và dán vào ô văn bản.

![](/assets/images/dd767399_dialoglow_settings.png)

Vậy là xong! Tích hợp đã hoàn tất. Hãy thử nghiệm inbox trên website để kiểm tra xem bot có xử lý được câu hỏi ban đầu không.

## Advanced Intents[​](https://docs.squareomni.com/docs/product/channels/live-chat/integrations/dialogflow/#advanced-intents "Direct link to heading")

### Tạo intent chuyển giao[​](https://docs.squareomni.com/docs/product/channels/live-chat/integrations/dialogflow/#creating-a-handoff-intent "Direct link to heading")

Khi người dùng yêu cầu nói chuyện với nhân viên hỗ trợ, Dialogflow phải thông báo cho SquareHub rằng nhân viên có thể tiếp quản cuộc hội thoại.

Tạo một intent có tên "Handoff Intent" với các cụm từ huấn luyện như "Talk to an agent" hay "Speak with an agent", v.v. Để xử lý intent chuyển giao, chúng ta sẽ tạo phản hồi "Custom Payload" như bên dưới.

```
{
  "action": "handoff"
}
```

![](/assets/images/053913a5_handoff_intent.png)

Khi kích hoạt intent với payload trên, SquareHub sẽ chuyển trạng thái cuộc hội thoại thành `open` và bàn giao cho nhân viên hỗ trợ.

### Tin nhắn tương tác[​](https://docs.squareomni.com/docs/product/channels/live-chat/integrations/dialogflow/#interactive-messages "Direct link to heading")

**Lưu ý**: Tin nhắn tương tác hiện chỉ được hỗ trợ trong inbox trên website.

Tích hợp SquareHub-Dialogflow cũng hỗ trợ [tin nhắn tương tác](https://docs.squareomni.com/hc/squarehub-user-guide-cloud-version/en/advanced-features-explained/495). Các loại tin nhắn tương tác được hỗ trợ bao gồm:

1.  [Tùy chọn](https://docs.squareomni.com/hc/squarehub-user-guide-cloud-version/en/advanced-features-explained/495) (có hỗ trợ follow-up)
    
2.  [Thẻ](https://docs.squareomni.com/hc/squarehub-user-guide-cloud-version/en/advanced-features-explained/495)
    
3.  [Bài viết](https://docs.squareomni.com/hc/squarehub-user-guide-cloud-version/en/advanced-features-explained/495)
    

#### **Tạo intent tin nhắn tương tác**[**​**](https://docs.squareomni.com/docs/product/channels/live-chat/integrations/dialogflow/#creating-an-interactive-message-intent "Direct link to heading")

Bạn có thể tạo các tin nhắn tương tác khác bằng cách thay đổi payload như được đề cập trong [hướng dẫn tin nhắn tương tác](https://docs.squareomni.com/docs/product/others/interactive-messages).

Tạo intent với các cụm từ huấn luyện cần thiết và phản hồi "Custom Payload" như hình bên dưới cho tin nhắn dạng tùy chọn.

```
## example for an options interactive message
{
  "content_type": "input_select",
  "content": "Select your favorite food from below",
  "content_attributes": {
    "items": [
      {
        "value": "I like sushi",
        "title": "Sushi"
      },
      {
        "title": "Biryani",
        "value": "I like biryani"
      },
      {
        "title": "Pizza",
        "value": "I like pizza"
      }
    ]
  },
  "private": false
}
```

Khi người dùng tương tác với tin nhắn đầu vào và chọn một giá trị, kết quả sẽ được gửi trở lại Dialogflow. Điều này cho phép cấu hình các intent follow-up, chẳng hạn như tạo intent với cụm từ huấn luyện "I like biryani" cho trường hợp liên hệ chọn tùy chọn "biryani".

## Nhân viên hỗ trợ có thể chuyển cuộc hội thoại trở lại bot Dialogflow như thế nào?[​](https://docs.squareomni.com/docs/product/channels/live-chat/integrations/dialogflow/#how-can-an-agent-transfer-the-conversation-back-to-dialoflow-bot "Direct link to heading")

Khi bot Dialogflow được kết nối với một inbox, các cuộc hội thoại sẽ được tạo với trạng thái `pending` thay vì `open`. Điều này cho phép bot thực hiện phân loại ban đầu trước khi cuộc hội thoại được chuyển giao cho nhân viên hỗ trợ. Khi [`handoff`](https://docs.squareomni.com/docs/product/channels/live-chat/integrations/dialogflow/#creating-a-handoff-intent) xảy ra, trạng thái cuộc hội thoại được chuyển thành `open` và bot ngừng phản hồi.

Đôi khi nhân viên hỗ trợ muốn đẩy lại một cuộc hội thoại đã được bàn giao về hàng đợi của bot. Họ có thể làm điều này bằng cách đổi trạng thái cuộc hội thoại trở lại thành `pending`. Khi đó bot sẽ bắt đầu phản hồi cuộc hội thoại đó trở lại.
