LanaChat

API: scripturi, pași și foldere

5 min de cititActualizat Markdown

Un script este o secvență fixă de pași pentru o creatoare: fiecare pas este un text, media opțională din Vault, un preț în Stars și o așteptare înainte de următorul. Scripturile stau în foldere. Un singur script per creatoare poate fi marcat first: acesta rulează la conversațiile noi.

Endpoints #

MethodPathDescriptionPermissionStatus
GET/scriptsListează scripturile (creator_id= obligatoriu, folder_id=, active=true)can_setupPlanned
POST/scriptsCreează un script cu pașii săican_setupPlanned
GET/scripts/{id}Un script și pașii săican_setupPlanned
PUT/scripts/{id}Înlocuiește un script (nume, pași, folder, conturi)can_setupPlanned
PATCH/scripts/{id}Activează/dezactivează, marchează first, mută într-un foldercan_setupPlanned
POST/scripts/{id}/duplicateCopiază un script (copie niciodată first)can_setupPlanned
DELETE/scripts/{id}Șterge un scriptcan_setupPlanned
GET/scripts/foldersFolderele unei creatoare (creator_id=)can_setupPlanned
POST/scripts/foldersCreează un foldercan_setupPlanned
PATCH/scripts/folders/{id}Redenumește un foldercan_setupPlanned
DELETE/scripts/folders/{id}Șterge un folder; scripturile lui se mută în "No folder"can_setupPlanned
POST/conversations/{id}/scriptRulează un script pe o conversație (vezi Conversations)can_chatPlanned

Obiectul script #

{
  "id": "scr_204",
  "creator_id": "cr_lea",
  "name": "Welcome message",
  "goal": "First sale within the first day",
  "folder_id": "fld_12",
  "active": true,
  "first": true,
  "account_ids": null,
  "steps": [
    { "id": "st_1", "name": "Hello", "text": "Hey you 😊 glad you found me here", "media": [], "wait_minutes": 0, "pricing": { "mode": "free" } },
    { "id": "st_2", "name": "First set", "text": "Made this one this morning…", "media": ["med_5521", "med_5522"], "wait_minutes": 20, "pricing": { "mode": "paid", "stars": 250, "discount_stars": 200 } }
  ],
  "created_at": "2026-09-30T10:00:00Z",
  "updated_at": "2026-10-05T16:22:00Z"
}
FieldTypeDescription
idstringÎncepe cu scr_
creator_idstringCreatoarea căreia îi sunt adresate fanilor
namestringNumele în Console
goalstring sau nullScopul scriptului, în cuvintele tale
folder_idstring sau nullFolderul său; null înseamnă "No folder"
activebooleanfalse înseamnă că nu rulează niciodată
firstbooleantrue înseamnă că rulează la conversațiile noi
account_idsarray sau nullnull înseamnă toate conturile Telegram ale creatoarei; un array înseamnă doar acelea (cel puțin unul)
stepsarrayPașii, în ordine (vezi mai jos)
created_at, updated_atstringISO 8601, UTC

Fiecare pas are:

FieldTypeDescription
idstringÎncepe cu st_
namestringNumele în editor
textstringMesajul primit de fan
mediaarray de stringuriId-uri media din Vault al creatoarei
wait_minutesnumberAșteptarea înainte de trimiterea pasului
pricing.modestringfree, vault (fiecare media la prețul din Vault) sau paid (un preț pentru tot pasul)
pricing.starsnumberPrețul în Stars, când mode este paid
pricing.discount_starsnumberPreț opțional mai mic în Stars

Setarea first: true pe un script îl scoate din celelalte scripturi ale creatoarei.

Scripturi #

Listează scripturi #

GET /scripts · can_setup

ParameterTypeRequiredDescription
creator_idstringDaCreatoarea
folder_idstringNuDoar scripturile din acest folder
activebooleanNutrue listează doar scripturile active
limit, cursornumber, stringNuPaginare
curl "https://api.lanachat.ai/v1/scripts?creator_id=cr_lea&active=true" \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

Răspunsul este o pagină de obiecte script în data, cu next_cursor. Fără creator_id API răspunde cu 400.

Creează un script #

POST /scripts · can_setup

