Cho trợ lý AIhttps://lotics.ai/docs/workflow-automation.md

Tự động hóa quy trình

Quy trình Lotics là các chuỗi bước khai báo kết hợp công cụ, luồng điều khiển và biểu thức để tự động hóa nghiệp vụ từ đầu đến cuối. Thay vì viết code, bạn định nghĩa điều gì xảy ra khi một sự kiện cụ thể phát sinh, và công cụ quy trình xử lý việc thực thi, thử lại và quản lý trạng thái. Một quy trình duy nhất có thể nhận email, trích xuất dữ liệu bằng AI, truy vấn và cập nhật bản ghi, tạo chứng từ và gửi thông báo, tất cả mà không cần rời khỏi nền tảng.

Quy trình là gì?

Quy trình trong Lotics là một chuỗi các bước thực thi tự động khi điều kiện kích hoạt được đáp ứng. Mỗi quy trình có đúng một kích hoạt và một hoặc nhiều bước. Các bước chạy theo thứ tự, và mỗi bước có thể tham chiếu dữ liệu từ sự kiện kích hoạt hoặc từ các bước trước đó thông qua biểu thức. Quy trình được thiết kế để thay thế các tác vụ thủ công, lặp đi lặp lại mà đội vận hành thực hiện hàng ngày: sao chép dữ liệu giữa các hệ thống, gửi email theo dõi, cập nhật bảng tính, tạo báo cáo.

Quy trình mang tính khai báo: bạn chỉ định kích hoạt, định nghĩa các bước và cấu hình đầu vào cho mỗi bước. Công cụ quy trình quản lý thứ tự thực thi, xử lý lỗi và duy trì trạng thái giữa các bước. Nếu một bước thất bại, quy trình ghi lại lỗi với đầy đủ ngữ cảnh để bạn có thể chẩn đoán và khắc phục. Không có lỗi nào bị bỏ qua.

Trợ lý AI có thể xây dựng quy trình từ mô tả bằng ngôn ngữ tự nhiên. Mô tả những gì bạn muốn tự động hóa ("khi khách hàng gửi biểu mẫu yêu cầu booking, tạo bản ghi lô hàng, phân công cho đội vận hành và gửi email xác nhận") và trợ lý sẽ tạo quy trình với kích hoạt, bước và biểu thức chính xác.

Các loại kích hoạt

Mỗi quy trình bắt đầu bằng một kích hoạt, sự kiện khiến quy trình chạy. Lotics hỗ trợ các loại kích hoạt bao phủ các cách phổ biến nhất mà công việc đến tay đội vận hành: tác vụ theo lịch, thông tin liên lạc đến, hành động người dùng và sự kiện từ hệ thống bên ngoài. Phản ứng với vòng đời bản ghi (tạo / cập nhật / xóa) được cấu hình dưới dạng table workflows — xem mục table workflows.

Kích hoạt được cấu hình cho từng quy trình và không thể kết hợp. Nếu bạn cần cùng một quy trình chạy theo cả lịch và email đến, hãy tạo hai quy trình gọi cùng một chuỗi bước. Mỗi kích hoạt cung cấp dữ liệu ngữ cảnh mà các bước tiếp theo có thể tham chiếu qua biểu thức.

recurring_schedule

Kích hoạt theo lịch cron (ví dụ: mỗi ngày làm việc lúc 9h sáng, thứ Hai đầu tiên của tháng, mỗi 6 giờ). Sử dụng cho các tác vụ định kỳ không phụ thuộc vào sự kiện cụ thể.

Dữ liệu ngữ cảnh: trigger_id và thời gian thực thi theo lịch.

Ví dụ sử dụng: Tạo báo cáo tổng hợp hàng ngày về hóa đơn quá hạn. Kiểm tra container đã ở bãi quá 14 ngày. Gửi email KPI hàng tuần cho ban quản lý.

receive_gmail_email

Kích hoạt khi email mới đến tài khoản Gmail đã kết nối. Kích hoạt này theo dõi hộp thư đến và xử lý tự động mỗi tin nhắn đến.

