Sequences

Enroll an audience in a sequence

Changed on

Starts a background run that enrolls every active contact matching the audience (everyone, lists, a segment, a filter, or rules) into the sequence, in batches, with no per-request cap. Contacts already active, waiting, or paused in the sequence are skipped; one_time sequences also skip contacts who completed or were cancelled before; unsubscribed and bounced contacts are never enrolled. Only one run per sequence can be queued or running at a time. The sequence must be enabled and accepting entrants. This is how a manual-trigger countdown sequence gets its audience; late enrollees skip the steps whose key date already passed.

post/sequences/{sequenceId}/enroll-audience

Request

  • Base URL
    https://api.sequenzy.com/api/v1
  • URL
    https://api.sequenzy.com/api/v1/sequences/{sequenceId}/enroll-audience
  • Auth
    HTTP bearer

Path parameters

sequenceIdstring required

Sequence ID.

Request body

targetNodeIdstring nullable

Step to start contacts at. Defaults to the first step after the trigger. Cannot be a trigger node.

scheduledForstring date-time nullable

Start the run at this moment instead of now (up to one year ahead). The run is created queued with a delayed job and can be cancelled before it starts. A past value starts now.

dataobject nullable

Run-level data shared by everyone in this run (a sale end time, a discount percentage, a cut-off time). Stored on the run and copied into every enrolled contact's sequence context at enrollment time; the sequence's emails and conditions read it as {{enrollment.<field>}} (nested paths like {{enrollment.draw.date}} work). Must be a JSON object of at most 8 KB, 100 top-level keys and 8 levels of nesting; keys named proto, constructor or prototype and strings containing NUL characters are rejected. Omit, null or {} for none. Auto-enroll syncs do not carry run data.

Example request

{
  "audience": {
    "type": "lists",
    "listIds": [
      "list_abc123"
    ],
    "segmentId": "seg_abc123",
    "includedSubscriberIds": [
      "sub_abc123",
      "sub_def456"
    ]
  },
  "scheduledFor": "2026-11-15T09:00:00Z",
  "data": {
    "sale_ends_at": "2026-11-29T23:59:00Z",
    "discount_percent": 20,
    "order_cutoff_utc": "2026-11-29T22:00:00Z",
    "shop_url": "https://example.com/sale"
  }
}

Response

Run queued

successboolean
messagestring

Example response

{
  "success": true,
  "audienceEnrollment": {
    "id": "aer_abc123",
    "sequenceId": "seq_abc123",
    "status": "running",
    "audience": {
      "type": "lists",
      "listIds": [
        "list_abc123"
      ],
      "segmentId": "seg_abc123",
      "includedSubscriberIds": [
        "sub_abc123",
        "sub_def456"
      ]
    },
    "data": {
      "sale_ends_at": "2026-11-29T23:59:00Z",
      "discount_percent": 20
    },
    "targetNodeId": "node_delay_1",
    "estimatedCount": 12000,
    "processedCount": 4000,
    "enrolledCount": 3800,
    "skippedCount": 200,
    "source": "api"
  }
}

Changes

    • info

      added the new optional request property /

    • info

      added the optional property // to the response with the status

    • info

      added the optional property / to the response with the status

    • info

      endpoint added