SnozeDevelopers
API referenceAutomations

Publish an automation's draft version

Promotes the current draft to the published version and installs its triggers, optionally enabling the automation or rotating its webhook signing secret at the same time. Requires the `automations:write` permission plus edit access; the draft is recompiled under stricter publish-time rules, so an automation with no unpublished changes, no steps, or an invalid graph is rejected with a validation error. Send an `Idempotency-Key` header to make retries safe; a replay within the window returns the original response.

POST
/v1/workspaces/{workspaceId}/automations/{automationId}/publish
AuthorizationBearer <token>

Workspace API key created in Workspace settings → API keys. Scopes on the key bound what it can read and write.

In: header

Path Parameters

workspaceId*string
automationId*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

curl -X POST "https://example.com/v1/workspaces/string/automations/string/publish" \  -H "Content-Type: application/json" \  -d '{}'
{  "data": {    "id": "string",    "workspaceId": "string",    "key": "string",    "label": "string",    "enabled": true,    "versionId": "string",    "version": 0,    "publishedVersionId": "string",    "draftVersionId": "string",    "hasUnpublishedChanges": true,    "trigger": "manual",    "triggerConfig": {      "kind": "manual"    },    "graph": {      "nodes": [        {          "id": "string",          "label": "string",          "retry": {            "maxAttempts": 0,            "initialDelaySeconds": 0,            "backoffMultiplier": 0,            "maxDelaySeconds": 0          },          "position": {            "x": 0,            "y": 0          },          "kind": "action",          "actionId": "string",          "input": {            "property1": {              "type": "literal",              "value": null            },            "property2": {              "type": "literal",              "value": null            }          }        }      ],      "edges": [        {          "id": "string",          "from": "string",          "to": "string",          "outcome": "always"        }      ],      "entryNodeIds": [        "string"      ],      "testPayloads": [        {          "id": "string",          "name": "string",          "payload": {}        }      ],      "failureAutomationId": "string",      "triggerPosition": {        "x": 0,        "y": 0      }    },    "webhookPath": "string",    "webhookSecret": "string",    "nextRunAt": "string",    "lastTriggeredAt": "string",    "createdAt": "string",    "updatedAt": "string",    "referenceIssues": [      {        "nodeId": "string",        "message": "string"      }    ]  }}