Skip to main content
PATCH
/
api
/
campaigns
/
{id}
/
sequence
/
nodes
Reorder Node
curl --request PATCH \
  --url https://app.puffle.ai/api/campaigns/{id}/sequence/nodes \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "nodeId": "<string>",
  "toPosition": 4503599627370495
}
'
{
  "sequence_nodes": [
    {
      "id": "<string>",
      "campaign_id": "<string>",
      "position": 4503599627370495,
      "subject": "<string>",
      "body": "<string>",
      "body_html": "<string>",
      "signature": "<string>",
      "from_name": "<string>",
      "reply_to": "<string>",
      "cc": "<string>",
      "bcc": "<string>",
      "attachments": [
        "<unknown>"
      ],
      "include_message": true,
      "is_reply": true,
      "delay_days": 4503599627370495,
      "delay_hours": 4503599627370495,
      "delay_minutes": 4503599627370495,
      "ai_node": {}
    }
  ]
}
CLI:
puffle campaign sequence node move --id <id> --node-id <node-id> --to-position <to-position>

Overview

Reorder an existing node by moving it to a new position. Draft campaigns only. Uses an atomic RPC with row-level locking so concurrent moves can’t corrupt the ordering. To edit a node’s content (subject, body, delay values, etc.), use updateSequenceNode instead.
This operation shares the URL path /api/campaigns/{id}/sequence/nodes with other verbs. See the sibling page for related operations on the same resource.

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

Body

application/json
nodeId
string
required

String value with endpoint-specific validation.

toPosition
integer
required
Required range: 0 <= x <= 9007199254740991

Response

Node moved. Returns the fresh ordered list, or a mutation fallback when read-back fails.

sequence_nodes
object[]
required