v93

latestOpenAPI 3.1.0raw.githubusercontent.com2026-08-01218121759.7 KB
Sequences

Update sequence

Updates sequence settings and content, inserts linear or branching steps, or performs revision-guarded graph edits.

put/sequences/{sequenceId}

Path parameters

sequenceIdstring required

Sequence ID

Request body

descriptionstring

Updated dashboard description.

userCancellableboolean

Whether recipients can cancel this sequence from email preferences.

labelsstring[]

Replacement dashboard label names. Missing labels are created.

fromEmailstring email

From address for every email in this sequence. Its domain must be configured and verified.

fromNamestring

Display name for a newly created sender profile. Requires fromEmail; omit it when using senderProfileId, which already carries its own display name.

senderProfileIdstring

Existing sender profile ID. It already supplies both the From address and display name, so send it on its own and omit fromEmail and fromName.

replyTostring email

Reply-To address for every email in this sequence.

replyToNamestring

Display name for a newly created reply profile. Requires replyTo; omit it when using replyProfileId, which already carries its own display name.

replyProfileIdstring

Existing reply profile ID. It already supplies both the Reply-To address and display name, so send it on its own and omit replyTo and replyToName.

namestring

Updated sequence name.

trigger'contact_added' | 'tag_added' | 'segment_entered' | 'event_received' | 'inbound_webhook' | 'inactivity' | 'frequency'
listIdstring

List ID for a replacement contact_added trigger.

tagNamestring

Tag name for a replacement tag_added trigger.

segmentIdstring

Segment ID for a replacement segment_entered trigger.

stopOnSegmentExitboolean

Stop active enrollments when a contact leaves the replacement trigger segment.

eventNamestring

Event name for event_received, inbound_webhook, inactivity, or frequency triggers.

integrationSlugstring

Catalog integration slug for an inbound_webhook trigger.

integrationEventKeystring

Catalog event key for an inbound_webhook trigger.

customIntegrationobject

Custom integration descriptor for an inbound_webhook trigger.

inactiveDaysnumber
inactivityBaseline'sequence_created_at' | 'subscriber_created_at'
minCountnumber
timeWindowDaysnumber
enrollmentPausedboolean

Set true to stop new enrollments for an active sequence while current recipients continue. Set false to resume new enrollments.

confirmStructuralChangeboolean

Required when inserting steps or branches, or editing the graph of an active sequence. Set true only after confirming the live-flow impact for current and future recipients.

confirmLiveChangeboolean

Required for trigger replacement or nodeUpdates on an active sequence. Set true only after confirming that the edits can affect recipients who reach those nodes in the future.

enrollmentMode'unlimited' | 'one_time' | 'matching_field'

Controls sequence re-entry. unlimited allows re-entry after completion but prevents concurrent active runs. one_time allows one enrollment ever. matching_field is only valid for event-triggered sequences and allows concurrent active runs only when the trigger payload resolves to a different event field value.

enrollmentFieldPathstring nullable

Scalar dot-path event property used by matching_field enrollment on event_received and inbound_webhook sequences. Array traversal with [] is not supported; use propertyFilters for array matching. Set to null to use built-in defaults.

bccEmailsstring[] nullable

Email addresses that receive a blind copy of every email this sequence sends, such as a customer support inbox (max 10). Set to null to remove them.

Example request

