Khối và thao tác
Mọi thao tác mà một flow có thể làm, kèm các trường và ví dụ. Đây là bộ đầy đủ: flow chỉ được dựng từ các khối này, nhờ vậy chia sẻ và chạy an toàn.
navigator.webdriver, không cổng gỡ lỗi); và các trường bí mật, như hạt giống 2FA, nhận một tham chiếu kho bí mật nên bản thân bí mật nằm yên trong kho của bạn. Flow chỉ là dữ liệu dựng từ bộ khối cố định này, nên flow bạn nhập vào hoặc do trợ lý soạn không thể làm gì ngoài bộ đó.Trang này được sinh từ chính bộ máy đang chạy nên luôn khớp với những gì Orbe thực sự thực hiện. Mọi khối đều không phụ thuộc nền tảng.
Thuộc tính chung
Mọi khối, dù làm gì, đều có thêm các thuộc tính sau:
screenshot_and_stop, stop hoặc continue. Đặt riêng cho từng khối để thay mặc định của lượt chạy.2FA code, hãy dùng tham chiếu kho bí mật để bí mật nằm yên trong kho của bạn. Giá trị gõ thẳng vào ô thường sẽ được lưu trong flow đúng như đã gõ. Khi lưu flow, Orbe đề nghị thay các giá trị trông như mật khẩu hoặc khoá bằng chỗ giữ chỗ. Hãy kiểm tra tệp trước khi chia sẻ.Thao tác
Mouse click click
Bấm vào phần tử theo chữ hiển thị (hoặc theo toạ độ trong khung nhìn). Chuột di chuyển với nhịp như người. Khi nhiều phần tử trùng chữ, thêm bộ chọn phần tử (số thứ tự nth hoặc vùng chứa scope) để chọn đúng một cái; nếu vẫn chưa rõ, lượt chạy tạm dừng thay vì bấm nhầm.
left, right, middle){"click": {"text": "Sign in"}}

Type text type
Gõ chữ vào một ô với nhịp như người; có thể nhấn Enter. Hãy bấm vào ô trước (hoặc đặt 'into').
{"type": {"into": "Email", "text": "{{email}}", "enter": false}}

Scroll scroll
Cuộn một cử chỉ như người; 'dy' chọn hướng (số âm = lên).
{"scroll": {"dy": 600}}

Scroll until scroll_until
Cuộn xuống bằng các cử chỉ như người cho tới khi chữ đã cho xuất hiện hoặc chạm cuối trang.
{"scroll_until": {"text": "Load more"}}

Random scroll random_scroll
Cuộn trang theo các khoảng ngẫu nhiên, có nghỉ ngắn, giống cách một người duyệt web.
down, up, both){"random_scroll": {"times": 3, "direction": "down"}}

Press keys hotkey
Nhấn một phím hoặc một phím tắt soạn thảo trong trang (sao chép, dán, chọn tất cả, hoàn tác, phím mũi tên, Enter…). Chỉ cho phép phím tắt soạn thảo; phím tắt của trình duyệt và hệ thống bị từ chối.
Các phím tắt sao chép, cắt và dán (Ctrl+C, Ctrl+X, Ctrl+V, Ctrl+Insert, Shift+Insert, Shift+Delete) chỉ chạy trong flow tin cậy — flow nhập từ ngoài hoặc do AI soạn sẽ hỏi quyền của bạn trước (xem Cho phép các bước nhạy cảm).
{"hotkey": {"keys": "Ctrl+A"}}

Đọc
Read page text read
Đọc toàn bộ chữ đang hiển thị trên trang (qua lõi C++ của trình duyệt, không chạy script nào trong trang). Có thể lưu vào biến.
{"read": {"into": "page_text"}}

List elements elements
Liệt kê các phần tử có thể thao tác kèm chữ và khung của chúng. Có thể lưu danh sách vào biến.
{"elements": {"into": "buttons"}}

Get element attribute get_attribute
Đọc một thuộc tính của đúng một phần tử — chữ, nhãn truy cập, vai trò, tên trường biểu mẫu, placeholder, đã chọn hay đang bật, địa chỉ liên kết (href), kiểu trường, giá trị trường hoặc chữ thay thế của ảnh — vào một biến. Ô mật khẩu và các trường được bảo vệ không bao giờ trả giá trị. Dừng nếu có nhiều phần tử khớp; thêm nth hoặc scope để chọn một.
text, label, role, name, placeholder, checked, enabled, href, input_type, value, alt){"get_attribute": {"text": "Learn more", "attr": "href", "into": "link"}}

Count elements count_elements
Đếm các phần tử trên trang khớp với chữ hoặc bộ chọn phần tử và lưu con số (0 nếu không có phần tử nào).
{"count_elements": {"text": "Add to cart", "into": "n"}}

Extract list extract
Gom một danh sách từ nhiều phần tử khớp trong một bước, ví dụ tên mọi sản phẩm trên trang, lọc theo chữ hiển thị và lưu vào một biến để các bước sau lặp qua. Đặt field là 'link' để thu địa chỉ liên kết thay vì chữ.
text, link){"extract": {"field": "text", "match": "Product", "into": "product_names"}}

Screenshot screenshot
Chụp trang qua compositor (ảnh sạch, không nhiễu canvas).
{"screenshot": {"path": "after-login.png"}}

Get URL get_url
Đọc URL của thẻ hiện tại vào biến.
{"get_url": {"into": "current_url"}}

Dữ liệu
Set variable set
Gán một giá trị cho biến (hỗ trợ thay thế {{biến khác}}).
{"set": {"name": "username", "value": "alice"}}

Regex extract regex
Lấy kết quả khớp đầu tiên của biểu thức chính quy (hoặc một nhóm bắt) từ một đoạn chữ vào biến.
Trong flow không tin cậy, ví dụ script nhập từ công cụ khác, bước này dừng trước khi chạy mẫu của nó cho tới khi bạn cho phép (xem Cho phép các bước nhạy cảm).
{"regex": {"from": "{{page_text}}", "pattern": "\\d{6}", "into": "code"}}

Split text split
Tách một đoạn chữ theo dấu phân cách; lưu cả danh sách hoặc một phần theo chỉ số.
{"split": {"from": "{{row}}", "sep": ",", "into": "cell", "index": 0}}

Math math
Tính một phép số học có kiểu (add/sub/mul/div/mod/pow) trên hai số vào biến, không đánh giá công thức tuỳ ý.
add, sub, mul, div, mod, pow){"math": {"op": "add", "a": "{{count}}", "b": "1", "into": "count"}}

Random number random_number
Chọn một số nguyên ngẫu nhiên trong khoảng min đến max (gồm cả hai đầu) vào biến.
{"random_number": {"min": 2, "max": 8, "into": "pause"}}

Random text random_text
Tạo một chuỗi ngẫu nhiên có độ dài bạn chọn (chữ cái, chữ số, cả hai, hoặc hex) và lưu vào một biến.
alnum, letters, digits, hex){"random_text": {"length": 12, "chars": "alnum", "into": "suffix"}}

Read JSON read_json
Đọc một giá trị từ văn bản JSON bạn đã có trong flow (ví dụ phản hồi lưu trong một biến), theo đường dẫn như data.items.0.name. Khối này không đọc tệp.
{"read_json": {"from": "{{response}}", "path": "data.items.0.name", "default": "unknown", "into": "name"}}

Increase variable increment
Cộng thêm vào một biến số (cộng 1 nếu bạn không đặt số khác). Biến rỗng hoặc mới được tính là 0.
{"increment": {"name": "count", "by": 1}}

Decrease variable decrement
Trừ bớt một biến số (trừ 1 nếu bạn không đặt số khác). Biến rỗng hoặc mới được tính là 0.
{"decrement": {"name": "count", "by": 1}}

Count list items count_items
Lưu số phần tử mà một biến danh sách đang chứa (0 nếu rỗng).
{"count_items": {"from": "tab_ids", "into": "tab_count"}}

Transform list transform
Biến đổi một biến dạng danh sách: sắp xếp, đảo ngược, bỏ trùng, cắt đoạn, nối thành chuỗi hoặc đếm độ dài.
sort, reverse, unique, slice, join, length){"transform": {"op": "unique", "from": "emails", "into": "unique_emails"}}

Ask a person prompt
Tạm dừng và hỏi người dùng một câu (ví dụ đáp án captcha hoặc mã dùng một lần), lưu câu trả lời rồi chạy tiếp.
{"prompt": {"message": "Nhập mã trong tin nhắn SMS", "into": "code"}}

Save state state_set
Lưu một giá trị theo khoá, giữ được qua các lượt chạy, để việc kéo dài nhiều ngày nhớ được tiến độ.
{"state_set": {"key": "last_row", "value": "{{i}}"}}

Load state state_get
Nạp giá trị đã lưu trước đó theo khoá (kèm giá trị mặc định nếu chưa có gì).
{"state_get": {"key": "last_row", "into": "start", "default": "0"}}

Get cookies cookies
Đọc cookie của một URL qua kho cookie của tiến trình trình duyệt (không qua CDP, không có cổng gỡ lỗi nào để kẻ xấu đọc). Có thể lưu danh sách vào biến.
{"cookies": {"url": "https://example.com", "into": "jar"}}

Set cookie set_cookie
Đặt một cookie vào kho cookie của tiến trình trình duyệt. Giá trị có thể dùng một {{biến}} đã lấy trước đó. Để trống expires thì là cookie phiên (xoá khi đóng hồ sơ), hoặc đặt thời điểm hết hạn (tối đa 400 ngày kể từ nay); SameSite mặc định là lax trừ khi bạn chọn strict, none (cần secure) hoặc unspecified.
lax, strict, none, unspecified){"set_cookie": {"name": "session", "value": "{{token}}", "domain": "example.com"}}

Clear cookies clear_cookies
Xoá cookie của một URL (có thể chỉ một tên). Có thể lưu số lượng đã xoá.
{"clear_cookies": {"url": "https://example.com"}}

Điều khiển
Call workflow call
Chạy một flow khác đã lưu như một bước con. Flow con được tìm trên máy (không tải từ mạng), kế thừa mức tin cậy thấp nhất giữa bên gọi và bên được gọi, và dùng chung tổng số bước của lượt chạy.
{"call": {"flow": "sign-in"}}

If if
Chạy các bước 'then' khi điều kiện đúng, ngược lại chạy các bước 'else'.
text_present, element_present, var_equals){"if": {"text_present": "Verify"}, "then": [ … ], "else": [ … ]}

For (repeat) repeat
Lặp các bước một số lần cố định, một lần cho mỗi dòng của tệp CSV, hoặc một lần cho mỗi phần tử của một biến danh sách. Mỗi lượt, {{item}} (hoặc tên bạn chọn) giữ phần tử hiện tại; phần tử tự nó là danh sách hoặc đối tượng thì đọc tiếp bằng Read JSON.
times, for_each_row, for_each_item){"repeat": {"times": 3}, "do": [ … ]}

Retry retry
Chạy các bước và thử lại khi lỗi, tối đa một giới hạn.
{"retry": {"times": 3, "backoff": 2}, "do": [ … ]}

Try / on error try
Chạy các bước 'do'; nếu có bước nào lỗi thì chạy các bước 'fallback' (xử lý lỗi theo từng khối, ví dụ bộ chọn dự phòng).
{"try": {}, "do": [ … ], "fallback": [ … ]}

While while
Lặp các bước trong khi điều kiện còn đúng (có giới hạn để không chạy vô hạn).
text_present, element_present, var_equals){"while": {"element_present": "Next", "max": 50}, "do": [ … ]}

Stop stop
Dừng flow êm (không phải lỗi), có thể kèm lý do.
{"stop": {"reason": "phát hiện điểm kiểm tra"}}

Exit loop exit_loop
Thoát khỏi vòng lặp gần nhất.
{"exit_loop": {}}

Next loop next_loop
Bỏ qua phần còn lại của lượt lặp này và chạy tiếp vòng lặp.
{"next_loop": {}}

Throw error throw
Dừng flow với một lỗi và thông báo tuỳ chọn.
{"throw": {"message": "trang không như dự kiến"}}

Verify (checkpoint) assert
Kiểm một điều kiện và dừng lượt chạy kèm lý do rõ ràng nếu không đạt: một điểm kiểm tra báo lỗi to thay vì để flow chạy tiếp trên trạng thái hỏng (ví dụ kiểm đã đăng nhập, hoặc không có captcha, trước khi đi tiếp).
present, absent, equals, contains){"assert": {"that": "present", "text": "Log out", "message": "chưa đăng nhập"}}

Hộp thoại
Accept dialog accept_alert
Chấp nhận hộp thoại JavaScript mà trang vừa mở (alert/confirm/prompt).
{"accept_alert": {}}

Dismiss dialog cancel_alert
Bỏ qua hộp thoại JavaScript mà trang vừa mở.
{"cancel_alert": {}}

Proxy
Rotate proxy IP rotate_proxy
Lấy IP mới cho cổng proxy của hồ sơ và chờ IP mới sẵn sàng (tối đa 60 giây) trước khi sang bước kế.
{"rotate_proxy": {"wait": 5, "into": "new_ip"}}

Set proxy set_proxy
Đổi hồ sơ sang một proxy đầu nguồn khác. Chỉ chạy trong flow tin cậy.
{"set_proxy": {"host": "1.2.3.4", "port": 8080, "user": "u", "pass": "{{proxy_pass}}"}}

Mạng
HTTP request http_request
Gửi một yêu cầu HTTPS từ bộ chạy và lưu {status, headers, body}. Chống SSRF: chỉ https, IP đã phân giải được ghim, đích nội bộ/riêng tư/metadata và các cổng của Orbe bị từ chối, mỗi lần chuyển hướng đều kiểm lại. Chỉ chạy trong flow tin cậy và không gửi kèm cookie hay thông tin đăng nhập nào.
{"http_request": {"url": "https://api.example.com/item", "method": "GET", "into": "resp"}}

Dựng các khối này bằng giao diện trong Trình soạn flow, hoặc điều khiển cùng các thao tác bằng mã qua SDK và MCP.












