AIKetNoi.comAI Kết Nối
Tự động hoá là gì và việc nào nên làm

Trigger, hành động và điều kiện: ba mảnh ghép của mọi luồng tự động

Trigger là sự kiện khởi chạy, hành động là việc luồng làm, điều kiện quyết định có làm hay không. Hiểu ba khái niệm này là đọc được mọi công cụ tự động hoá.

Hands arranging blank paper cards and colored string arrows on a large table in a Hanoi co-working space, top-down view, afternoon window light, navy and cyan tones

Mọi luồng tự động đều ghép từ ba mảnh: trigger (sự kiện kích hoạt) là thứ báo cho luồng biết đến lúc chạy, hành động là việc luồng làm, còn điều kiện quyết định hành động có được làm hay không và rẽ sang nhánh nào. Dù bạn dùng tính năng tự động có sẵn trong ứng dụng, nền tảng kéo thả hay tác tử AI, ba mảnh này luôn có mặt dưới các tên gọi khác nhau.

Hiểu rõ ba khái niệm này là việc đáng làm nhất trước khi mở bất kỳ công cụ nào, vì phần lớn lỗi của người mới không nằm ở công cụ mà ở chỗ chọn sai sự kiện, đặt điều kiện sai chỗ hoặc truyền sai dữ liệu giữa các bước. Bài này đi từng mảnh, kèm ví dụ ở văn phòng và cửa hàng nhỏ, rồi đưa một khung để bạn tự viết luồng ra chữ.

Trigger: khi nào luồng bắt đầu chạy

Trigger, hay sự kiện kích hoạt, là câu trả lời cho câu hỏi "khi nào". Có ba nhóm hay gặp. Nhóm thứ nhất là sự kiện trong một ứng dụng: có email mới đến hộp thư, có dòng mới trong bảng tính, có câu trả lời biểu mẫu mới, có đơn hàng mới. Nhóm thứ hai là lịch: mỗi sáng thứ hai lúc tám giờ, ngày cuối tháng, mỗi giờ một lần. Nhóm thứ ba là bấm tay: người dùng chủ động bấm một nút để chạy luồng, hợp với việc cần người quyết định thời điểm.

Với nhóm sự kiện, cần biết hai cách ứng dụng báo tin. Một là ứng dụng chủ động gửi tin ngay khi sự kiện xảy ra, nhờ cơ chế thường gọi là webhook; luồng chạy gần như tức thì. Hai là nền tảng kết nối định kỳ đi hỏi ứng dụng "có gì mới không", gọi là thăm dò; luồng có thể chậm vài phút tuỳ nền tảng và gói đang dùng. Khoảng chậm này không quan trọng với việc ghi đơn vào bảng, nhưng quan trọng với việc báo khách đang chờ ở quầy. Thông tin này thường ghi trong mô tả của từng trigger, và nó đổi theo phiên bản nên hãy kiểm lại khi dựng.

Chọn trigger càng sát với ý định càng tốt. "Có email mới" là trigger rất rộng, luồng sẽ chạy với cả thư quảng cáo. "Có email mới trong thư mục Đơn hàng" hay "có email mới từ địa chỉ của sàn" hẹp hơn, chạy ít lần hơn, ít lỗi hơn và tốn ít lượt chạy hơn. Đây là nguyên tắc đầu tiên: lọc từ trigger được thì đừng để đến bước sau mới lọc.

Hành động: luồng làm gì sau khi được đánh thức

