Skip to main content
PUT
Update Node
CLI:

Overview

Partial update of a single sequence node. Only fields present in the body are applied. Draft campaigns only — on any other status the server returns 400 without writing. Immutable fields:
  • type — to change a node’s kind, delete it and add a new one with addSequenceNode.
  • position — to reorder, use the PATCH verb on the collection (moveSequenceNode).
  • campaign_id — set at creation.

Editable fields by node type

AI extension fields are silently ignored unless the existing node type === "ai". If the extension row doesn’t exist yet, the server creates it; otherwise it’s updated in place.

AI agent notes

Two-step AI node setup. After addSequenceNode with { type: "ai" }, immediately PUT the same node with ai_node: { purpose, output_type } to populate the extension row. The builder UI does this in one motion; agents should do the same.Delay validation happens at launch. This endpoint does not enforce the “total delay must be 1 minute to 30 days” rule — that’s checked when you call POST /api/campaigns/{id}/launch. Read the campaign before launch and make sure the full draft sequence is intentional.Read-after-write. The response includes the fully-refreshed node with its AI extension flattened into node.ai_node. No separate GET needed.

Authorizations

Authorization
string
header
required

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

Path Parameters

id
string
required

Campaign UUID

nodeId
string
required

Sequence node UUID

Body

application/json
subject
string | null
body
string | null
body_html
string | null
signature
string | null
from_name
string | null
reply_to
string | null
cc
string | null
bcc
string | null
attachments
any[] | null
include_message
boolean | null
is_reply
boolean | null
delay_days
integer | null
Required range: 0 <= x <= 9007199254740991
delay_hours
integer | null
Required range: 0 <= x <= 9007199254740991
delay_minutes
integer | null
Required range: 0 <= x <= 9007199254740991
ai_node
object

Response

Node updated successfully.

node
object
required