ParameterTypeRequiredDescription
creator_idstringDaCreatoarea
namestringDaNumele său
stepsarrayDaPașii, ca în obiectul de mai sus (fără id)
goalstringNuScopul
folder_idstringNuUn folder al aceleiași creatoare
account_idsarray de stringuriNuDoar aceste conturi; omite pentru toate
curl -X POST https://api.lanachat.ai/v1/scripts \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"creator_id": "cr_lea", "name": "Win back", "steps": [{"name": "Miss you", "text": "Hey stranger, where did you go?", "wait_minutes": 0, "pricing": {"mode": "free"}}]}'
{
  "id": "scr_231",
  "creator_id": "cr_lea",
  "name": "Win back",
  "goal": null,
  "folder_id": null,
  "active": true,
  "first": false,
  "account_ids": null,
  "steps": [ { "id": "st_1", "name": "Miss you", "text": "Hey stranger, where did you go?", "media": [], "wait_minutes": 0, "pricing": { "mode": "free" } } ],
  "created_at": "2026-10-06T14:30:00Z",
  "updated_at": "2026-10-06T14:30:00Z"
}

Răspunsul este scriptul nou (201), activ, nu first, fără folder. Un id media din Vault-ul altei creatoare este refuzat (400).

Obține un script #

GET /scripts/{id} · can_setup

curl https://api.lanachat.ai/v1/scripts/scr_204 \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

Răspunsul este obiectul script cu toți pașii săi.

Înlocuiește un script #

PUT /scripts/{id} · can_setup

Trimite întregul script: name, steps, folder_id și account_ids, ca la Creează un script. Pașii omişi sunt șterși.

curl -X PUT https://api.lanachat.ai/v1/scripts/scr_231 \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "Win back", "folder_id": "fld_12", "account_ids": null, "steps": [{"name": "Miss you", "text": "Hey stranger, where did you go?", "wait_minutes": 0, "pricing": {"mode": "free"}}, {"name": "Gift", "text": "Kept this one for you", "media": ["med_5522"], "wait_minutes": 30, "pricing": {"mode": "paid", "stars": 200}}]}'

Răspunsul este scriptul actualizat. Un array gol pentru account_ids răspunde cu 400: folosește null pentru toate conturile.

Activează, marchează first, mută #

PATCH /scripts/{id} · can_setup

ParameterTypeRequiredDescription
activebooleanNuActivează sau dezactivează
firstbooleanNutrue îl face scriptul pentru conversațiile noi
folder_idstring sau nullNuMută-l; null înseamnă "No folder"
curl -X PATCH https://api.lanachat.ai/v1/scripts/scr_231 \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"first": true}'

Răspunsul este scriptul actualizat. Scriptul anterior marcat first al creatoarei pierde first.

Duplică un script #

POST /scripts/{id}/duplicate · can_setup

curl -X POST https://api.lanachat.ai/v1/scripts/scr_204/duplicate \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)"

Răspunsul este copia (201). Copia nu este niciodată first.

Șterge un script #

DELETE /scripts/{id} · can_setup

curl -X DELETE https://api.lanachat.ai/v1/scripts/scr_231 \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

Foldere #

Listează foldere #

GET /scripts/folders · can_setup

ParameterTypeRequiredDescription
creator_idstringDaCreatoarea
curl "https://api.lanachat.ai/v1/scripts/folders?creator_id=cr_lea" \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

Creează un folder #

POST /scripts/folders · can_setup

ParameterTypeRequiredDescription
creator_idstringDaCreatoarea
namestringDaNumele folderului
curl -X POST https://api.lanachat.ai/v1/scripts/folders \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"creator_id": "cr_lea", "name": "Win back"}'

Redenumește un folder #

PATCH /scripts/folders/{id} · can_setup

curl -X PATCH https://api.lanachat.ai/v1/scripts/folders/fld_12 \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "Welcome"}'

Șterge un folder #

DELETE /scripts/folders/{id} · can_setup

curl -X DELETE https://api.lanachat.ai/v1/scripts/folders/fld_12 \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

Scripturile lui sunt păstrate și mutate în "No folder".

Rulează un script pe o conversație #

POST /conversations/{id}/script · can_chat

Pornește un script pe conversația unui fan: state devine script până se termină. Corpul, exemplul și regulile sunt în Conversations.

Ultimele noutăți despre Lana pe Telegram

Noutăți și invitații în beta, mai întâi pe canal.