JSON:API · v1
Workflows
Inspect workflow definitions, authored steps, triggers, and mappings.
Bearer authentication
api_read / api_write by operation
Stable
Operations
GET
List workflow data mappings
/api/json/v1/workflow_data_mappings
List workflow data mappings visible to the authenticated service account.
GET
Retrieve a workflow data mapping
/api/json/v1/workflow_data_mappings/{id}
Retrieve one workflow data mapping visible to the authenticated service account.
GET
List workflow steps
/api/json/v1/workflow_steps
List workflow steps visible to the authenticated service account.
GET
Retrieve a workflow step
/api/json/v1/workflow_steps/{id}
Retrieve one workflow step visible to the authenticated service account.
GET
List workflow triggers
/api/json/v1/workflow_triggers
List workflow triggers visible to the authenticated service account.
GET
Retrieve a workflow trigger
/api/json/v1/workflow_triggers/{id}
Retrieve one workflow trigger visible to the authenticated service account.
GET
List workflows
/api/json/v1/workflows
List workflows visible to the authenticated service account.
POST
Save workflow builder state
/api/json/v1/workflows/save_builder_state
Atomically save a workflow definition together with its steps, triggers, and mappings.
GET
Retrieve a workflow
/api/json/v1/workflows/{id}
Retrieve one workflow visible to the authenticated service account.
PATCH
Activate a workflow
/api/json/v1/workflows/{id}/activate
Activate a validated workflow version and deactivate its active siblings.
PATCH
Deactivate a workflow
/api/json/v1/workflows/{id}/deactivate
Stop a workflow version from accepting new work.
Objects and fields
These are the reviewed public attributes. Fields omitted from this contract are not part of the API, even when they exist internally.
Workflow data mapping
type: workflow_data_mapping
5 fields
Public JSON:API resource object for workflow data mappings.
| Field | Type | Presence | Description |
|---|---|---|---|
| data_model_id | string | Required | Data model id returned by the public contract. |
| formula | string | Required | Abacus formula, e.g. "input.first_name + ' ' + input.last_name". Field included by default. |
| source_path | string | null | Optional · nullable | Optional JSONPath to extract initial data before formula evaluation. Field included by default. |
| step_id | string | Required | Step id returned by the public contract. |
| target_field_name | string | Required | The DataModelField name this mapping writes to. Field included by default. |
Workflow step
type: workflow_step
15 fields
Public JSON:API resource object for workflow steps.
| Field | Type | Presence | Description |
|---|---|---|---|
| api_operation_ref | string | null | Optional · nullable | For :api_request steps, the bound operation's ref (operationId else "METHOD path") within the spec named by api_spec_id. Pairs with that FK as the first-class binding. Field included by default. |
| api_spec_id | string | null | Optional · nullable | Api spec id returned by the public contract. |
| args | object | null | Optional · nullable | User-defined inputs passed to the Reactor step. Field included by default. |
| compensation_config | object | null | Optional · nullable | Compensation configuration: subflow_id for :subflow_reference, or inline step DAG for :inline_flow. Field included by default. |
| compensation_type | enum: none | subflow_reference | inline_flow | null | Optional · nullable | Compensation strategy: :none, :subflow_reference (run another workflow), or :inline_flow (inline DAG). Field included by default. |
| config | object | null | Optional · nullable | Type-specific config: URL/headers for HTTP, expression for conditional, seconds for delay. Field included by default. |
| external_connector_id | string | null | Optional · nullable | Attached external connector identifier, when configured. |
| identifier | string | Required | Unique machine-readable name used as namespace in formulas. Field included by default. |
| name | string | Required | Display name for the node. Field included by default. |
| order | integer | null | Optional · nullable | Execution order hint. Field included by default. |
| position | object | null | Optional · nullable | React Flow canvas coordinates. Field included by default. |
| trigger_connections | array<string> | null | Optional · nullable | Trigger UUIDs that visually connect to this step (canvas display only; not used by executor). Field included by default. |
| type | enum: http_request | api_request | conditional | delay | harmonizer | filter_list | data_transform | subflow | kafka_produce | snowflake_query | snowflake_write | s3_read | s3_write | Required | Determines step behavior in the Reactor. Field included by default. |
| wait_for | array<object> | null | Optional · nullable | Typed parent dependencies. Each entry %{id, type: :normal | :on_error | :compensate}. :normal entries map to Reactor `after:`; :on_error and :compensate carry edge variants. Field included by default. |
| workflow_id | string | Required | Workflow that owns or produced the resource. |
Workflow trigger
type: workflow_trigger
8 fields
Public JSON:API resource object for workflow triggers.
| Field | Type | Presence | Description |
|---|---|---|---|
| credential_id | string | null | Optional · nullable | Service account selected for this operation or trigger. |
| external_connector_id | string | null | Optional · nullable | Attached external connector identifier, when configured. |
| name | string | Required | Human-readable resource name. |
| observed_at_path | string | null | Optional · nullable | Dot-notation path to a timestamp field in the payload (e.g. "data.updated_at"). Used as observed_at on the Event. Defaults to now if nil or not found. Field included by default. |
| organization_id | string | Required | Organization that owns the resource. |
| trigger_config | object | null | Optional · nullable | Type-specific config. scheduled → schedule_interval; kafka → key_filter (topic/consumer_group live on the connector); cdc → tables/operations/schema_filter. Field included by default. |
| type | enum: webhook | scheduled | kafka | cdc | Required | JSON:API resource type. |
| workflow_id | string | Required | Workflow that owns or produced the resource. |
Workflow
type: workflow
11 fields
Public JSON:API resource object for workflows.
| Field | Type | Presence | Description |
|---|---|---|---|
| context_semantics_version | integer | Required | Which context-resolution semantics this version's steps run under: 1 collapses a list-of-maps upstream output to its first element, 2 hands the whole list to formulas and item fan-out. Stamped when the builder saves a definition and frozen with the version. Field included by default. |
| data_schema | object | null | Optional · nullable | Embedded schema describing the shape of data this workflow was authored against. Field included by default. |
| description | string | null | Optional · nullable | Human-readable description. |
| group_id | string | Required | Group id returned by the public contract. |
| is_active | boolean | null | Optional · nullable | Whether the resource currently accepts use. |
| name | string | Required | Human-readable resource name. |
| organization_id | string | Required | Organization that owns the resource. |
| published_at | object | null | Optional · nullable | Published at returned by the public contract. |
| schema_status | enum: none | fresh | stale | Required | Drift status of the data_schema vs. live sources: :none, :fresh, or :stale. Field included by default. |
| type | enum: standard | subflow | null | Optional · nullable | Workflow type: :standard requires triggers, :subflow is invoked internally by parent workflows. Field included by default. |
| version_number | integer | Required | Monotonic authored version number. |