Personalizzazione delle email con le condizioni "IF"

In questo articolo vedremo come personalizzare il contenuto dell'email utilizzando le condizioni if

❗️ Importante
Questo articolo è dedicato ad un uso avanzato della visualizzazione condizionale; in alternativa, puoi usare la funzione integrata Visualizzazione condizionale/Visibilità dei blocchi oppure Condizioni di personalizzazione avanzate

Che cosa sono le condizioni if?

Le condizioni if costituiscono il linguaggio usato nelle funzioni Visualizzazione condizionale/Visibilità dei blocchi negli editor drag & drop. Esso consente di visualizzare o nascondere i blocchi in base ad attributi dei contatti, parametri transazionali o liste dinamiche.

La potente logica offerta dalle condizioni if ti permette di aggiungere o rimuovere interi blocchi di design all'interno di una campagna email o di un modello, o di modificare del contenuto specifico all'interno di un blocco a seconda delle condizioni che hai impostato. Le condizioni if sono di due tipi:

  • Condizioni if elementari che possono essere applicate in modo rapido e semplice a singoli blocchi di design nell'editor drag & drop (versione classica) utilizzando la funzione integrata di visualizzazione condizionale
    if_conditions_editor_EN.png
  • Istruzioni if personalizzate che possono essere create e collocate direttamente nel contenuto della tua campagna email o del tuo modello.
    mceclip1.png

L'uso delle condizioni if estende efficacemente l'utilità di una singola email per più scenari, visualizzando insiemi diversi di contenuti o testo in base a:

  • attributi dei contatti definiti nella lista dei contatti
  • parametri passati in una chiamata API

Usi comuni delle condizioni if 

I modi per usare le condizioni if per personalizzare il contenuto di un'email sono moltissimi, ma alcuni dei più comuni sono: 

  1. il saluto di apertura dell'email, come Buongiorno Signor Rossi, Buongiorno Signora Bianchi, o semplicemente Buongiorno per i contatti senza dati di genere o nome in archivio
  2. un'immagine di un prodotto o promozionale, come la promozione di un'immagine di un modello che indossa lo stesso capo d'abbigliamento o la stessa taglia del tuo destinatario, o la visualizzazione dell'articolo in questione nel suo colore preferito
    If_conditions_email-2_EN.png  If_conditions_email-1.png
  3. un messaggio promozionale, come l'inclusione di un'offerta di marketing supplementare nelle tue email transazionali in base agli acquisti effettuati dal cliente o ad altri attributi
    If_conditions_email-3_EN.png  Email_3.png

Struttura di un'istruzione if

💡 Buono a sapersi
Non è consigliabile applicare condizioni if a variabili contenenti valori “in virgola mobile” in quanto potrebbero generare risultati non accurati. Esse possono tuttavia essere applicate se il valore viene passato come stringa (racchiusa fra virgolette “come queste”).

Regole principali da seguire

Ecco alcune regole da seguire quando si costruisce la propria istruzione if:

  • Un'istruzione if inizia sempre con un tag if contenente una condizione: {% if ... %}
  • Facoltativamente, l'istruzione if può contenere condizioni alternative che saranno valutate in modo sequenziale. Queste condizioni alternative iniziano con: {% elif ... %}
  • Sempre su base facoltativa, è possibile aggiungere una clausola onnicomprensiva appena prima della fine dell'istruzione if, come questa: {% else %}
  • Un'istruzione if finisce sempre con: {% endif %}

Modi comuni per strutturare un'istruzione if

Ci sono molti modi per strutturare un'istruzione if:

if

Controlla se un valore è vero o se una matrice non è vuota

{% if contact.ACTIVE %}
Congratulazioni! Hai raggiunto il tuo obiettivo del mese.
{% endif %}

---

{% if params.tutors %}

{% for tutor in params.tutors %}
I seguenti consulenti sono disponibili per aiutarti:
<ol>
<li>{{ tutor.name }}</li>
{% endfor %}
</ol>
{% endif %}

==

Controlla se un'espressione è vera

{% if coupon == “BENVENUTO” %}
<p>Benvenuto nella nostra lista! Ecco il tuo primo coupon: BENVENUTO25</p>
{% endif %} 

---

{% if contact.DONOR == true %}
<b>Grazie per il tuo supporto!</b>
{% endif %}

if, in

Controlla se esiste un valore (sottostringa) in una stringa o se esiste una variabile in una matrice

