Skip to main content
PUT
/
api
/
v1
/
sequences
/
{sequenceId}
Update Sequence
curl --request PUT \
  --url https://api.sequenzy.com/api/v1/sequences/{sequenceId} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "<string>",
  "enrollmentMode": "<string>",
  "enrollmentFieldPath": "<string>",
  "stopCondition": {},
  "branch": {},
  "emails": [
    {}
  ],
  "steps": [
    {}
  ]
}
'
{
  "success": true,
  "sequence": {
    "id": "seq_abc123",
    "name": "Updated Welcome Sequence",
    "status": "draft",
    "updatedEmailCount": 1,
    "stopCondition": {
      "type": "has_tag",
      "value": "customer"
    },
    "addedBranchNodeId": "node_branch",
    "addedBranchPathNodeIds": {
      "branch-0": ["node_if_delay", "node_if_email"],
      "else": ["node_else_email"]
    }
  }
}

Documentation Index

Fetch the complete documentation index at: https://docs.sequenzy.com/llms.txt

Use this file to discover all available pages before exploring further.

Update Sequence

Updates sequence metadata, auto-stop behavior, branch logic, and email content. You can target email steps by nodeId, by emailId, or by array order.

Request

sequenceId
string
required
Sequence ID.
name
string
Updated sequence name.
enrollmentMode
string
Updated re-entry mode: unlimited, one_time, or matching_field. matching_field is only valid for event-based sequence triggers.
enrollmentFieldPath
string
Dot-path event property used by matching_field. Set to null or omit it to use the built-in defaults.
For example, use {"enrollmentMode":"matching_field","enrollmentFieldPath":"order.id"} to allow one active run per order while blocking duplicate active runs for the same subscriber and order.
stopCondition
object
Updated auto-stop condition. Use has_tag, does_not_have_tag, added_to_list, removed_from_list, event_received, or none.
branch
object
Insert an if/else branch after an existing node. Provide afterNodeId and a branches array with steps for each path plus elseSteps. Empty branch paths are rejected unless you set allowEmptyPaths: true. Branch conditionType values include has_tag, in_list, in_segment, event_received, link_clicked, and field comparisons. For event_received and link_clicked, set activityScope to this_sequence, previous_email, or ever; omitting it checks ever.
emails
array
Email step updates. Provide emails or steps, not both.
steps
array
Alias for emails.
curl -X PUT "https://api.sequenzy.com/api/v1/sequences/seq_abc123" \
  -H "Authorization: Bearer seq_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Updated Welcome Sequence",
    "stopCondition": {
      "type": "has_tag",
      "value": "customer"
    },
    "branch": {
      "afterNodeId": "node_trigger",
      "branches": [
        {
          "conditionType": "link_clicked",
          "linkUrl": "project-invites",
          "activityScope": "previous_email",
          "steps": [
            {
              "type": "delay",
              "delay": { "days": 1 }
            },
            {
              "subject": "Thanks for accepting",
              "html": "<p>Here is your next project step.</p>"
            }
          ]
        }
      ],
      "elseSteps": [
        {
          "subject": "Reminder: accept your invite",
          "html": "<p>Please accept your project invite.</p>"
        }
      ]
    },
    "emails": [
      {
        "nodeId": "node_abc123",
        "subject": "Welcome to Acme",
        "html": "<h1>Welcome</h1><p>Here is your first step.</p>"
      }
    ]
  }'

Responses

{
  "success": true,
  "sequence": {
    "id": "seq_abc123",
    "name": "Updated Welcome Sequence",
    "status": "draft",
    "updatedEmailCount": 1,
    "stopCondition": {
      "type": "has_tag",
      "value": "customer"
    },
    "addedBranchNodeId": "node_branch",
    "addedBranchPathNodeIds": {
      "branch-0": ["node_if_delay", "node_if_email"],
      "else": ["node_else_email"]
    }
  }
}