Product Management
Đăng nhập
ESC

Nhập từ khóa để tìm kiếm

↑↓ Di chuyển
Enter Mở
ESC Đóng

Bài 6 — Nối agent vào workflow tự động end-to-end

Đã đọc 0/13 mục · còn khoảng 5 phút
Cách chúng tôi ghi nhận

Một mục được tính là đã đọc khi nó nằm giữa màn hình đủ lâu so với độ dài của nó (bảng và sơ đồ tính một nửa), bạn vẫn đang cuộn hoặc bấm phím, và bạn đã thấy tới cuối mục. Lướt nhanh hoặc để tab mở không được tính. Chúng tôi chỉ lưu thời gian đọc từng mục — không lưu gì khác.

Nối agent vào workflow tự động end-to-end

Một agent chạy khi bạn bấm nút thì vẫn cần bạn có mặt. Giá trị thật là khi nó tự kích hoạt theo sự kiện (email tới, đến giờ, form được điền) và chạy trọn quy trình. Bài này ghép agent vào một dây chuyền tự động dùng n8n (hoặc tương đương).

Ba thành phần của một workflow

  • Trigger — cái khởi động: email mới, lịch (cron), webhook từ form, tin nhắn Telegram.
  • Agent step — bộ não xử lý: nhận đầu vào, gọi tool, ra quyết định.
  • Action — hành động cuối: lưu nháp, gửi tin, cập nhật Sheet, thông báo cho bạn.

Ví dụ: dây chuyền "lead mới → phản hồi trong 5 phút"

Minh chạy quảng cáo, khách điền form quan tâm. Trước đây anh trả lời sau nhiều giờ, mất lead. Nay:

  • Trigger: webhook nhận dữ liệu form.
  • Agent: đọc nhu cầu, phân loại (nóng/ấm/nguội), soạn phản hồi cá nhân hóa + gợi ý gói phù hợp.
  • Action nếu lead ấm/nguội: gửi email tự động ngay.
  • Action nếu lead nóng: gửi nháp cho Minh qua Telegram để anh duyệt và gọi ngay.
Kết quả: mọi lead được chạm trong 5 phút, việc "nóng" vẫn qua tay người.

Sơ đồ mô tả (pseudocode)

ON form_submitted:
    du_lieu = webhook.payload
    ket_qua = agent.run(
        goal="Phân loại lead + soạn phản hồi",
        input=du_lieu
    )
    IF ket_qua.phan_loai == "nong":
        telegram.send(minh, ket_qua.email_nhap + "— DUYỆT?")
    ELSE:
        email.send(du_lieu.email, ket_qua.email_nhap)
    sheet.append(du_lieu, ket_qua.phan_loai)  # lưu vết

Khung thiết kế route theo rủi ro

Không phải mọi nhánh đều nên tự động. Định tuyến:

  • Rủi ro thấp + tự tin cao → tự động hoàn toàn (gửi luôn).
  • Rủi ro cao HOẶC tự tin thấp → chuyển cho người duyệt.
  • Không phân loại được → gửi cảnh báo cho bạn, đừng đoán.

Các bước làm

  • Vẽ workflow trên giấy: Trigger → Agent → các Action theo nhánh.
  • Dựng trigger trước, test nó bắn dữ liệu đúng.
  • Cắm agent step, ép output có cấu trúc (JSON) để nhánh sau đọc được.
  • Nối action, tách nhánh tự-động vs cần-duyệt.
  • Luôn có bước lưu vết (Sheet/DB) mọi lần chạy.
  • Chạy thử với 10 ca thật trước khi bật "live".

Bắt đầu ở chế độ "khô" (dry run)

Giai đoạn đầu, cho MỌI nhánh chỉ gửi nháp cho bạn, chưa gửi ra ngoài. Khi bạn duyệt tay 20–30 lần và thấy agent ổn định, mới mở dần từng nhánh sang tự động.

