Hướng dẫn chi tiết tích hợp Zalo OA vào n8n: Tự động hóa thông báo và CSKH

Viewed 5

Chia sẻ bởi Tù Bà Khuỳm

Zalo Official Account (OA) là một công cụ mạnh mẽ để doanh nghiệp tương tác với khách hàng tại Việt Nam. Khi kết hợp Zalo OA với nền tảng tự động hóa quy trình làm việc như n8n, bạn có thể mở khóa nhiều tiềm năng, từ tự động gửi thông báo, chăm sóc khách hàng đến xây dựng các chatbot phức tạp.

Tuy nhiên, việc tích hợp Zalo OA vào n8n có thể hơi phức tạp nếu bạn mới bắt đầu. Bài viết này sẽ hướng dẫn bạn chi tiết từng bước, dựa trên chia sẻ về cách sử dụng Zalo OA Community Node trên n8n, giúp bạn kết nối hai nền tảng này một cách hiệu quả.

Chuẩn bị cần thiết trước khi tích hợp Zalo OA vào n8n

Để quá trình tích hợp diễn ra suôn sẻ, bạn cần chuẩn bị một số yếu tố quan trọng sau:

  1. Tên miền (Domain) cho n8n chạy trên HTTPS: Zalo yêu cầu webhook phải hoạt động trên giao thức HTTPS bảo mật. Do đó, bạn cần có một tên miền riêng và cài đặt chứng chỉ SSL cho n8n instance của mình. Nếu bạn chưa có, có thể sử dụng các dịch vụ như Cloudflare để quản lý DNS và bật SSL dễ dàng.
  2. Cài đặt n8n Community Node cho Zalo: Bạn cần cài đặt node n8n-node-zalo-vn. Đây là một community node được phát triển riêng để hỗ trợ các tính năng của Zalo OA trên n8n.
  3. Tài khoản Zalo Official Account (OA): Đương nhiên, bạn cần sở hữu và quản lý một tài khoản Zalo OA. Bài viết này tập trung vào việc tích hợp Zalo OA chính thức, không đề cập đến việc sử dụng tài khoản Zalo cá nhân vì tiềm ẩn rủi ro bị khóa tài khoản.

Cài đặt và cấu hình Zalo OA Node trên n8n

Sau khi đã có đủ các yếu tố chuẩn bị, bước tiếp theo là cài đặt community node Zalo vào n8n instance của bạn.

Cài đặt community node

  1. Truy cập vào n8n instance của bạn.
  2. Đi đến mục Settings (Cài đặt).
  3. Chọn Community Nodes.
  4. Nhấn Install (Cài đặt).
  5. Trong ô tìm kiếm, gõ n8n-node-zalo-vn.
  6. Tìm đúng node và nhấn Install. Chờ quá trình cài đặt hoàn tất.

Sau khi cài đặt thành công, bạn sẽ thấy các node liên quan đến Zalo xuất hiện trong danh sách node khi tạo workflow mới.

Lấy thông tin cần thiết từ Zalo OA

Để kết nối n8n với Zalo OA, bạn cần lấy một số thông tin xác thực quan trọng từ trang quản lý Zalo OA Developer:

  1. Truy cập vào oa.zalo.me và đăng nhập vào tài khoản của bạn.
  2. Vào phần quản lý ứng dụng (Manage Apps) hoặc tạo ứng dụng mới nếu chưa có.
  3. Trong trang quản lý ứng dụng, tìm và lưu lại các thông tin sau:
    • ID của ứng dụng (App ID): Mã định danh duy nhất cho ứng dụng Zalo của bạn.
    • Khóa bí mật của ứng dụng (App Secret): Chuỗi ký tự bí mật dùng để xác thực ứng dụng. Tuyệt đối không chia sẻ khóa này.
    • OAID (Official Account ID): ID của tài khoản Zalo OA mà bạn muốn tích hợp.

Hãy lưu trữ những thông tin này cẩn thận để sử dụng ở các bước tiếp theo.

Xác thực tên miền (domain) với Zalo OA

