Skip to main content
PUT
/
api
/
workflows
/
{id}
Update a workflow
curl --request PUT \
  --url https://your-instance.example.com/api/workflows/{id} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "New Lead Welcome (v2)",
  "description": "Greet new leads, assign an agent, and create a follow-up task.",
  "enabled": true
}
'
{
  "success": true,
  "message": "Workflow created successfully",
  "data": {
    "_id": "64d2f9c5e8a1d4e001a0b1c2",
    "name": "New Lead Welcome",
    "description": "Greet new leads and assign them to a leasing agent.",
    "organizationId": "64a1b2c3d4e5f60012345678",
    "userId": "64a1b2c3d4e5f60012345679",
    "nodes": [],
    "edges": [],
    "viewport": {
      "x": 0,
      "y": 0,
      "zoom": 1
    },
    "enabled": false,
    "createdAt": "2026-04-12T14:22:10.000Z",
    "updatedAt": "2026-04-12T14:22:10.000Z"
  }
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

id
string
required

Body

application/json

Partial update — only the supplied fields are written; omitted fields are left untouched.

name
string

New workflow name. Must remain unique within the caller organization.

description
string

Replacement free-text description. Send an empty string to clear.

nodes
object[]

Replacement node array — fully overwrites the current canvas nodes when supplied.

edges
object[]

Replacement edge array — fully overwrites the current canvas edges when supplied.

viewport
object

Replacement camera state (x, y, zoom) for the canvas.

enabled
boolean

When false, the trigger system skips this workflow even when conditions match.

Response

Workflow updated successfully

Returned by create/update/toggle. Wraps the resulting WorkflowDocument plus a status message.

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

A Workflow document — visual builder canvas (nodes + edges) plus enabled flag and metadata.

Example:
{
"_id": "64d2f9c5e8a1d4e001a0b1c2",
"name": "New Lead Welcome",
"description": "Greet new leads and assign them to a leasing agent.",
"organizationId": "64a1b2c3d4e5f60012345678",
"userId": "64a1b2c3d4e5f60012345679",
"nodes": [
{
"id": "n1",
"type": "trigger",
"position": { "x": 50, "y": 50 },
"data": { "event": "application.created" }
},
{
"id": "n2",
"type": "sendMessage",
"position": { "x": 250, "y": 50 },
"data": { "template": "welcome-sms" }
}
],
"edges": [
{
"id": "e1",
"source": "n1",
"target": "n2"
}
],
"viewport": { "x": 0, "y": 0, "zoom": 1 },
"enabled": true,
"createdAt": "2026-04-12T14:22:10.000Z",
"updatedAt": "2026-04-22T10:14:00.000Z"
}