update_sequence
Change a win-back sequence's name, trigger or switch, and replace its steps whole when given. Only the arguments present move. Emits sequence.updated.
Change a sequence without restating it: name, trigger and active move only when present, and
steps, when present, replaces the whole list in order. A step still at its place keeps its id
and a member due it keeps their position; the rest are appended and the extra ones removed from the
end. An empty list removes every step.
Synchronous — the sequence as it then stands comes back, and
sequence.updated emits once.
Switching off lets every member go
active: false ends every member's passage at once, as
sequence.exited with the reason disabled, and
enrols nobody until the sequence runs again; switching it back on enrols nobody retroactively.
Confirm with the creator before pausing a sequence members are part-way through.
Read the steps first
The list is replaced by position, not merged by id. Read the sequence with
get_sequence, change the list, and send it whole;
omit steps to leave them alone.
Requires ability
The token behind the MCP session must hold it, or the call is refused with TOKEN_MISSING_ABILITY.
Runs the same action as
The REST endpoint and this tool share one action, so validation, permissions and events are identical.
Fires events
Delivered to every endpoint subscribed to it once the change is made.
Annotations
A client that honours annotations asks a person before running it. Sending the same arguments twice changes nothing the second time. It reaches beyond Subscriby: a connector, a provider or a member.
Arguments
project_id*stringUUID of the project the sequence belongs to.
sequence_id*stringUUID of the sequence to change.
namestringoptionalA new creator-facing label, 1 to 120 characters.
triggerstringoptionalWhat enrols a member: "churned" is the only trigger available today.
activebooleanoptionalSwitch the sequence on or off. Off lets every member part-way through go and enrols nobody until it runs again.
stepsobject[]optionalThe whole list of steps in order, at most 8, replacing the stored list: each {delay_days: int 1-180, body: string up to 1,000 characters, coupon_id?: UUID}. A step still at its place keeps its id. Omit to leave the steps alone; send an empty list to remove them all.
What it returns
{ "data": { "id": "9d2f4b6a-1c3e-4f58-8a7b-6e5d4c3b2a19", "project_id": "7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13", "name": "Win-back after churn", "trigger": "churned", "active": false, "steps": [ { "id": "4e8a2c6d-7b1f-4d93-a5c0-8f2e1b7d6c54", "position": 1, "delay_days": 2, "body": "Hi {name}, your place in {project} is still here: {link}", "coupon": null } ], "counts": { "enrolled": 12, "open": 0, "completed": 6, "won_back": 2 }, "created_at": "2026-10-01T09:00:00+00:00", "updated_at": "2026-10-12T09:05:00+00:00", "deleted_at": null }}How it fails
VALIDATION_FAILEDthe owner's plan lacks sequences, a reserved trigger, a name outside 1..120 characters, more than 8 steps, a step out of bounds, or a coupon_id of another project.
RESOURCE_NOT_FOUNDunknown project_id or sequence_id, a sequence of another project, or one the creator deleted.
AUTHENTICATION_REQUIREDno authenticated user on the request.
TOKEN_MISSING_ABILITYtoken lacks project-sequence:update.
How is this guide?
Last updated on