> ## 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 Google Sheets

> Kết nối tài khoản Google Sheets với ChatbotX để tự động gửi dữ liệu liên hệ, tra cứu thông tin hàng, cập nhật và xóa hàng trong kịch bản chatbot.

Tích hợp Google Sheets giúp bạn tự động đồng bộ và quản lý dữ liệu hội thoại trực tiếp trên các bảng tính Google. Bạn có thể sử dụng tính năng này để lưu trữ thông tin khách hàng điền form, tra cứu thông tin sản phẩm hoặc cập nhật trạng thái đơn hàng thời gian thực.

## Kết nối ChatbotX với Google Sheets

Để bắt đầu sử dụng, bạn cần cấp quyền truy cập tài khoản Google của mình cho ChatbotX.

<Steps>
  <Step title="Vào mục Cài đặt">
    Từ menu thanh bên trái của màn hình làm việc, chọn **Settings** (biểu tượng bánh răng).
  </Step>

  <Step title="Chọn Tích hợp">
    Nhấn vào tab **Integrations** trên thanh điều hướng phía trên của trang cài đặt.
  </Step>

  <Step title="Kết nối Google Sheets">
    Tìm ứng dụng **Google Sheets** trong danh sách tích hợp và nhấn nút **Connect**. Một cửa sổ trình duyệt mới sẽ mở ra, yêu cầu bạn đăng nhập tài khoản Google của mình và cấp các quyền truy cập cần thiết cho ChatbotX. Sau khi xác nhận thành công, trạng thái sẽ đổi sang **Connected**.
  </Step>
</Steps>

<Frame>
  <img src="https://mintcdn.com/chatbotx/fjyg_C-B3YZx0vd7/images/google_sheets_connection_settings.png?fit=max&auto=format&n=fjyg_C-B3YZx0vd7&q=85&s=4437953d19aace20b6ad66ab54499ae2" alt="Google Sheets Connection Settings" width="2964" height="1440" data-path="images/google_sheets_connection_settings.png" />
</Frame>

<Note>
  Bạn có thể ngắt kết nối tài khoản Google Sheets với ChatbotX bất kỳ lúc nào bằng cách nhấn lại nút ngắt kết nối tại trang cài đặt này.
</Note>

## Thiết lập bảng tính Google Sheets của bạn

Trước khi sử dụng các hành động của Google Sheets trong kịch bản, bạn cần chuẩn bị trước bảng tính Google với thông tin tiêu đề.

Ví dụ: Bạn muốn thu thập thông tin khách hàng bao gồm Họ tên, User ID, Email và Số điện thoại, sau đó xuất dữ liệu này ra Google Sheets.

<Steps>
  <Step title="Tạo bảng tính mới">
    Tạo một bảng tính Google Sheets mới trên Google Drive của bạn (ví dụ đặt tên là: "Dữ liệu khách hàng đăng ký").
  </Step>

  <Step title="Cấu hình các cột tiêu đề">
    Tại hàng đầu tiên (Hàng 1) của bảng tính, hãy viết tên các cột tiêu đề đại diện cho dữ liệu bạn muốn lưu trữ. Mỗi cột là một trường dữ liệu riêng biệt:

    * Cột A: Full Name
    * Cột B: User ID
    * Cột C: Email
    * Cột D: Phone Number
  </Step>
</Steps>

<Frame>
  <img src="https://mintcdn.com/chatbotx/fjyg_C-B3YZx0vd7/images/google_sheets_setup_headers.png?fit=max&auto=format&n=fjyg_C-B3YZx0vd7&q=85&s=9707dcf92b07518bf518901709dbae5d" alt="Google Sheets Setup Headers" width="2987" height="1821" data-path="images/google_sheets_setup_headers.png" />
</Frame>

<Warning>
  **Lưu ý cực kỳ quan trọng:** Tích hợp Google Sheets trên ChatbotX hoạt động dựa trên **Tên bảng tính** (Spreadsheet Name) và **Tên trang tính** (Worksheet Name) thay vì ID ẩn. Nếu bạn thay đổi tên của bảng tính hoặc tên của trang tính (ví dụ từ Sheet1 sang DanhSach) trên Google Drive, kết nối sẽ bị lỗi. Khi đó, bạn bắt buộc phải vào lại Flow Builder và cấu hình lại hành động Google Sheets tương ứng.
