flows
Manage flows, the pipelines that connect pageGenerators (exports) to pageProcessors (imports) or routers (branching), plus their run, error, test-run, and execution-log surface.
⚠️ Response mapping shape.
pageProcessors[].responseMapping.fields/.listsare bare arrays — the same shapegetreturns. The API does not reject the object-wrapper shape ({"fields": {"type": [...]}}) that its generated schema docs described before 2026-08-22: it accepts it and silently corrupts the mapping tofields: [null], erasing the step's mappings. Always send the bare-array shape; repair a corrupted flow by resending the full document with correct bare-array mappings viaupdate.
Abstract/instance (multi-instance) flows: a flow with isAbstract: true is a reusable template that never runs directly; instances reference it via _abstractFlowId (immutable) and customize only through overrides. Structure belongs to the abstract — editing the abstract's graph propagates to every instance implicitly, and the server rejects structural fields on an instance write (422 flow_instance_invalid_fields), so the structural commands (add-processor, remove-processor, add-generator, remove-generator) refuse instance targets up front and point at the abstract. Use list --abstract-flow-id to enumerate an abstract's instances and get --merge-instance for an instance's effective config.
REST API: Flows
celigo flows <subcommand> [args] [flags]Supports all global flags.
Subcommands
list
List all flows.
get <id>
Fetch one flow.
create
Create a flow from a JSON body (stdin, or --file).
update <id>
Full replace from a JSON body (PUT). Omitted fields are erased.
set <id> key=value …
Safe field edit: GET, modify, PUT.
delete <id>
Delete a flow.
dependencies <id> (alias used-by)
List resources that depend on this flow.
audit <id>
Show the audit log (change history) for one flow.
run <id>
Trigger a one-off flow run.
clone <id> <integrationId> <environmentId>
Clone a flow into another integration/environment.
errors <id> <exportOrImportId>
List open errors for one step.
resolved-errors <id> <exportOrImportId>
List errors already resolved.
resolve-errors <id> <exportOrImportId> [errorIds]
Resolve errors (or all if omitted).
error <id> <exportOrImportId> <errorId>
One open error by id. --request-detail adds the captured HTTP request/response; --retry-data adds the editable retry data.
delete-debug-requests <id> <exportOrImportId> [reqAndResKeys]
Delete stored request/response traces (specific keys, or all the step's).
retry-errors <id> <exportOrImportId> [retryDataKeys]
Retry errors (or all if omitted).
assign-errors <id> <exportOrImportId> <email> [errorIds]
Assign errors to a user.
unassign-errors <id> <exportOrImportId> [errorIds]
Unassign errors (or all if omitted).
delete-resolved-errors <id> <exportOrImportId> [errorIds]
Purge resolved errors.
update-error-data <id> <exportOrImportId> <errorId>
Update an error's retry data before re-running (resolves its retryDataKey internally).
tag-errors <id> <exportOrImportId>
Set or clear tags on a batch of errors.
error-summary <id>
Per-step open-error counts and last-error times for a flow.
error-analysis <id> <exportOrImportId>
Group errors by message/code.
add-processor <id> <exportOrImportId>
Add a page processor to a flow.
remove-processor <id> <exportOrImportId>
Remove a page processor.
add-generator <id> <exportId>
Add a page generator (export).
remove-generator <id> <exportId>
Remove a page generator.
replace-connection <id> <oldConnId> <newConnId>
Swap a connection across every step.
set-group <flowGroupingId> <flowIds...>
Assign flows to a flow group.
unset-group <flowIds...>
Remove flows from their flow group.
debug-requests <id> <exportOrImportId>
List debug HTTP request log entries.
debug-request-detail <id> <exportOrImportId> <key>
Full request/response for one debug entry.
test-run <id>
Start a test run and return stage-by-stage results.
test-run-step-results <id> <runId> <exportOrImportId>
Step results for a test run.
test-run-step-logs <id> <runId> <exportOrImportId>
HTTP logs for a test run step.
enable-execution-logs <id>
Arm debug execution logging on a flow.
disable-execution-logs <id>
Disarm debug execution logging.
execution-logs <id> <jobId>
List execution log entries for a run.
query-execution-logs <id> <jobId>
Search execution log metadata for a step.
execution-log-detail <id> <jobId>
Get per-stage data for an execution log step.
last-export-date <id>
Flow-level delta checkpoint.
delete-execution-logs <id>
Delete a flow's execution logs within a time range.
cancel-jobs <id>
Cancel a flow's jobs.
celigo flows list
List all flows in the account, with optional server-side filters.
Signature
Flags
--integration <id>
string
—
List only flows belonging to this integration.
--name <substring>
string
—
Filter by name — a server-side substring match, not exact. Added in celigo-cli 2026.8.7.
--disabled
boolean
false
Only flows with disabled: true. Added in celigo-cli 2026.8.7.
--sort-by <field>
lastExecutedAt
—
Sort by last execution — most recently executed first, never-run flows last. Added in celigo-cli 2026.8.7.
--include-instances
boolean
false
Include instance flows generated from abstract (multi-instance) flows, otherwise excluded from the results. Added in celigo-cli 2026.8.7.
--abstract-flow-id <id>
string
—
List the instance flows generated from this abstract flow (the API's _abstractFlowId filter). Implies --include-instances: the filter alone returns the instances even though plain lists exclude them. Added in celigo-cli 2026.8.7.
--fields <spec>
string
default
Fields to request per row. default returns _id, name, and the table columns; all returns complete documents; a comma-separated list requests specific fields. See field projection.
--limit <n>
integer
—
Return at most <n> rows, fetching a single page.
--include-instances also applies to the --integration form; --name, --disabled, --sort-by, and --abstract-flow-id are main-list only — the integration-scoped endpoint ignores them, so the CLI rejects the combination.
Default table columns: _id, name, _integrationId, disabled, lastModified, lastExecutedAt.
Example
Corresponds to: GET /v1/flows (operationId: listFlows)
celigo flows get
Fetch one flow by ID.
Signature
Arguments
<id>
string
Yes
Flow ID.
Flags
--merge-instance
boolean
false
For an instance flow: return its effective config — the abstract flow's structure (pageGenerators/routers) merged with this instance's overrides (the API's mergeInstance param). The merged document keeps _abstractFlowId but absorbs the overrides into the structure (the overrides key disappears). Without it an instance returns its sparse document: _abstractFlowId, overrides, and instance-level fields only. Non-instance flows are returned unchanged (the server ignores the param). Added in celigo-cli 2026.8.7.
Example
Corresponds to: GET /v1/flows/{_id} (operationId: getFlowById)
celigo flows create
Create a flow from a JSON body (stdin, or --file).
Signature
Flags
-f, --file <path>
string
stdin
Read the JSON body from a file instead of stdin (- also means stdin).
Request body
Reads JSON on stdin (or from --file). See the POST /v1/flows schema for the full payload shape.
Example
Corresponds to: POST /v1/flows (operationId: createFlow)
celigo flows update
Full replace of a flow from a JSON body (stdin, or --file). Omitted fields are erased.
⚠️
PUTfully replaces the flow. Any field omitted from the body is erased.GETthe flow first, edit, then send the complete object back — or usesetfor targeted edits.
Signature
Arguments
<id>
string
Yes
Flow ID.
Flags
-f, --file <path>
string
stdin
Read the JSON body from a file instead of stdin (- also means stdin).
--force
boolean
false
Submit even if the body contains masked credential values (***) copied from a GET.
Request body
Reads JSON on stdin (or from --file). See the PUT /v1/flows/{_id} schema for the full payload shape.
Example
Corresponds to: PUT /v1/flows/{_id} (operationId: updateFlow)
celigo flows set
Safe field edit. Whitelisted fields (e.g. name, debugUntil, schedule.*) are applied via an atomic PATCH; other fields go through GET, modify, PUT. Accepts key=value pairs; values auto-parse as JSON (disabled=false is a boolean; =null removes a field). Supports dot paths and array indexing. A value can also be loaded from a file with key=file://<path> (avoids hand-escaping multi-line content like script source or SQL; ~ and relative paths are supported).
Signature
Arguments
<id>
string
Yes
Flow ID.
[assignments...]
key=value pairs
Yes
One or more field assignments. Use key=file://<path> to load a value from a file.
Example
Corresponds to: PUT /v1/flows/{_id} (operationId: updateFlow)
celigo flows delete
Delete a flow.
⚠️ Deleting a flow is destructive. The flow and its step wiring are removed. Run
dependenciesfirst to confirm nothing references it.
Signature
Arguments
<id>
string
Yes
Flow ID.
Flags
-y, --yes
boolean
false
Skip confirmation.
Example
Corresponds to: DELETE /v1/flows/{_id} (operationId: deleteFlow)
celigo flows audit
Show the audit log (change history) for one flow.
Signature
Arguments
<id>
string
Yes
Flow ID.
Example
Corresponds to: GET /v1/flows/{_id}/audit (per-resource audit log; returns entries for the flow and its descendants).
celigo flows run
Trigger a one-off flow run. Use --start-time / --end-time to override the delta window, or --export-ids to run a subset of a multi-generator flow.
The delta override flags were renamed in celigo-cli 2026.8.1. They were
--start-dateand--end-date, which read as calendar dates but accept full timestamps. Use--start-timeand--end-time.
Signature
Arguments
<id>
string
Yes
Flow ID.
Flags
--start-time <iso>
ISO 8601
—
Start of the delta window. Maps to lastExportDateTime.
--end-time <iso>
ISO 8601
—
End of the delta window. Maps to currentExportDateTime.
--export-ids <ids>
string (csv)
all generators
Comma-separated export IDs to run.
-y, --yes
boolean
false
Skip confirmation.
Example
Corresponds to: POST /v1/flows/{_id}/run (operationId: runFlow)
celigo flows clone
Clone a flow into a target integration and environment. Same-env clones auto-build a self-map from the source flow's connections; cross-env clones require a connectionMap piped via stdin.
Signature
Arguments
<id>
string
Yes
Source flow ID.
<integrationId>
string
Yes
Target integration ID.
<environmentId>
string
Yes
Target environment ID.
Flags
--flow-group <id>
string
—
Target flow group ID within the integration.
--name <name>
string
Clone - <source name>
Name for the cloned flow.
Request body (cross-env clones only)
Reads optional JSON on stdin:
Example
Corresponds to: POST /v1/flows/{_id}/clone (operationId: cloneFlow)
celigo flows errors
Get open errors for a flow export or import step.
Signature
Arguments
<id>
string
Yes
Flow ID.
<exportOrImportId>
string
Yes
Export or import ID within the flow.
Example
Corresponds to: GET /v1/flows/{_id}/{_exportOrImportId}/errors (operationId: listFlowStepErrors)
celigo flows resolved-errors
Get errors already marked resolved on a flow step.
Signature
Arguments
<id>
string
Yes
Flow ID.
<exportOrImportId>
string
Yes
Export or import ID within the flow.
Example
Corresponds to: GET /v1/flows/{_id}/{_exportOrImportId}/resolved (operationId: listFlowStepResolvedErrors)
celigo flows resolve-errors
Mark errors resolved. Pass a comma-separated [errorIds] list, or omit to resolve every open error on the step.
Signature
Arguments
<id>
string
Yes
Flow ID.
<exportOrImportId>
string
Yes
Export or import ID within the flow.
[errorIds]
string (csv)
No
Error IDs to resolve. Omit to resolve all open errors.
Flags
-y, --yes
boolean
false
Skip confirmation when resolving all.
Example
Corresponds to: PUT /v1/flows/{_id}/{_exportOrImportId}/resolved (operationId: resolveFlowStepErrors)
celigo flows error
Get one open error on a flow step by its error id. With no flags it prints the error record. Two flags enrich it, each resolving a derived key off the error record so you only ever need the errorId:
--request-detail— also fetch the captured HTTP request/response trace (via the error'sreqAndResKey). If you already hold areqAndResKey— e.g. fromdebug-requests— usedebug-request-detailinstead.--retry-data— also fetch the editable retry data (via the error'sretryDataKey), the same payload you edit and pipe intoupdate-error-data.
With either flag the output is a composite { error, requestResponse?, retryData? }.
Signature
Arguments
<id>
string
Yes
Flow ID.
<exportOrImportId>
string
Yes
Export or import ID within the flow.
<errorId>
string
Yes
errorId from a flows errors entry. Record-level errors from non-HTTP adaptors have no stored trace (--request-detail) and only retryable errors carry retry data (--retry-data).
Example
Corresponds to: GET /v1/flows/{_id}/{_exportOrImportId}/errors (operationId: listFlowStepErrors), plus GET .../requests/{key} (getFlowStepRequestDetail) with --request-detail and GET .../{retryDataKey}/data (getFlowStepErrorData) with --retry-data.
celigo flows retry-errors
Retry errors by retryDataKey. Pass a comma-separated [retryDataKeys] list, or omit to retry every open error.
Signature
Arguments
<id>
string
Yes
Flow ID.
<exportOrImportId>
string
Yes
Export or import ID within the flow.
[retryDataKeys]
string (csv)
No
Retry keys to retry. Omit to retry all open errors.
Flags
-y, --yes
boolean
false
Skip confirmation when retrying all.
Example
Corresponds to: POST /v1/flows/{_id}/{_exportOrImportId}/retry (operationId: retryFlowStepErrors)
celigo flows assign-errors
Assign errors to a user by email. Pass a comma-separated [errorIds] list, or omit to assign every open error.
Signature
Arguments
<id>
string
Yes
Flow ID.
<exportOrImportId>
string
Yes
Export or import ID within the flow.
<email>
string
Yes
Assignee email address.
[errorIds]
string (csv)
No
Error IDs to assign. Omit to assign all open errors.
Flags
-y, --yes
boolean
false
Skip confirmation when assigning all.
Example
Corresponds to: PUT /v1/flows/{_id}/{_exportOrImportId}/errors/assign (operationId: assignFlowStepErrors)
celigo flows unassign-errors
Unassign errors on a flow step. Pass a comma-separated [errorIds] list, or omit to unassign every open error on the step.
Signature
Arguments
<id>
string
Yes
Flow ID.
<exportOrImportId>
string
Yes
Export or import ID within the flow.
[errorIds]
string (csv)
No
Error IDs to unassign. Omit to unassign all open errors.
Flags
-y, --yes
boolean
false
Skip confirmation when unassigning all.
Example
Corresponds to: PUT /v1/flows/{_id}/{_exportOrImportId}/errors/unassign (operationId: unassignFlowStepErrors)
celigo flows delete-resolved-errors
Delete resolved errors. Pass a comma-separated [errorIds] list, or omit to delete every resolved error on the step.
⚠️ Deleting resolved errors is permanent. Purged error records cannot be recovered. Omitting
[errorIds]deletes every resolved error on the step.
Signature
Arguments
<id>
string
Yes
Flow ID.
<exportOrImportId>
string
Yes
Export or import ID within the flow.
[errorIds]
string (csv)
No
Error IDs to delete. Omit to delete all resolved errors.
Flags
-y, --yes
boolean
false
Skip confirmation when deleting all.
Example
Corresponds to: DELETE /v1/flows/{_id}/{_exportOrImportId}/resolved (operationId: deleteFlowStepResolvedErrors)
celigo flows update-error-data
Update an error's retry data before retrying. Pass the error id — the CLI resolves the error's retryDataKey internally — and pipe the modified data object via stdin (typically from flows error --retry-data output).
Signature
Arguments
<id>
string
Yes
Flow ID.
<exportOrImportId>
string
Yes
Export or import ID within the flow.
<errorId>
string
Yes
errorId from a flows errors entry (same key as flows error).
Request body
Reads JSON on stdin. See the PUT /v1/flows/{_id}/{_exportOrImportId}/{retryDataKey}/data schema for the full payload shape.
Example
Corresponds to: PUT /v1/flows/{_id}/{_exportOrImportId}/{retryDataKey}/data (operationId: updateFlowStepErrorData)
celigo flows tag-errors
Update tags on a batch of errors. tagIds uses the short tag code from tags list (the tagId field, e.g. F3ZBQ), not the Mongo _id. An empty tagIds array clears all tags.
Signature
Arguments
<id>
string
Yes
Flow ID.
<exportOrImportId>
string
Yes
Export or import ID within the flow.
Request body
Reads JSON on stdin:
See the PUT /v1/flows/{_id}/{_exportOrImportId}/tags schema for the full payload shape.
Example
Corresponds to: PUT /v1/flows/{_id}/{_exportOrImportId}/tags (operationId: updateFlowStepErrorTags)
celigo flows error-summary
Summarize a flow's open errors, with a count and the last error time per step. One request returns the flow-level rollup, and the command reports only steps with at least one open error.
Output columns: stepId, openErrors, lastErrorAt. In table format, a flow with no open errors prints a confirmation message. In json format it prints [], so downstream parsing stays valid.
Signature
Arguments
<id>
string
Yes
Flow ID.
Example
Corresponds to: GET /v1/flows/{_id}/errors, the flow-level error rollup. One request covers every step.
celigo flows error-analysis
Fetch a sample of errors on a step and group by code + message, counting occurrences. Client-side analysis over listFlowStepErrors.
Signature
Arguments
<id>
string
Yes
Flow ID.
<exportOrImportId>
string
Yes
Export or import ID within the flow.
Flags
--limit <n>
integer
100
Max errors to analyze.
Example
Corresponds to: GET /v1/flows/{_id}/{_exportOrImportId}/errors (operationId: listFlowStepErrors)
celigo flows add-processor
Add a page processor to a flow (auto-detects whether the ID is an export or import). For router-based flows, --router and optionally --branch are required.
Instance flows are refused. All four structural commands (
add-processor,remove-processor,add-generator,remove-generator) reject an instance-flow target up front, before the confirmation prompt and the PUT: an instance inherits its whole graph from its abstract flow, and the server rejects structural fields on an instance write (422 flow_instance_invalid_fields). The error names the abstract flow to edit instead — structural changes there propagate to every instance automatically; per-instance customization goes throughoverrides.
Signature
Arguments
<id>
string
Yes
Flow ID.
<exportOrImportId>
string
Yes
Export or import ID to add as a processor.
Flags
--router <routerId>
string
—
Target a specific router. Required for router-based flows.
--branch <branchName>
string
—
Target a specific branch within the router.
-y, --yes
boolean
false
Skip confirmation.
Example
Corresponds to: GET /v1/flows/{_id} (operationId: getFlowById) → PUT /v1/flows/{_id} (operationId: updateFlow)
celigo flows remove-processor
Remove a page processor from a flow by its export or import ID.
Signature
Arguments
<id>
string
Yes
Flow ID.
<exportOrImportId>
string
Yes
Export or import ID of the processor to remove.
Flags
--router <routerId>
string
—
Target a specific router.
--branch <branchName>
string
—
Target a specific branch within the router.
-y, --yes
boolean
false
Skip confirmation.
Example
Corresponds to: GET /v1/flows/{_id} (operationId: getFlowById) → PUT /v1/flows/{_id} (operationId: updateFlow)
celigo flows add-generator
Add a page generator (export) to a flow. Appends to the end of pageGenerators by default; --index inserts at a specific 0-based position. --schedule sets a per-generator cron override.
Signature
Arguments
<id>
string
Yes
Flow ID.
<exportId>
string
Yes
Export ID to add as a generator.
Flags
--index <position>
integer
append
0-based insert position.
--schedule <cron>
6-field cron
—
Per-generator schedule override.
-y, --yes
boolean
false
Skip confirmation.
Example
Corresponds to: GET /v1/flows/{_id} (operationId: getFlowById) → PUT /v1/flows/{_id} (operationId: updateFlow)
celigo flows remove-generator
Remove a page generator from a flow by export ID.
Signature
Arguments
<id>
string
Yes
Flow ID.
<exportId>
string
Yes
Export ID of the generator to remove.
Flags
-y, --yes
boolean
false
Skip confirmation.
Example
Corresponds to: GET /v1/flows/{_id} (operationId: getFlowById) → PUT /v1/flows/{_id} (operationId: updateFlow)
celigo flows replace-connection
Swap a connection across every export and import in a flow.
Signature
Arguments
<id>
string
Yes
Flow ID.
<oldConnectionId>
string
Yes
Connection ID currently referenced by the flow's steps.
<newConnectionId>
string
Yes
Connection ID to swap in.
Example
Corresponds to: PUT /v1/flows/{_id}/replaceConnection
celigo flows set-group
Assign one or more flows to a flow group (a section defined on the integration via integrations create-flow-group). Group membership is a property of the flows, not the integration — which is why this lives under flows.
Signature
Arguments
<flowGroupingId>
string
Yes
Flow group ID (must be non-empty). To remove flows from their group, use flows unset-group.
<flowIds...>
string (variadic)
Yes
One or more flow IDs to set.
Flags
None beyond global flags.
Example
Corresponds to: PUT /v1/flows/updateFlowGrouping
celigo flows unset-group
Remove one or more flows from their flow group, leaving them ungrouped. (Calls the same endpoint as set-group with an empty group id.)
Signature
Arguments
<flowIds...>
string (variadic)
Yes