Submit data to a paused INPUT node in a running workflow execution.
workflow input --node-id UUID [--data JSON|@file] [--run-id UUID] [--workflow-id UUID] [--json]
| Option | Description |
|---|---|
--node-id |
(Required) ID of the INPUT node to submit data to |
--data |
Input payload as an inline JSON string or @filepath. Defaults to {} when omitted |
--run-id |
Explicit run ID. Uses .last_run context when omitted |
--workflow-id |
Explicit workflow ID. Requires --run-id |
--json |
Print raw JSON response and exit |
The command resolves workflow_id and run_id using the same logic as workflow status:
- No
--run-id/--workflow-id— reads both from.workflow.last_runin the current directory --run-idonly — validates it matches the run ID stored in.last_run, then uses both from the file--run-id+--workflow-id— bypasses.last_runentirely--workflow-idwithout--run-id— error:--workflow-idrequires--run-id
workflow input --node-id <uuid> --data '{"text": "Hello, world"}'workflow input --node-id <uuid> --data @payload.jsonThe file must contain valid JSON. If the file does not exist, the command exits with an error.
When --data is omitted, an empty {} is submitted. This is valid for node types that accept
optional input.
Different INPUT node types expect different payload structures:
| Node Type | Expected payload |
|---|---|
PLAIN_TXT_INPUT |
{"text": "<string>"} |
STRUCTURED_INPUT |
{"<field>": "<value>", ...} (schema defined by the workflow) |
FILE_UPLOAD |
{"files": ["<path-or-url>", ...]} |
Use workflow status to identify which node is currently waiting and what type it is.
The status command prints a hint with the node type when a node is paused.
Before prompting for confirmation, the command verifies:
- The workflow is not in a terminal state (
COMPLETED,FAILED,CANCELLED,TIMED_OUT). - The workflow is not paused at a review node (use
workflow reviewinstead). - The specified
--node-idexists in the workflow. - The specified node is the one currently waiting for input.
If any check fails, the command exits with an error and a hint about the correct next action.
After validation, the command displays a Y/N prompt before submitting:
Submit input to node <node-id>? [Y/n]:
Answer n to cancel without submitting.
On success:
Input submitted.
If the API acknowledges the submission but has not yet confirmed the workflow advanced:
Input submitted but not yet confirmed. Use workflow status to verify the workflow advanced.
With --json, the raw API response is printed and the command exits immediately.
# Submit plain text input using .last_run context
workflow input --node-id c3d4e5f6-a7b8-9012-cdef-345678901234 \
--data '{"text": "Approve the invoice"}'
# Submit structured input from a file
workflow input --node-id c3d4e5f6-a7b8-9012-cdef-345678901234 \
--data @structured_payload.json
# Submit with explicit run context (bypass .last_run)
workflow input --node-id c3d4e5f6-a7b8-9012-cdef-345678901234 \
--data '{"text": "Hello"}' \
--workflow-id 939843a8-6257-4475-bfc0-f7d6500d9f00 \
--run-id a1b2c3d4-e5f6-7890-abcd-ef1234567890
# Machine-readable response
workflow input --node-id c3d4e5f6-a7b8-9012-cdef-345678901234 \
--data '{"text": "Hello"}' \
--json