Trigger Workflow on a List

Changed on

API to trigger a workflow for every user in a list in one call, via POST /trigger/list/.

SuprSend starts one workflow run per list member, with that user as the recipient. Every run gets the same data and tenant_id. Members are read when the trigger runs: right away, or after delay / at trigger_at if you schedule it. Dynamic lists are synced before running the workflow or fetching the list of users.

post/trigger/list/

Request

Request body

list_idstring required

ID of the list whose users you want to notify. Case-insensitive. The list must exist and be enabled.

workflowstring required

Slug of the workflow to trigger. The workflow must exist in the workspace.

dataobject

Variables used in the workflow and its templates, as {{key}}. The same data goes to every list member's run. Use $recipient.<property> in templates for per-user values.

tenant_idstring

ID of the tenant the runs belong to. Its branding and preferences apply to every run. Defaults to default. The tenant must exist.

trigger_atstring date-time

Trigger at this date-time, in ISO 8601 format with a timezone (for example, 2026-11-05T09:30:00Z). Maximum 15 days from now. If trigger_at is in the future, it wins over delay. If it's in the past, delay applies when set; otherwise the workflow triggers right away.

cancellation_keystring

Key stored on every run started by this trigger, so a Cancel Workflow node can stop those runs. This value overrides the workflow's Trigger-node cancellation key expression. To cancel the runs through the Cancel Workflow API instead, pass this request's $idempotency_key (or the message_id from the response) as idempotency_key.

$idempotency_keystring

Unique key for this request, up to 255 characters. Another request with the same key within 24 hours is ignored, so retries don't notify the list twice.

Example request

{
  "list_id": "webinar-registrants",
  "workflow": "webinar-reminder",
  "data": {
    "webinar_title": "Scaling notifications in B2B apps",
    "join_url": "https://example.com/webinar/join"
  },
  "tenant_id": "acme",
  "trigger_at": "2026-11-05T09:30:00Z",
  "cancellation_key": "webinar-2026-11-05",
  "$idempotency_key": "webinar-reminder-2026-11-05"
}

Response

202 - Accepted

statusstring
message_idstring

Unique identifier of the request generated by SuprSend.

Example response

{
  "status": "success",
  "message_id": "2b145020-f9b5-4b9c-a88f-882c27681adc"
}

Changes