v4

OpenAPI 3.1.02026-07-3163216290.7 KB
Workflows

Create a workflow

Create a draft workflow with a blank trigger and exit node.

post/v1/workflows

Request body

namestring required

The name of the workflow.

descriptionstring

The description of the workflow.

mailingListIdstring nullable

The ID of a mailing list the workflow sends to. After creation, the mailing list can be changed with the /v1/workflows/{workflowId}/mailing-list endpoint.

Response

Workflow created.

idstring required

The ID of the workflow.

workflowRevisionIdstring nullable required

The current workflow revision token. Pass the latest value as expectedRevisionId on the next workflow mutation. Will be null for workflows without a revision token yet.

status'Draft' | 'Sending' | 'Paused' | 'PausedAndQueueing' required
namestring

The name of the workflow.

descriptionstring

The description of the workflow.

mailingListIdstring nullable required

The ID of the mailing list the workflow sends to.

rootNodeIdstring required

The ID of the root node in the workflow graph.

nodesobject required

A map of node IDs to simplified node objects. Each node includes typeName and nextNodeIds, plus type-specific fields when present. To get the full node object, use the GET /v1/workflows/{workflowId}/nodes/{nodeId} endpoint.

Example response

{
  "id": "clw1a3b5c7d9e1f3g5h7i9j1",
  "status": "Draft",
  "name": "Welcome series",
  "description": "Onboarding emails for new signups",
  "mailingListId": "clm2k8j4h6g0f8d6s4a2b0z8",
  "rootNodeId": "cln8p0q2r4s6t8u0v2w4x6z8",
  "nodes": {
    "cln8p0q2r4s6t8u0v2w4x6z8": {
      "typeName": "SignupTrigger",
      "nextNodeIds": [
        "cln1a3b5c7d9e1f3g5h7i9j1"
      ]
    },
    "cln1a3b5c7d9e1f3g5h7i9j1": {
      "typeName": "SendEmailAction",
      "nextNodeIds": [],
      "emailMessageId": "cle5f7g9h1i3j5k7l9m1n3p5",
      "subject": "Welcome to Acme!"
    }
  }
}