Dữ liệu ngữ cảnh: email_id, from (địa chỉ người gửi), subject, body (toàn bộ nội dung email), và attachments[] (danh sách tệp đính kèm).

Ví dụ sử dụng: Trích xuất dữ liệu hóa đơn từ email nhà cung cấp. Phân tích xác nhận booking từ hãng tàu. Chuyển hướng yêu cầu khách hàng đến đội phù hợp dựa trên từ khóa tiêu đề.

receive_outlook_email

Kích hoạt khi email mới đến tài khoản Outlook đã kết nối. Hoạt động giống hệt kích hoạt Gmail nhưng dành cho tài khoản Microsoft 365.

Dữ liệu ngữ cảnh: email_id, from (địa chỉ người gửi), subject, body (toàn bộ nội dung email), và attachments[] (danh sách tệp đính kèm).

Ví dụ sử dụng: Tương tự kích hoạt Gmail. Xử lý đơn đặt hàng nhận qua Outlook. Trích xuất hướng dẫn vận chuyển từ email hãng vận tải.

button_pressed

Kích hoạt khi người dùng nhấn nút trong một hàng của bảng. Điều này cho phép bạn gắn hành động theo yêu cầu vào từng bản ghi, được kích hoạt rõ ràng bởi thành viên trong đội.

Dữ liệu ngữ cảnh: table_id, record_id, field_key (trường nút nào được nhấn), context.member_id (ai đã nhấn), data (toàn bộ dữ liệu bản ghi), và display (giá trị hiển thị dễ đọc cho tất cả trường).

Ví dụ sử dụng: Nút "Tạo hóa đơn" trên bản ghi đơn hàng. Nút "Gửi nhắc nhở" trên khoản thanh toán quá hạn. Nút "Phê duyệt" trên yêu cầu mua hàng chuyển đến người phê duyệt tiếp theo.

form_submitted

Kích hoạt khi biểu mẫu công khai hoặc nội bộ được gửi. Biểu mẫu có thể được chia sẻ bên ngoài qua liên kết (cho tiếp nhận khách hàng) hoặc sử dụng nội bộ cho thu thập dữ liệu có cấu trúc.

Dữ liệu ngữ cảnh: form_id, submission_id, context.member_id (người gửi, nếu đã xác thực), data (tất cả giá trị trường đã gửi), và display (phiên bản dễ đọc của các giá trị đã gửi).

Ví dụ sử dụng: Khi khách hàng gửi biểu mẫu yêu cầu booking, tạo bản ghi lô hàng và phân công cho đội vận hành. Khi nhân viên gửi báo cáo chi phí, chuyển đến quản lý để phê duyệt.

app_action

Kích hoạt khi hành động được thực hiện từ trong ứng dụng Lotics. Ứng dụng là các giao diện tùy chỉnh xây dựng trên bảng, và hành động cho phép bạn kết nối logic quy trình với các nút và tương tác trong giao diện đó.

Dữ liệu ngữ cảnh: app_id, action_id, context.member_id (ai đã kích hoạt), và inputs (tham số hành động được định nghĩa trong cấu hình ứng dụng).

Ví dụ sử dụng: Ứng dụng bảng điều khiển vận hành với hành động "Điều phối" phân công tài xế, cập nhật trạng thái lô hàng và gửi thông báo. Ứng dụng cổng khách hàng với hành động "Yêu cầu báo giá" tạo bản ghi và thông báo cho đội bán hàng.

receive_webhook

Kích hoạt khi yêu cầu HTTP POST được nhận tại URL webhook duy nhất của quy trình. Điều này cho phép hệ thống bên ngoài kích hoạt quy trình mà không cần code tích hợp riêng cho Lotics.

Dữ liệu ngữ cảnh: Toàn bộ nội dung yêu cầu, headers và tham số query từ HTTP POST đến.

Ví dụ sử dụng: Nhận cập nhật theo dõi lô hàng từ API hãng vận tải. Xử lý thông báo thanh toán từ cổng thanh toán. Nhận dữ liệu từ bất kỳ hệ thống bên ngoài nào có thể gửi yêu cầu HTTP.

