Giải thích chi tiết về node Chatbot (Detailed explanation of the Chatbot node)
Last updated
Last updated
Node bắt đầu được sử dụng để bắt đầu một flow, người dùng có thể đặt điều kiện cho nó.
1.2. Thuộc tính
AntCRM Account: Tài khoản cho phép quản lý AntCRM
Flow name: Đặt tên hiển thị cho node bắt đầu
Page: Nền tảng được chọn để sử dụng node bắt đầu
Các loại điều kiện
Chứa từ khóa: Chỉ tin nhắn cần chứa từ khóa
Điều kiện: “..ab..” -> Chấp nhận tất cả tin nhắn có chứa ký tự ab
Chứa tất cả
Điều kiện: “ab” -> Chấp nhận tin nhắn có nội dung ab
Tin nhắn là một lệnh
Điều kiện: “/command” -> Chấp nhận tin nhắn bắt đầu bằng “/…”
Tin nhắn là một lệnh và một từ bắt đầu
Điều kiện: “/start” -> Chấp nhận tin nhắn bắt đầu bằng lệnh /start
Sau khi thiết lập các quy tắc:
Giới thiệu
Được sử dụng để kết thúc phiên flow
Thuộc tính
Chọn tài khoản AntCRM sẽ sử dụng
Giới thiệu
Chuyển hướng công việc của flow hiện tại sang flow mới
Thuộc tính
Tên flow cần chuyển hướng đến: Chọn node bắt đầu của flow muốn chuyển hướng đến (bắt đầu một flow khác)
(
Introduction
Redirect the current flow's work to a new flow.
(Attributes
Name of the flow to redirect to: Select the starting node of the flow you want to redirect to (start a different flow))
Giới thiệu
Thiết lập tin nhắn gửi từ bot tới người dùng
Thuộc tính
Node name: Tên hiển thị của đầu ra thông báo trên flow
Content: Nội dung tin nhắn đã gửi
Add version: Thêm phiên bản khác của nội dung tin nhắn đã gửi. Chúng ta có thể gửi nhiều tin nhắn văn bản:
node này chịu trách nhiệm tự động phản hồi các bình luận từ người dùng. Điều này giúp bot tương tác và phản hồi nhanh chóng với người dùng trên các nền tảng mạng xã hội như Facebook, Instagram hay Twitter.
Các node này hoạt động tương tự (đối với Facebook và Whatsapp).
node này tự động gửi hình ảnh, âm thanh, video và tài liệu tới người dùng. Điều này giúp bot trình bày thông tin một cách trực quan và hấp dẫn hơn.
(These nodes function similarly (for Facebook and WhatsApp). This node automatically sends images, audio, videos, and documents to users. This helps the bot present information in a more visual and engaging way.)
node này cung cấp các node tương tác cho người dùng, giúp họ dễ dàng tương tác và lựa chọn các tùy chọn khác nhau (chỉ áp dụng cho Facebook và Whatsapp).
(This node provides interactive nodes for users, allowing them to easily interact and choose from different options (only applicable to Facebook and WhatsApp))
node này cung cấp phản hồi nhanh chóng cho người dùng, giúp họ phản hồi nhanh chóng mà không cần phải gõ lại.
(This node provides quick replies for users, helping them respond quickly without having to type again.)
node này tự động gửi các mẫu cố định, giúp cung cấp thông tin cụ thể hoặc tự động thực hiện một số hành động nhất định.
(This node automatically sends predefined templates, helping to provide specific information or automatically perform certain actions.)
node này thực hiện các hành động cụ thể như chuyển hướng đến đối tượng tác nhân khi cần thiết.
(This node performs specific actions, such as redirecting to an agent when necessary.)
Giới thiệu
Cho phép tạo menu các node chọn, node chọn gồm 2 loại: mở link url hoặc điều hướng đến node khác
Thuộc tính
Template type: chọn Menulist để bắt đầu
Add button: node thêm tùy chọn
Choose button type: Chọn kiểu cho node, nếu chọn url thì thêm link web để mở website cần điều hướng đến
Nếu chọn post back thì chỉ cần thêm tên hiển thị của node
( Introduction
Allows the creation of a menu of selectable nodes. The selectable nodes consist of two types: open a URL link or navigate to another node.
Attributes
Template type: Select Menu list to start.
Add button: Add an option to the node.
Choose button type: Choose the type for the node. If selecting URL, add the web link to open the website you want to redirect to.
If selecting post back, only add the display name of the node.)
Khi chọn một node sẽ đi tới một node tương ứng với node đó
(When selecting a node, it will navigate to a node corresponding to that node.)
Giới thiệu
Hiển thị các thuộc tính thông báo đã chọn trong tab thanh bên gỡ lỗi và tùy chọn nhật ký thời gian chạy. Theo mặc định, node hiển thị msg.payload, nhưng có thể được cấu hình để hiển thị bất kỳ thuộc tính nào, như tin nhắn đầy đủ hoặc kết quả của biểu thức JSONata.
Thanh debug cung cấp chế độ xem có cấu trúc của các tin nhắn được gửi, giúp hiểu cấu trúc của chúng dễ dàng hơn.
Các đối tượng và mảng JavaScript có thể được thu gọn và mở rộng theo yêu cầu. Các đối tượng bộ đệm có thể được hiển thị dưới dạng dữ liệu thô hoặc dưới dạng chuỗi nếu có thể.
Bên cạnh mỗi tin nhắn, thanh debug bao gồm thông tin về thời gian nhận được tin nhắn, node gửi tin nhắn và loại tin nhắn. Nhấp vào id node nguồn sẽ hiển thị node đó trong không gian làm việc.
node có thể được sử dụng để bật hoặc tắt đầu ra. Nên tắt hoặc xóa bất kỳ node Debug nào không được sử dụng.
node này cũng có thể được cấu hình để gửi tất cả tin nhắn đến nhật ký thời gian chạy hoặc gửi tin nhắn ngắn (32 ký tự) đến văn bản trạng thái trong node debug.
Thuộc tính
Output: Chọn nội dung đầu ra của node gỡ lỗi
To: Chọn vùng hiển thị nội dung đầu ra
Name: Đặt tên hiển thị cho node debug
Giới thiệu
Một hàm JavaScript để chạy dựa trên các tin nhắn được node nhận.
Các tin nhắn được truyền vào dưới dạng một đối tượng JavaScript có tên là msg. Theo quy ước, nó sẽ có thuộc tính msg.payload chứa nội dung thư.
Hàm dự kiến sẽ trả về một đối tượng thông báo (hoặc nhiều đối tượng thông báo), nhưng có thể chọn không trả về gì để tạm dừng một flow.
Tab On Start chứa mã sẽ được chạy bất cứ khi nào node được khởi động. Tab On Stop chứa mã sẽ được chạy khi node dừng. Nếu mã On Start trả về một đối tượng Promise, node sẽ không bắt đầu xử lý các thông báo cho đến khi lời hứa được giải quyết.
Gửi tin nhắn
Hàm có thể hoàn tác các tin nhắn mà nó muốn chuyển đến các node tiếp theo trong flow hoặc có thể gọi node.send(message).
Có thể hoàn tác/gửi:
một đối tượng tin nhắn - được chuyển đến các node được kết nối với đầu ra đầu tiên
một mảng các đối tượng thông báo - được chuyển đến các node được kết nối với đầu ra tương ứng
Note: Lưu ý: Mã thiết lập được thực thi trong quá trình khởi tạo các node. Do đó, nếu node.send được gọi trong tab thiết lập, các node tiếp theo có thể không nhận được tin nhắn.
Nếu bất kỳ phần tử nào của mảng là một mảng thông báo thì nhiều thông báo sẽ được gửi đến đầu ra tương ứng.
Nếu null được trả về, dù là chính nó hay là một phần tử của mảng, thì không có thông báo nào được truyền đi.
Ghi nhật ký và xử lý lỗi: Để ghi nhật ký bất kỳ thông tin nào hoặc báo cáo lỗi, có sẵn các chức năng sau:
node.log("Log message")
node.warn("Warning")
node.error("Error")
node Catch cũng có thể được sử dụng để xử lý lỗi. Để gọi node Catch, hãy chuyển thông điệp làm đối số thứ hai cho node.error:
node.error("Error",msg);
Truy cập thông tin node
Các thuộc tính sau có sẵn để truy cập thông tin về node:
node.id - id của node
node.name - tên của node
node.outputCount - số flow đầu ra của node
Sử dụng biến môi trường
Các biến môi trường có thể được truy cập bằng env.get("MY_ENV_VAR").
Giới thiệu
Chức năng node được sử dụng để hỗ trợ xử lý tin nhắn. Sau khi xử lý, tin nhắn sẽ được trả về
Thuộc tính
Name: Đặt tên hiển thị cho chức năng node
On message: Lập trình các phương thức và thuật toán bạn muốn xử lý và trả về tin nhắn
Giới thiệu
Đặt, thay đổi, xóa hoặc di chuyển các thuộc tính của tin nhắn, bối cảnh flow hoặc bối cảnh chung.
node có thể chỉ định nhiều quy tắc sẽ được áp dụng theo thứ tự chúng được xác định.
Thuộc tính
Các hoạt động có sẵn là:
Set: đặt thuộc tính. Giá trị có thể có nhiều loại khác nhau hoặc có thể được lấy từ thông báo hoặc thuộc tính ngữ cảnh hiện có.
Change: tìm kiếm và thay thế các phần của thuộc tính. Nếu biểu thức chính quy được bật thì thuộc tính "thay thế bằng" có thể bao gồm các nhóm chụp, ví dụ: $1. Thay thế sẽ chỉ thay đổi loại nếu có kết quả khớp hoàn toàn.
Delete: xóa một thuộc tính.
Move: di chuyển hoặc đổi tên một thuộc tính.
Loại "biểu thức" sử dụng ngôn ngữ biểu thức và truy vấn JSONata.
Giới thiệu
Sử dụng để thực hiện các phép biến đổi trên các biến msg, flow và global Thuộc tính Biến
Msg: biến chỉ được triển khai trong một flow nhỏ
Flow: biến có thể được sử dụng ở bất cứ đâu trong flow
Global: biến có thể được sử dụng ở mọi nơi Transformation magic
Set: Đặt nội dung cho biến
Change: Thay đổi nội dung của biến
Delete: Xóa nội dung của biến
Move: di chuyển nội dung của biến này sang biến khác
Http in
Giới thiệu
Tạo điểm cuối HTTP để tạo dịch vụ web.
Thuộc tính
Outputs
payload
Đối với yêu cầu GET, chứa đối tượng của bất kỳ tham số chuỗi truy vấn nào. Ngược lại, chứa nội dung của yêu cầu HTTP.
req: object
Một đối tượng yêu cầu HTTP. Đối tượng này chứa nhiều thuộc tính cung cấp thông tin về yêu cầu.
body - nội dung của yêu cầu sắp xảy đến. Các định dạng sẽ phụ thuộc vào yêu cầu.
headers - một đối tượng chứa tiêu đề yêu cầu HTTP.
query - một đối tượng chứa bất kỳ tham số chuỗi truy vấn nào.
params - một đối tượng chứa bất kỳ tham số tuyến đường nào.
cookies - một đối tượng chứa cookie cho yêu cầu.
files - nếu được bật trong node, một đối tượng chứa bất kỳ tệp nào được tải lên như một phần của yêu cầu POST.
res: object
Một đối tượng HTTP response. Thuộc tính này không nên được sử dụng trực tiếp; node HTTP response ghi lại cách phản hồi yêu cầu. Thuộc tính này phải được gắn liền với thông báo được chuyển đến node phản hồi.
node sẽ lắng nghe trên đường dẫn đã định cấu hình các yêu cầu thuộc một loại cụ thể. Đường dẫn có thể được chỉ định đầy đủ, chẳng hạn như /user hoặc bao gồm các tham số được đặt tên chấp nhận bất kỳ giá trị nào, chẳng hạn như /user/:name. Khi sử dụng các tham số được đặt tên, giá trị thực của chúng trong một yêu cầu có thể được truy cập trong msg.req.params.
Đối với các yêu cầu bao gồm nội dung, chẳng hạn như POST hoặc PUT, nội dung của yêu cầu được cung cấp dưới dạng msg.payload.
Nếu loại nội dung của yêu cầu có thể được xác định, phần nội dung sẽ được phân tích cú pháp thành bất kỳ loại thích hợp nào. Ví dụ: application/json sẽ được phân tích cú pháp thành biểu diễn đối tượng JavaScript của nó.
Lưu ý: node này không gửi bất kỳ phản hồi nào cho yêu cầu. flow phải bao gồm node HTTP response để hoàn thành yêu cầu.
Giới thiệu
Gửi phản hồi trở lại các yêu cầu nhận được từ node HTTP Input.
Thuộc tính
Inputs
payload: string
Phần thân của phản hồi.
statusCode: number
Nếu được đặt, mã này sẽ được sử dụng làm mã trạng thái phản hồi. Mặc định: 200.
headers: object
Nếu được đặt, hãy cung cấp HTTP header để đưa vào phản hồi.
cookies: object
Nếu được đặt, có thể được sử dụng để đặt hoặc xóa cookie.
Mã trạng thái và tiêu đề cũng có thể được đặt trong chính node đó. Nếu một thuộc tính được đặt trong node, nó không thể bị ghi đè bởi thuộc tính thông báo tương ứng.
Xử lý cookie
Thuộc tính cookie phải là đối tượng của cặp tên/giá trị. Giá trị có thể là một chuỗi để đặt giá trị của cookie với các tùy chọn mặc định hoặc có thể là đối tượng của các tùy chọn.
Ví dụ sau đặt hai cookie - một cookie được gọi là tên có giá trị nick, cookie còn lại được gọi là phiên có giá trị là 1234 và thời gian hết hạn được đặt thành 15 phút.
msg.cookies = {
name: 'nick',
session: {
value: '1234',
maxAge: 900000
}
}
Các tùy chọn hợp lệ bao gồm:
domain - (String) tên miền cho cookie
expires - (Date) ngày hết hạn theo GMT. Nếu không được chỉ định hoặc được đặt thành 0, hãy tạo cookie phiên
maxAge - (String) ngày hết hạn so với thời gian hiện tại tính bằng mili giây
path - (String) Đường dẫn cho cookie. Mặc định là /
value - (String) giá trị sử dụng cho cookie
Để xóa cookie, đặt giá trị của nó thành null.
Giới thiệu
Gửi yêu cầu HTTP và trả về phản hồi.
Thuộc tính
Inputs
url
string
Nếu không được định cấu hình trong node, thuộc tính tùy chọn này sẽ đặt url của yêu cầu.
method
string
Nếu không được định cấu hình trong node, thuộc tính tùy chọn này sẽ đặt phương thức HTTP của yêu cầu. Phải là một trong các cấu hình GET, PUT, POST, PATCH hoặc DELETE.
headers
object
Đặt tiêu đề HTTP theo yêu cầu. LƯU Ý: Mọi tiêu đề được đặt trong cấu hình node sẽ ghi đè mọi tiêu đề phù hợp trong msg.headers
cookies
object
Nếu được đặt, có thể được sử dụng để gửi cookie theo yêu cầu.
payload
Được gửi dưới dạng nội dung của yêu cầu.
rejectUnauthorized
Nếu được đặt thành false, sẽ cho phép gửi yêu cầu tới các trang web https sử dụng chứng chỉ tự ký.
followRedirects
Nếu được đặt thành false, ngăn chặn việc chuyển hướng (HTTP 301).true theo mặc định
requestTimeout
Nếu được đặt thành số mili giây dương, sẽ ghi đè tham số httpRequestTimeout được đặt chung.
payload: string | object | buffer
Phần thân của phản hồi. node có thể được cấu hình để trả về phần thân dưới dạng chuỗi, cố gắng phân tích cú pháp dưới dạng chuỗi JSON hoặc để nó dưới dạng bộ đệm nhị phân.
statusCode: number
Mã trạng thái của phản hồi hoặc mã lỗi nếu không thể hoàn thành yêu cầu.
headers: object
Đối tượng chứa các tiêu đề phản hồi.
responseUrl:string
Trong trường hợp xảy ra bất kỳ chuyển hướng nào trong khi xử lý yêu cầu, thuộc tính này là url được chuyển hướng cuối cùng. Ngược lại, url của yêu cầu ban đầu.
responseCookies: object
Nếu phản hồi bao gồm cookie thì thuộc tính này là đối tượng của các cặp tên/giá trị cho mỗi cookie.
redirectList: array
Nếu yêu cầu được chuyển hướng một hoặc nhiều lần, thông tin tích lũy sẽ được thêm vào thuộc tính này. `location` là đích chuyển hướng tiếp theo. `cookie` là cookie được trả về từ nguồn chuyển hướng.
Khi được định cấu hình trong node, thuộc tính URL có thể chứa các thẻ theo dạng mustache-style Những thứ này cho phép xây dựng url bằng cách sử dụng các giá trị của tin nhắn gửi đến. Ví dụ: nếu url được đặt thành example.com/{{{topic}}}, nó sẽ tự động chèn giá trị msg.topic. Việc sử dụng {{{...}}} sẽ ngăn mustache thoát khỏi các ký tự như / & v.v.
node có thể tùy ý mã hóa msg.payload dưới dạng tham số chuỗi truy vấn cho yêu cầu GET, trong trường hợp đó msg.payload phải là một đối tượng.
Sử dụng nhiều node HTTP Request
Để sử dụng nhiều hơn một trong các node này trong cùng một flow, phải cẩn thận với thuộc tính msg.headers. node đầu tiên sẽ đặt thuộc tính này với các tiêu đề phản hồi. Sau đó, node tiếp theo sẽ sử dụng các tiêu đề đó cho yêu cầu của nó - đây thường không phải là điều nên làm. Nếu thuộc tính msg.headers không thay đổi giữa các node, nó sẽ bị node thứ hai bỏ qua. Để đặt tiêu đề tùy chỉnh, trước tiên phải xóa msg.headers hoặc đặt lại thành đối tượng trống: {}.
Xử lý cookie
Thuộc tính cookie được truyền tới node phải là đối tượng của các cặp tên/giá trị. Giá trị có thể là một chuỗi để đặt giá trị của cookie hoặc có thể là một đối tượng có một thuộc tính giá trị duy nhất.
Bất kỳ cookie nào được yêu cầu trả về sẽ được chuyển trở lại theo thuộc tính replyCookies.
Xử lý loại nội dung
Nếu msg.payload là một đối tượng, node sẽ tự động đặt loại nội dung của yêu cầu thành application/json và mã hóa nội dung như vậy.
Để mã hóa yêu cầu dưới dạng dữ liệu biểu mẫu, msg.headers["content-type"] phải được đặt thành application/x-www-form-urlencoded.
File tải lên
Để thực hiện tải tệp lên, msg.headers["content-type"] phải được đặt thành multipart/form-data và msg.payload được truyền tới node phải là một đối tượng có cấu trúc sau:
{
"KEY": {
"value": FILE_CONTENTS,
"options": {
"filename": "FILENAME"
}
}
}
Các giá trị của KEY, FILE_CONTENTS và FILENAME phải được đặt thành các giá trị thích hợp.
Định tuyến các tin nhắn dựa trên giá trị thuộc tính hoặc vị trí trình tự của chúng.
Khi có tin nhắn đến, node sẽ đánh giá từng quy tắc đã xác định và chuyển tiếp tin nhắn đến đầu ra tương ứng của bất kỳ quy tắc phù hợp nào.
Theo tùy chọn, node có thể được đặt để dừng đánh giá các quy tắc sau khi tìm thấy quy tắc phù hợp.
Các quy tắc có thể được đánh giá dựa trên thuộc tính tin nhắn riêng lẻ, thuộc tính flow hoặc ngữ cảnh chung, biến môi trường hoặc kết quả của biểu thức JSONata.
Quy tắc: Có bốn loại quy tắc:
Quy tắc giá trị được đánh giá dựa trên thuộc tính được định cấu hình
Quy tắc trình tự có thể được sử dụng trên các chuỗi thông báo, chẳng hạn như các quy tắc được tạo bởi node phân chia
Có thể cung cấp Biểu thức JSONata để đánh giá toàn bộ thông báo và sẽ khớp nếu biểu thức trả về giá trị thực.
Quy tắc ngược lại có thể được sử dụng để khớp nếu không có quy tắc nào trước đó khớp.
Notes
Các rules true/false và null thực hiện so sánh nghiêm ngặt các loại quy tắc. Nó không chuyển đổi giữa các loại.
Các quy tắc trống và không trống có thể được sử dụng để kiểm tra độ dài của Strings, Arrays và Buffers hoặc số flow thuộc tính mà đối tượng có. Cả hai quy tắc sẽ không vượt qua nếu thuộc tính đang được kiểm tra có giá trị boolean, null hoặc không xác định.
Xử lý chuỗi tin nhắn
Theo mặc định, node không sửa đổi thuộc tính msg.parts của các tin nhắn là một phần của chuỗi.
Tùy chọn tạo lại chuỗi thông báo có thể được bật để tạo chuỗi thông báo mới cho từng quy tắc phù hợp. Trong chế độ này, node sẽ đệm toàn bộ chuỗi đến trước khi gửi chuỗi mới. Cài đặt thời gian chạy nodeMessageBufferMaxLength có thể được sử dụng để giới hạn số flow node thông báo sẽ lưu vào bộ đệm.
Introduction
node được sử dụng để kiểm tra các điều kiện.
Định tuyến các tin nhắn dựa trên giá trị thuộc tính hoặc vị trí trình tự của chúng.
Khi có tin nhắn đến, node sẽ đánh giá từng quy tắc đã xác định và chuyển tiếp thông báo đến đầu ra tương ứng của bất kỳ quy tắc phù hợp nào.
Theo tùy chọn, node có thể được đặt để dừng đánh giá các quy tắc sau khi tìm thấy quy tắc phù hợp.
Thuộc tính
Biến: biến để áp dụng quy tắc
Msg: biến chỉ được triển khai trong một flow nhỏ
Flow: biến có thể được sử dụng ở bất cứ đâu trong flow
Global: biến có thể được sử dụng ở mọi nơi
- Quy tắc biến được đánh giá dựa trên thuộc tính được định cấu hình
Biến so sánh: biến dùng để so sánh với biến, biến có thể chọn loại
Add the conditions
Option
Kiểm tra tất cả các quy tắc: kiểm tra tất cả các điều kiện sau đó điều hướng
Dừng sau lần match đầu tiên: Dừng kiểm tra khi đáp ứng điều kiện đúng đầu tiên
Giới thiệu
Ánh xạ một giá trị số tới một phạm vi khác.
Thuộc tính
Input
payload: number
Payload phải là một số. Bất cứ điều gì khác sẽ cố gắng được phân tích thành một số và bị từ chối nếu thất bại.
Outputs
payload: number
Giá trị được ánh xạ tới phạm vi mới.
node này sẽ chia tỷ lệ tuyến tính giá trị nhận được. Theo mặc định, kết quả không bị giới hạn trong phạm vi được xác định trong node.
Chia tỷ lệ và giới hạn phạm vi mục tiêu có nghĩa là kết quả sẽ không bao giờ nằm ngoài phạm vi được chỉ định trong phạm vi mục tiêu.
Chia tỷ lệ và bao bọc trong phạm vi mục tiêu có nghĩa là kết quả sẽ được bao bọc trong phạm vi mục tiêu.
Chia tỷ lệ, nhưng giảm nếu nằm ngoài phạm vi đầu vào có nghĩa là kết quả sẽ được chia tỷ lệ, nhưng mọi Đầu vào nằm ngoài phạm vi Inputs sẽ bị loại bỏ.
Ví dụ: đầu vào 0 - 10 được ánh xạ tới 0 - 100.
mode
input
output
scale
12
120
limit
12
100
wrap
12
20
drop
12
(no output)
Giới thiệu
Trì hoãn mỗi tin nhắn đi qua node hoặc giới hạn tốc độ chúng có thể truyền qua.
Thuộc tính
Inputs
delay
Number
Đặt độ trễ, tính bằng mili giây, được áp dụng cho tin nhắn. Tùy chọn này chỉ áp dụng nếu node được cấu hình để cho phép thông báo ghi đè khoảng thời gian trễ mặc định đã được cấu hình.
rate
number
Đặt giá trị tốc độ tính bằng mili giây giữa các tin nhắn. node này ghi đè giá trị tốc độ hiện có được xác định trong cấu hình node khi nó nhận được thông báo chứa giá trị msg.rate tính bằng mili giây. Tùy chọn này chỉ áp dụng nếu node được cấu hình để cho phép thông báo ghi đè khoảng tốc độ mặc định đã được cấu hình.
reset
Nếu tin nhắn nhận được có thuộc tính này được đặt thành bất kỳ giá trị nào thì tất cả các tin nhắn chưa được xử lý bởi node sẽ bị xóa mà không được gửi đi.
flush
Nếu tin nhắn nhận được có thuộc tính này được đặt thành giá trị số thì nhiều tin nhắn đó sẽ được gửi đi ngay lập tức. Nếu được đặt thành bất kỳ loại nào khác (ví dụ: boolean), thì tất cả các tin nhắn chưa xử lý do node lưu giữ sẽ được gửi ngay lập tức.
to Front
Khi ở chế độ giới hạn tốc độ, nếu tin nhắn nhận được có thuộc tính này được đặt thành boolean true thì tin nhắn sẽ được đẩy lên đầu hàng đợi và sẽ được phát hành tiếp theo. Điều này có thể được sử dụng kết hợp với msg.flush=1 để gửi lại ngay lập tức.
Khi được định cấu hình để trì hoãn tin nhắn, khoảng thời gian trễ có thể là một giá trị cố định, giá trị ngẫu nhiên trong một phạm vi hoặc được đặt động cho từng tin nhắn. Mỗi tin nhắn bị trì hoãn độc lập với bất kỳ tin nhắn nào khác, dựa trên thời gian đến.
Khi được định cấu hình để xếp hạng các tin nhắn giới hạn, việc gửi chúng sẽ được trải đều trong khoảng thời gian đã định cấu hình. Trạng thái hiển thị số flow tin nhắn hiện có trong hàng đợi. Nó có thể tùy ý loại bỏ các tin nhắn trung gian khi chúng đến.
Nếu được đặt để cho phép ghi đè tốc độ, tốc độ mới sẽ được áp dụng ngay lập tức và sẽ có hiệu lực cho đến khi thay đổi lại, node được đặt lại hoặc flow được khởi động lại.
Giới hạn tốc độ có thể được áp dụng cho tất cả các tin nhắn hoặc nhóm chúng theo giá trị msg.topic của chúng. Khi nhóm lại, các tin nhắn trung gian sẽ tự động bị loại bỏ. Tại mỗi khoảng thời gian, node có thể phát hành thông báo gần đây nhất cho tất cả các chủ đề hoặc phát hành thông báo gần đây nhất cho chủ đề tiếp theo.
Lưu ý: Trong chế độ giới hạn tốc độ, độ sâu hàng đợi tối đa có thể được đặt bởi một thuộc tính trong tệp settings.js của bạn. Ví dụ: nodeMessageBufferMaxLength: 1000,
Giới thiệu
Chia tin nhắn thành một chuỗi tin nhắn.
Thuộc tính
payload: object | string | array | buffer
The behavior of the node is determined by the type of msg.payload:
string/buffer - tin nhắn được phân chia bằng ký tự được chỉ định (mặc định: \n), chuỗi bộ đệm hoặc thành các độ dài cố định.
array - thông báo được chia thành các phần tử mảng riêng lẻ hoặc mảng có độ dài cố định.
object - một tin nhắn được gửi cho từng cặp khóa/giá trị của đối tượng.
Outputs
parts: object
Thuộc tính này chứa thông tin về cách tách tin nhắn khỏi tin nhắn gốc. Nếu được chuyển đến node nối, chuỗi có thể được tập hợp lại thành một thông báo. Có các thuộc tính sau:
id - mã định danh cho nhóm tin nhắn
index - vị trí trong nhóm
count - nếu biết, tổng số tin nhắn trong nhóm. Xem 'streaming mode' bên dưới.
type - loại tin nhắn - string/array/object/buffer
ch - đối với một chuỗi hoặc bộ đệm, dữ liệu được sử dụng để phân chia tin nhắn dưới dạng chuỗi hoặc mảng byte
key - đối với một đối tượng, khóa của thuộc tính mà thông báo này được tạo từ đó. node này có thể được cấu hình để sao chép giá trị này sang các thuộc tính tin nhắn khác, chẳng hạn như msg.topic.
len - độ dài của mỗi tin nhắn khi phân tách bằng giá trị độ dài cố định
node này giúp dễ dàng tạo flow thực hiện các hành động chung trên một chuỗi tin nhắn trước đó, sử dụng node nối, kết hợp lại chuỗi thành một tin nhắn duy nhất.
Nó sử dụng thuộc tính msg.parts để theo dõi các phần riêng lẻ của một chuỗi.
Streaming mode
node này cũng có thể được sử dụng để chỉnh lại flow tin nhắn. Ví dụ: một thiết bị nối tiếp gửi các lệnh kết thúc dòng mới có thể gửi một tin nhắn với một phần lệnh ở cuối. Ở 'chế độ phát trực tuyến', node này sẽ chia nhỏ một tin nhắn và gửi từng phân đoạn hoàn chỉnh. Nếu có một phần phân đoạn ở cuối, node sẽ giữ nó và thêm nó vào tin nhắn tiếp theo nhận được.
Khi hoạt động ở chế độ này, node sẽ không đặt thuộc tính msg.parts.count vì nó không biết sẽ có bao nhiêu tin nhắn trong flow. Điều này có nghĩa là nó không thể được sử dụng với node tham gia ở chế độ tự động.
Giới thiệu
Nối các chuỗi tin nhắn thành một tin nhắn duy nhất.
Thuộc tính
Có ba chế độ có sẵn:
Automatic: Khi được ghép nối với node phân tách, nó sẽ tự động nối các thông báo để đảo ngược quá trình phân tách đã được thực hiện.
Manual: Nối các chuỗi tin nhắn theo nhiều cách khác nhau.
reduce sequence: Áp dụng một biểu thức đối với tất cả các thông báo trong một trình tự để giảm nó thành một thông báo duy nhất.
parts
object
Để tự động nối một chuỗi các tin nhắn, tất cả chúng phải được đặt thuộc tính này. node phân chia tạo thuộc tính này nhưng nó có thể được tạo thủ công. Nó có các tính chất sau:
id - mã định danh cho nhóm tin nhắn
index - vị trí trong nhóm
count - tổng số tin nhắn trong nhóm
type - loại tin nhắn - string/array/object/buffer
ch - đối với một chuỗi hoặc bộ đệm, dữ liệu được sử dụng để phân chia tin nhắn dưới dạng chuỗi hoặc mảng byte
key - fđối với một đối tượng, khóa của thuộc tính mà thông báo này được tạo từ đó
len - độ dài của mỗi tin nhắn khi phân tách bằng giá trị độ dài cố định
complete
Nếu được đặt, node sẽ nối thêm payload và sau đó gửi tin nhắn đầu ra ở trạng thái hiện tại. Nếu không muốn thêm payload, hãy xóa nó khỏi msg.
reset
Nếu được đặt, node sẽ xóa mọi tin nhắn đã hoàn thành một phần và không gửi nó.
restartTimeout
Nếu được đặt và node có cấu hình thời gian chờ, thời gian chờ đó sẽ được khởi động lại.
Automatic mode
Chế độ tự động sử dụng thuộc tính của các tin nhắn đến để xác định cách nối chuỗi. Điều này cho phép nó tự động đảo ngược hoạt động của một node phân tách.
Manual mode
Khi được định cấu hình để tham gia ở chế độ thủ công, node có thể nối các chuỗi thông báo thành một số kết quả khác nhau:
a string or buffer - được tạo bằng cách nối thuộc tính đã chọn của mỗi thông báo với các ký tự nối hoặc bộ đệm được chỉ định.
an array - được tạo bằng cách thêm từng thuộc tính đã chọn hoặc toàn bộ thông báo vào mảng đầu ra.
a key/value object - được tạo bằng cách sử dụng thuộc tính của mỗi thông báo để xác định khóa lưu trữ giá trị bắt buộc.
a merged object - được tạo bằng cách hợp nhất thuộc tính của từng thông báo vào một đối tượng duy nhất.
Các thuộc tính khác của tin nhắn đầu ra được lấy từ tin nhắn cuối cùng nhận được trước khi kết quả được gửi.
Có thể đặt số flow tin nhắn sẽ nhận được trước khi tạo tin nhắn đầu ra. Đối với đầu ra đối tượng, khi đã đạt đến số flow này, node có thể được cấu hình để gửi tin nhắn cho mỗi tin nhắn tiếp theo nhận được.
Có thể đặt thời gian chờ để kích hoạt gửi tin nhắn mới bằng cách sử dụng bất cứ thứ gì đã nhận được cho đến nay. Thời gian chờ này có thể được khởi động lại bằng cách gửi tin nhắn có đặt thuộc tính msg.restartTimeout.
Nếu một tin nhắn được nhận với tập thuộc tính msg.complete, thì tin nhắn đầu ra sẽ được hoàn thiện và gửi đi.
Nếu một tin nhắn được nhận với thuộc tính msg.reset được đặt, thì tin nhắn hoàn chỉnh một phần sẽ bị xóa và không được gửi.
Reduce Sequence mode
Khi được định cấu hình để tham gia ở chế độ rút gọn, một biểu thức sẽ được áp dụng cho từng thông báo theo trình tự và kết quả được tích lũy để tạo ra một thông báo duy nhất.
Initial value
Giá trị ban đầu của giá trị tích lũy ($A).
Reduce expression
Biểu thức JSONata được gọi cho mỗi thông báo trong chuỗi. Kết quả được chuyển tới lệnh gọi biểu thức tiếp theo dưới dạng giá trị tích lũy. Trong biểu thức, các biến đặc biệt sau có thể được sử dụng:
$A: giá trị tích lũy,
$I: chỉ mục của tin nhắn trong chuỗi,
$N: số flow tin nhắn trong chuỗi.
Fix-up expression
Một biểu thức JSONata tùy chọn được áp dụng sau khi biểu thức rút gọn đã được áp dụng cho tất cả các thông báo trong chuỗi. Trong biểu thức, có thể sử dụng các biến đặc biệt sau:
$A: giá trị tích lũy,
$N: số flow tin nhắn trong chuỗi.
Theo mặc định, biểu thức rút gọn được áp dụng theo thứ tự, từ thông báo đầu tiên đến thông báo cuối cùng của chuỗi. Nó có thể tùy ý được áp dụng theo thứ tự ngược lại.
$N là số flow tin nhắn đến - ngay cả khi chúng giống hệt nhau.
Ví dụ: các cài đặt sau, cho một chuỗi các giá trị số, sẽ tính giá trị trung bình:
Reduce expression: $A+payload
Initial value: 0
Fix-up expression: $A/$N
Storing messages
This node will buffer messages internally in order to work across sequences. The runtime setting nodeMessageBufferMaxLength can be used to limit how many messages nodes will buffer.
Giới thiệu
Một hàm sắp xếp thuộc tính tin nhắn hoặc một chuỗi các tin nhắn.
Thuộc tính
Khi được cấu hình để sắp xếp thuộc tính thông báo, node sẽ sắp xếp dữ liệu mảng được trỏ đến bởi thuộc tính thông báo được chỉ định.
Khi được cấu hình để sắp xếp một chuỗi các tin nhắn, nó sẽ sắp xếp lại các tin nhắn.
Thứ tự sắp xếp có thể là:
tăng dần
giảm dần.
Đối với số, thứ tự số có thể được chỉ định bằng hộp kiểm.
Khóa sắp xếp có thể là giá trị phần tử hoặc biểu thức JSONata để sắp xếp giá trị thuộc tính hoặc thuộc tính thông báo hoặc biểu thức JSONata để sắp xếp chuỗi thông báo.
Khi sắp xếp một chuỗi tin nhắn, node sắp xếp sẽ dựa vào các tin nhắn nhận được để thiết lập msg.parts. node phân tách tạo ra thuộc tính này nhưng có thể được tạo thủ công. Nó có các tính chất sau:
id - mã định danh cho nhóm tin nhắn
index - vị trí trong nhóm
count - tổng số tin nhắn trong nhóm
Lưu ý: node này lưu giữ nội bộ các tin nhắn cho hoạt động của nó. Để ngăn chặn việc sử dụng bộ nhớ không mong muốn, có thể chỉ định số flow tin nhắn tối đa được lưu giữ. Không có giới hạn về số flow tin nhắn.
thuộc tính nodeMessageBufferMaxLength được đặt trong settings.js.
Giới thiệu
Tạo chuỗi tin nhắn dựa trên các quy tắc khác nhau.
Thuộc tính
Có ba chế độ để tạo chuỗi tin nhắn:
Số flow tin nhắn
Nhóm các tin nhắn thành các chuỗi có độ dài nhất định. Tùy chọn chồng chéo chỉ định số flow tin nhắn ở cuối một chuỗi sẽ được lặp lại khi bắt đầu chuỗi tiếp theo.
Khoảng thời gian
Nhóm các tin nhắn đến trong khoảng thời gian được chỉ định. Nếu không có tin nhắn nào đến trong khoảng thời gian đó, node có thể tùy ý gửi một tin nhắn trống.
Chuỗi nối
Tạo ra một chuỗi tin nhắn bằng cách nối các chuỗi đến. Mỗi tin nhắn phải có thuộc tính msg.topic và thuộc tính msg.parts xác định trình tự của nó. node được cấu hình với danh sách các giá trị chủ đề để xác định trình tự thứ tự được nối.
Lưu trữ tin nhắn
node này sẽ đệm các thông điệp nội bộ để hoạt động trên các chuỗi. Cài đặt thời gian chạy nodeMessageBufferMaxLength có thể được sử dụng để giới hạn số flow node thông báo sẽ lưu vào bộ đệm.
Nếu một tin nhắn được nhận với thuộc tính msg.reset được đặt, các tin nhắn được lưu vào bộ đệm sẽ bị xóa và không được gửi.
Giới thiệu
Đưa tin nhắn vào flow theo cách thủ công hoặc theo định kỳ. Payload tin nhắn có thể có nhiều loại khác nhau, bao gồm chuỗi, đối tượng JavaScript hoặc thời gian hiện tại.
Thuộc tính
Outputs
payload
Various
Payload được cấu hình của tin nhắn.
topic
string
Một thuộc tính tùy chọn có thể được cấu hình trong node.
node Inject có thể bắt đầu một flow với giá trị payload cụ thể. Payload mặc định là dấu thời gian của thời gian hiện tại tính bằng mili giây kể từ ngày 1 tháng 1 năm 1970.
node này cũng hỗ trợ chèn chuỗi, số, boolean, đối tượng JavaScript hoặc giá trị flow/ngữ cảnh chung.
Theo mặc định, node được kích hoạt thủ công bằng cách nhấp vào node của nó trong trình chỉnh sửa. Nó cũng có thể được thiết lập để tiêm đều đặn hoặc theo lịch trình.
Nó cũng có thể được cấu hình để inject một lần mỗi lần các flow được bắt đầu.
Khoảng thời gian tối đa có thể được chỉ định là khoảng 596 giờ / 24 ngày. Tuy nhiên, nếu đang xem xét các khoảng thời gian lớn hơn một ngày, nên cân nhắc sử dụng node lập lịch có thể xử lý khi mất điện và khởi động lại.
Lưu ý: Tùy chọn "Khoảng thời gian giữa các lần" và "tại một thời điểm cụ thể" sử dụng hệ thống cron tiêu chuẩn. Điều này có nghĩa là 20 phút sẽ ở giờ tiếp theo, 20 phút trôi qua và 40 phút trôi qua - không phải ở thời gian 20 phút. Nếu bạn muốn 20 phút một lần kể từ bây giờ - hãy sử dụng tùy chọn "khoảng thời gian".
Lưu ý: Để đưa dòng mới vào chuỗi, phải sử dụng node Function hoặc Template để tạo payload.
Giới thiệu
Kích hoạt một flow khi một node khác hoàn thành việc xử lý tin nhắn.
Thuộc tính
Nếu một node thông báo thời gian chạy khi nó xử lý xong một thông báo thì node này có thể được sử dụng để kích hoạt flow thứ hai.
Ví dụ: điều này có thể được sử dụng cùng với một node không có output, chẳng hạn như node gửi Email, để tiếp tục flow.
node này phải được cấu hình để xử lý sự kiện cho các node đã chọn trong flow. Không giống như node Catch, nó không cung cấp chế độ 'xử lý tất cả' tự động áp dụng cho tất cả các node trong flow.
Giới thiệu
Bắt lỗi do các node trên cùng một tab đưa ra.
Thuộc tính
Outputs
error.message
String
Tin nhắn lỗi.
error.source.id
string
Id của node đã gây ra lỗi.
error.source.type
string
Loại node đã gây ra lỗi.
error.source.name
string
Tên, nếu được đặt, của node đã gây ra lỗi.
Nếu một node đưa ra lỗi trong khi xử lý tin nhắn, flow thường sẽ dừng lại. node này có thể được sử dụng để phát hiện những lỗi đó và xử lý chúng bằng một flow chuyên dụng.
Theo mặc định, node sẽ phát hiện lỗi do bất kỳ node nào trên cùng một tab đưa ra. Ngoài ra, nó có thể được nhắm mục tiêu vào các node cụ thể hoặc được định cấu hình để chỉ phát hiện các lỗi chưa được node bắt 'được nhắm mục tiêu' phát hiện.
Khi xảy ra lỗi, tất cả các node Catch phù hợp sẽ nhận được thông báo.
Nếu một lỗi được đưa ra trong flow con, thì lỗi đó sẽ được xử lý bởi bất kỳ node bắt nào trong flow con đó. Nếu không tồn tại, lỗi sẽ được truyền lên tab mà phiên bản flow con đang bật.
Nếu tin nhắn đã có thuộc tính lỗi thì nó sẽ được sao chép vào _error.
Giới thiệu
Báo cáo thông báo trạng thái từ các node khác trên cùng một tab.
Thuộc tính
Outputs
status.text
string
Trạng thái văn bản
status.source.type
string
Loại node báo cáo trạng thái.
status.source.id
string
Id của node đã báo cáo trạng thái.
status.source.name
string
Tên, nếu được đặt, của node đã báo cáo trạng thái.
node này không tạo ra payload.
Theo mặc định, node báo cáo trạng thái cho tất cả các node trên cùng một tab không gian làm việc. Nó có thể được cấu hình để báo cáo có chọn lọc trạng thái cho từng node riêng lẻ.
Giới thiệu
Tạo dây ảo giữa các flow.
Thuộc tính
node này có thể được kết nối với bất kỳ node liên kết ra nào tồn tại trên bất kỳ tab nào. Sau khi được kết nối, chúng hoạt động như thể được kết nối với nhau.
Các dây giữa các node liên kết chỉ được hiển thị khi một node liên kết được chọn. Nếu có bất kỳ dây nào dẫn đến các tab khác, một node ảo sẽ hiển thị và bạn có thể nhấp vào để chuyển đến tab thích hợp.
Lưu ý: Không thể tạo liên kết khi đi vào hoặc ra khỏi flow con.
Giới thiệu
Gọi một flow bắt đầu bằng một liên kết trong node và chuyển phản hồi.
Thuộc tính
target
string
Khi tùy chọn Link Type được đặt thành "dynamic target", hãy đặt msg.target thành tên của liên kết trong node bạn muốn gọi.
node này có thể được kết nối với một liên kết trong một node tồn tại trên bất kỳ tab nào. flow được kết nối với node đó phải kết thúc bằng node liên kết ra được định cấu hình ở chế độ 'trở lại'.
Khi node này nhận được một tin nhắn, nó sẽ được chuyển đến liên kết được kết nối trong node. Sau đó nó chờ phản hồi rồi gửi tiếp.
Nếu không nhận được phản hồi nào trong khoảng thời gian chờ đã định cấu hình, mặc định là 30 giây, node sẽ ghi lại lỗi có thể phát hiện được bằng node catch.
Khi tùy chọn Link Type được đặt thành "dynamic target", msg.target có thể được sử dụng để gọi một liên kết theo tên hoặc id.
Nếu có một liên kết trong các node có cùng id thì nó sẽ được gọi
Nếu có hai hoặc nhiều liên kết trong các node có cùng tên thì sẽ xảy ra lỗi
Cuộc gọi liên kết không thể gọi một liên kết trong node bên trong flow con
flow được kết nối với node đó phải kết thúc bằng node liên kết ra được định cấu hình ở chế độ 'return'.
Giới thiệu
Tạo dây ảo giữa các flow.
Thuộc tính
node này có thể được cấu hình để gửi tin nhắn đến tất cả các liên kết trong các node mà nó được kết nối hoặc gửi phản hồi trở lại node gọi liên kết đã kích hoạt flow.
Khi ở chế độ 'gửi tới tất cả', các dây giữa các node liên kết chỉ được hiển thị khi node được chọn. Nếu có bất kỳ dây nào dẫn đến các tab khác, một node ảo sẽ hiển thị và bạn có thể nhấp vào để chuyển đến tab thích hợp.
Lưu ý: Không thể tạo liên kết khi đi vào hoặc ra khỏi flow con.
Giới thiệu
Một node bạn có thể sử dụng để thêm nhận xét vào flow của mình.
Thuộc tính
Bảng chỉnh sửa sẽ chấp nhận cú pháp Markdown. Văn bản sẽ được hiển thị trong bảng thông tin bên.
Get request
Yêu cầu GET không cần đầu vào ban đầu, chỉ cần gửi yêu cầu tới api và nhận phản hồi trong msg.payload
Post request
Yêu cầu POST cần dữ liệu đầu vào, bạn có thể đặt nó theo nút chức năng
Sau khi gửi payload và dữ liệu, yêu cầu sẽ hiện trong msg.payload
API Authorization
Trong node HTTP request, hãy chọn Use authentication, sau đó chọn loại xác thực bạn muốn. Sau đó điền token và mật khẩu.
Generative AI API’s
Đặt url API vào node HTTP Request để tích hợp API
API Response Status Code
Mã trạng thái đã được lưu trong msg.statusCode
200: Thành công
404: Thất bại
Conditions based on the API Response
- Tùy thuộc vào msg.statusCode và nút chuyển đổi, có thể đặt các cách khác nhau dựa trên phản hồi API
Name: Tên hiển thị của nút hình ảnh
Url: Đường dẫn đến hình ảnh có sẵn công khai
Action: Setting action delay
Delay each message
Fixed delay
For: Cài đặt thời gian trễ
Khởi tạo một số biến để nhập thông tin người dùng
“first time”: để xác nhận rằng người dùng nhập lần đầu tiên
If (first time == true)
Tạo “con”: có nghĩa là kiểm tra hoặc thông báo. Biến này được sử dụng để điều hướng luồng thông báo cho người dùng những thông tin họ cần nhập hoặc kiểm tra xác thực và lưu thông tin
“check” value: để nhập luồng kiểm tra đầu vào (xác thực) của người dùng, sau đó lưu nó nếu đúng
“notice” value: để nhập tin nhắn thông báo từ bot đến người dùng, sau đó thay đổi con == “check” để chuyển hướng đến luồng “check”
Tạo “name”: nghĩa là tên của thông tin mà bạn muốn người dùng cung cấp
name == “company”: lấy tên công ty
name == “name”: lấy tên người dùng
name == “email”: lấy email
Luồng thông báo
Sau khi kiểm tra thông tin muốn lấy, hãy hướng dẫn nó
Sau khi thông báo thành công
Thay đổi “con” == để kiểm tra thông tin đầu vào của người dùng và cũng đợi cho đến khi người dùng nhập nội dung nào đó
change the “first time” == false, nếu first time vẫn là “true”, các biến sẽ được đặt lại
Kiểm tra luồng
Kiểm tra xác thực
Lưu thông tin
Kiểm tra xem tên nhập vào có chứa số hay không, nếu có nhập số thì lưu ý lại và cho phép người dùng nhập thêm một lần nữa.
Kiểm tra xem nội dung email đầu vào có bao gồm “@” và “.” hoặc không, nếu không gồm thì báo lại và cho phép người dùng nhập thêm một lần nữa.
Sau khi nhập email thành công, change “first time” == true để bắt đầu luồng mới
Sau khi gửi tin nhắn cảm ơn, chuyển luồng đến handover
Cài đặt nút action
Add: “Hand over”