Script sequences
Replace a script sequence
/v1/script-sequences/{sequence_id}Replaces the name and the whole tree of a sequence. Read it first (get_script_sequence) and send it back changed: a step or an option sent with its id is kept, with the fans who reached it; one without id is created; one left out is deleted (its fans go back to the kept step before it). The tree is checked as a whole: nothing is written if a field is refused.
write:scriptscurl -X PUT 'https://api.fansquare.so/v1/script-sequences/e799e6a3-b43b-4466-a455-eb224a8f9bf1' \
-H "Authorization: Bearer $API_KEY" \
-H "Fansquare-Version: Amethyste" \
-H "Content-Type: application/json" \
-d '{
"name": "Lena",
"steps": [
{
"id": "05d8446f-24ff-403e-acc9-c66c59b9ca74",
"title": "string",
"context_note": "string",
"options": [
{
"id": "59d4364a-a19e-4efb-a647-e8d32ade0d3c",
"script_id": "7668136a-d6ea-4b9d-a45d-f8b902de321f",
"condition": "any",
"label": "Orders to accounting",
"delay_hours": 12,
"context_note": "string"
}
]
}
]
}'{
"id": "e799e6a3-b43b-4466-a455-eb224a8f9bf1",
"creator_id": "m81IhLxdhzDGYs54rNp2",
"name": "Lena",
"status": "draft",
"published_at": null,
"created_at": "2026-10-12T21:14:00.000Z",
"updated_at": "2026-10-12T21:14:00.000Z",
"steps": [
{
"id": "05d8446f-24ff-403e-acc9-c66c59b9ca74",
"title": "string",
"context_note": "string",
"options": [
{
"id": "59d4364a-a19e-4efb-a647-e8d32ade0d3c",
"script_id": "7668136a-d6ea-4b9d-a45d-f8b902de321f",
"condition": "any",
"label": "Orders to accounting",
"delay_hours": 12,
"context_note": "string"
}
]
}
]
}Parameters
Headers
Fansquare-VersionstringrequiredAPI version to pin. Accepts the mineral name or the release date of a version.
Path
sequence_idstringrequiredFansquare script sequence id (the
idfield of sequence items).format uuid
Body
application/json
namestringrequiredName of the sequence (1 to 60 characters).
min length 1max length 60stepsarray of objectsrequiredThe steps, in order (1 to 30).
min items 1max items 30idstringId of an existing step, to keep it and the fans on it (replace only). Omit for a new step.
format uuidtitlestringrequiredTitle of the step (1 to 60 characters).
min length 1max length 60context_notestring | nullNote for the chatters (1000 characters max). Never sent to the fan.
max length 1000optionsarray of objectsrequiredWhat the chatter can send at this step: 1 to 5 options, none of them the main one.
min items 1max items 5idstringId of an existing option of this step, to keep it and its fans (replace only). Omit for a new option.
format uuidscript_idstringrequiredA script of the same creator (see list_scripts). Several options and sequences may share a script.
format uuidconditionstringrequiredWhen the chatter is offered this option, judged on what the fan did since the message of the PREVIOUS step:
any(always offered; the only one allowed on the first step),no_reply(the fan has not answered, afterdelay_hoursif set),bought(the fan bought the media of the previous step),not_bought(the fan has not bought it, afterdelay_hoursif set),other(a case of your own, described bylabel).Valuesanyno_replyboughtnot_boughtotherlabelstring | nullRequired for
other: the case, as the chatter reads it (80 characters max). Ignored otherwise.max length 80delay_hoursinteger | nullFor
no_replyandnot_bought: hours to wait first (1 to 720). Ignored otherwise.min 1max 720context_notestring | nullNote for the chatters (1000 characters max). Never sent to the fan.
max length 1000
Response
OK, application/json
idstringrequiredFansquare script sequence id. Path parameter of the /v1/script-sequences/{sequence_id} routes.
creator_idstringrequiredFansquare creator id (see GET /v1/creators).
namestringrequiredName of the sequence.
statusstringrequiredpublished(offered to chatters in the conversation) ordraft(visible in the app editor only, until published).Valuesdraftpublishedpublished_atstring | nullrequiredWhen the sequence was published (ISO 8601), null for a draft.
format date-timecreated_atstringrequiredWhen the sequence was created (ISO 8601).
format date-timeupdated_atstringrequiredWhen the sequence was last changed (ISO 8601).
format date-timestepsarray of objectsrequiredThe steps, in order: the conversation goes from one step to the next.
idstringrequiredStep id. Send it back in replace_script_sequence to keep the step (and the fans on it).
titlestringrequiredTitle of the step, the stage of the conversation ("Premium content").
context_notestring | nullrequiredNote for the chatters about this step. Never sent to the fan.
optionsarray of objectsrequiredThe scripts a chatter can send at this step, each with its condition.
idstringrequiredOption id. Send it back in replace_script_sequence to keep the option (and the fans on it).
conditionstringrequiredWhen the chatter is offered this option, judged on what the fan did since the message of the PREVIOUS step:
any(always offered; the only one allowed on the first step),no_reply(the fan has not answered, afterdelay_hoursif set),bought(the fan bought the media of the previous step),not_bought(the fan has not bought it, afterdelay_hoursif set),other(a case of your own, described bylabel).Valuesanyno_replyboughtnot_boughtotherlabelstring | nullrequiredDescription of the case, for the
othercondition. null otherwise.delay_hoursinteger | nullrequiredHours to wait before the option is offered, for
no_replyandnot_bought. null otherwise.context_notestring | nullrequiredNote for the chatters about this option. Never sent to the fan.
script_idstring | nullrequiredThe script sent with this option (see get_script). null when that script was deleted: replace the option.
script_namestring | nullrequiredName of that script, null when it was deleted.
curl -X PUT 'https://api.fansquare.so/v1/script-sequences/e799e6a3-b43b-4466-a455-eb224a8f9bf1' \
-H "Authorization: Bearer $API_KEY" \
-H "Fansquare-Version: Amethyste" \
-H "Content-Type: application/json" \
-d '{
"name": "Lena",
"steps": [
{
"id": "05d8446f-24ff-403e-acc9-c66c59b9ca74",
"title": "string",
"context_note": "string",
"options": [
{
"id": "59d4364a-a19e-4efb-a647-e8d32ade0d3c",
"script_id": "7668136a-d6ea-4b9d-a45d-f8b902de321f",
"condition": "any",
"label": "Orders to accounting",
"delay_hours": 12,
"context_note": "string"
}
]
}
]
}'{
"id": "e799e6a3-b43b-4466-a455-eb224a8f9bf1",
"creator_id": "m81IhLxdhzDGYs54rNp2",
"name": "Lena",
"status": "draft",
"published_at": null,
"created_at": "2026-10-12T21:14:00.000Z",
"updated_at": "2026-10-12T21:14:00.000Z",
"steps": [
{
"id": "05d8446f-24ff-403e-acc9-c66c59b9ca74",
"title": "string",
"context_note": "string",
"options": [
{
"id": "59d4364a-a19e-4efb-a647-e8d32ade0d3c",
"script_id": "7668136a-d6ea-4b9d-a45d-f8b902de321f",
"condition": "any",
"label": "Orders to accounting",
"delay_hours": 12,
"context_note": "string"
}
]
}
]
}