Đây là một bước quan trọng để Zalo xác nhận rằng bạn là chủ sở hữu của tên miền sẽ nhận webhook từ họ. Zalo cung cấp hai phương pháp chính để xác thực:

Cách 1: Xác thực tên miền chính (Khuyến nghị cho người mới)

Cách này phù hợp nếu tên miền bạn dùng chỉ phục vụ cho n8n instance.

  1. Trong trang quản lý ứng dụng Zalo OA, vào mục Thiết lập -> Webhook.
  2. Tìm phần Xác thực domain và nhập tên miền chính của bạn (ví dụ: your-n8n-domain.com).
  3. Nhấn Xác thực ngay. Zalo sẽ cung cấp cho bạn một giá trị TXT Record.
  4. Truy cập vào trang quản lý DNS của tên miền (ví dụ: Cloudflare, GoDaddy, Namecheap,...).
  5. Tạo một bản ghi mới với các thông tin sau:
    • Type (Loại): TXT
    • Name (Tên)/Host: @ (hoặc tên miền của bạn, tùy nhà cung cấp DNS)
    • Content (Nội dung)/Value (Giá trị): Dán giá trị TXT Record mà Zalo đã cung cấp.
    • TTL: Có thể để mặc định.
  6. Lưu bản ghi DNS lại.
  7. Quay lại trang Zalo OA và nhấn Xác thực. Lưu ý rằng việc cập nhật DNS có thể mất một khoảng thời gian (từ vài phút đến tối đa 72 giờ theo thông báo của Zalo), nên nếu chưa xác thực được ngay, hãy kiên nhẫn chờ đợi.

Cách 2: Xác thực tên miền phụ (Subdomain) - Phức tạp hơn

Cách này dành cho trường hợp bạn muốn sử dụng một tên miền phụ (ví dụ: zalo-hook.your-domain.com) để nhận webhook, hoặc khi bạn muốn sử dụng phương pháp xác thực bằng file HTML. Cách này yêu cầu kiến thức kỹ thuật cao hơn.

  1. Trong trang Zalo OA, chọn phương thức xác thực bằng Tải file HTML.
  2. Nhấn nút Tải file để tải về một file .html. File này chứa một chuỗi văn bản xác thực duy nhất.
  3. Giải nén file zip (nếu có) và mở file .html bằng trình soạn thảo văn bản, sao chép toàn bộ nội dung bên trong.
  4. Trong n8n, tạo một workflow mới và thêm node Webserver -> Start Server.
    • Path: Dán phần đuôi của tên file HTML bạn vừa tải về (ví dụ: zalo-verification-xxxxxx.html).
    • Content: Dán nội dung chuỗi văn bản bạn đã sao chép từ file HTML.
    • Port: Đặt một cổng chưa được sử dụng (ví dụ: 3000).
  5. Chạy node Start Server này. Node này sẽ tạo một web server tạm thời trên n8n instance của bạn, lắng nghe tại đường dẫn và cổng đã chỉ định, sẵn sàng trả về nội dung xác thực khi Zalo truy cập.
  6. Cấu hình Reverse Proxy/Tunnel: Đây là bước phức tạp. Bạn cần cấu hình để tên miền phụ (subdomain) mà bạn khai báo với Zalo có thể truy cập được vào đúng đường dẫn và cổng của web server đang chạy trên n8n.
    • Nếu n8n chạy trên máy local, bạn có thể dùng Cloudflare Tunnel để tạo đường hầm từ tên miền phụ trên internet trỏ về localhost:PORT/PATH.
    • Nếu n8n chạy trên VPS, bạn cần cấu hình Reverse Proxy (như Nginx hoặc Caddy) để điều hướng request từ subdomain đến YOUR_N8N_IP:PORT/PATH.
    • Trong Cloudflare Tunnel (ví dụ): Tạo một Public Hostname, trỏ subdomain của bạn (zalo-hook.your-domain.com) với Path là đường dẫn file xác thực (/zalo-verification-xxxxxx.html) vào Service là http://localhost:3000 (hoặc IP và Port tương ứng). Đảm bảo cấu hình này được ưu tiên nếu bạn có các cấu hình khác cho cùng domain.
  7. Sau khi cấu hình thành công Reverse Proxy/Tunnel, quay lại trang Zalo OA và nhấn Xác thực. Zalo sẽ cố gắng truy cập vào http://your-subdomain.com/zalo-verification-xxxxxx.html. Nếu n8n web server nhận được yêu cầu và trả về đúng nội dung, việc xác thực sẽ thành công.
  8. Quan trọng: Sau khi xác thực thành công, bạn nên thêm một node Webserver -> Stop Server vào workflow và chạy nó để tắt web server tạm thời, tiết kiệm tài nguyên.

