> ## Documentation Index
> Fetch the complete documentation index at: https://chatbotx.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Tích hợp Make

> Kết nối ChatbotX với Make để nhận sự kiện, gửi dữ liệu từ Flow và tự động thực hiện Actions trên contact.

Tích hợp **Make** giúp bạn kết nối ChatbotX với các ứng dụng và quy trình tự động bên ngoài. Bạn có thể chuyển dữ liệu khách từ Flow sang Make, cập nhật contact hoặc gửi một Flow khác mà không cần thao tác thủ công.

Ví dụ: sau khi khách hoàn tất form tư vấn trong ChatbotX, Make nhận thông tin, tạo một dòng trong CRM và gửi Flow xác nhận cho khách.

## Cách tích hợp hoạt động

Trong Make, một **scenario** là quy trình tự động gồm nhiều module nối tiếp nhau. Tích hợp ChatbotX sử dụng ứng dụng **ChatConnectX** với ba thành phần chính:

| Thành phần     | Chức năng                                                                 |
| -------------- | ------------------------------------------------------------------------- |
| **Trigger**    | Bắt đầu scenario khi Make nhận sự kiện hoặc dữ liệu từ ChatbotX.          |
| **Action**     | Thực hiện công việc trong ChatbotX, ví dụ cập nhật contact hoặc gửi Flow. |
| **Connection** | Xác thực Make với workspace ChatbotX bằng Workspace token.                |

Bạn thường thiết lập theo thứ tự: cài ChatConnectX, tạo Connection, chọn Trigger, thêm Action rồi chạy thử scenario.

## Cài ChatConnectX và kết nối workspace

### Cài ứng dụng ChatConnectX

Nút **Connect** trong ChatbotX mở trang cài đặt ứng dụng **ChatConnectX** trên Make. Bạn tạo và quản lý scenario trực tiếp trong Make.

<Steps>
  <Step title="Mở ChatConnectX từ Integrations">
    Trong ChatbotX, chọn **Settings** từ menu bên trái và mở tab **Integrations**. Tìm mục **Make**, sau đó nhấn **Connect** để mở ứng dụng **ChatConnectX** trên Make.

    <Frame>
      <img src="https://mintcdn.com/chatbotx/WZzzEu-A09Zs_0PH/images/make_connect_chatconnectx.png?fit=max&auto=format&n=WZzzEu-A09Zs_0PH&q=85&s=457caa7f95be8827b10aa68b57190ac0" alt="Make Connect Chatconnectx" width="3011" height="1872" data-path="images/make_connect_chatconnectx.png" />
    </Frame>
  </Step>

  <Step title="Cài ứng dụng">
    Trên trang ChatConnectX, nhấn **Install**.

    <Frame>
      <img src="https://mintcdn.com/chatbotx/WZzzEu-A09Zs_0PH/images/chatconnectx_make_install.png?fit=max&auto=format&n=WZzzEu-A09Zs_0PH&q=85&s=7ad93ad88b4109bbee346b018f529d53" alt="Chatconnectx Make Install" width="3016" height="843" data-path="images/chatconnectx_make_install.png" />
    </Frame>
  </Step>

  <Step title="Chọn organization">
    Chọn organization cần cài ứng dụng. Tài khoản Make cần có quyền **Admin**, **Owner** hoặc **App Developer**. Nhấn **Install** để hoàn tất.

    <Frame>
      <img src="https://mintcdn.com/chatbotx/WZzzEu-A09Zs_0PH/images/make_select_organization.png?fit=max&auto=format&n=WZzzEu-A09Zs_0PH&q=85&s=7fef84172bd6295094a57fc2cfce25ae" alt="Make Select Organization" width="2191" height="1461" data-path="images/make_select_organization.png" />
    </Frame>
  </Step>
</Steps>

<Note>
  Nút **Connect** chỉ mở ứng dụng ChatConnectX trên Make. Việc cài ứng dụng, tạo scenario và bật scenario đều thực hiện trong Make.
</Note>

### Tạo Connection

Connection cho phép Make truy cập đúng workspace ChatbotX. Bạn chỉ cần tạo một lần, sau đó có thể sử dụng lại trong các module ChatConnectX.