Hành động là các bước luồng thực hiện, theo thứ tự. Dù mỗi ứng dụng có hàng chục hành động, chúng gần như luôn rơi vào vài loại sau:

  • Tạo: thêm dòng mới vào bảng tính, tạo sự kiện lịch, tạo thẻ việc, tạo tệp từ mẫu, tạo liên hệ mới.
  • Cập nhật: đổi trạng thái một đơn từ "mới" sang "đã xác nhận", ghi thêm ghi chú, đổi người phụ trách.
  • Tìm: tra xem khách này đã có trong danh sách chưa, tìm dòng đơn hàng theo mã đơn. Bước tìm thường đứng trước bước cập nhật, vì phải biết sửa dòng nào.
  • Gửi: gửi email, gửi tin nhắn vào nhóm làm việc, gửi thông báo cho điện thoại.
  • Biến đổi: định dạng lại ngày tháng, tách họ và tên, cộng hai số, đổi chữ hoa thành chữ thường. Nhiều nền tảng có sẵn các bước biến đổi này mà không cần viết mã.
  • Xử lý bằng AI: phân loại, tóm tắt, trích thông tin, soạn nháp từ chữ tự do.

Một luồng có thể có một hành động hay hai chục hành động. Thứ tự quan trọng: bước tìm phải chạy trước bước cập nhật, bước tạo dòng trong bảng nên chạy trước bước gửi email xác nhận, để nếu ghi bảng lỗi thì khách không nhận email về một đơn không tồn tại trong sổ. Nguyên tắc chung là việc ghi nhận nội bộ đứng trước, việc báo ra bên ngoài đứng sau.

Điều kiện: có làm hay không, và rẽ sang đâu

Điều kiện có hai dạng. Dạng thứ nhất là bộ lọc: luồng chỉ đi tiếp nếu điều kiện đúng, sai thì dừng im lặng. Ví dụ chỉ ghi đơn vào bảng nếu tổng tiền lớn hơn không, để bỏ qua các đơn thử. Dạng thứ hai là rẽ nhánh: đúng thì đi đường này, sai thì đi đường kia, hoặc chia thành nhiều đường theo giá trị một trường. Ví dụ đơn giao nội thành đi nhánh báo cho người giao hàng của tiệm, đơn tỉnh đi nhánh tạo phiếu gửi qua đơn vị vận chuyển.

Điều kiện được ghép từ ba phần: một trường dữ liệu, một phép so sánh, một giá trị. "Trường Tỉnh, bằng, Cần Thơ". "Trường Tiêu đề email, có chứa, hoá đơn". "Trường Ngày lấy, sớm hơn, hôm nay cộng hai ngày". Nhiều điều kiện có thể nối bằng "và" (tất cả phải đúng) hoặc "hoặc" (một cái đúng là đủ). Người mới hay nhầm hai chữ này: "tỉnh là Cần Thơ hoặc Vĩnh Long" là đúng ý, còn "tỉnh là Cần Thơ và Vĩnh Long" sẽ không bao giờ đúng.

Vị trí của điều kiện quan trọng không kém nội dung. Bộ lọc nên đặt càng sớm càng tốt, ngay sau trigger, để các lượt không cần thiết dừng sớm và không tốn lượt chạy ở các bước sau. Một lỗi hay gặp là đặt bộ lọc sau bước gửi tin, nên tin vẫn đi rồi mới bị lọc. Khi đọc lại luồng, hãy tự hỏi ở mỗi bước: đến đây, mọi lượt chạy có thật sự nên đi tiếp không.

Dữ liệu chảy giữa các bước: ánh xạ trường

Mảnh ghép thứ tư, ít được gọi tên nhưng gây lỗi nhiều nhất, là cách dữ liệu đi từ bước này sang bước khác. Khi trigger chạy, nó mang theo một gói trường dữ liệu; mỗi hành động sau đó được điền bằng các trường đó. Việc nối trường của bước trước vào ô của bước sau gọi là ánh xạ. Ví dụ giả định với luồng biểu mẫu đăng ký học thử:

Trường từ biểu mẫuĐiền vàoLưu ý khi ánh xạ
Họ và tênCột Tên trong bảng; lời chào trong emailNếu khách gõ toàn chữ thường, cân nhắc bước biến đổi viết hoa chữ đầu
Số điện thoạiCột Số điện thoại trong bảngĐặt cột trong bảng ở dạng văn bản, nếu không bảng tính có thể bỏ số 0 đầu
Ngày muốn học thửSự kiện lịch; email xác nhậnKiểm định dạng ngày giữa hai ứng dụng; ngày tháng đảo ngược là lỗi phổ biến
Câu hỏi thêm (không bắt buộc)Ghi chú trong bảngTrường có thể trống; bước sau không được giả định là luôn có chữ
Thời điểm gửiCột Thời điểmKiểm múi giờ của nền tảng kết nối và của bảng tính

Ba cột lưu ý trong bảng là ba nguồn lỗi kinh điển: định dạng số và ngày, trường trống và múi giờ. Khi một luồng "chạy được nhưng ra kết quả lạ", gần như luôn bắt đầu dò từ phần ánh xạ này.

Bốn lỗi khái niệm người mới hay mắc

Trigger bắt cả việc mình không muốn. Chọn "có dòng mới hoặc dòng được sửa" trong bảng tính trong khi chỉ muốn bắt dòng mới, nên mỗi lần ai đó sửa chính tả một ô là khách nhận thêm một email. Đọc kỹ mô tả trigger và chọn loại hẹp nhất phù hợp.

Luồng tự kích hoạt lại chính nó. Luồng chạy khi bảng có dòng được sửa, rồi chính nó sửa một ô trong bảng đó, thế là chạy lại liên tục. Khi hành động ghi vào đúng nơi trigger đang theo dõi, hãy thêm điều kiện chặn, ví dụ chỉ chạy khi cột Trạng thái đang trống. Cách dò và xử lý vòng lặp kiểu này có bài riêng ở danh mục vận hành.

Không tính đến trường trống. Khách bỏ trống ô ghi chú, bước sau cố cắt chữ trong ô đó và báo lỗi. Với mỗi trường không bắt buộc, quyết định trước luồng làm gì khi nó trống: bỏ qua, điền giá trị mặc định, hay chuyển cho người.

Nhầm điều kiện "và" với "hoặc". Như ví dụ hai tỉnh ở trên. Mẹo kiểm tra là đọc điều kiện thành câu tiếng Việt và hỏi một người không làm kỹ thuật xem câu đó có đúng ý không.

Viết luồng ra chữ theo khung "khi, nếu, thì"

Trước khi mở công cụ, viết luồng ra chữ theo khung dưới đây. Nó buộc bạn trả lời đủ các câu mà công cụ sẽ hỏi, và cho người khác đọc hiểu được luồng của bạn mà không cần mở phần mềm.

  1. Khi (trigger): mô tả sự kiện thật cụ thể, ghi rõ ứng dụng nào, thư mục hay bảng nào, sự kiện mới hay sự kiện cập nhật.
  2. Nếu (điều kiện): liệt kê các điều kiện, ghi rõ nối bằng "và" hay "hoặc"; ghi cả trường hợp ngược lại luồng sẽ làm gì.
  3. Thì (hành động): đánh số từng hành động theo thứ tự, ghi rõ ứng dụng và trường nào được điền bằng dữ liệu nào.
  4. Nếu trống: với mỗi trường không bắt buộc, ghi cách xử lý khi nó trống.
  5. Nếu lỗi: ai nhận báo khi luồng hỏng, và cách làm tay tạm thời là gì.
  6. Dữ liệu cá nhân: trường nào là thông tin cá nhân, nó đi qua những ứng dụng nào, có bước nào không cần đến nó để bỏ bớt.

Một luồng viết theo khung này thường vừa một nửa trang. Nếu bạn viết mãi không xong phần "nếu", đó là dấu hiệu quy trình chưa có quy tắc rõ, và nên làm rõ với người trong nhóm trước khi tự động hoá.

Cùng một khái niệm, nhiều tên gọi trên các công cụ

Mỗi nền tảng đặt tên khác nhau cho cùng một thứ, và tên gọi có thể đổi giữa các phiên bản. Bảng dưới gom các cách gọi thường gặp để bạn nhận ra khi chuyển công cụ hay đọc tài liệu tiếng Anh:

