Tất cả về Điều kiện kích hoạt, Bộ lọc, Hành động — kèm ví dụ thực tế dễ hiểu
6 Loại điều kiện kích hoạt 6 Loại hành động 15 Mẫu kết hợp thực tếTự động hóa (Automation) trong LarkBase là tính năng tự động thực hiện việc thay bạn khi có sự kiện xảy ra — mà không cần con người thao tác thủ công mỗi lần.
Mọi tự động hóa trong LarkBase đều được cấu tạo từ 4 thành phần chính:
Điều kiện kích hoạt (Trigger) là sự kiện bắt đầu để tự động hóa chạy. Không có nó thì tự động hóa không bao giờ chạy.
Hiểu đơn giản: Điều kiện kích hoạt giống như công tắc đèn — bạn bấm công tắc → đèn sáng.
| Câu hỏi | Trả lời |
|---|---|
| Là gì? | Sự kiện khởi đầu — "điều gì xảy ra thì tự động hóa bắt đầu chạy?" |
| Có bao nhiêu loại? | 6 loại: Tạo bản ghi mới, Sửa bản ghi, Tạo hoặc sửa, Chạy theo lịch, Nhắc nhở theo ngày, Nhận tin nhắn |
| Mỗi tự động hóa có bao nhiêu cái? | CHỈ 1 cái duy nhất — không thể có 2 điều kiện kích hoạt cùng lúc |
| Trigger chạy ở đâu? | Trên bảng LarkBase mà bạn tạo tự động hóa |
| Có trả về dữ liệu không? | CÓ — trả về thông tin của bản ghi đã kích hoạt (tên, trạng thái, người tạo, thời gian...) |
Bộ lọc (Condition) là điều kiện phụ để quyết định có chạy hành động hay không. Bộ lọc là tùy chọn, không bắt buộc.
Hiểu đơn giản: Bộ lọc giống như bảo vệ cửa — kiểm tra xem sự kiện có đủ điều kiện vào không.
| Câu hỏi | Trả lời |
|---|---|
| Là gì? | Điều kiện phải thỏa mãn thì hành động mới được thực thi |
| Bắt buộc không? | KHÔNG — có thể bỏ qua, khi đó hành động luôn chạy sau điều kiện kích hoạt |
| Hoạt động như thế nào? | Điều kiện kích hoạt xảy ra → Kiểm tra bộ lọc → Nếu ĐÚNG → chạy hành động, Nếu SAI → bỏ qua |
| Điều kiện thường dùng | Trường = giá trị (Trạng thái = "Mới"), Trường ≠ giá trị, Trường > số, Trường chứa chữ... |
| Nhiều điều kiện kết hợp | VÀ — tất cả phải đúng; HOẶC — chỉ cần 1 đúng |
Hành động (Action) là việc tự động hóa thực hiện sau khi điều kiện kích hoạt (và bộ lọc) đã thỏa.
Hiểu đơn giản: Hành động là việc bạn muốn hệ thống tự động làm thay bạn.
| Câu hỏi | Trả lời |
|---|---|
| Là gì? | Hành động được thực thi khi điều kiện kích hoạt + bộ lọc thỏa mãn |
| Có bao nhiêu loại? | 6 loại: Thêm bản ghi, Sửa bản ghi, Tìm bản ghi, Gửi tin nhắn, AI sinh văn bản, Chờ |
| Mỗi tự động hóa có bao nhiêu cái? | NHIỀU — có thể xếp nối tiếp nhau (Hành động 1 → Hành động 2 → Hành động 3...) |
| Có dùng dữ liệu từ điều kiện kích hoạt không? | CÓ — thông qua "biến dẫn dữ liệu" (ref), ví dụ: lấy tên khách từ điều kiện kích hoạt để điền vào tin nhắn |
| Cái nào trả về dữ liệu? | Thêm bản ghi, Sửa bản ghi, Tìm bản ghi, AI sinh văn bản → có dữ liệu để dùng cho bước sau. Gửi tin nhắn và Chờ → không trả về dữ liệu. |
Biến dẫn dữ liệu (Ref) là cách dữ liệu được chuyền từ bước này sang bước khác trong cùng một tự động hóa.
Hiểu đơn giản: Biến dẫn dữ liệu giống như biến trong Excel — bạn lấy giá trị từ ô này để dùng ở ô khác.
| Câu hỏi | Trả lời |
|---|---|
| Là gì? | Đường dẫn đến dữ liệu từ bước trước, dạng $.tên_bước.tên_trường |
| Format | $.tên_bước hoặc $.tên_bước.tên_trường hoặc $.tên_bước.tên_trường.thuộc_tính |
| Ví dụ | $.buoc1.fldTenCongViec → Lấy giá trị trường "Tên công việc" từ bước kích hoạt |
| Dùng ở đâu? | Trong hành động — để điền dữ liệu động vào tin nhắn, vào bản ghi mới, vào câu lệnh AI... |
"Khách hàng " + $.dieukien.fldTenKhach + " vừa tạo đơn " + $.dieukien.fldSoDon
Rẽ nhánh và vòng lặp cho phép tạo luồng xử lý phức tạp — không chỉ chạy thẳng từ đầu đến cuối.
| Thành phần | Là gì? | Khi nào dùng |
|---|---|---|
| Rẽ 2 nhánh | NẾU đúng → làm A, NẾU sai → làm B | Chỉ có 2 trường hợp (ví dụ: đơn > 1 triệu hay ≤ 1 triệu?) |
| Rẽ nhiều nhánh | A → làm A, B → làm B, C → làm C... | Có từ 3 trường hợp trở lên (ví dụ: Ưu tiên P0/P1/P2/P3) |
| Vòng lặp | Lặp qua từng phần tử trong danh sách | Cần xử lý từng món (ví dụ: từng sản phẩm trong đơn hàng) |
Trong tự động hóa, mọi giá trị đều có loại dữ liệu để xác định nó là gì:
| Loại | Giá trị là gì? | Ví dụ |
|---|---|---|
| Chữ | Chuỗi ký tự | "Nguyễn Văn A" |
| Số | Số nguyên hoặc thập phân | 100, 1500000 |
| Đúng / Sai | Checkbox, tick hay không tick | true, false |
| Ngày giờ | Ngày, giờ, hoặc thời điểm tương đối | "2025-01-01", "now" (bây giờ), "today" (hôm nay) |
| Lựa chọn | Option trong trường chọn (dropdown) | {"name": "Đang làm"} |
| Người dùng | Một người cụ thể | {"id": "ou_xxxx"} |
| Nhóm chat | Một nhóm chat cụ thể | {"id": "oc_xxxx"} |
| Biến dẫn dữ liệu | Lấy dữ liệu từ bước trước | "$.dieukien.fldTenKhach" |
Điều kiện kích hoạt là "khi nào" — sự kiện bắt đầu để tự động hóa chạy. LarkBase có 6 loại:
| Tên trong LarkBase | Chạy khi... | Chỉ sửa? | Chỉ tạo? | Cả hai? |
|---|---|---|---|---|
AddRecordTrigger |
Thêm bản ghi mới | ❌ | ✅ | ❌ |
SetRecordTrigger |
Sửa bản ghi (trường = giá trị cụ thể) | ✅ | ❌ | ❌ |
ChangeRecordTrigger |
Thêm HOẶC sửa bản ghi | ❌ | ❌ | ✅ |
TimerTrigger |
Đến giờ/lịch cài sẵn | Theo lịch (phút/giờ/ngày/tuần/tháng) | ||
ReminderTrigger |
Đến ngày giờ trong trường Ngày | Dựa trên trường ngày giờ của bản ghi | ||
LarkMessageTrigger |
Nhận tin nhắn Lark (nhóm/chat) | Bot nhận tin từ người dùng | ||
Cấu hình cần thiết:
table_name: Tên bảng cần theo dõiwatched_field_name: Trường để theo dõi (thường là trường đầu tiên hoặc ID)condition_list (tùy chọn): Lọc thêm điều kiện (ví dụ: chỉ chạy khi Loại = "Đơn hàng")trigger_control_list (tùy chọn): Chọn nguồn kích hoạt — dán dữ liệu (paste), từ tự động hóa khác (automation), từ APICấu hình cần thiết:
table_name: Tên bảngfield_watch_info: Trường + giá trị cần đạt (ví dụ: Trạng thái = "Đã duyệt")record_watch_info (tùy chọn): Lọc bản ghi trước khi sửa (ví dụ: chỉ áp dụng cho đơn > 1 triệu)condition_list (tùy chọn): Điều kiện bổ sungCấu hình cần thiết:
table_name: Tên bảngcondition_list (tùy chọn): Điều kiện lọc (ví dụ: Trạng thái ≠ "Hủy")trigger_control_list (tùy chọn): Nguồn kích hoạtCấu hình cần thiết:
rule: HÀNG NGÀY / HÀNG TUẦN / HÀNG THÁNG / NGÀY LÀM VIỆC / TÙY CHỈNHstart_time: Giờ bắt đầu (yyyy-MM-dd HH:mm)sub_unit: Với HÀNG TUẦN → [1,3,5] (T2,T4,T6); Với HÀNG THÁNG → ngày trong thángis_never_end: Chạy mãi hay có ngày kết thúcCấu hình cần thiết:
table_name: Tên bảngfield_name: Trường ngày giờ (ngày / ngày tạo / công thức / tra cứu)offset: Trước/bao lâu (dương = trước, âm = sau). Ví dụ: 1 NGÀY = trước 1 ngàyunit: PHÚT / GIỜ / NGÀY / TUẦN / THÁNGhour / minute: Giờ cụ thể trong ngày để gửi nhắcCấu hình cần thiết:
receive_scene: nhóm (group) hoặc chat riêng (chat)receiver: Nhóm hoặc user cụ thểscope: at (chỉ khi @bot) hoặc all (mọi tin nhắn)filter.content_contains: Từ khóa cần có trong tin nhắnfilter.is_message_contain_attachment: Chỉ chạy khi có file đính kèmHành động là "thì làm gì" — việc tự động hóa thực hiện sau khi điều kiện kích hoạt.
| Tên trong LarkBase | Làm gì? | Trả về dữ liệu? |
|---|---|---|
AddRecordAction |
Thêm bản ghi mới | ✅ |
SetRecordAction |
Sửa bản ghi có sẵn | ✅ |
FindRecordAction |
Tìm kiếm bản ghi theo điều kiện | ✅ |
LarkMessageAction |
Gửi tin nhắn Lark | ✅ |
GenerateAiTextAction |
AI sinh văn bản | ✅ |
Delay |
Chờ 1-120 phút | ❌ |
Cấu hình:
table_name: Bảng đíchfield_values: Danh sách trường + giá trị (có thể dùng biến dẫn dữ liệu từ bước trước)Cấu hình:
table_name: Bảng đíchfield_values: Trường cần cập nhật + giá trị mớifilter_info hoặc ref_info: Chọn record cần sửa — filter (tìm theo điều kiện) hoặc ref (dùng record từ bước trước)max_set_record_num: Tối đa bao nhiêu record được sửa (1-15000, mặc định 100)Cấu hình:
table_name: Bảng cần tìmfield_names: Các trường muốn lấy dữ liệufilter_info hoặc ref_info: Điều kiện tìm kiếmshould_proceed_when_no_results: Không tìm thấy có chạy tiếp không? (mặc định là có)Cấu hình:
receiver: Người/nhóm nhận (user / group / biến dẫn từ bước trước)send_to_everyone: Gửi cho tất cả?title: Tiêu đề tin nhắncontent: Nội dung — hỗ trợ trộn chữ + biến dẫn dữ liệu (dữ liệu từ bước trước)btn_list: Nút bấm kèm theo — mở link, tạo record, sửa recordCấu hình:
prompt: Câu lệnh cho AI — hỗ trợ trộn chữ + biến dẫn dữ liệu (dữ liệu từ bước trước)Cấu hình:
duration: Số phút chờ (1-120)Khi nào dùng: Chỉ có 2 trường hợp. Ví dụ: Đơn > 1 triệu hay ≤ 1 triệu?
Khi nào dùng: Có từ 3 trường hợp trở lên. Ví dụ: Ưu tiên P0/P1/P2/P3. Không dùng Rẽ 2 nhánh lồng nhau khi ≥ 3 nhánh.
Khi nào dùng: Cần xử lý từng món trong danh sách. Ví dụ: Duyệt qua từng sản phẩm trong đơn hàng.
Cấu hình:
data: Nguồn dữ liệu để lặp (thường là biến dẫn từ bước "Tìm bản ghi" hoặc trường chứa nhiều giá trị)loop_mode: continue (lỗi 1 cái vẫn tiếp tục) hoặc end (lỗi → dừng)max_loop_times: Tối đa bao lần lặpKết hợp Điều kiện kích hoạt + Hành động để tạo luồng tự động hóa hoàn chỉnh.
Mô tả: Khi tạo đơn hàng mới → Gửi tin nhắn vào nhóm Sales với thông tin đơn + nút "Xem chi tiết".
Mô tả: Khi sửa deadline → (1) Nhắn cho người phụ trách, (2) Ghi lại lịch sử vào bảng "Lịch sử thay đổi deadline".
Phát hiện từ bảng thực tế: "QUẢN LÝ CÔNG VIỆC TEAM V3.0.1"
Mô tả: Khi tick ô "Tạo báo giá" → Lặp qua từng sản phẩm → Thêm vào bảng "Chi tiết hợp đồng".
Phát hiện từ bảng thực tế: "MINI ERP - EPC HÀ NAM"
Mô tả: Trước deadline 1 ngày lúc 9:00 → Nhắn riêng người phụ trách "Công việc X đến hạn vào ngày Y".
Mô tả: Mỗi thứ 2 lúc 9:00 → Gửi link báo cáo tuần vào nhóm quản lý.
Mô tả: Khi chuyển trạng thái sang "Đang làm" → Tự động cập nhật "Thời gian bắt đầu" = thời gian hiện tại.
Mô tả: Thêm khách hàng mới → Tìm xem đã có chưa → Nếu có → cập nhật thông tin, không → tạo mới. Tránh trùng dữ liệu.
Mô tả: Khi tạo đơn → Kiểm tra số tiền → Nếu > 1 triệu → nhắn sếp, ≤ 1 triệu → tự động đánh dấu "Đã duyệt".
Mô tả: Khi tạo việc → Phân theo ưu tiên → P0: nhắn Ban Giám Đốc, P1: nhắn Manager, P2: nhắn Team Lead, P3: nhắn người thực hiện.
Mô tả: Người dùng bấm nút "Duyệt" → (1) Cập nhật trạng thái = "Đã duyệt", (2) Thông báo cho người tạo, (3) Ghi lại ai duyệt, lúc nào.
Mô tả: Nhắc deadline → Chờ 30 phút → Kiểm tra lại → Nếu vẫn chưa xong → nhắn quản lý.
Mô tả: User nhắn "/tạo-task Gọi khách A" trong nhóm → Bot tự động tạo việc trong bảng "Công việc".
Mô tả: Khi thêm feedback mới → AI đọc và tóm tắt → Lưu kết quả vào trường "Tóm tắt AI" trong cùng bản ghi.
Mô tả: Sau deadline 1 ngày → Nếu trạng thái ≠ "Hoàn thành" → Cảnh báo quản lý "Việc X quá hạn!".
Mô tả: Mỗi ngày 10:00 → Tìm đơn hôm qua chưa gửi xác nhận → Với từng đơn → Gửi mail → Đánh dấu "Đã gửi".
| Lỗi | Nguyên nhân | Cách sửa |
|---|---|---|
| Tự động hóa không chạy | Chưa bật / Điều kiện kích hoạt không khớp / Bộ lọc không thỏa | 1. Kiểm tra đã bật chưa 2. Xem nhật ký chạy 3. Test tạo/sửa bản ghi |
| Tin nhắn không gửi được | Người nhận không có quyền xem bản ghi / Trường người dùng trống / Bot không có quyền gửi | 1. Cấp quyền xem bản ghi 2. Kiểm tra trường người dùng đã điền 3. Thêm Bot vào nhóm |
| Không cập nhật được thời gian | Trường Ngày bị khóa chỉ đọc / Sai định dạng / Điều kiện kích hoạt sai sự kiện | 1. Kiểm tra trường không bị khóa 2. Dùng "Thời gian hiện tại" 3. Kiểm tra loại điều kiện kích hoạt |
| Tự động hóa chạy lặp vô hạn | Hành động sửa bản ghi → kích hoạt lại chính nó → vòng lặp | 1. Thêm điều kiện chặn kích hoạt lại 2. Dùng ô tick "Đã xử lý" 3. Tắt để sửa lỗi |
| Vòng lặp chạy quá lâu / treo | Số lượng bản ghi lặp quá lớn | 1. Giới hạn số lần lặp tối đa 2. Lọc dữ liệu đầu vào 3. Test với dữ liệu nhỏ trước |
| Nội dung tin nhắn hiển thị sai biến | Tên biến dẫn dữ liệu sai / Trường không có dữ liệu / Loại trường không tương thích | 1. Kiểm tra lại đường dẫn biến 2. Đảm bảo bản ghi có dữ liệu 3. Chuyển đổi loại trường nếu cần |
| Nút bấm không hoạt động | Nút chưa cấu hình đúng / Người bấm không có quyền / Hành động lỗi | 1. Cấu hình lại nút 2. Kiểm tra quyền người dùng 3. Xem nhật ký chạy |
| Tìm bản ghi không thấy | Bộ lọc sai điều kiện / Không có bản ghi nào khớp | 1. Kiểm tra bộ lọc 2. Test tìm kiếm thủ công trước 3. Set "Không tìm thấy vẫn chạy tiếp = Đúng" |
Nhật ký chạy