Quy trình được viết bằng gì

Bạn viết quy trình bằng một tập con nhỏ của JavaScript. Không có bảng các loại bước để học thuộc, cũng không phải ghép JSON: bạn viết các câu lệnh, và nền tảng phân tích chúng khi lưu thành một cây đã được kiểm tra.

Chính cây đó mới là thứ chạy. JavaScript bạn viết không bao giờ được thực thi lúc chạy — nó chỉ được phân tích một lần khi lưu, kiểm tra, rồi lưu lại. Nhờ vậy một quy trình không thể làm điều gì bất ngờ trên môi trường thật: những gì bộ kiểm tra đã chấp nhận chính là toàn bộ những gì có thể xảy ra.

Phần lớn những gì bạn viết là JavaScript thông thường — constlet, phép gán, if / else if / else, switch, for ... of, while, do ... while, vòng lặp for có biến đếm, breakcontinue, try / catch, phép tính và so sánh, chuỗi lồng biến, và cú pháp tách giá trị. Bên trên đó là một số dạng riêng của nền tảng:

Bạn muốn gìBạn viết
Gọi một công cụ và giữ kết quảconst shipment = await get_record({ ... });
Gọi một công cụ, không cần kết quảawait send_email({ ... });
Tính một giá trị một lần rồi dùng lạiconst yesterday = subDays(now(), 1);
Để AI làm một bước cần phán đoánconst parsed = await agent({ instructions, input, tools, output });
Tạm dừng một khoảng thời gianawait wait({ duration_in_minutes: 5 });
Dừng tới khi có sự kiện bên ngoàiawait wait_for_event({ event_type: "webhook", event_ref: ref, timeout_in_minutes: 60 });
Dừng chờ một người phê duyệtconst approval = await wait_for_approval({ approvers, prompt });
Chặn một thao tác ghi sai kèm thông báovalidate({ checks: [{ fail_when: ..., field_key: "...", message: ... }] });
Kết thúc sớm kèm kết quảreturn({ status: "success", message: ... });

Hai thứ trông giống JavaScript nhưng không phải: return(...) là một lời gọi hàm, không phải câu lệnh return của JavaScript, và nó mang theo trạng thái để bên gọi đọc. Và cái tên bạn gán cho một lời gọi công cụ (const shipment = ...) trở thành id của bước đó trong nhật ký thực thi — đó là cách bạn tìm lại nó khi soát một lần chạy.

Phê duyệt là kiểu tạm dừng duy nhất đáng gán vào một biến, vì nó mang quyết định trả về:

const approval = await wait_for_approval({
  approvers: record["fld_approvers"],
  prompt: `Duyệt báo giá cho ${record["fld_name"]}?`,
});

if (approval.status == "approved") {
  // tạo dự án, chuyển giai đoạn, báo cho kinh doanh
} else {
  // ghi lại approval.decision_comment
}

Những gì bị từ chối ngay khi lưu

Đây là các quy tắc nên biết trước, vì mỗi quy tắc đều ngăn một lỗi mà nếu không sẽ xảy ra âm thầm:

  • Không được tạm dừng bên trong vòng lặp. wait, wait_for_eventwait_for_approval bị từ chối nếu nằm trong thân bất kỳ vòng lặp nào. Khi một quy trình đang dừng chạy tiếp, nó vào lại sau toàn bộ vòng lặp, nên một điểm dừng đặt bên trong sẽ chạy vòng đầu, dừng lại, rồi bỏ qua mọi vòng còn lại cùng mọi thao tác ghi của chúng. Hãy đưa điểm dừng ra ngoài vòng lặp, hoặc tách vòng lặp thành các lần chạy được kích hoạt riêng.
  • Không được tạm dừng khi còn một biến let trong phạm vi. Biến khai báo trong khối không tồn tại qua ranh giới dừng — chạy tiếp.
  • Không dùng agent(...) trong hook before_create / before_update / before_delete. Bước agent chạy sau khi thao tác ghi đã xong, nên không chặn được nó.
  • Chỉ gọi được các công cụ và hàm trợ giúp mà nền tảng biết tên. Không có lời gọi hàm tùy ý và không có việc chạy JavaScript lúc thực thi — đó chính là tính chất mà toàn bộ thiết kế dựa vào.