Lưu ý: Như đã đề cập, cách 2 phức tạp hơn và đòi hỏi kiến thức về mạng và server. Nếu bạn không quen thuộc, hãy ưu tiên sử dụng Cách 1.

Thiết lập webhook và tạo access token để kết nối n8n với Zalo OA

Sau khi xác thực domain, bạn cần cấu hình webhook để n8n nhận sự kiện từ Zalo và tạo access token để n8n có quyền gửi tin nhắn qua Zalo OA.

Cấu hình Webhook trong n8n và Zalo

  1. Trong workflow n8n, thêm node Zalo trigger: Zalo Trigger.
  2. Trong node Zalo Trigger, tạo một Webhook URL mới:
    • Nhấn Webhook URLs -> Add Webhook URL.
    • Chọn Production URL.
    • Đặt tên cho webhook (ví dụ: Zalo OA Callback).
    • Sao chép URL được tạo ra. Đây là địa chỉ mà Zalo sẽ gửi sự kiện đến.
  3. Quan trọng: Kích hoạt (Activate) workflow của bạn trong n8n. Nếu workflow không active, production URL sẽ không hoạt động.
  4. Quay lại trang quản lý Zalo OA -> Thiết lập -> Webhook.
  5. Dán Production URL bạn vừa sao chép từ n8n vào ô Official Account callback URL.
  6. Nhấn Lưu.
  7. Bật các Sự kiện (Events) mà bạn muốn n8n lắng nghe. Ví dụ: user_send_text (khi người dùng gửi tin nhắn văn bản), user_follow_oa (khi người dùng quan tâm OA), v.v. Hãy chọn những sự kiện phù hợp với nhu cầu tự động hóa của bạn.
  8. Trong mục Đăng ký sử dụng API, bật các quyền cần thiết cho node Zalo trong n8n. Hiện tại, community node n8n-node-zalo-vn chủ yếu hỗ trợ gửi tin nhắn, nên bạn cần đảm bảo quyền gửi tin nhắn được bật.

Tạo Zalo Credentials và Access Token trong n8n

  1. Trong n8n, đi đến Credentials.
  2. Nhấn Add Credential.
  3. Tìm và chọn loại Zalo OA API.
  4. Điền các thông tin sau:
    • Credential Name: Đặt tên dễ nhớ (ví dụ: My Zalo OA Creds).
    • App ID: ID ứng dụng Zalo bạn đã lấy ở bước trước.
    • App Secret: Khóa bí mật ứng dụng Zalo.
    • OA ID: ID của Zalo OA.
    • Access Token: Để trống trường này ở bước này. Node sẽ tự động cập nhật sau khi bạn cấp quyền.
  5. Nhấn Save.
  6. Quay lại workflow n8n của bạn. Thêm một node Zalo mới, ví dụ: Zalo (Actions).
  7. Chọn Operation -> Generate PKCE Parameters.
  8. Trong mục Credentials, chọn credential bạn vừa tạo.
  9. App ID: Điền lại App ID của bạn vào đây (Lưu ý: Có thể trong tương lai, node được cập nhật để tự lấy từ credential, nhưng hiện tại bạn cần điền thủ công).
  10. Callback URL: Dán lại Production URL của node Zalo Trigger vào đây.
  11. Chạy node Generate PKCE Parameters này. Một cửa sổ trình duyệt mới sẽ mở ra, yêu cầu bạn đăng nhập Zalo (nếu chưa đăng nhập) và Chấp thuận cấp quyền cho ứng dụng n8n của bạn truy cập vào Zalo OA.
  12. Sau khi chấp thuận, bạn sẽ được chuyển hướng trở lại và node sẽ chạy thành công. Quan trọng hơn, một Access Token hợp lệ sẽ được tạo ra và tự động lưu trữ vào credential Zalo OA bạn đã tạo trong n8n (lưu vào bộ nhớ tạm của n8n).

