Placeholder e funzioni
I placeholder ti permettono di inserire il valore di un campo dentro un messaggio e-mail, il valore calcolato di un auto field o un Widget Rich Text.
Ad esempio, ecco come useresti i placeholder per un Task e-mail:
Dear {customer.name} {customer.lastname},
thank you for your order. The total amount is {total} and the order ID is {id}.
Best regards
In questo esempio, i placeholder {total} e {id} verranno sostituiti con i valori presi dal record corrente.
I placeholder {customer.name} e {customer.lastname} verranno sostituiti con i valori del record referenziato dal campo customer del record corrente.
Ed ecco come useresti i placeholder per un auto field:
{name} {lastname}
Questo auto field conterrà i valori concatenati dei campi name e lastname del record corrente.
Funzioni
A volte devi trasformare i valori referenziati. Ad esempio, potresti voler rendere maiuscola una stringa. È facile: basta digitare {UPPER(name)}.
Puoi anche combinare più funzioni, come negli esempi seguenti:
{UPPER(TRIM(lastname))}(questa rimuove gli spazi bianchi dal valore prima di convertirlo in maiuscolo){IF_TEXT(GT(price, 0), 'yes', 'no')}(questa stampa yes se price è maggiore di 0, altrimenti stampa no)
Le funzioni possono anche referenziare più campi. Ad esempio, supponendo di avere due campi data chiamati created e completed, puoi calcolare il numero di giorni tra loro usando {DAYS_TO(created, completed)}
Funzioni da usare sui campi testuali:
| Funzione | Restituisce | Esempio | Descrizione |
|---|---|---|---|
LOWER(<text>) | Text | LOWER(name) | Converte una stringa in minuscolo. |
UPPER(<text>) | Text | UPPER(name) | Converte una stringa in maiuscolo. |
LEFT(<text>, <num>) | Text | LEFT(name, 3) | Restituisce i primi num caratteri a sinistra della stringa. |
RIGHT(<text>, <num>) | Text | RIGHT(name, 3) | Restituisce gli ultimi num caratteri a destra della stringa. |
SUBSTR(<text>, <from>, <num>) | Text | SUBSTR(name, 2, 3) | Restituisce caratteri dal centro della stringa, a partire dalla posizione from e includendo num caratteri. Il primo carattere è numerato 1. |
TRIM(<text> [, <char>]) | Text | TRIM(name) | Rimuove gli spazi bianchi all'inizio e alla fine della stringa. Puoi anche passare un secondo argomento per rimuovere un carattere specifico invece degli spazi: TRIM(code, '-'). |
CONCAT(<text>, <text> [, ...]) | Text | CONCAT(name, ' ', lastname) | Unisce due o più valori testuali in un'unica stringa. Puoi passare argomenti aggiuntivi secondo necessità. |
IFEMPTY(<text>, <default>) | Text | IFEMPTY(name, 'n/a') | Restituisce la prima stringa se non è vuota, altrimenti la stringa fornita come secondo argomento. Utile quando vuoi definire un valore predefinito. |
IF_TEXT(<condition>, <then> [, <else>]) | Text | IF_TEXT(GT(total, 100), 'High', 'Low') | Restituisce then quando condition è vera, altrimenti else (o una stringa vuota se else è omesso). |
REGEXP_EXTRACT(<text>, <regex>) | Text | REGEXP_EXTRACT(code, '(..)$') | Applica l'espressione regolare fornita al valore di input e restituisce la prima cattura tra parentesi. Il pattern usato nell'esempio restituirà gli ultimi due caratteri. |
REGEXP_REPLACE(<text>, <regex>, <replace>) | Text | REGEXP_REPLACE(code, ' ', '_') | Cerca l'espressione regolare fornita e applica la stringa di sostituzione indicata. |
LPAD(<text>, <len>, <char>) | Text | LPAD(code, 10, '0') | Riempie a sinistra la stringa fornita per renderla lunga almeno len caratteri, anteponendo il char indicato. |
MD5(<text>) | Text | MD5(code) | Calcola l'MD5 della stringa fornita (in rappresentazione esadecimale). |
MD5_NUMERIC(<text>) | Text | MD5_NUMERIC(code) | Calcola un hash numerico derivato dall'MD5 della stringa (utile quando ti serve un'impronta stabile simile a un intero invece di testo esadecimale). |
TEXT_EQ(<text>, <text>) | Boolean | TEXT_EQ(status, 'open') | Restituisce true quando i due valori di testo sono uguali. Utile dentro IF_TEXT() per confronti tra stringhe. |
Funzioni da usare sui campi numerici:
| Funzione | Restituisce | Esempio | Descrizione |
|---|---|---|---|
MIN(<num>, <num>) | Number | MIN(field1, field2) | Restituisce il numero più basso tra i due. |
MAX(<num>, <num>) | Number | MAX(field1, field2) | Restituisce il numero più alto tra i due. |
HOURS_TO_HOURMIN(<num>) | Text | HOURS_TO_HOURMIN(field1) | Tratta la variabile di input come un numero di ore e la trasforma in una stringa di durata "HH:MM" (ad esempio, 1.5 verrebbe convertito in 1:30). |
MIN_TO_HOURMIN(<num>) | Text | MIN_TO_HOURMIN(field1) | Tratta la variabile di input come un numero di minuti e la trasforma in una stringa di durata "HH:MM" (ad esempio, 90 verrebbe convertito in 1:30). |
ROUND(<num>, <decimals>) | Number | ROUND(price, 2) | Restituisce il numero arrotondato al numero di decimali indicato. |
FLOOR(<num>) | Number | FLOOR(price) | Restituisce il numero arrotondato per difetto all'intero più vicino. |
CEILING(<num>) | Number | CEILING(price) | Restituisce il numero arrotondato per eccesso all'intero più vicino. |
ADD(<num>, <num>) | Number | ADD(price, 20) | Somma i due argomenti. |
SUBTRACT(<num>, <num>) | Number | SUBTRACT(price, 20) | Sottrae il secondo argomento dal primo. |
MULTIPLY(<num>, <num>) | Number | MULTIPLY(price, 1.2) | Calcola il prodotto dei due argomenti. |
DIVIDE(<num>, <num>) | Number | DIVIDE(price, 2) | Divide il primo argomento per il secondo. |
MOD(<num>, <num>) | Number | MOD(price, 3) | Divide il primo argomento per il secondo e restituisce il resto. |
GT(<num>, <num>) | Boolean | GT(price, 100) | Restituisce true se il primo numero è maggiore del secondo. |
LT(<num>, <num>) | Boolean | LT(qty, 1) | Restituisce true se il primo numero è minore del secondo. |
Funzioni da usare sui campi data/ora:
| Funzione | Restituisce | Esempio | Descrizione |
|---|---|---|---|
DATE(<year>, <month>, <day>) | Date | DATE(2026, 8, 10) | Costruisce una data da numeri di anno, mese e giorno (mese e giorno vengono limitati a intervalli validi). |
FORMAT(<date>, <format>) | Text | FORMAT(created, 'd/m/Y') | Renderizza la data/ora fornita come stringa usando il formato indicato. I specificatori di formato validi sono Y (anno), m (mese), d (giorno), H (24 ore), h (12 ore), i (minuti), s (secondi), A (AM/PM). |
ADD_MINUTES(<date>, <num>) | Date/time | ADD_MINUTES(created, 30) | Aggiunge il numero di minuti indicato alla data di input. |
SUB_MINUTES(<date>, <num>) | Date/time | SUB_MINUTES(created, 30) | Sottrae il numero di minuti indicato dalla data di input. |
ADD_HOURS(<date>, <num>) | Date/time | ADD_HOURS(created, 2) | Aggiunge il numero di ore indicato alla data di input. |
SUB_HOURS(<date>, <num>) | Date/time | SUB_HOURS(created, 2) | Sottrae il numero di ore indicato dalla data di input. |
ADD_DAYS(<date>, <num>) | Date/time | ADD_DAYS(created, 5) | Aggiunge il numero di giorni indicato alla data di input. |
SUB_DAYS(<date>, <num>) | Date/time | SUB_DAYS(created, 5) | Sottrae il numero di giorni indicato dalla data di input. |
ADD_MONTHS(<date>, <num>) | Date/time | ADD_MONTHS(created, 1) | Aggiunge il numero di mesi indicato alla data di input. |
SUB_MONTHS(<date>, <num>) | Date/time | SUB_MONTHS(created, 1) | Sottrae il numero di mesi indicato dalla data di input. |
ADD_YEARS(<date>, <num>) | Date/time | ADD_YEARS(created, 1) | Aggiunge il numero di anni indicato alla data di input. |
SUB_YEARS(<date>, <num>) | Date/time | SUB_YEARS(created, 1) | Sottrae il numero di anni indicato dalla data di input. |
DAYS_TO(<date>, <date>) | Number | DAYS_TO(created, completed) | Calcola la differenza in giorni tra le date fornite (seconda meno prima). |
TO_SECONDS(<datetime>) | Number | TO_SECONDS(created) | Converte un valore data/ora o ora in secondi (epoch Unix per un timestamp completo; secondi dalla mezzanotte per un valore solo ora). |
TO_MINUTES(<datetime>) | Number | TO_MINUTES(created) | Come TO_SECONDS, poi diviso per 60 — utile per calcoli di durata in minuti. |
ADD_TIME_TO_DATE(<date>, <time>) | Date/time | ADD_TIME_TO_DATE(day, time) | Combina una data e un'ora in un unico valore data/ora. |
TIME_DIFF(<datetime>, <datetime>) | Time | TIME_DIFF(end, start) | Restituisce la differenza tra due valori data/ora (o ora) come intervallo orario. |
Funzioni da usare solo nei Task:
Le funzioni seguenti possono essere usate solo nei Task o nei nomi file e non nei campi con valore automatico, perché generano valori non deterministici:
| Funzione | Restituisce | Esempio | Descrizione |
|---|---|---|---|
NOW() | Date/time | NOW() | Restituisce il timestamp corrente nel Timezone dell'app (ora locale wall-clock, non UTC). Puoi formattarlo con la funzione FORMAT(). |
RANDBETWEEN(<min>, <max>) | Number | RANDBETWEEN(111111, 999999) | Genera un numero casuale nell'intervallo specificato. |
Ti serve una funzione che non è ancora implementata? Scrivici ;-)