Sostituzioni e formule
Le sostituzioni sono variabili nella forma {{...}} che vengono inserite nei testi dei messaggi, nei campi delle azioni e nei template dei pulsanti quando una reazione si attiva. Le sostituzioni non riconosciute vengono lasciate così come sono. Oltre alle variabili esistono le formule per i calcoli. Il pulsante «Sostituzioni» nell'editor del messaggio aiuta a inserire le variabili.
Dati del mittente
{{first_name}},{{last_name}}— nome e cognome.{{username}}—@usernamedell'utente.{{user_id}}— ID Telegram numerico.
Dati dell'evento e della chat
{{text}}(alias{{received_message}}) — testo del messaggio in arrivo.{{message_id}}(alias{{received_message_id}}) — ID del messaggio in arrivo.{{chat_id}},{{chat_title}}(alias{{chat_name}}) — la chat in cui è avvenuto l'evento.{{topic_id}},{{topic_url}}— topic (per i forum).
Data e ora
{{date}}— data (AAAA-MM-GG),{{time}}— ora (HH:MM),{{datetime}}— data e ora.- Formattazione:
{{date:DD.MM.YYYY HH:mm}}— tokenYYYY,YY,MM,DD,HH,mm,ss.
Parametri dell'utente
{{param.chiave}}(alias{{params.chiave}}o{{recipient.chiave}}) — valore del parametro dell'iscritto. I parametri vengono popolati dalle azioni «Modifica parametri», «Salva messaggio» e dalle risposte nel dialogo.
Contesto di esecuzione (ctx)
{{ctx.chiave}}(alias{{context.chiave}}) — valori temporanei dell'esecuzione corrente: dati del webhook in arrivo, risultati delle azioni (richiesta web, query alla sorgente, AI), dati ripristinati dal pulsante (Carry), elementi del ciclo.- In un ciclo su lista, l'elemento è accessibile tramite il suo alias, ad esempio
{{item.nome}}.
Formule
La costruzione {{= espressione}} valuta l'espressione direttamente nel testo. Lo stesso motore funziona nell'azione «Calcolo» e nelle condizioni della tabella decisionale. Nelle espressioni puoi fare riferimento a parametri e valori ctx per nome, utilizzare aritmetica, confronti, logica e decine di funzioni (con supporto anche dei nomi equivalenti in russo).
Esempio: {{= ROUND(param.total * 0.9) }} — sconto del 10% sull'importo dal parametro.
Sintassi completa ed elenco delle funzioni — nella sezione Formule.
HTML nelle sostituzioni
I messaggi vengono inviati con markup HTML. Affinché un valore sostituito non rompa il layout (ad esempio quando un nome utente contiene <), i valori sostituiti vengono escapati per impostazione predefinita: i caratteri HTML diventano testo sicuro. I tag che scrivi direttamente nel testo della reazione (<b>, <a>, …) restano intatti.
Se un valore contiene già markup pronto (ad esempio un annuncio salvato in un parametro con <b>...</b>) e vuoi inserirlo così com'è, anteponi & alla sostituzione:
{{& key}}— inserimento grezzo per le sostituzioni{{...}}.{&user:key},{&recipient:key},{&global:key}— inserimento grezzo per le sostituzioni di namespace.
Il prefisso & disabilita l'escaping solo per quella singola sostituzione — sei tu a garantire l'affidabilità della fonte del valore. È meglio lasciare escapati i token controllati dall'iscritto ({{first_name}}, …).
Durante l'importazione di bot da altri costruttori, le sostituzioni di namespace {user:…}/{recipient:…}/{global:…} vengono migrate automaticamente alla forma grezza {&…} — contengono in genere valori con markup pronto, come funzionava nel costruttore di origine.
Note sul formato
Le sostituzioni {{...}} funzionano in testi, didascalie, body delle richieste e template dei pulsanti. Dai ai parametri e alle chiavi ctx nomi brevi e in caratteri latini (email, total, order_id) — sono più comodi da inserire.
Prossimi passi
- Formule — sintassi del DSL ed elenco completo delle funzioni.
- Messaggi e pulsanti — dove si usano le sostituzioni.
- Azioni — le azioni che popolano parametri e
ctx. - Raccolte e dati — archiviazione dei dati tra un'esecuzione e l'altra.