Premessa
È possibile inserire in un messaggio in formato html del ″testo dinamico″ (o ″campo dinamico″) per personalizzare il messaggio. Ad esempio, per fare in modo che il saluto iniziale “Gentile …,” sia personalizzato con il nome di ogni destinatario. Oppure includendo contenuti dall’esterno.
Obiettivo
Saper utilizzare il testo dinamico per personalizzare qualunque parte del messaggio.
Codici supportati
Ecco un elenco dei principali codici dinamici gestiti da Contactsend.
Nome del codice | Apertura | Chiusura | Canali | Descrizione |
---|---|---|---|---|
USER_DATA_TAGS | ${ | }$ | tutti | Valori presi, per ciascun destinatario, da campi del database associato al gruppo email di spedizione. |
INLINE_CONTENT_TAGS | @( | )@ | URL che permette di incorporare fisicamente nel messaggio un file (ad esempio delle immagini). | |
DYNAMIC_INLINE_CONTENT_TAGS | ^( | )^ | Simile a INLINE_CONTENT_TAGS ma supporta anche altri codici dinamici nell’URL, come: USER_DATA_TAGS, NOTES_TAGS | |
TRACKED_URL_TAGS | %{ | }% | Genera la sintassi per il tracciamento statistico dei click sui link del messaggio. | |
DYNAMIC_TRACKED_URL_TAGS | ^{ | }^ | Simile a TRACKED_URL_TAGS ma supporta l’inserimento di altri codici dinamici, come: USER_DATA_TAGS, NOTES_TAGS | |
ERB_TAGS | <% | %> | tutti | Interpreta eventuale codice ERB presente nel template. |
EXTERNAL_SOURCE_TAGS | @{ | }@ | tutti | Viene recuperato e incluso nel messaggio il contenuto (tipicamente un file html) specificato in un URL. |
INCLUDE_URL_TAGS | <@ | @> | tutti | Simile ad EXTERNAL_URL_TAGS ma supporta anche parametri dinamici nell’URL, come: USER_DATA_TAGS, NOTES_TAGS |
NOTES_TAGS | <{ | }> | tutti | Permette di includere il valore di una delle etichette salvate. |
Di seguito, per le diverse parti del messaggio, viene elencato l’ordine (dall’alto verso il basso) in cui vengono processati. L’ordine è importante nel caso si voglia utilizzare un codice dinamico in una determinata fase della creazione delle spedizioni: per poterlo fare, è necessario che Contactsend in quella fase abbia già estratto i valori relativi a quel codice.
Oggetto:
1. USER_DATA_TAGS
2. ERB_TAGS
Mail from e Reply to:
1. USER_DATA_TAGS
Corpo in HTML
1. EXTERNAL_SOURCE_TAGS
2. INLINE_CONTENT_TAGS
3. TRACKED_URL_TAGS
4. NOTES_TAGS
5. USER_DATA_TAGS
6. ERB_TAGS
7. INCLUDE_URL_TAGS
7a. TRACKED_URL_TAGS
7a. TRACKED_URL_TAGS
8. DYNAMIC_INLINE_CONTENT_TAGS
9. DYNAMIC_TRACKED_URL_TAGS
10. USER_DATA_TAGS
Corpo in versione testuale:
1. EXTERNAL_SOURCE_TAGS
2. TRACKED_URL_TAGS
3. NOTES_TAGS
4. USER_DATA_TAGS
5. ERB_TAGS
6. INCLUDE_URL_TAGS
6a. TRACKED_URL_TAGS
6b. USER_DATA_TAGS
7. DYNAMIC_TRACKED_URL_TAGS
8. USER_DATA_TAGS
SMS
Corpo del messaggio:
1. USER_DATA_TAGS
2. INCLUDE_URL_TAGS
2a. TRACKED_URL_TAGS
2b. USER_DATA_TAGS
3. ERB_TAGS
Personalizzazione semplice
USER_DATA_TAGS
Possiamo applicare personalizzazione di base al nostro messaggio attraverso il codice “USER_DATA_TAGS” che ci permette di inserire dei valori contenuti nei campi del database associato al gruppo email che stiamo utilizzando per la spedizione.
Procedimento
- Verificare che nel database associato al gruppo email in cui si sta creando la spedizione, sia presente un campo adatto al nostro scopo.
Immaginiamo ad esempio di voler inserire un saluto iniziale personalizzato per ciasun destinatario: “Gentile Mario” per gli utenti che si chiamano Mario, gentile Alessia per chi si chiama Alessia, e così via. Sarà necessario avere nel nostro database un campo contenente il nome di ciascun utente.
Poniamo che questo campo si chiami NOME (scritto tutto in maiuscolo).
- A questo punto posizioniamoci (tramite editor visuale, PageBuilder, o direttamente nel codice html) nel punto corretto del messaggio.
- Scriviamo: Gentile ${NOME}$
Attenzione: il campo dovrà essere scritto esattamente com’è scritto nel database, rispettando maiuscole e minuscole (case sensitive).
Se ci troviamo al passaggio “Contenuto del messaggio” del processo di Crea > Spedizione (email/sms) potremo utilizzare gli appositi menù a tendina per inserire nell’html i campi dinamici. Nel caso di un messaggio email potremo personalizzare sia l’oggetto che il corpo del messaggio, che i dati mittenti (se abilitato).
È possibile inserire più di un testo dinamico nel messaggio, ad esempio:
${Saluto_iniziale}$ residente in ${indirizzo}$ , la informiamo che la sua azienda, ${NOME_AZIENDA}$ è stata scelta…
È possibile modificare in modo automatico il valore dei campi inclusi dinamicamente nel messaggio, utilizzando i:
Modificatori di campo
Sono stati implementati dei modificatori per i campi utente ovvero per i campi accessibili tramite la sintassi ${nome_campo}$ . I modificatori consentono di elaborare il contenuto di un campo utente, modificandone la visualizzazione. E’ possibile applicare più modificatori allo stesso campo utente, creando una pipeline.
La sintassi per la costruzione del modificatore è la seguente: ${nome_campo|modificatore}$ dove:
- nome_campo: è il nome del campo presente nel db utenti. E’ case sensitive, occorre scriverlo così come è stato inserito nel db di riferimento, rispettando maiuscole e minuscole.
- modificatore: il modificatore che si vuole applicare a quel campo
Di seguito modificatori introdotti e relativi esempi:
- default
- date_format
- date_parse
- string_format
- substring
- capitalize
- lower (o lowercase)
- upper (o uppercase)
- swapcase
- reverse
- urlencode
- urldecode
- replace
- md5 (o md5sum)
- base64encode
- base64decode
Permette di avere un valore di default in caso venga applicato ad un valore vuoto o nullo; se il valore non è vuoto o nullo, ritorna il valore stesso.
Esempio:
(nome = "Mario") ${nome|default:"utente"}$ => "Mario"
(nome = "") ${nome|default:"utente"}$ => "utente"
Nell’esempio se il campo è vuoto “”, sarà visualizzato utente, altrimenti il valore del campo, nel ns esempio Mario.
Caso particolare: utilizzo all’interno del tag html “a”. Supponiamo di voler usare il modificatore all’interno dell’attributo href in questo modo: href="${Domain|default:"http://nostrosito.com"}$"
per fare in modo che ciascun utente veda l’url contenuto nel suo campo Domain, e se esso è vuoto veda invede nostrosito.com
La sintassi qui sopra NON funzionerà, producendo un url non valido. Utilizzare invece: href="${Domain|default:'http://nostrosito.com'}$"
dove l’URL di default è circondato da ‘ (apice semplice) e non da ” (doppie virgolette).
Formatta il campo data secondo diversi parametri di formattazione, riportati di seguito: %d – giorno del mese come numero decimale (range da 00 a 31) %m – mese come numero decimale (range da 01 a 12) %y – anno come numero decimale su due cifre (range da 00 a 99) %Y – anno come numero decimale su quattro cifre
Esempio:
(data_nascita = 2010-04-15) ${data_nascita|date_format:"%d/%m/%Y"}$ => "15/04/2010"**
Il campo contenente la data di nascita deve essere in formato mysql, ovvero yyyy-mm-dd Se la data non è in formato mysql utilizzare prima modificatore date_parse (v. di seguito) e quindi date_format.
DATE_PARSE Crea una data da una stringa, da poter poi formattare con date_format; utilizza la stessa sintassi per la definizione della formattazione di date_format.
Esempio:
(data_nascita = "2010/04/15") ${data_nascita|date_parse:"%Y/%m/%d"|date_format:"%d-%m-%y"}$ => "15-04-10"**
STRING_FORMAT Consente di formattare una determinata stringa
Esempi:
(valore_1 = 23.5787446) ${valore_1|string_format:"%.2f"}$ => "23.58"**
Nell’esempio sopraindicato il valore_1 sarà arrotondato al secondo decimale.
SUBSTRING Permette di estrarre una porzione della stringa indicando la posizione iniziale (inclusa) e la posizione finale (esclusa). Se la posizione finale è oltre la lunghezza della stringa, il risultato terminerà con la fine della stringa. L’inizio della stringa ha posizione ″0″ (zero).
Esempi:
(valore = "abcdefg") ${valore|substring:"0":"5"}$ => "abcde" ${valore|substring:"2":"5"}$ => "cde" ${valore|substring:"2":"100"}$ => "cdefg"
CAPITALIZE Rende maiuscola la prima lettera della stringa e minuscole le rimanenti.
Esempio:
(full_name = "mario Rossi") ${full_name|capitalize}$ => "Mario rossi"
LOWER (o LOWERCASE) Rende minuscola l’intera stringa
Esempio:
(full_name = "Mario Rossi") ${full_name|lower}$ => "mario rossi"
UPPER (o UPPERCASE) Rende maiuscola l’intera stringa
Esempio:
(full_name = "mario Rossi") ${full_name|uppercase}$ => "MARIO ROSSI" **
SWAPCASE Maiuscole convertite in minuscole e viceversa
Esempio:
(full_name = "Mario Rossi") ${full_name|swapcase}$ => "mARIO rOSSI" **
Esempio:
(full_name = "Mario Rossi") ${full_name|reverse}$ => "issoR oiraM"
URLENCODE Codifica la stringa per poterla utilizzare negli URL
Esempio:
(full_name = "Mario/Rossi") ${full_name|urlencode}$ => "Mario%2FRossi"
URLDECODE Inversa di urlencode
REPLACE Trova e sostituisci; viene fatta distinzione tra minuscole e maiuscole (case sensitive) Il primo parametro è la stringa da sostituire, il secondo la stringa da usare per la sostituzione.
Esempio:
(full_name = "Mario Rossi") ${full_name|replace:"Mario":"Luigi"}$ => "Luigi Rossi"
Nell’esempio sopraindicato i campi con stringa “Mario” verranno sostituiti con la stringa Luigi.
– md5 (o md5sum) Calcola il checksum md5
Esempio:
(full_name = "Mario Rossi") ${full_name|md5}$ => "a5887a62d652d2b476e57f20bbbc8c2c"
Esempio:
(full_name = "Mario Rossi") ${full_name|base64encod}$ => "TWFyaW8gUm9zc2k="
BASE64DECODE Inversa di base64encode
Pipeling
Ed è possibile applicare più modificatori contemporaneamente, creando una pipeline, ossia il risultato di un modificatore può essere passato come dato di ingresso al modificatore successivo.
Esempio:
(campo2 = "" ${campo2|default:"Non Disponibile"|lowercase|urlencode}$ => "non+disponibile"
(data_nascita = "2010/04/15") ${data_nascita|date_parse:"%Y/%m/%d"|date_format:"%d-%m-%y"}$ => "15-04-10"
Personalizzazione avanzata
EXTERNAL_SOURCE_TAGS
Inserendo nel codice html degli appositi tag, è possibile includere in quel punto un contenuto esterno (tipicamente, una porzione di codice html o un intero file html).
- Supponiamo ad esempio di voler inviare automaticamente tutti i giorni i contenuto della pagina web presente all’indirizzo http://nostrosito.com/notiziedioggi.html
- Al passaggio ″Contenuto del messaggio″ del processo di Crea > Spedizione email, inseriamo nel corpo html del messaggio la seguente sintassi:@{http://nostrosito.com/notiziedioggi.html}@
- Il contenuto presente a quell’indirizzo web verrà automaticamente incluso nel messaggio.
Attenzione: il contenuto sarà preso nel momento in cui il messaggio viene generato, quindi è necessario essere certi che in quel momento all’url indicato sia presente il contenuto corretto e aggiornato.
INCLUDE_URL_TAGS
Come EXTERNAL_URL_TAGS, permette di includere un file da un URL esterno, ma supporta anche la presenza di altri codici dinamici.
Ad esempio:
<@http://nostrosito.com/${provincia}$/notiziedioggi.html@>
che per gli utenti della provincia di Milano recupererà il contenuto da
http://nostrosito.com/mi/notiziedioggi.html , per gli utenti di Roma da
http://nostrosito.com/rm/notiziedioggi.html e così via.
INLINE_CONTENT_TAGS e DYNAMIC_INLINE_CONTENT_TAGS
@(https://nostrosito.com/img/foto1.jpg)@ e ^(https://nostrosito.com/img/${provincia}$/foto1.jpg)^
recuperano l’immagine presente all’URL indicato, e la incorporano nel messaggio (immagine embedded). L’uso di immagini embedded all’interno delle email da un lato le rende immediatamente visibili, perché sono codificate all’interno del messaggio stesso, non allegate né scaricate dall’esterno. Dall’altro lato, il messaggio è molto più pesante e a rischio di blocco anti-spam. Per cui sconsigliamo l’uso di immagini embedded.
TRACKED_URL_TAGS e DYNAMIC_TRACKED_URL_TAGS
Questa sintassi viene di norma inserita automaticamente da Contactsend durante il processo di creazione di una spedizione email, per permettere poi il tracciamento dei link a fini di conteggio dei click. La sintassi TRACKED_URL_TAGS può essere inserita manualmente, ad esempio per tracciare URL contenenti parametri dinamici. Ad esempio: http://nostrosito.com/index.php?${provincia}$
Nel caso in cui i parametri dinamici siano presenti in posizioni diverse dell’URL, o nel dominio stesso, si può utilizzare la sintassi DYNAMIC_TRACKED_URL_TAGS , come nei seguenti esempi: ^{http://nostrosito.com/${provincia}$/docs/index.html}^ ^{${dominio}$}^
ATTENZIONE: per non rallentare la preparazione dei messaggi e il loro invio, non utilizzare questa sintassi qualora siano presenti molti valori differenti, su spedizioni a un numero elevato di destinatari.
NOTES_TAGS
Indicando il nome di una etichetta della spedizione, permette di includerne il valore.
Ad esempio <{id_cliente}> inserirà nel punto dove il codice dinamico è presente, il valore corrispondente.