Tích hợp AI Agent vào Facebook, Zalo OA, Instagram bằng FastAPI

Đỗ Minh Đức Đỗ Minh Đức
Chia sẻ bài viết

Việc tích hợp AI Agent vào Facebook, Zalo OA, Instagram đang trở thành xu hướng giúp doanh nghiệp tự động hóa chăm sóc khách hàng, phân tích hội thoại và thực thi tác vụ theo ngữ cảnh. Trong bài viết này, Bizfly sẽ hướng dẫn bạn cách tạo API endpoint bằng FastAPI, xử lý webhook từ các nền tảng mạng xã hội và truyền dữ liệu hội thoại vào hệ thống nội bộ như CRM hoặc Marketing Automation.

Tổng quan kiến trúc tích hợp

Để AI Agent có thể tương tác được với người dùng trên Facebook, Zalo hay Instagram, ta cần một cầu nối trung gian giữa nền tảng MXH và hệ thống AI. Luồng dữ liệu cơ bản diễn ra như sau:

Người dùng → MXH (Messenger/Zalo/Instagram)  
→ Webhook (FastAPI endpoint)  
→ AI Agent (Xử lý intent, tạo phản hồi)  
→ API nội bộ (CRM, Order, Ticket, Mail...)  
→ Phản hồi lại MXH

Ví dụ: Khách hàng nhắn “Tôi muốn đặt món cà phê sữa đá” → Webhook nhận event → gửi text sang AI Agent → Agent hiểu “intent = đặt hàng” → gọi API tạo đơn hàng → Trả lời lại Facebook: “Đơn hàng của bạn đã được ghi nhận.”

Chuẩn bị môi trường FastAPI

FastAPI là framework Python hiện đại, hiệu năng cao, hỗ trợ async và cực kỳ phù hợp để triển khai webhook server.

Cài đặt: pip install fastapi uvicorn python-dotenv requests

Tạo cấu trúc dự án:
project/
 ├── main.py
 ├── agent/
 │    └── handler.py
 └── .env

Trong file .env, bạn có thể lưu token xác thực:

FB_VERIFY_TOKEN=your_verify_token
BIZFLY_API_KEY=your_internal_api_key

Tạo Endpoint Webhook cơ bản

File main.py:

from fastapi import FastAPI, Request
import uvicorn, os

app = FastAPI()

@app.get("/webhook")
async def verify(request: Request):
    params = request.query_params
    verify_token = os.getenv("FB_VERIFY_TOKEN")
    if params.get("hub.verify_token") == verify_token:
        return int(params.get("hub.challenge"))
    return {"error": "Invalid token"}

@app.post("/webhook")
async def receive(request: Request):
    data = await request.json()
    print("Received:", data)
    # Xử lý dữ liệu nhận từ Facebook/Zalo/Instagram
    # Gọi sang module AI Agent
    # agent.handle_message(data)
    return {"status": "ok"}

if __name__ == "__main__":
    uvicorn.run("main:app", host="0.0.0.0", port=8000)

Endpoint này gồm:

  • GET/webhook: dùng xác thực token khi đăng ký với MXH.
  • POST/webhook: nơi các nền tảng gửi dữ liệu hội thoại (message, postback, follow...).

Đăng ký webhook trên Facebook