</Warning>

## Tìm các hành động Google Sheets trong Flow Builder

Bạn chỉ có thể sử dụng các chức năng của Google Sheets bên trong các kịch bản hội thoại.

<Steps>
  <Step title="Vào mục Flows">
    Từ menu trái, chọn **Flows** và mở kịch bản bạn muốn chỉnh sửa (hoặc tạo Flow mới bằng cách nhấn **+ Create Flow**).
  </Step>

  <Step title="Thêm khối Actions">
    Nhấp vào khối tin nhắn bất kỳ, chọn **Actions** từ menu tùy chọn khối.
  </Step>

  <Step title="Chọn Google Sheets">
    Trong danh sách các hành động có sẵn, nhấp vào **Google Sheets** để mở menu các hành động thao tác với bảng tính.
  </Step>
</Steps>

<Frame>
  <img src="https://mintcdn.com/chatbotx/fjyg_C-B3YZx0vd7/images/google_sheets_actions_menu.png?fit=max&auto=format&n=fjyg_C-B3YZx0vd7&q=85&s=0108a9f19a2509a5139087e8a46c2391" alt="Google Sheets Actions Menu" width="2997" height="1824" data-path="images/google_sheets_actions_menu.png" />
</Frame>

## Chi tiết 5 hành động Google Sheets

Tùy vào nhu cầu vận hành, bạn có thể lựa chọn 1 trong 5 hành động sau để cấu hình trong kịch bản:

### 1. Send Data (Gửi dữ liệu)

Hành động này giúp bạn chèn một dòng mới chứa thông tin liên hệ của khách hàng vào cuối bảng tính Google Sheets.

* **Cách cấu hình:** Chọn hành động **Send Data** -> Chọn tên bảng tính (Spreadsheet) và trang tính (Worksheet) -> Ánh xạ (Map) các trường dữ liệu thu thập được từ ChatbotX (như các Custom Field, Họ tên khách, Số điện thoại...) vào đúng cột tiêu đề của Google Sheets.
* **Ngữ cảnh sử dụng:** Khách hàng nhắn tin và điền form đăng ký tư vấn hoặc đặt hàng. Khi họ hoàn tất form, Bot tự động ghi lại thông tin vào dòng cuối cùng của bảng tính để nhân viên sales tiện theo dõi và gọi điện.

<Frame>
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/chatbotx/images/google_sheets_send_data.png" alt="Google Sheets Send Data Action" />
</Frame>

### 2. Get Row (Lấy dữ liệu hàng)

Tra cứu dữ liệu của một hàng cụ thể trên bảng tính và lưu giá trị của hàng đó vào các Custom Field trên ChatbotX để hiển thị cho khách hàng hoặc xử lý tiếp.

* **Cách cấu hình:** Chọn **Get Row** -> Chọn bảng tính và trang tính -> Chọn cột tìm kiếm (Lookup Column) -> Đặt điều kiện so sánh (ví dụ: Cột tìm kiếm phải bằng giá trị của một Custom Field hoặc Bot Field cụ thể) -> Khớp các cột còn lại của bảng tính vào các Custom Field tương ứng để lưu dữ liệu.
* **Ví dụ thực tế:** Bạn có một Food Truck (xe đồ ăn lưu động) thường xuyên thay đổi địa điểm.
  1. Bạn tạo bảng tính gồm 2 cột: `Current Location` (Địa điểm hiện tại) và `Current Address` (Địa chỉ hiện tại). Bạn thiết lập cột `Current Location` cố định là "FoodTruck1".
  2. Mỗi khi đổi chỗ, bạn chỉ cần mở bảng tính điện thoại và cập nhật lại địa chỉ mới ở cột `Current Address`.
  3. Trên ChatbotX, bạn tạo một Bot Field cố định là `Current Location` có giá trị là "FoodTruck1".
  4. Trong kịch bản, khi khách hỏi địa chỉ, hành động **Get Row** sẽ tra cứu bảng tính để tìm dòng có cột `Current Location` bằng "FoodTruck1", lấy địa chỉ tương ứng lưu vào Custom Field `Current Address` và gửi ngay cho khách hàng. Bạn không cần phải vào Flow Builder sửa kịch bản mỗi lần chuyển địa điểm.