Giới hạn khi quy trình đang chạy

  • Vòng lặp dừng ở 10.000 vòng, kết thúc lần chạy với lỗi ghi rõ "nhiều khả năng lặp vô hạn" thay vì quay mãi.
  • Mỗi lượt thực thi có hạn mức thời gian, kiểm lại sau mỗi vòng lặp, nên một vòng lặp chạy lâu sẽ dừng với lỗi rõ ràng thay vì làm treo yêu cầu.
  • Một bước phê duyệt mà danh sách người duyệt không ra được ai — do nối nhầm một trường văn bản, hoặc một nhóm rỗng — kết thúc lần chạy với lỗi nêu rõ giá trị sai. Sai sót đó vẫn qua được bước kiểm kiểu, nên đây là chỗ bạn gặp nó.

Công cụ biểu thức

Biểu thức là chất kết dính kết nối các bước với nhau. Sử dụng cú pháp {{ }}, bất kỳ bước nào cũng có thể tham chiếu dữ liệu từ sự kiện kích hoạt hoặc từ đầu ra của các bước trước đó. Biểu thức cho phép bạn xây dựng quy trình động trong đó mỗi bước thích ứng dựa trên những gì đã xảy ra trước nó.

Công cụ biểu thức sử dụng jexpr, trình đánh giá biểu thức JavaScript nhẹ. Nó hỗ trợ các toán tử chuẩn (số học, so sánh, logic), ký hiệu chấm cho đối tượng lồng nhau, chỉ mục mảng và nối chuỗi.

Hai chế độ đánh giá

Chế độ biểu thức thuần: Khi toàn bộ giá trị là một biểu thức duy nhất như {{trigger.record_table_workflow.data.total}}, kết quả giữ nguyên kiểu gốc (số, boolean, đối tượng, mảng). Điều này quan trọng khi truyền dữ liệu có cấu trúc giữa các bước.

Chế độ chuỗi mẫu: Khi biểu thức được trộn với văn bản như "Hóa đơn {{trigger.gmail_receive_email.subject}} nhận từ {{trigger.gmail_receive_email.from}}", kết quả luôn là chuỗi. Sử dụng chế độ này để xây dựng tin nhắn, mô tả và nhãn.

Ngữ cảnh có sẵn

Đường dẫn ngữ cảnhCó sẵn khiMô tả
{{trigger.{namespace}.*}}Luôn luônDữ liệu từ sự kiện kích hoạt. Namespace khớp với loại kích hoạt (ví dụ: trigger.record_table_workflow, trigger.gmail_receive_email, trigger.button_pressed).
{{trigger.{namespace}.display.*}}Luôn luônGiá trị hiển thị dễ đọc cho dữ liệu kích hoạt. Khóa tùy chọn trở thành tên tùy chọn, ID thành viên trở thành tên thành viên, ID bản ghi trở thành văn bản hiển thị.
{{{step_id}.output.*}}Sau khi bước hoàn thànhĐầu ra của bước trước đó, tham chiếu bằng ID bước.
{{item}}Bên trong foreachPhần tử hiện tại trong mảng đang được lặp.
{{index}}Bên trong foreachChỉ mục bắt đầu từ 0 của phần tử hiện tại.

Ví dụ biểu thức

Biểu thứcKết quả
{{trigger.record_table_workflow.data.status}}Giá trị trường trạng thái trên bản ghi vừa kích hoạt table workflow
{{trigger.gmail_receive_email.from}}Địa chỉ email người gửi
{{trigger.gmail_receive_email.attachments[0]}}Tệp đính kèm email đầu tiên
{{extract_step.output.invoice_number}}Số hóa đơn được trích xuất bởi bước trích xuất AI trước đó
{{trigger.button_pressed.display.status}}Tên trạng thái dễ đọc (ví dụ: "Active" thay vì "active")
{{trigger.record_table_workflow.changes}}Đối tượng chỉ chứa các trường đã thay đổi
{{trigger.form_submitted.data.customer_name}}Trường cụ thể từ biểu mẫu đã gửi
{{item.amount * item.quantity}}Giá trị tính toán bên trong vòng lặp