{
  "name": "Updated Welcome Sequence",
  "propertyFilters": [
    {
      "path": "lineItems[].providerProductId",
      "operator": "equals"
    }
  ],
  "enrollmentPaused": true,
  "confirmStructuralChange": true,
  "confirmLiveChange": true,
  "enrollmentFieldPath": "order.id",
  "sendingWindow": {
    "enabled": true,
    "timezone": "Europe/Kiev",
    "startTime": "08:00",
    "endTime": "20:00",
    "days": [
      "monday",
      "tuesday",
      "wednesday",
      "thursday",
      "friday"
    ]
  },
  "bccEmails": [
    "cs-team@example.com",
    "founder@example.com"
  ],
  "stopCondition": {
    "value": "saas.purchase"
  },
  "branch": {
    "afterNodeId": "node_trigger",
    "label": "Branching",
    "branches": [
      {
        "id": "branch-0",
        "label": "Has activated tag",
        "conditionType": "has_tag",
        "tagId": "activated",
        "tagName": "activated",
        "listId": "list_abc123",
        "segmentId": "seg_abc123",
        "segmentName": "Project invite recipients",
        "eventName": "project.invite.accepted",
        "linkUrl": "project-invites",
        "activityScope": "this_sequence",
        "fieldName": "plan",
        "fieldValue": "pro",
        "targetNodeId": "node_sequence_complete",
        "steps": [
          {
            "type": "email",
            "subject": "Can you refer us?",
            "text": "Hey {{FIRST_NAME}}, your order shipped!",
            "label": "Shipping text",
            "blocks": [
              {
                "id": "block_123",
                "type": "html",
                "content": "<h1>Hello</h1>",
                "styles": {
                  "backgroundColor": "#f8fafc",
                  "backgroundOpacity": 80,
                  "textColor": "#111827",
                  "borderRadius": 12,
                  "borderColor": "#cbd5e1",
                  "borderWidth": 1
                },
                "conditions": [
                  {
                    "id": "c1",
                    "value": "plan:pro"
                  }
                ]
              }
            ],
            "html": "<p>Can you refer us?</p>",
            "delay": {
              "mode": "until_date",
              "days": 1,
              "hours": 2,
              "minutes": 30,
              "untilDateField": "renews_at",
              "field": "event.subscription.renews_at",
              "untilOffsetDirection": "before",
              "direction": "before",
              "untilMissingAction": "exit",
              "missingAction": "exit"
            },
            "waitUntil": {
              "field": "renews_at",
              "untilDateField": "event.subscription.renews_at",
              "offset": {
                "days": 1,
                "hours": 2,
                "minutes": 30
              },
              "days": 1,
              "hours": 2,
              "minutes": 30,
              "direction": "before",
              "untilOffsetDirection": "before",
              "missingAction": "exit",
              "untilMissingAction": "exit"
            },
            "delayMs": 86400000
          }
        ]
      }
    ],
    "elseSteps": [
      {
        "type": "email",
        "subject": "Can you refer us?",
        "text": "Hey {{FIRST_NAME}}, your order shipped!",
        "label": "Shipping text",
        "blocks": [
          {
            "id": "block_123",
            "type": "html",
            "content": "<h1>Hello</h1>",
            "styles": {
              "backgroundColor": "#f8fafc",
              "backgroundOpacity": 80,
              "textColor": "#111827",
              "borderRadius": 12,
              "borderColor": "#cbd5e1",
              "borderWidth": 1
            },
            "conditions": [
              {
                "id": "c1",
                "value": "plan:pro"
              }
            ]
          }
        ],
        "html": "<p>Can you refer us?</p>",
        "delay": {
          "mode": "until_date",
          "days": 1,
          "hours": 2,
          "minutes": 30,
          "untilDateField": "renews_at",
          "field": "event.subscription.renews_at",
          "untilOffsetDirection": "before",
          "direction": "before",
          "untilMissingAction": "exit",
          "missingAction": "exit"
        },
        "waitUntil": {
          "field": "renews_at",
          "untilDateField": "event.subscription.renews_at",
          "offset": {
            "days": 1,
            "hours": 2,
            "minutes": 30
          },
          "days": 1,
          "hours": 2,
          "minutes": 30,
          "direction": "before",
          "untilOffsetDirection": "before",
          "missingAction": "exit",
          "untilMissingAction": "exit"
        },
        "delayMs": 86400000
      }
    ],
    "elseTargetNodeId": "node_follow_up"
  },
  "insertSteps": {
    "afterNodeId": "node_migration_email",
    "steps": [
      {
        "type": "email",
        "subject": "Can you refer us?",
        "text": "Hey {{FIRST_NAME}}, your order shipped!",
        "label": "Shipping text",
        "blocks": [
          {
            "id": "block_123",
            "type": "html",
            "content": "<h1>Hello</h1>",
            "styles": {
              "backgroundColor": "#f8fafc",
              "backgroundOpacity": 80,
              "textColor": "#111827",
              "borderRadius": 12,
              "borderColor": "#cbd5e1",
              "borderWidth": 1
            },
            "conditions": [
              {
                "id": "c1",
                "value": "plan:pro"
              }
            ]
          }
        ],
        "html": "<p>Can you refer us?</p>",
        "delay": {
          "mode": "until_date",
          "days": 1,
          "hours": 2,
          "minutes": 30,
          "untilDateField": "renews_at",
          "field": "event.subscription.renews_at",
          "untilOffsetDirection": "before",
          "direction": "before",
          "untilMissingAction": "exit",
          "missingAction": "exit"
        },
        "waitUntil": {
          "field": "renews_at",
          "untilDateField": "event.subscription.renews_at",
          "offset": {
            "days": 1,
            "hours": 2,
            "minutes": 30
          },
          "days": 1,
          "hours": 2,
          "minutes": 30,
          "direction": "before",
          "untilOffsetDirection": "before",
          "missingAction": "exit",
          "untilMissingAction": "exit"
        },
        "delayMs": 86400000
      }
    ]
  },
  "graphEdit": {
    "expectedRevision": "75afbbfe05c1a96dc4f167eecc80b14113a3b76b47fb1b193492ddcd2b1d3e21",
    "edges": [
      {
        "sourceNodeId": "node_trigger",
        "targetNodeId": "node_welcome_email",
        "condition": {
          "branchId": "branch-0"
        }
      }
    ]
  },
  "nodeUpdates": [
    {
      "nodeId": "node_abc123",
      "expectedUpdatedAt": "2026-07-17T10:00:00.000Z"
    }
  ],
  "emails": [
    {
      "emailId": "email_abc123",
      "nodeId": "node_abc123",
      "name": "Welcome Sequence - Email 1",
      "subject": "Welcome to Acme",
      "previewText": "Start here",
      "attachments": [
        {
          "filename": "guide.pdf",
          "path": "https://example.com/files/guide.pdf"
        }
      ],
      "emailPreset": "minimal",
      "blocks": [
        {
          "id": "block_123",
          "type": "html",
          "content": "<h1>Hello</h1>",
          "styles": {
            "backgroundColor": "#f8fafc",
            "backgroundOpacity": 80,
            "textColor": "#111827",
            "borderRadius": 12,
            "borderColor": "#cbd5e1",
            "borderWidth": 1
          },
          "conditions": [
            {
              "id": "c1",
              "value": "plan:pro"
            }
          ]
        }
      ],
      "html": "<p>Updated body</p>",
      "htmlContent": "<p>Updated body</p>",
      "senderProfileId": "sender_abc123",
      "fromName": "Michael from Acme",
      "replyProfileId": "reply_abc123"
    }
  ],
  "steps": [
    {
      "emailId": "email_abc123",
      "nodeId": "node_abc123",
      "name": "Welcome Sequence - Email 1",
      "subject": "Welcome to Acme",
      "previewText": "Start here",
      "attachments": [
        {
          "filename": "guide.pdf",
          "path": "https://example.com/files/guide.pdf"
        }
      ],
      "emailPreset": "minimal",
      "blocks": [
        {
          "id": "block_123",
          "type": "html",
          "content": "<h1>Hello</h1>",
          "styles": {
            "backgroundColor": "#f8fafc",
            "backgroundOpacity": 80,
            "textColor": "#111827",
            "borderRadius": 12,
            "borderColor": "#cbd5e1",
            "borderWidth": 1
          },
          "conditions": [
            {
              "id": "c1",
              "value": "plan:pro"
            }
          ]
        }
      ],
      "html": "<p>Updated body</p>",
      "htmlContent": "<p>Updated body</p>",
      "senderProfileId": "sender_abc123",
      "fromName": "Michael from Acme",
      "replyProfileId": "reply_abc123"
    }
  ],
  "smsSteps": [
    {
      "nodeId": "node_sms123",
      "text": "Hey {{FIRST_NAME}}, your order shipped!",
      "label": "Shipping text"
    }
  ]
}