<Steps>
  <Step title="Mở cửa sổ Connection">
    Trong một module ChatConnectX, nhấn **Add** cạnh trường **Connection**.
  </Step>

  <Step title="Đặt tên Connection">
    Nhập tên dễ nhận biết vào **Connection name**, ví dụ `ChatbotX Production`.
  </Step>

  <Step title="Nhập Workspace token">
    Trong ChatbotX, mở **Settings > Integrations > Workspace token** và sao chép token. Dán token vào trường **Workspace token** trên Make.

    <Frame>
      <img src="https://mintcdn.com/chatbotx/WZzzEu-A09Zs_0PH/images/make_create_connection_workspace_token.png?fit=max&auto=format&n=WZzzEu-A09Zs_0PH&q=85&s=2ae691fe6957fc10f339a78fd5ffa11b" alt="Make Create Connection Workspace Token" width="2083" height="1013" data-path="images/make_create_connection_workspace_token.png" />
    </Frame>
  </Step>

  <Step title="Lưu Connection">
    Nhấn **Save**, sau đó chọn Connection vừa tạo trong module.
  </Step>
</Steps>

<Warning>
  Workspace token cho phép truy cập dữ liệu trong workspace. Không đưa token vào ảnh chụp, email hoặc tài liệu công khai. Không tiếp tục sử dụng token nếu token đã bị lộ.
</Warning>

## Trigger của ChatConnectX

ChatConnectX cung cấp hai Trigger để bắt đầu scenario:

<CardGroup cols={2}>
  <Card title="Watch events">
    Dùng với tính năng [**Webhooks**](/docs/vi/triggers/webhooks) của ChatbotX để bắt đầu scenario khi Make nhận một event đã đăng ký.
  </Card>

  <Card title="Watch flow data">
    Dùng khi block **Actions > Triggers > Make** trong Flow gửi dữ liệu sang Make.
  </Card>
</CardGroup>

### Nhận dữ liệu từ block Make trong Flow

Khi Flow sử dụng block **Actions > Triggers > Make**, bạn phải chọn Trigger **Watch flow data** trong scenario. Tên event trên hai nền tảng phải giống nhau.

#### Tạo block Make trong Flow ChatbotX

<Steps>
  <Step title="Mở Flow cần kết nối">
    Trong ChatbotX, mở Flow cần gửi dữ liệu sang Make và chọn message node phù hợp.
  </Step>

  <Step title="Thêm block Make">
    Nhấn **Create**, chọn **Actions > Triggers > Make** để thêm block vào message node.

    <Frame>
      <img src="https://mintcdn.com/chatbotx/WZzzEu-A09Zs_0PH/images/chatbotx_flow_add_make_action.png?fit=max&auto=format&n=WZzzEu-A09Zs_0PH&q=85&s=f2c749efbf4410dcb7ac592e43b6a995" alt="Chatbotx Flow Add Make Action" width="3045" height="1879" data-path="images/chatbotx_flow_add_make_action.png" />
    </Frame>
  </Step>

  <Step title="Đặt tên event">
    Nhấn **Edit** trên block **Make**. Trong trường **Events**, nhập tên event, ví dụ `make_trigger`, rồi nhấn **Save**.

    <Frame>
      <img src="https://mintcdn.com/chatbotx/WZzzEu-A09Zs_0PH/images/chatbotx_flow_configure_make_event.png?fit=max&auto=format&n=WZzzEu-A09Zs_0PH&q=85&s=25cd4fb6b46aacff44979636909f8d89" alt="Chatbotx Flow Configure Make Event" width="3046" height="1882" data-path="images/chatbotx_flow_configure_make_event.png" />
    </Frame>
  </Step>
</Steps>

#### Thiết lập Watch flow data trong Make