Giới hạn

Công cụ biểu thức cố tình giữ phạm vi nhỏ để đảm bảo độ tin cậy:

  • Không hỗ trợ optional chaining (?.) -- sử dụng kiểm tra rõ ràng hoặc bước if cho xử lý null
  • Không hỗ trợ nullish coalescing (??) -- sử dụng bước if hoặc toán tử ba ngôi thay thế
  • Không hỗ trợ template literals (chuỗi backtick với ${}) -- sử dụng chế độ chuỗi mẫu với {{ }} thay thế

Ví dụ: xác nhận booking freight forwarder

Một công ty freight forwarding nhận xác nhận booking từ hãng tàu qua email. Trước Lotics, điều phối viên phải đọc từng email thủ công, tìm số booking, kiểm tra tên tàu và ETA, mở bảng theo dõi, cập nhật bản ghi và chuyển tiếp thông tin cho khách hàng. Quy trình này mất 10-15 phút mỗi booking và dễ sai sót.

Với quy trình Lotics, toàn bộ quá trình được tự động hóa:

Kích hoạt: receive_gmail_email kích hoạt khi email xác nhận booking đến hộp thư vận hành.

Bước 1 -- Trích xuất AI: Sử dụng AI để trích xuất dữ liệu có cấu trúc từ nội dung email: số booking, tên tàu, số container, ETA, cảng xếp hàng và cảng dỡ hàng. AI xử lý các định dạng email khác nhau từ các hãng tàu khác nhau.

Bước 2 -- Tìm bản ghi khớp: Truy vấn bảng Lô hàng để tìm bản ghi khớp với số booking đã trích xuất sử dụng {{extract_step.output.booking_number}}.

Bước 3 -- Cập nhật bản ghi: Cập nhật bản ghi lô hàng khớp với tên tàu, số container và ETA đã trích xuất. Sử dụng biểu thức để ánh xạ mỗi trường trích xuất với trường bản ghi tương ứng.

Bước 4 -- Kiểm tra thay đổi ETA (if): So sánh ETA mới ({{extract_step.output.eta}}) với ETA đã ghi nhận trước đó ({{find_step.output.data.eta}}). Nếu khác nhau, quy trình phân nhánh đến bước thông báo.

Bước 5 -- Thông báo đội (có điều kiện): Nếu ETA thay đổi, gửi thông báo cho đội vận hành với ETA cũ và mới, số booking và tên tàu. Đội biết ngay về thay đổi lịch trình mà không cần theo dõi email thủ công.

Bước 6 -- Tạo PDF: Tạo chứng từ xác nhận booking PDF từ mẫu công ty, điền dữ liệu đã trích xuất và các trường bản ghi đã cập nhật.

Bước 7 -- Gửi email khách hàng: Gửi PDF đã tạo đến địa chỉ email khách hàng (lấy từ bản ghi khách hàng liên kết), cùng với tóm tắt chi tiết booking.

Toàn bộ quá trình chạy trong chưa đầy 30 giây mà không cần can thiệp thủ công. Thời gian của điều phối viên được giải phóng cho xử lý ngoại lệ và quản lý quan hệ khách hàng.

Ví dụ: xử lý và đối chiếu hóa đơn

Một công ty logistics nhận hàng trăm hóa đơn nhà cung cấp hàng tháng qua email. Mỗi hóa đơn cần được ghi nhận, đối chiếu với đơn đặt hàng tương ứng và chuyển đến đội tài chính để thanh toán. Xử lý thủ công tốn đội kế toán phải trả 3-4 ngày mỗi tháng.

Kích hoạt: receive_gmail_email kích hoạt khi email hóa đơn đến.