Response

Sequence updated successfully

successboolean
warningsstring[]

Non-blocking advisories about the blocks that were written. The write succeeded. Present when a field was not part of the block schema and was discarded, or when a supported field does not control what its name suggests for that block type - for example styles.backgroundColor on a button colors the band behind the button while the fill comes from buttonColor. Each message names the offending path and the fields that block does accept. A sequence email step update also reports the blocks the step's existing Style > Format added back on top of the submitted blocks, because the response echoes node config rather than the stored blocks. Absent when there is nothing to report.

Example response

{
  "success": true,
  "warnings": [
    "blocks[0].styles.color is not a supported field and was ignored. Button label color comes from the block-level `buttonTextColor` field. Supported styles fields: backgroundColor, backgroundOpacity, bleed, borderColor, borderRadius, borderWidth, paddingBottom, paddingLeft, paddingRight, paddingTop, textAlign, textColor."
  ],
  "sequence": {
    "id": "seq_abc123",
    "name": "Updated Welcome Sequence",
    "enrollmentPaused": true,
    "updatedEmailCount": 1,
    "updatedSmsStepCount": 1,
    "updatedSubscriberStepCount": 1,
    "stopCondition": {
      "value": "saas.purchase"
    },
    "sendingWindow": {
      "enabled": true,
      "timezone": "Europe/Kiev",
      "startTime": "08:00",
      "endTime": "20:00",
      "days": [
        "monday",
        "tuesday",
        "wednesday",
        "thursday",
        "friday"
      ]
    },
    "bccEmails": [
      "cs-team@example.com"
    ],
    "addedBranchNodeId": "node_branch",
    "addedBranchPathNodeIds": {
      "branch-0": [
        "node_if_delay",
        "node_if_email"
      ],
      "else": [
        "node_else_email"
      ]
    },
    "insertedNodeIds": [
      "node_inserted_email"
    ],
    "insertedEmailIds": [
      "email_inserted"
    ],
    "insertedEmailCount": 1,
    "replacedEdgeCount": 2,
    "graphRevision": "75afbbfe05c1a96dc4f167eecc80b14113a3b76b47fb1b193492ddcd2b1d3e21",
    "migratedRecipientCount": 3
  }
}