{% if “@example.com" in "bob@example.com" %}
Questo compare in quanto "@example.com" è una sottostringa di "bob@example.com"
{% endif %}

---

{% if "Piano" in params.types %}
Attenzione! Il tuo ordine contiene articoli pesanti. Devi essere presente per la consegna.
{% endif %}

not

Controlla se un valore è falso

{% if not user.subscribed %}
   <p>Non sei iscritto ai nostri avvisi di promozioni segrete. Registrati qui.</p>
{% endif %}

and / or

Valuta condizioni multiple

{% if temperature > 10 and temperature < 55 %}
   <p>Brr. Che freddo! Eccoti un buono per uno sconto del 20% su una bevanda calda, solo per oggi.</p>
{% endif %}

---

{% if contact.LANG == “FR” and contact.COUNTRY == “Canada” %}
{% endif %}

---

{% if contact.COUNTRY == “Stati Uniti” or contact.COUNTRY == “Canada” %}
{% endif %}

elif, else

Valuta ramificazioni multiple

 Buongiorno {% if contact.GENDER == "Maschio" %} Sig. {{ contact.LASTNAME }}, 
{% elif contact.GENDER == "Femmina" %} Sig.a {{ contact.LASTNAME }}, 
{% else %} gentile utente, {% endif %} 

--- 

{% if event.paid %}
    Il tuo posto è prenotato. Grazie per aver inviato il pagamento.
{% elif event.registered %}
    Il tuo posto è prenotato ma la prenotazione sarà annullata se il pagamento non viene effettuato entro il 2 gennaio.
{% else %}
    C'è ancora tempo per registrarsi! Clicca qui.
{% endif %}

Come vengono elaborate le istruzioni if

💡 Buono a sapersi
Se trovi che questa sezione sia troppo tecnica, ti raccomandiamo di passare alla sezione Esempi pratici più avanti in questo articolo.

La condizione if è quella che viene inserita fra i tag {% if ... %} e {% elif ... %}. Quando elabora l'istruzione if, il sistema valuta la condizione e:

  • se la condizione è soddisfatta, verrà visualizzata la riga successiva, ipotizzando che si tratti di una riga di testo (potrebbe anche essere una riga di codice, dato che puoi usare il nostro linguaggio di creazione di modelli per eseguire un'operazione dall'interno dell'istruzione if, nel qual caso verrà eseguita la riga di codice).
  • se la condizione non è soddisfatta, la riga successiva sarà ignorata e il sistema passerà a valutare la prossima condizione {% elif ... %} (se esiste) o a elaborare la clausola onnicomprensiva {% else %} (anche in questo caso, se esiste). Altrimenti, raggiungerà il tag {% endif %} e nell'ambito di questa istruzione if non succederà nient'altro.

Non appena una condizione viene soddisfatta, il sistema tralascerà qualunque altra condizione {% elif ... %} o clausola onnicomprensiva {% else %} rimanente. Questo significa che a volte è necessario pensare all'ordine migliore in cui disporre le condizioni all'interno dell'istruzione if (altre volte, l'ordine non avrà importanza).

Creazione delle condizioni if

Per adattare un pezzo di testo (detto anche “stringa”) nel caso di un attributo di "Text", puoi usare: {% if contact.GENDER == "Maschio" %}. Questa condizione farebbe sì che la seguente riga dell'istruzione venga elaborata solo se l'attributo contact.GENDER è uguale a “Maschio”.

Se vuoi che venga valutato se un attributo contiene un valore, deve essere inserito nella condizione solo il nome dell'attributo, senza ulteriore logica. Per esempio, per {% if contact.FIRSTNAME %}, se ci sono dati memorizzati in contact.FIRSTNAME, verrà elaborata la riga successiva nell'istruzione, mentre se  contact.FIRSTNAME è vuoto, la riga successiva verrà saltata.

Questo approccio può essere usato anche nel caso di attributi "booleani". La condizione {% if contact.IS_REGISTERED %} sarebbe soddisfatta se contact.IS_REGISTERED è un attributo "booleano" impostato su "true", mentre se fosse impostato su "false" o non contenesse alcun valore, la condizione non sarebbe soddisfatta.

Esempi pratici

Ecco alcuni esempi pratici basati sulle istruzioni if usate più comunemente.

Uso di un'istruzione if per visualizzare testo supplementare solo per certi contatti

Supponiamo per esempio che la tua lista di contatti includa un attributo "booleano" chiamato "MEMBER" che è impostato su "true" se il contatto ha acquistato un abbonamento. Potresti voler aggiungere un messaggio supplementare per questi contatti. Puoi ottenere questo risultato con la seguente istruzione if:  

{% if contact.MEMBER %}
Grazie per aver rinnovato il tuo abbonamento!
{% endif %}

Visualizzazione di un saluto personalizzato se il nome del contatto è noto, e di un saluto generico in caso contrario

Questo è utile se vuoi includere un saluto come "Gentile {{ contact.FIRSTNAME }}" nella tua email, ma non hai dati per l'attributo FIRSTNAME per tutti i tuoi contatti.

{% if contact.FIRSTNAME %}
Gentile {{ contact.FIRSTNAME }},
{% else %}
Gentile Cliente,
{% endif %}

Visualizzazione di una formula di cortesia in base al sesso del contatto, e di un saluto generico in caso contrario

Oltre a usare le condizioni if per verificare se un valore è vero o semplicemente se esiste un valore, puoi anche verificare i valori falsi, o valutare condizioni multiple o rami multipli. 

Seguendo l'esempio comune della personalizzazione del saluto di apertura di un'email, potresti voler visualizzare uno dei tre possibili saluti a seconda che l'attributo del contatto per GENDER sia Maschio, Femmina o vuoto. In questo caso, puoi usare i tag {% elif %} per aggiungere un contenuto alternativo quando il valore di GENDER è Femmina, e {% else %} per aggiungere un saluto di riserva per qualsiasi altro caso:

Buongiorno {% if contact.GENDER == "Maschio" %} Sig. {{ contact.LASTNAME }}, 
{% elif contact.GENDER == "Femmina" %} Sig.a {{ contact.LASTNAME }},
{% else %} gentile utente, {% endif %}

⏩ E adesso?

Mentre questi esempi si sono concentrati sulla strutturazione delle condizioni if con gli attributi dei contatti, puoi anche applicare queste condizioni ai parametri transazionali all'interno dell'editor drag & drop (versione classica) o costruendole manualmente nella tua email: