Data payload format

The canonical reference for the data field in /trigger requests. For tutorials, examples, and common patterns, see Pass input data.

Schema


data: array<table>

table: array<row>

row: array<cell>

cell: string

Three levels deep, all arrays. The outermost array holds tables, each table holds rows, each row holds cells. Cells are strings.

Minimal example


One table, one header row, one data row:

"data": [
  [
    ["header1", "header2"],
    ["value1", "value2"]
  ]
]

Validation rules


RuleDetail
data is optionalOmit it entirely if your automation doesn't expect input.
data is an arrayThe outermost element is always an array of tables, even if there's only one table.
Each table is an array of rowsA table with no rows ([]) is allowed but unusual, the automation receives an empty input.
Each row is an array of cellsEmpty rows ([]) cause unpredictable behaviour, avoid them.
Cells are stringsNumbers and booleans are coerced to strings on the server. Pass "42" for clarity.
Cells must not be nullUse "" for missing values. A null cell breaks the row.
Cells must not contain nested arrays or objectsCells are flat scalars. To pass structured data, flatten across columns.
All rows in a table should have the same lengthRagged rows cause column-index references to misalign.

Multiple tables


If the automation reads from two distinct inputs, pass them in order:

"data": [
  [
    ["url"],
    ["https://example.com/a"]
  ],
  [
    ["search_term"],
    ["browser automation"]
  ]
]

The first table is the first input, the second table is the second input. Order matters and is matched positionally to the automation's input sources.

Header rows


Whether a header row is required depends on how the automation references columns:

Automation references columns byHeader row required
Name (e.g. [url], [search_term])Yes
Position (e.g. column 1, column 2)No

Match the convention the automation was authored with. If unsure, open it in the Builder and inspect how the input source step references columns.

Encoding


  • The data field is JSON, sent as part of the application/json request body.
  • UTF-8 throughout. Non-ASCII characters in cell values are passed through unchanged.
  • No size limit is documented per cell or per request, but very large payloads (multiple megabytes) may hit timeout or rate limit issues. For high-volume input, batch across multiple /trigger calls instead of one giant payload.