<Steps>
  <Step title="Tạo scenario mới">
    Trong Make, chọn **Scenarios**, sau đó tạo **New scenario**.
  </Step>

  <Step title="Thêm ChatConnectX">
    Tại module đầu tiên, tìm và chọn **ChatConnectX**.

    <Frame>
      <img src="https://mintcdn.com/chatbotx/WZzzEu-A09Zs_0PH/images/make_new_scenario_chatconnectx.png?fit=max&auto=format&n=WZzzEu-A09Zs_0PH&q=85&s=cc91259de08e607e52e3df4d5f2d6ed9" alt="Make New Scenario Chatconnectx" width="3015" height="1883" data-path="images/make_new_scenario_chatconnectx.png" />
    </Frame>
  </Step>

  <Step title="Chọn Watch flow data">
    Chọn **Watch flow data** để Make nhận dữ liệu do Flow ChatbotX gửi sang.

    <Frame>
      <img src="https://mintcdn.com/chatbotx/WZzzEu-A09Zs_0PH/images/make_watch_flow_data_module.png?fit=max&auto=format&n=WZzzEu-A09Zs_0PH&q=85&s=2452ca5a29da27ba372ddb2a09691aee" alt="Make Watch Flow Data Module" width="3023" height="1880" data-path="images/make_watch_flow_data_module.png" />
    </Frame>
  </Step>

  <Step title="Tạo webhook và chọn Connection">
    Nhấn **Create a webhook**, nhập tên webhook và chọn Connection đã tạo. Nếu chưa có Connection, nhấn **Add** và nhập Workspace token.
  </Step>

  <Step title="Nhập Event name">
    Trong **Event name**, nhập đúng tên đã đặt trong trường **Events** của block **Make**, ví dụ `make_trigger`, rồi nhấn **Save**.

    <Frame>
      <img src="https://mintcdn.com/chatbotx/WZzzEu-A09Zs_0PH/images/make_watch_flow_data_webhook_event_name.png?fit=max&auto=format&n=WZzzEu-A09Zs_0PH&q=85&s=e65851da865bc5959394611233125c0d" alt="Make Watch Flow Data Webhook Event Name" width="2843" height="1877" data-path="images/make_watch_flow_data_webhook_event_name.png" />
    </Frame>
  </Step>

  <Step title="Chạy thử scenario">
    Nhấn **Run once** để Make bắt đầu chờ dữ liệu mẫu.
  </Step>

  <Step title="Gửi dữ liệu từ ChatbotX">
    Chạy Flow có block **Actions > Triggers > Make**. Khi nhận dữ liệu, Make hiển thị kết quả tại **Operation 1**.
  </Step>
</Steps>

<Warning>
  **Event name** trong webhook Make phải khớp chính xác với tên trong trường **Events** của block **Make**. Nếu hai tên khác nhau, Make không nhận được dữ liệu từ Flow.
</Warning>

Kết quả mẫu có thể gồm `Event`, `Contact`, `Custom Fields`, `Tags` và `Contact Sequences`. Bạn dùng các trường này để ánh xạ dữ liệu cho module tiếp theo.

<Frame>
  <img src="https://mintcdn.com/chatbotx/WZzzEu-A09Zs_0PH/images/make_watch_flow_data_sample_output.png?fit=max&auto=format&n=WZzzEu-A09Zs_0PH&q=85&s=7e6038f374b24c92928daaf030786543" alt="Make Watch Flow Data Sample Output" width="2853" height="1882" data-path="images/make_watch_flow_data_sample_output.png" />
</Frame>

## Thực hiện Actions trong ChatbotX

Action là module chạy sau Trigger. Action nhận dữ liệu từ các module trước và thực hiện công việc trong workspace ChatbotX.

<Steps>
  <Step title="Thêm module mới">
    Trong scenario Make, nhấn dấu **+** sau module Trigger.
  </Step>

  <Step title="Chọn ChatConnectX">
    Tìm **ChatConnectX**, sau đó chọn Action phù hợp.

    <Frame>
      <img src="https://mintcdn.com/chatbotx/WZzzEu-A09Zs_0PH/images/make_chatconnectx_actions_list.png?fit=max&auto=format&n=WZzzEu-A09Zs_0PH&q=85&s=32f141dea9dbd9c77aaeb4c3004fd194" alt="Make Chatconnectx Actions List" width="2848" height="1769" data-path="images/make_chatconnectx_actions_list.png" />
    </Frame>
  </Step>

  <Step title="Cấu hình Action">
    Chọn Connection, điền các trường bắt buộc và ánh xạ dữ liệu từ module trước. Nhấn **Save** khi hoàn tất.
  </Step>
</Steps>

### Quản lý contact

| Action                            | Chức năng                                                                      |
| --------------------------------- | ------------------------------------------------------------------------------ |
| **Create contact**                | Tạo contact mới trong workspace.                                               |
| **Update or create contact**      | Cập nhật contact hiện có hoặc tạo mới nếu chưa tồn tại.                        |
| **Get contact**                   | Lấy contact theo `id`, `email` hoặc `phone`, gồm Tags và giá trị Custom Field. |
| **List contacts**                 | Liệt kê contact, có thể lọc theo tên, email hoặc số điện thoại.                |
| **Find contacts by custom field** | Tìm contact có Custom Field khớp chính xác với một giá trị.                    |
| **Delete a contact**              | Xóa vĩnh viễn contact theo `id`, `email` hoặc `phone`.                         |