Bước 1 -- Trích xuất AI: Sử dụng AI để trích xuất dữ liệu có cấu trúc từ tệp đính kèm email: tên nhà cung cấp, số hóa đơn, ngày hóa đơn, các mục chi tiết (mỗi mục có mô tả, số lượng, đơn giá và thành tiền), tổng tiền và đơn vị tiền tệ.

Bước 2 -- Xác nhận dữ liệu hóa đơn (validate): Kiểm tra các trường bắt buộc có mặt: tên nhà cung cấp không rỗng, số hóa đơn theo đúng định dạng, tổng tiền dương và có ít nhất một mục chi tiết. Tất cả lỗi được báo cáo trong một lần.

Bước 3 -- Tạo bản ghi mục chi tiết (vòng lặp): Lặp qua {{extract_step.output.line_items}}. Với mỗi mục, một lời gọi lồng bên trong tạo bản ghi trong bảng Chi tiết hóa đơn với mô tả, số lượng, đơn giá và thành tiền. Sử dụng {{item.description}}, {{item.quantity}}, và {{item.amount}} để ánh xạ dữ liệu trích xuất với trường bản ghi.

Bước 4 -- Tìm PO khớp: Truy vấn bảng Đơn đặt hàng để tìm PO khớp theo tên nhà cung cấp và số PO từ dữ liệu trích xuất.

Bước 5 -- So sánh tổng tiền (if): So sánh tổng hóa đơn với số tiền PO. Nếu chênh lệch vượt 2%, quy trình phân nhánh đến đường dẫn sai lệch.

Bước 6a -- Đánh dấu sai lệch (nếu chênh lệch > 2%): Tạo cờ sai lệch trên bản ghi hóa đơn với số tiền PO dự kiến, số tiền hóa đơn thực tế và phần trăm chênh lệch. Gửi thông báo cho quản lý tài chính với liên kết đến bản ghi hóa đơn và PO để xem xét thủ công.

Bước 6b -- Tự động xác minh (nếu số tiền khớp): Đặt trạng thái hóa đơn thành "Đã xác minh" tự động. Hóa đơn chuyển thẳng vào hàng đợi thanh toán mà không cần can thiệp thủ công.

Đội tài chính giờ xử lý cùng khối lượng hóa đơn trong nửa ngày. Sai lệch được phát hiện ngay thay vì bị phát hiện trong đối chiếu cuối tháng.

Thực thi và xử lý lỗi

Khi quy trình chạy, công cụ tạo bản ghi thực thi theo dõi trạng thái của mỗi bước. Bạn có thể xem toàn bộ lịch sử thực thi cho bất kỳ quy trình nào: bước nào đã chạy, dữ liệu nào chúng nhận, chúng trả về gì và mỗi bước mất bao lâu.

Nếu một bước thất bại, quy trình dừng tại bước đó và ghi lại lỗi với đầy đủ ngữ cảnh: câu lệnh nào hỏng, dữ liệu đầu vào đã phân giải (với biểu thức đã được tính) và thông báo lỗi. Lỗi không bao giờ bị nuốt im lặng. Bạn có thể xem thực thi, khắc phục sự cố (sửa biểu thức, cập nhật cấu hình công cụ, sửa dữ liệu nguồn) và hiểu chính xác điều gì đã sai.

Quy trình đạt đến bước wait hoặc wait_for_event lưu toàn bộ ngữ cảnh và tiếp tục từ nơi dừng khi điều kiện được đáp ứng. Trạng thái thực thi được lưu trữ, nên ngay cả khi máy chủ khởi động lại, quy trình vẫn tiếp tục chính xác.

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

Tôi có thể tạo bao nhiêu quy trình?

Không có giới hạn cứng về số lượng quy trình. Bạn có thể tạo bao nhiêu tùy nhu cầu vận hành. Mỗi quy trình chạy độc lập, và công cụ xử lý các thực thi đồng thời trên tất cả quy trình đang hoạt động.

Điều gì xảy ra khi một bước quy trình thất bại?

