Script sequences
Create a script sequence
/v1/script-sequencesCreates a whole sequence in one call, from existing scripts of one creator (it points to them, it never copies them). Each step has a title and 1 to 5 options; each option sends a script under a condition, judged on what the fan did since the message of the previous step. The first step only takes any options. The sequence is published: chatters are offered it in the conversation right away. Show the user the sequence before creating it.
write:scriptscurl -X POST 'https://api.fansquare.so/v1/script-sequences' \
-H "Authorization: Bearer $API_KEY" \
-H "Fansquare-Version: Amethyste" \
-H "Content-Type: application/json" \
-d '{
"creator_id": "m81IhLxdhzDGYs54rNp2",
"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": "40a6e358-bd2a-4cff-a59e-5709874d3f5b",
"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.
Body
application/json
creator_idstringrequiredFansquare creator id (see GET /v1/creators).
min length 1namestringrequiredName 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
Created, 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 POST 'https://api.fansquare.so/v1/script-sequences' \
-H "Authorization: Bearer $API_KEY" \
-H "Fansquare-Version: Amethyste" \
-H "Content-Type: application/json" \
-d '{
"creator_id": "m81IhLxdhzDGYs54rNp2",
"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": "40a6e358-bd2a-4cff-a59e-5709874d3f5b",
"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"
}
]
}
]
}