Lưu ý quan trọng về Access Token:

  • Hiện tại, access token được lưu trữ trong bộ nhớ (memory) của n8n instance. Điều này có nghĩa là nếu n8n của bạn bị khởi động lại (restart), access token sẽ bị mất.
  • Access token cũng có thời hạn sử dụng. Khi hết hạn hoặc bị mất do restart, bạn cần chạy lại node Generate PKCE Parameters để lấy token mới.
  • Đây là một hạn chế tạm thời của community node. Các giải pháp lưu trữ token bền vững hơn (ví dụ: dùng database) có thể được phát triển trong tương lai.

Kiểm tra và sử dụng Zalo OA node trong n8n

Bây giờ, bạn đã sẵn sàng để kiểm tra và sử dụng tích hợp!

  1. Kích hoạt (Activate) workflow của bạn nếu chưa làm.
  2. Mở ứng dụng Zalo trên điện thoại, tìm đến Zalo OA của bạn và gửi một tin nhắn văn bản.
  3. Quan sát trong n8n, node Zalo Trigger المفروض (nên) sẽ nhận được dữ liệu từ webhook, chứa thông tin về tin nhắn bạn vừa gửi.
  4. Bạn có thể kết nối output của Zalo Trigger với các node khác để xử lý. Ví dụ:
    • Kết nối với node Zalo (Actions) -> Send Text Message để tự động trả lời tin nhắn. Bạn cần chọn credential Zalo OA và điền User ID người nhận (lấy từ output của trigger) cùng nội dung tin nhắn.
    • Kết nối với node AI (như OpenAI, Claude) để tạo chatbot thông minh.
    • Lưu thông tin khách hàng vào Google Sheets hoặc database.

Các hành động (Actions) có sẵn trong Zalo Node

Community node n8n-node-zalo-vn cung cấp một số hành động cơ bản để tương tác với Zalo OA:

  • Send Text Message: Gửi tin nhắn văn bản đơn thuần.
  • Send Template Message: Gửi tin nhắn theo mẫu có tiêu đề, mô tả ngắn và hình ảnh.
  • Send Sticker: Gửi nhãn dán Zalo.
  • Send Quote Message: Trích dẫn và trả lời một tin nhắn cụ thể.
  • Send Image: Gửi tin nhắn hình ảnh.

Bạn có thể khám phá các tùy chọn trong node Zalo (Actions) để biết chi tiết về các trường dữ liệu cần thiết cho mỗi hành động.

Kết luận

Việc tích hợp Zalo OA vào n8n mở ra cánh cửa tự động hóa mạnh mẽ cho việc tương tác và chăm sóc khách hàng trên nền tảng Zalo phổ biến tại Việt Nam. Mặc dù quá trình cài đặt ban đầu đòi hỏi sự chuẩn bị và thực hiện cẩn thận các bước xác thực, cấu hình webhook và tạo token, nhưng lợi ích về lâu dài là rất lớn.

Bằng cách sử dụng community node n8n-node-zalo-vn và làm theo hướng dẫn trong bài viết này, bạn có thể thiết lập kết nối giữa Zalo OA và n8n, tự động hóa các tác vụ lặp đi lặp lại, và xây dựng các quy trình làm việc thông minh hơn. Hãy bắt đầu thử nghiệm và khám phá tiềm năng của sự kết hợp này cho doanh nghiệp của bạn! Đừng quên kiểm tra các bản cập nhật của community node trong tương lai để có thêm nhiều tính năng và cải tiến.

0 Answers