Quy trình dừng tại bước thất bại và ghi lại lỗi với đầy đủ ngữ cảnh: câu lệnh nào hỏng, dữ liệu đầu vào và thông báo lỗi. Bạn có thể xem lịch sử thực thi, xác định vấn đề và hiểu chính xác điều gì đã sai. Lỗi không bao giờ bị nuốt im lặng.

Trợ lý AI có thể xây dựng quy trình cho tôi không?

Có. Mô tả quy trình bạn muốn tự động hóa bằng ngôn ngữ tự nhiên, và trợ lý AI sẽ tạo quy trình với kích hoạt, bước và biểu thức phù hợp. Sau đó bạn có thể xem lại và điều chỉnh cấu hình trước khi kích hoạt.

Quy trình có thể gọi quy trình khác không?

Quy trình không trực tiếp gọi quy trình khác. Nếu bạn cần logic chung giữa nhiều quy trình, hãy cấu trúc các bước trong mỗi quy trình một cách độc lập. Điều này giữ mỗi quy trình tự chứa và dễ gỡ lỗi hơn.

Quy trình có chạy thời gian thực không?

Có. Các kích hoạt dựa trên sự kiện (thay đổi bản ghi, email, webhook, nút bấm, biểu mẫu) kích hoạt trong vài giây kể từ khi sự kiện xảy ra. Kích hoạt theo lịch chạy vào thời gian cron đã cấu hình. Mỗi bước thực thi ngay khi bước trước hoàn thành.

Quy trình gọi được những công cụ nào?

Kho công cụ bao gồm trích xuất AI, CRUD bản ghi (tạo, đọc, cập nhật, truy vấn), gửi email, tạo chứng từ (PDF, Excel, Word), yêu cầu HTTP, thông báo Slack và nhiều hơn nữa. Trợ lý AI biết toàn bộ danh mục công cụ và sẽ chọn công cụ phù hợp khi xây dựng quy trình từ mô tả của bạn.

Giá trị hiển thị hoạt động như thế nào?

Trước khi quy trình thực thi, công cụ tiền xử lý giá trị trường thô thành giá trị hiển thị dễ đọc. Khóa tùy chọn trường chọn trở thành tên tùy chọn ("active" trở thành "Active"). ID thành viên trở thành tên thành viên. ID bản ghi trở thành văn bản hiển thị. Các giá trị hiển thị này có sẵn tại {{trigger.{namespace}.display.*}} để các bước quy trình có thể sử dụng văn bản dễ đọc trong thông báo, chứng từ và tin nhắn mà không cần bước tra cứu thêm.

Quy trình có thể xử lý file và tệp đính kèm không?

Có. Kích hoạt email cung cấp tệp đính kèm như một phần ngữ cảnh. Một lời gọi công cụ có thể truyền tệp đính kèm đến công cụ trích xuất AI, đính kèm file vào bản ghi, tạo chứng từ và gửi email có tệp đính kèm. Dữ liệu file chảy qua công cụ biểu thức giống như bất kỳ dữ liệu nào khác.

Điều gì xảy ra trong bước wait?

Công cụ quy trình lưu toàn bộ trạng thái thực thi (tất cả kết quả bước, ngữ cảnh kích hoạt, vị trí hiện tại) và lên lịch tiếp tục. Khi thời gian chờ hết hoặc sự kiện dự kiến xảy ra, công cụ tiếp tục thực thi từ chính xác nơi dừng. Trạng thái được lưu vào cơ sở dữ liệu, nên nó tồn tại qua khởi động lại máy chủ.

Làm thế nào để gỡ lỗi quy trình không hoạt động?

Mở lịch sử thực thi của quy trình để xem mỗi lần chạy. Với mỗi thực thi, bạn có thể kiểm tra mọi bước: đầu vào đã phân giải (với biểu thức đã được đánh giá thành giá trị thực), đầu ra, thời lượng và bất kỳ lỗi nào. Điều này cho phép bạn truy vết chính xác nơi dữ liệu chảy và nơi nó bị lỗi.