### Cập nhật Tags và Custom Fields

| Action                            | Chức năng                                                                |
| --------------------------------- | ------------------------------------------------------------------------ |
| **Add tags to contact**           | Thêm tối đa 100 Tags. Tags đã có trên contact được bỏ qua.               |
| **Remove tags from a contact**    | Gỡ Tags khỏi contact nhưng không xóa Tags khỏi workspace.                |
| **Set custom fields to contact**  | Thiết lập tối đa 20 giá trị Custom Field cho contact.                    |
| **Delete a contact custom field** | Xóa giá trị Custom Field khỏi contact nhưng giữ nguyên định nghĩa field. |

### Gửi nội dung và thực hiện tác vụ nâng cao

| Action               | Chức năng                                                             |
| -------------------- | --------------------------------------------------------------------- |
| **Send message**     | Gửi tin nhắn văn bản tối đa 1.000 ký tự cho contact đã có hội thoại.  |
| **Send flow**        | Gửi một Flow đã Publish cho contact.                                  |
| **Make an API call** | Thực hiện tác vụ tùy chỉnh qua ChatbotX API bằng Connection hiện tại. |

<Warning>
  **Delete a contact** xóa contact vĩnh viễn và không thể hoàn tác. Hãy kiểm tra định danh contact trước khi chạy scenario với dữ liệu thật.
</Warning>

## Ví dụ gửi Flow bằng Make

Giả sử Make nhận thông tin khách từ một form bên ngoài. Bạn có thể dùng **Send flow** để gửi Flow xác nhận hoặc tư vấn qua kênh gần nhất của contact.

<Steps>
  <Step title="Chọn Send flow">
    Thêm module ChatConnectX mới và chọn **Send flow**.

    <Frame>
      <img src="https://mintcdn.com/chatbotx/WZzzEu-A09Zs_0PH/images/make_select_send_flow.png?fit=max&auto=format&n=WZzzEu-A09Zs_0PH&q=85&s=f707b533f6b8f1f7263794c3ed93d573" alt="Make Select Send Flow" width="2834" height="1765" data-path="images/make_select_send_flow.png" />
    </Frame>
  </Step>

  <Step title="Chọn Connection">
    Chọn Connection đã tạo. Nếu chưa có, nhấn **Add** để tạo Connection mới.
  </Step>

  <Step title="Nhập Contact identifier">
    Nhập hoặc ánh xạ định danh contact. Bạn có thể dùng `Contact ID` từ Trigger. Make cũng chấp nhận `id:123456`, `email:user@example.com` hoặc `phone:+84912345678`.
  </Step>

  <Step title="Chọn Flow">
    Nhập ID của Flow đã Publish. Bật **Map** nếu Flow ID được lấy từ một module trước đó.
  </Step>

  <Step title="Chọn Inbox">
    Chọn **Inbox** để gửi qua một kênh cụ thể. Để trống nếu muốn dùng kênh tương tác gần nhất của contact.
  </Step>

  <Step title="Lưu và chạy thử">
    Nhấn **Save**, sau đó nhấn **Run once** để kiểm tra scenario.
  </Step>
</Steps>

<Note>
  Contact cần có hội thoại trước đó để nhận Flow. Nếu để trống **Inbox**, ChatbotX dùng kênh tương tác gần nhất của contact.
</Note>

## Kiểm tra scenario trước khi bật

<Steps>
  <Step title="Nhận dữ liệu mẫu">
    Nhấn **Run once** trong Make, sau đó chạy Flow hoặc nguồn dữ liệu dùng để kích hoạt Trigger.
  </Step>

  <Step title="Kiểm tra output">
    Mở **Operation 1** và xác nhận các trường cần dùng đã có dữ liệu chính xác.
  </Step>

  <Step title="Kiểm tra Action">
    Xác nhận Action chạy thành công và contact nhận đúng nội dung hoặc dữ liệu cần cập nhật.
  </Step>

  <Step title="Bật scenario">
    Sau khi thử thành công, bật lịch chạy của scenario để Make tự động xử lý các lần tiếp theo.
  </Step>
</Steps>

<Note>
  Khi scenario không chạy, hãy kiểm tra lần lượt Connection, dữ liệu trong Operation và trạng thái bật của scenario.
</Note>