<Frame>
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/chatbotx/images/google_sheets_get_row.png" alt="Google Sheets Get Row Action" />
</Frame>

### 3. Get Random Row (Lấy hàng ngẫu nhiên)

Tự động chọn ngẫu nhiên một dòng dữ liệu trong bảng tính thỏa mãn điều kiện và lưu nội dung dòng đó vào Custom Field của khách hàng.

* **Cách cấu hình:** Chọn **Get Random Row** -> Chọn bảng tính và trang tính -> Thiết lập cột tìm kiếm và dải giá trị tìm kiếm (Lookup Value) để giới hạn các hàng được phép chọn ngẫu nhiên -> Ánh xạ dữ liệu cột được chọn ngẫu nhiên vào Custom Field.
* **Ví dụ thực tế:** Cài đặt trò chơi bốc thăm trúng thưởng hoặc đố vui ngẫu nhiên.
  1. Bạn tạo bảng tính chứa danh sách các phần quà hoặc câu hỏi ngẫu nhiên.
  2. Trong Flow, khi khách hàng nhấn nút "Quay số" hoặc "Chơi game", Bot sử dụng hành động **Get Random Row** để chọn ngẫu nhiên một dòng quà tặng hoặc câu hỏi từ bảng tính, lưu vào Custom Field và thông báo kết quả ngay lập tức cho khách hàng.

<Frame>
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/chatbotx/images/google_sheets_get_random_row.png" alt="Google Sheets Get Random Row Action" />
</Frame>

### 4. Update Row (Cập nhật dữ liệu hàng)

Tìm kiếm dòng dữ liệu đã tồn tại trên bảng tính và cập nhật các thông tin mới nhất vào dòng đó mà không tạo thêm dòng mới.

* **Cách cấu hình:** Chọn **Update Row** -> Chọn bảng tính và trang tính -> Chọn cột tìm kiếm duy nhất và cố định (ví dụ cột `User ID` hoặc `Số điện thoại` của khách hàng) để Bot tìm đúng dòng của khách hàng đó -> Chọn các Custom Field mới cần cập nhật đè lên bảng tính.
* **Ví dụ thực tế:** Ban đầu khách hàng đăng ký tên và User ID. Sau đó trong kịch bản tiếp theo, họ điền thêm Email và Số điện thoại để nhận tài liệu (Lead Magnet). Lúc này, hành động **Update Row** sẽ tìm dòng có `User ID` khớp với khách hàng và điền thêm thông tin Email, Số điện thoại vào đúng dòng của họ, giữ cho bảng tính luôn gọn gàng và không bị trùng lặp dữ liệu.

<Frame>
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/chatbotx/images/google_sheets_update_row.png" alt="Google Sheets Update Row Action" />
</Frame>

### 5. Clear Row (Xóa hàng dữ liệu)

Xóa sạch toàn bộ nội dung của dòng dữ liệu thỏa mãn điều kiện tìm kiếm trên bảng tính, nhưng vẫn giữ lại dòng trống đó để không làm xáo trộn số thứ tự hoặc cấu trúc của các dòng khác.

* **Cách cấu hình:** Chọn **Clear Row** -> Chọn bảng tính và trang tính -> Chọn cột tìm kiếm duy nhất (như `User ID`) để xác định đúng dòng cần xóa.
* **Ví dụ thực tế:** Khi một khách hàng nhấn nút hủy đăng ký nhận tin nhắn (Unsubscribe) hoặc yêu cầu xóa thông tin cá nhân khỏi hệ thống của bạn, Bot sử dụng hành động **Clear Row** để tự động dọn sạch thông tin của họ trên dòng bảng tính Google Sheets tương ứng.

<Frame>
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/chatbotx/images/google_sheets_clear_row.png" alt="Google Sheets Clear Row Action" />
</Frame>
