Workflows

Replace a workflow's step graph

Replaces the whole graph in one transaction, because a graph is only meaningful as nodes PLUS the edges between them — an edit that could apply half of it would leave steps pointing at steps that no longer exist.

A step whose id you send is kept and updated in place; a fresh uuid creates one; an id you omit deletes that step and its run history. Exactly one step must be a TRIGGER, every transition must name steps present in the same document, and a step may not point at itself.

Refused with 409 while the workflow has running executions: those runs are standing on the steps being replaced. Pause the workflow (POST /api/v1/workflows/{id}/pause) first.

The response of GET /api/v1/workflows/{id}/graph is accepted verbatim by PUT on the same path: read a graph, change a step, send it back. Step and transition ids are yours to choose on a write, which is what makes that round trip a no-op rather than a rebuild.

Requires the workflows:write scope — Create, edit, enable, and delete your automation workflows.

put/api/v1/workflows/{id}/graph

Request

  • Base URL: https://api.sendly.now
  • URL: https://api.sendly.now/api/v1/workflows/{id}/graph
  • Auth: one of:
    • HTTP bearer
    • API key in cookie better-auth.session_token
    • OAuth 2 (authorization code, authorization URL https://app.sendly.now/api/auth/oauth2/authorize, token URL https://app.sendly.now/api/auth/oauth2/token, scopes: workflows:write)

Path parameters

idstring uuid required

Workflow id.

Request body

Response

The graph as it now stands

versioninteger required

The workflow's version AFTER this read. Every structural change bumps it and writes a workflow_versions snapshot, so a changed number between two reads means somebody edited the graph.

workflow_idstring uuid required

Changes

No recorded changes to this operation across all 1 revision of this API.