Yêu cầu:
– n8n tham khảo bài viết về cài đặt n8n
– Zalo OA doanh nghiệp đã xác thực
Cách kết nối Zalo OA với n8n sử dụng Webhook
1. Quản lý ứng dụng Zalo App vào ứng dụng chọn mục Webhook và nhập Test URL trên n8n vào Webhook để n8n nhận thông tin từ Zalo OA
2. Lấy API Zalo OA, lấy OA ID
3. Tại n8n tạo Webhook Trigger có sẵn của n8n và thiết lập như sau:
HTTP Method: POST
Path: zalo-oa
Lấy Test URL nhập vào Webhook của APP tại địa chỉ https://developers.zalo.me/app/app-id/webhook trong đó app-id là ID của ứng dụng Zalo OA.
4. Tạo node “AI Agent“: Gemini là một trong những mô hình AI do Google phát triển, được cung cấp thông qua Google Cloud AI. Để lấy API, truy cập Chat Model Gemini vào https://aistudio.google.com/app/apikey để lấy API cho Gemini. ChatGPT được cung cấp API thông qua OpenAI. Dưới đây là cách lấy API từ OpenAI: Đăng nhập vào trang lấy API của OpenAI và chọn Create New Secret Key để tạo API mới. Lưu ý: API không thể xem lại được nên nếu muốn dùng lại.
5. Phần trả lời chọn tạo HTTP Request
Method: POST
URL: https://openapi.zalo.me/v3.0/oa/message/cs (Theo hướng dẫn tại đây)
– Tích vào mục Send Headers > Using Fields Json mục name điền “access_token”, mục value điền “giá trị của access token lấy tại đây.
– Tích vào mục Send Body
Body Content Type: POST
Specify Body: Using JSON
JSON: Điền thông tin mẫu lấy tại đây. Tại phần API Explorer > Official Account API > V3 > Gửi tin nhắn dạng văn bản. Tại phần Request chọn Body và Copy JSON đó
6. Thay URL Webhook thành Production URL là đã hoàn thành

Get Access Token: Khi dùng Zalo OA các bạn sẽ cần Access Token và Refesh Token. Các bạn có thể Get Token tự động như sau:
1. Tạo Workflow tên là Get Token OA cài đặt Schedule Trigger là 24h
2. Tạo Node Date & Time để lấy ngày giờ hiện tại
3. Đọc thông tin từ Google Sheets để lấy Refesh Token đầu tiên
4. Tạo Node HTTP Request với thông số như sau:
Method: POST
URL: https://oauth.zaloapp.com/v4/oa/access_token
Send Header
Content-Type: application/x-www-form-urlencoded
Secret_key: Lấy tại Zalo Apps
Send Body
Body Content Type: Uriend Coder
Body Parameters: Using Fields Below
refresh_token: Get từ Google Sheets
app_id: Lấy App ID của ứng dụng
grant_type: refresh_token
5. Tạo Node Edit Fields (Set)
Access Token: {{ JSON.parse($json[“data”]).access_token }}
Refesh Token: {{ JSON.parse($json[“data”]).refresh_token }}
Time: {{ $(‘Date & Time’).item.json.currentDate }}
6. Tạo Google Sheets Update Row để ghi Access Token và Refesh Token mới