Khái niệmCách gọi hay gặpGhi chú
Sự kiện kích hoạtTrigger, kích hoạt, khi, sự kiện bắt đầuCó loại tức thì và loại thăm dò định kỳ
Hành độngAction, bước, tác vụ, moduleMột số nền tảng tính chi phí theo số bước chạy
Bộ lọcFilter, điều kiện, chỉ tiếp tục nếuSai thì dừng, không báo lỗi
Rẽ nhánhPath, router, branch, nếu thì khácMỗi nhánh có chuỗi hành động riêng
Ánh xạ trườngMapping, chèn dữ liệu, biến, trường độngNguồn lỗi định dạng phổ biến nhất
LuồngWorkflow, flow, scenario, automation, quy tắcLà toàn bộ chuỗi từ trigger đến hành động cuối

Khi đã quen ba mảnh ghép, đổi công cụ chủ yếu là học lại vị trí nút bấm. Đó là lý do nên học khái niệm trước, công cụ sau: kiến thức khái niệm dùng được mãi, còn giao diện thì mỗi năm một khác.

Câu hỏi thường gặp

Trigger và webhook có phải là một không?

Không hẳn. Trigger là khái niệm chung chỉ sự kiện làm luồng bắt đầu. Webhook là một cách kỹ thuật để ứng dụng báo sự kiện ngay lập tức. Một trigger có thể dùng webhook để chạy tức thì, hoặc dùng cách thăm dò định kỳ nên chạy chậm hơn vài phút.

Một luồng có thể có nhiều trigger không?

Tuỳ công cụ. Nhiều nền tảng cho mỗi luồng một trigger; muốn bắt nhiều sự kiện thì dựng nhiều luồng nhỏ cùng đổ về một bảng hoặc một luồng chung. Cách này còn giúp dễ dò lỗi hơn, vì mỗi luồng chỉ có một lối vào.

Vì sao luồng của mình chạy chậm vài phút?

Thường vì trigger dùng cách thăm dò định kỳ: nền tảng cứ một khoảng thời gian lại hỏi ứng dụng có gì mới. Khoảng này tuỳ nền tảng và gói đang dùng. Nếu việc cần tức thì, hãy tìm trigger loại tức thì hoặc ứng dụng có hỗ trợ webhook.

Nên dùng bộ lọc hay rẽ nhánh?

Dùng bộ lọc khi trường hợp không khớp chỉ cần bỏ qua. Dùng rẽ nhánh khi mỗi trường hợp cần một cách xử lý riêng. Nếu thấy mình dựng hai luồng giống nhau chỉ khác một điều kiện, đó là dấu hiệu nên gộp lại bằng rẽ nhánh.

Có cần vẽ sơ đồ luồng không hay viết chữ là đủ?

Luồng thẳng vài bước thì viết theo khung khi, nếu, thì là đủ. Luồng có nhiều nhánh hoặc có nhiều người tham gia thì nên vẽ sơ đồ trên giấy để thấy các nhánh, chỗ chờ và chỗ người duyệt. Danh mục này có bài riêng về cách vẽ.

Có nên đặt trigger theo lịch thay cho trigger theo sự kiện?

Trigger theo lịch hợp với việc gom theo đợt như báo cáo cuối ngày hay nhắc việc đầu tuần. Việc cần phản hồi từng lần như xác nhận đơn thì nên dùng trigger theo sự kiện. Dùng lịch cho việc từng lần sẽ làm khách chờ lâu và dễ bỏ sót.

Cần tư vấn cụ thể cho trường hợp của bạn?

Chúng tôi sẽ liên hệ trong vòng 24 giờ.

Đăng ký tư vấn ngay

Bài viết liên quan

Bạn cần hỗ trợ thêm?

Để lại thông tin, chúng tôi sẽ liên hệ trong 24 giờ.

hoặc
Gọi ngay 0926 138 138