v4

OpenAPI 3.0.0MIT2026-07-311494532.1 MB
Workflows

Retrieve workflow step

Retrieves data for a specific step in a workflow

get/v2/workflows/{workflowId}/steps/{stepId}

Path parameters

workflowIdstring required
stepIdstring required

Headers

idempotency-keystring

A header for idempotency purposes

Response

OK

controlValuesobject

Control values for the step (alias for controls.values)

providerOverridesobject nullable

Per-provider content overrides keyed by providerId. Stored separately from controlValues and merged over the default body at send time. Keys are ChatProviderIdEnum / ToolProviderIdEnum values (e.g. slack, whatsapp-business, pagerduty).

variablesobject required

JSON Schema for variables, follows the JSON Schema standard

stepIdstring required

Unique identifier of the step

_idstring required

Database identifier of the step

namestring required

Name of the step

slugstring required

Slug of the step

type'in_app' | 'email' | 'sms' | 'chat' | 'push' | 'tool' | 'digest' | 'trigger' | 'delay' | 'throttle' | 'custom' | 'http_request' required

Type of the step

origin'novu-cloud' | 'novu-cloud-v1' | 'external' required

Origin of the layout

workflowIdstring required

Workflow identifier

workflowDatabaseIdstring required

Workflow database identifier

stepResolverHashstring

Hash identifying the deployed Cloudflare Worker for this step

Example response

{
  "providerOverrides": {
    "slack": {
      "text": "{{payload.title}}",
      "blocks": [
        {
          "type": "divider"
        }
      ]
    },
    "whatsapp-business": {
      "type": "text",
      "text": {
        "body": "{{payload.title}}"
      }
    },
    "pagerduty": {
      "severity": "warning",
      "source": "novu",
      "summary": "{{payload.title}}"
    }
  }
}