Sai lầm thường gặp

  • Bật full-auto ngay: chưa kịp tin agent đã cho nó gửi thật, gặp lỗi trước mặt khách.
  • Không lưu vết: khi khách phản ánh, bạn không biết agent đã gửi gì.
  • Output agent không có cấu trúc: nhánh sau không đọc được, workflow gãy.
  • Không có nhánh "không chắc": agent buộc phải chọn, chọn sai.
  • Quên giới hạn tần suất: trigger bắn liên tục làm agent chạy hàng nghìn lần, cháy budget.

Checklist

  • [ ] Đã vẽ Trigger → Agent → Action
  • [ ] Output agent có cấu trúc
  • [ ] Tách nhánh tự-động vs cần-duyệt
  • [ ] Có bước lưu vết
  • [ ] Chạy dry run trước khi live
Bài sau: an toàn, kiểm soát chi phí và tránh những cú "cháy ví".

<!--les-append-->

Ba chỗ workflow tự động hay gãy

Workflow chạy tốt tháng đầu rồi gãy âm thầm. Ba chỗ, theo thứ tự thường gặp:

Chỗ gãyBiểu hiệnCách chặn
Trigger ngừng bắnKhông có lỗi nào, chỉ là không có gì xảy raCảnh báo khi không có lần chạy nào trong 24h
Agent trả về định dạng khácNhánh sau đọc không được, gãy giữa dâyKiểm cấu trúc đầu ra; nếu sai, gửi cho bạn thay vì bỏ
Hạn mức bên thứ baGửi thất bại, không ai biếtGhi lại kết quả của hành động, không chỉ của agent
Chỗ đầu là chỗ nguy hiểm nhất vì nó im lặng hoàn toàn. Một workflow không chạy không tạo ra lỗi nào — nó chỉ không tồn tại, và bạn phát hiện khi khách hỏi vì sao không ai trả lời. Cảnh báo "không có lần chạy nào" rẻ để dựng và nó bắt được loại hỏng này.

Lưu vết: ghi gì mới đủ dùng

"Lưu vết vào Sheet" dễ làm nửa vời. Năm cột tối thiểu, và cột cuối là cột cứu bạn:

CộtNội dung
Thời điểmKhi nào chạy
Đầu vàoDữ liệu gốc nhận được
Quyết định của agentPhân loại, lý do
Hành động đã làmĐã gửi gì, cho ai — hoặc "chờ duyệt"
Kết quả của hành độngGửi thành công hay thất bại, mã lỗi nếu có
Không có cột cuối, bạn không phân biệt được "agent quyết định gửi" với "email đã thật sự đến". Đó là hai việc khác nhau, và khoảng cách giữa chúng là nơi khách hàng bị bỏ rơi.

Giới hạn tần suất và giới hạn chi phí: đặt cứng

Hai con số nên đặt trước khi bật live, và đặt như một chốt cứng chứ không phải một cảnh báo:

  • Số lần chạy tối đa mỗi giờ. Nếu vượt, dừng và báo bạn. Một form bị bot điền 3.000 lần trong đêm là chuyện có thật.
  • Chi phí tối đa mỗi ngày. Vượt thì dừng hẳn.
Điểm quan trọng: chốt cứng, không cảnh báo. Một cảnh báo lúc 2 giờ sáng không ngăn được gì; một chốt cứng thì có. Với người làm tự do, chênh lệch giữa hai lựa chọn này có thể là một hoá đơn bằng cả tháng thu nhập.

Mở dần từ dry run: một tiêu chí cụ thể

"Duyệt tay 20–30 lần rồi mở" cần một tiêu chí rõ hơn. Tiêu chí dùng được:

> Mở một nhánh sang tự động khi trong 20 lần chạy liên tiếp gần nhất, bạn không sửa gì ở nhánh đó.

Nếu bạn vẫn sửa 3 trong 20, nhánh đó chưa sẵn sàng — và con số bạn sửa chính là tỉ lệ sai mà khách sẽ nhận nếu bạn mở sớm. <!--/les-append-->

Học xong bài này rồi? Tạo tài khoản miễn phí để lưu lại — lần sau vào là biết ngay đang dở ở đâu, và học hết khóa thì có chứng chỉ. Lưu tiến độ của tôi