Skip to main content
POST
/
api
/
data-platform
/
workflow-runs
/
{id}
/
steps
curl --request POST \
  --url https://app.solya.app/api/data-platform/workflow-runs/{id}/steps \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "actionType": "ADD_ITEMS_TO_PLAN",
  "nodeId": "action-node-2",
  "nodeType": "ACTION",
  "organizationId": "org-uuid-1234",
  "resolvedInput": {
    "planId": "plan-uuid-restock-q2",
    "variantIds": [
      "var-uuid-001",
      "var-uuid-002"
    ]
  },
  "startedAt": "2026-05-23T06:00:05.000Z",
  "status": "RUNNING"
}
'
{
  "retryCount": 0,
  "status": "RUNNING",
  "stepId": "step-uuid-aa1b2c"
}

Authorizations

Authorization
string
header
required

Static internal-ops token used by the data platform and internal cron jobs (e.g. zombie-run sweep). Validated via requireBearerToken inside the handler against a service-specific environment variable.

Path Parameters

id
string
required

Unique identifier of the workflow run

Minimum string length: 1

Body

application/json
nodeId
string
required

Unique node identifier from the workflow flow definition

Minimum string length: 1
nodeType
enum<string>
required

Node type: TRIGGER (entry point) or ACTION (executable step)

Available options:
TRIGGER,
ACTION
organizationId
string
required

Organization UUID for tenant isolation

Minimum string length: 1
actionType
enum<string> | null

Action type for ACTION nodes; null or omitted for TRIGGER nodes

Available options:
CREATE_OR_GET_PLAN,
ADD_ITEMS_TO_PLAN,
CALL_WEBHOOK,
SEND_EMAIL
resolvedInput
object

Resolved input parameters passed to the node after variable substitution

startedAt
string<date-time>

Timestamp when this node started executing; defaults to server time

Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
status
enum<string>

Initial status; defaults to RUNNING

Available options:
PENDING,
RUNNING,
SUCCEEDED,
FAILED,
SKIPPED,
CANCELLED

Response

Successful response

data
object
required
success
enum<boolean>
required
Available options:
true