Truy cập Meta for Developers:

  1. Tạo App → Thêm sản phẩm Messenger.
  2. Trong mục Webhook, khai báo URL endpoint (ví dụ https://api.yourdomain.com/webhook).
  3. Nhập Verify Token trùng với token trong .env.
  4. Chọn fields: messages, messaging_postbacks, message_reactions, v.v.

Mỗi khi người dùng nhắn tin trên Messenger, Facebook sẽ gửi payload dạng:

{
  "object": "page",
  "entry": [{
    "messaging": [{
      "sender": { "id": "USER_ID" },
      "message": { "text": "Xin chào" }
    }]
  }]
}

Bạn có thể xử lý trong code:

message = data["entry"][0]["messaging"][0]["message"]["text"]
user_id = data["entry"][0]["messaging"][0]["sender"]["id"]
response = agent.process_message(message, user_id)

Tích hợp với Zalo Official Account (OA)

Zalo OA cũng hỗ trợ webhook tương tự, nhưng format khác đôi chút. Truy cập Zalo Developer Console → Chọn OA → “Cấu hình Webhook” → nhập URL /webhook.

Payload mẫu khi người dùng gửi tin nhắn:

{
  "event_name": "user_send_text",
  "message": { "text": "Tôi muốn đặt bàn", "msg_id": "12345" },
  "user_id_by_app": "zalo_ABC123"
}

Xử lý:

if data.get("event_name") == "user_send_text":
    msg = data["message"]["text"]
    uid = data["user_id_by_app"]
    intent = agent.detect_intent(msg)
    agent.trigger_action(intent, uid)

Để phản hồi lại, bạn gọi API gửi tin nhắn:

POST https://openapi.zalo.me/v2.0/oa/message
Authorization: Bearer {ACCESS_TOKEN}
Body: {
  "recipient": { "user_id": "zalo_ABC123" },
  "message": { "text": "Đặt bàn thành công!" }
}

Tích hợp với Instagram Direct

Vì Instagram Direct hoạt động qua Facebook Graph API, bạn chỉ cần:

  1. Liên kết tài khoản Instagram Business với Page.
  2. Trong App Facebook, thêm quyền instagram_manage_messages.
  3. Đăng ký webhook messages hoặc comments.

Payload tin nhắn Instagram:

{
  "entry": [{
    "changes": [{
      "value": {
        "from": { "id": "178414xxxx" },
        "message": { "text": "Hi shop!" }
      }
    }]
  }]
}

Từ đó, bạn có thể xử lý tương tự như Facebook:

msg = data["entry"][0]["changes"][0]["value"]["message"]["text"]
sender = data["entry"][0]["changes"][0]["value"]["from"]["id"]
response = agent.generate_reply(msg, sender)

Gọi API nội bộ để kích hoạt hành động

Khi AI Agent phân tích được intent như “đặt hàng”, “báo lỗi”, “hỏi CSKH”, hệ thống có thể gọi các API nội bộ để tự động thực thi. Ví dụ:

import requests

def trigger_internal_action(intent, payload):
    if intent == "dat_hang":
        requests.post("https://api.bizfly.vn/create-order", json=payload)
    elif intent == "mo_ticket":
        requests.post("https://api.bizfly.vn/support/create-ticket", json=payload)

Tại Bizfly, các API này có thể tương tác với:

  • BizCRM: tự động thêm khách hàng tiềm năng.
  • BizChatAI: ghi lịch sử hội thoại và phản hồi thông minh.
  • BizMail: gửi email tự động xác nhận đơn hàng.
  • Bizfly CDP: cập nhật hồ sơ hành vi người dùng đa kênh.

Bảo mật và giám sát

Để hệ thống hoạt động ổn định, bạn cần:

  • Sử dụng HTTPS + SSL hợp lệ.
  • Thêm header xác thực Authorization cho webhook.
  • Log toàn bộ request/response (sử dụng MongoDB, PostgreSQL hoặc Redis Stream).
  • Dùng Signature Validation (HMAC-SHA256) với secret key để xác minh dữ liệu từ MXH.
  • Dựng hệ thống giám sát bằng Prometheus hoặc Sentry để tracking lỗi webhook.

Mở rộng khi triển khai đa Agent

Khi đã có nền tảng webhook ổn định, bạn có thể mở rộng theo mô hình multi-agent:

  • Agent 1 – Intent Analyzer: phân tích ngữ cảnh và gán loại intent.
  • Agent 2 – Action Executor: gọi API hoặc xử lý tác vụ nội bộ.
  • Agent 3 – Reply Generator: tạo phản hồi tự nhiên bằng LLM.

Cách này giúp hệ thống mở rộng dễ dàng, tránh việc một Agent phải xử lý toàn bộ logic phức tạp.

Kết bài

Việc tích hợp AI Agent vào Facebook, Zalo OA, Instagram bằng FastAPI không chỉ dừng ở việc phản hồi tự động mà còn là nền tảng để triển khai AI-driven workflow trong toàn bộ quy trình bán hàng, CSKH và marketing. FastAPI mang đến tốc độ, bảo mật và khả năng mở rộng cao rất phù hợp cho doanh nghiệp muốn đồng bộ hội thoại từ mạng xã hội với hệ thống nội bộ như BizCRM, BizChatAI, Bizfly CDP,...

Đỗ Minh Đức
Tác giả
Đỗ Minh Đức

Với gần 20 năm kinh nghiệm trong ngành công nghệ, Đỗ Minh Đức hiện là Giám đốc Sản phẩm Bizfly Martech tại VCCorp. Anh được biết đến là một trong bốn người đặt nền móng cho BizChatAI, giải pháp ứng dụng trí tuệ nhân tạo để chăm sóc khách hàng tự động đa kênh.

Anh tập trung phát triển BizChatAI như một "trợ lý ảo" cho doanh nghiệp, giúp tự động hóa việc tương tác và CSKH. Công nghệ này đang thay đổi mạnh mẽ cách doanh nghiệp tiếp cận khách hàng, từ việc gửi tin nhắn, quà tri ân tự động đến ứng dụng hiệu quả cho các chuỗi bán lẻ và nhà hàng... Qua các bài viết của mình, anh chia sẻ sâu hơn về những lợi ích và cách thức hoạt động của chatbot trong kinh doanh.