Passer au contenu principal

Utilisez le templating Liquid pour la personnalisation des messages

Découvrez comment utiliser la syntaxe Liquid pour une personnalisation avancée et du contenu dynamique

Écrit par Ira

Le templating Liquid vous permet de créer des messages personnalisés avec une logique avancée, comme afficher un contenu différent en fonction de la localisation du client (e), utiliser un texte de secours lorsque des données sont manquantes, ou formater des dates et des prix de manière dynamique. Utilisez Liquid dans les campagnes Email, SMS et notifications push.


Avant de commencer

  • Le templating Liquid fonctionne dans les Campagnes et l'Automatisation – Email, SMS et Notifications Push prennent tous en charge les objets et filtres Liquid.

  • Testez la personnalisation avant d'envoyer Les emails de test n'incluent pas de données de contact réelles. Les valeurs de secours sont affichées lorsqu'unpar défaut : le filtre est utilisé.Utilisez l'aperçu dynamique ou un contact de test pour voir les valeurs de contact réelles.

  • Ajoutez toujours des valeurs de fallback – Utilisez | par défaut : 'texte' pour éviter les espaces vides lorsque les données de contact sont manquantes.

  • Omnisend utilise une syntaxe Liquid modifiée – Remplacez les accolades de Shopify {{ }} par des crochets carrés [[ ]].

💡Nouveau dans la personnalisation ? Commencez par la personnalisation standard avant d'utiliser Liquid. Liquid est destiné à des cas d'utilisation avancés.

Aperçu : Qu'est-ce que Liquid

Liquid est un langage de template open-source créé par Shopify. Il vous permet d'insérer du contenu dynamique dans les messages en utilisant trois éléments :

  1. Objets Variables qui affichent des données de contact ou de commande ([[ contact.first_name ]]).

  2. Tags – Logique et flux de contrôle ([% if contact.country == 'France' %])

  3. Filtres Modifier la sortie ([[ contact.first_name | capitalize ]]

Omnisend utilise une version modifiée de Liquid :

  • Objets : Utilisez [[ ]] au lieu de {{ }} - Exemple : [[ contact.first_name ]]).

  • Balises : Utilisez [% %] au lieu de {% %} - Exemple : [% if contact.country == 'France' %]

En savoir plus sur Liquid dans la documentation de Shopify et n'oubliez pas de remplacer les accolades par des crochets dans Omnisend.

Objets

Les objets sont des variables qui produisent du contenu dynamique à partir des profils de contact, des commandes ou de vos paramètres de compte. Les objets sont toujours entourés de doubles crochets.

[[ contact.first_name ]]

Groupes d'objets disponibles :

  • Propriétés de contact : [[ contact.variable ]] (nom, email, emplacement, propriétés personnalisées)

  • Propriétés du compte : [[ account.variable ]] (nom de la boutique, site web, devise)

  • Propriétés de commande : [[ order.variable ]] (ID de commande, total, articles) – Automatisation uniquement

  • Propriétés du panier : [[ cart.variable ]] (URL du panier abandonné) – Automatisation uniquement

  • Propriétés de date : [[ current_date ]] (jour actuel, mois, année)

Voir le Tableau de référence des objets complet ci-dessous.

Filtres

Les filtres modifient la sortie d'un objet Liquid. Les filtres sont séparés par un symbole pipe |.


Exemple :

[[ 'mywebsite.com/orders/' | append: order.order_id ]]

Filtres courants :

  • default – Ajouter un texte de secours lorsque les données sont manquantes :[[ contact.first_name | default: 'there' ]]

  • capitaliser – Mettre en majuscule la première lettre :[[ contact.city | capitalize ]]

  • upcase – Convertir en majuscules :[[ contact.country | upcase ]]

  • append – Ajouter du texte à la fin :[[ account.website | append: '/sale' ]]

  • date – Formater les dates :[[ current_date | date:'%B %d, %Y' ]] → "13 mai 2026"

  • vocatif – Ajuster les noms à la forme vocative dans les langues prises en charge :[[ contact.first_name | vocative ]]

En savoir plus sur les filtres Liquid dans la documentation de Shopify – n'oubliez pas d'utiliser la syntaxe [[ ]] d'Omnisend.

Tags (Automatisation uniquement)

Les balises créent une logique et contrôlent le flux dans les messages. Les tags sont entourés de [% %] accolades et ne produisent aucun texte visible.

Exemple :

[% if contact.first_name %] Hi [[ contact.first_name ]] [% endif %]

⚠️ Les tags ne fonctionnent que dans l'Automatisation – pas dans les Campagnes. En savoir plus sur les balises Liquid dans la documentation de Shopify.

Cas d'utilisation courants

Voici plusieurs cas d'utilisation courants utiles pour la syntaxe Liquid :

Personnalisation

Hi [[ contact.first_name ]], welcome to Omnisend!

Sortie : "Salut Sarah, bienvenue chez Omnisend !"

💡 Conseil : Ce filtre ajuste automatiquement le nom à sa forme vocative dans les langues prises en charge, rendant vos messages plus naturels et personnels. Cela peut être réalisé en utilisant personnalisation vocative: [[ contact.first_name | vocative ]]

Personnalisation avec secours

Hi [[ contact.first_name | default: 'there' ]], welcome to Omnisend!

Sortie (si le prénom est manquant) : "Bonjour, bienvenue chez Omnisend !"

4a1 Pourquoi utiliser des secours ?
Si le profil d'un contact manque de données (par exemple, pas de prénom), les tags de personnalisation afficheront des espaces vides. Les secours préviennent cela :

  • Avec un fallback : Salut [[ contact.first_name | default: 'there' ]] "Salut là-bas"

  • Sans fallback : Salut [[ contact.first_name ]] "Salut "

Ajoutez toujours des valeurs de secours pour éviter les espaces vides gênants.

Insertion de variables dans les messages

Insérer des variables Liquid dans :

  • Lignes de sujet des emails :N'oubliez pas votre panier, [[ contact.first_name ]] !

  • Texte du corps de l'email :Le total de votre commande : [[ order.total_price ]] [[ order.currency ]]

  • Messages SMS :Salut [[ contact.first_name ]], votre commande #[[ order.order_number ]] a été expédiée !

  • Notifications push :[[ contact.first_name ]], 20 % de réduction se termine aujourd'hui

  • Liens de bouton :[[ account.website ]]/orders/[[ order.order_id ]]

Logique conditionnelle (Automatisations uniquement)

Utilisez des instructions conditionnelles pour afficher un contenu différent en fonction des données de Contact (e).

Localisation linguistique

[% if contact.custom_properties.language == 'Spanish' %] Hola [[ contact.first_name ]]! [% elsif contact.custom_properties.language == 'French' %] Bonjour [[ contact.first_name ]]! [% else %] Hi [[ contact.first_name ]]! [% endif %]

Contenu basé sur la localisation

[% if contact.country == 'UK' or contact.country == 'Ireland' %] Have you visited our newest flagship store in London? [% endif %]

Mise en forme

Mettre en majuscule la première lettre

Hi [[ contact.first_name | capitalize ]]

Sortie : "Salut Sarah" → "Salut Sarah"

Ajouter du texte personnalisé

[% assign campaign_destination = '/landing_page.html' %]  [[ account.website | append: campaign_destination ]]

Format des dates

Omnisend © [[ current_date | date:'%Y' ]]

Sortie : "Omnisend 2026"

Options de format de date :

  • %d – Jour (13)

  • %A – Nom du jour (Mercredi)

  • %m – Numéro du mois (05)

  • %B – Nom du mois (Mai)

  • %Y – Année (2026

Table de référence des objets

Propriétés de Contact

Titre du menu déroulant

Tag

Type de valeur

Description

Email

[[ contact.email ]]

string

Email de contact

Nom

[[ contact.first_name ]]).

string

Prénom du contact

Nom de famille

[[ contact.last_name ]]

string

Nom de famille du contact

Ville

[[ contact.city ]]

string

Ville du contact

Pays

[[ contact.country ]]

string

Pays du contact

État

[[ contact.state ]]

chaîne

État du contact

Code postal

[[ contact.postal_code ]]

chaîne

Code postal du contact

Lien de désinscription

[[ unsubscribe_link ]]

Lien du contact pour se désinscrire

Lien vers le centre de préférences

[[ preference_link ]]

Lien de préférence de contact

Propriétés personnalisées

[[ contact.custom_properties.customPropertyName ]]

object

Propriétés personnalisées du contact

Numéro de téléphone

[[ contact.phone_number ]]

string

Numéro de téléphone du contact

Propriétés du compte

Titre du menu déroulant

Tag

Type de valeur

Description

Nom

[[ account.name ]]

string

Nom du compte

Adresse

[[ account.address ]]

string

Adresse du compte

Ville

[[ account.city ]]

chaîne

Ville du compte

Code postal / ZIP

[[ account.zipCode ]]

string

Code postal du compte

Pays

[[ account.country ]]

string

Pays du compte

URL du site Web

[[ account.website ]]

string

URL du site Web du compte

Fuseau horaire

[[ account.timezone ]]

string

Fuseau horaire du compte

Devise

[[ account.currency ]]

string

Devise du compte

Propriétés de date

Titre du menu déroulant

Tag

Type de valeur

Description

Jour actuel

[[ current_date | date:'%d' ]]

-

Le jour où l'action est effectuée

Nom du jour actuel

[[ current_date | date:'%A' ]]

-

Le jour où l'action est effectuée

Mois actuel

[[ current_date | date:'%m' ]]

-

Le mois où l'action est effectuée

Nom du mois actuel

[[ current_date | date:'%B' ]]

Le nom du mois où l'action est effectuée

Année en cours

[[ current_date | date:'%Y' ]]

-

L'année en cours lorsque l'action est effectuée

Propriétés de la commande (Automatisation uniquement)

Titre du menu déroulant

Tag

Type de valeur

Description

ID de la commande

[[ order.order_id ]]

chaîne

ID de la commande

Numéro de commande

[[ order.order_number ]]

int64

Numéro de la commande

Nom de la commande

[[ order.order_name ]]

chaîne

Nom de la commande

Date de la commande

[[ order.order_date ]]

Date

Date à laquelle la commande est créée

Devise

[[ order.currency ]]

chaîne

Devise de la commande

Prix total

[[ order.total_price ]]

int64

Somme totale de la commande

Prix du sous-total

[[ order.subtotal_price ]]

int64

Somme du sous-total de la commande

Remise

[[ order.discount ]]

int64

Remise de la commande

Prix d'expédition

[[ order.shipping_price ]]

int64

Prix d'expédition de la commande

URL de la page d'état de la commande

[[ order.order_url ]]

chaîne

URL pour accéder aux informations exactes de la commande

Note de commande

[[ order.note ]]

chaîne

Notes supplémentaires sur la commande

Adresse de facturation (Automatisation uniquement)

Titre du menu déroulant

Tag

Type de valeur

Description

Prénom

[[ order.billing_address.first_name ]]

chaîne

Prénom du contact fourni dans l'adresse de facturation

Nom de famille

[[ order.billing_address.last_name ]]

string

Nom de famille du contact fourni dans l'adresse de facturation

Pays

[[ order.billing_address.country ]]

string

Pays du contact fourni dans l'adresse de facturation

Code pays

[[ order.billing_address.country_code ]]

string

Code pays du contact fourni dans l'adresse de facturation

État

[[ order.billing_address.state ]]

string

État du contact fourni dans l'adresse de facturation

Code d'état

[[ order.billing_address.state_code ]]

string

Code d'état du contact fourni dans l'adresse de facturation

Ville

[[ order.billing_address.city ]]

string

Ville du contact fournie dans l'adresse de facturation

Address 1 et

[[ order.billing_address.address1 ]]

string

Adresse du contact (1ère ligne) fournie dans l'adresse de facturation

Adresse 2

[[ order.billing_address.address2 ]]

string

Adresse du contact (2ème ligne) fournie dans l'adresse de facturation

Code postal

[[ order.billing_address.zip ]]

string

Code postal du contact fourni dans l'adresse de facturation

Société

[[ order.billing_address.company ]]

string

Titre de la société du contact fourni dans l'adresse de facturation

Téléphone

[[ order.billing_address.phone ]]

string

Numéro de téléphone du contact fourni dans l'adresse de facturation

Adresse de livraison (Automatisation uniquement)

Titre du menu déroulant

Tag

Type de valeur

Description

Prénom

[[ order.shipping_address.first_name ]]

chaîne

Prénom du contact fourni dans l'adresse de livraison

Nom de famille

[[ order.shipping_address.last_name ]]

chaîne

Nom de famille du contact fourni dans l'adresse de livraison

Pays

[[ order.shipping_address.country ]]

chaîne

Pays du contact fourni dans l'adresse de livraison

Code pays

[[ order.shipping_address.country_code ]]

chaîne

Code pays du contact fourni dans l'adresse de livraison

État

[[ order.shipping_address.state ]]

chaîne

État du contact fourni dans l'adresse de livraison

Code de l'état

[[ order.shipping_address.state_code ]]

chaîne

Code de l'état du contact fourni dans l'adresse de livraison

Ville

[[ order.shipping_address.city ]]

chaîne

Ville du contact fournie dans l'adresse de livraison

Address 1 et

[[ order.shipping_address.address1 ]]

chaîne

Adresse du contact (1ère ligne) fournie dans l'adresse de livraison

Adresse 2

[[ order.shipping_address.address2 ]]

chaîne

Adresse du contact (2ème ligne) fournie dans l'adresse de livraison

Code postal / ZIP

[[ order.shipping_address.zip ]]

chaîne

Code postal / ZIP du contact fourni dans l'adresse de livraison

Société

[[ order.shipping_address.company ]]

chaîne

Titre de la société du contact fourni dans l'adresse de livraison

Téléphone

[[ order.shipping_address.phone ]]

chaîne

Numéro de téléphone du contact fourni dans l'adresse de livraison

Propriétés du Panier (Automatisation uniquement)

Titre du menu déroulant

Tag

Type de valeur

Description

URL du panier abandonné

[[ abandoned_cart.recover_url ]]

chaîne

URL pour atteindre/récupérer le panier abandonné

Dépannage

La personnalisation affiche le code brut dans les e-mails

Cause : Vous visualisez un e-mail de test au lieu d'un e-mail en direct.

Solution : Les e-mails de test affichent toujours les balises Liquid brutes ([[ contact.first_name ]]). Pour tester la personnalisation :

  • Utilisez Test & Preview dans l'éditeur et sélectionnez un vrai contact.

  • Ou envoyez la campagne/l'automatisation en direct à votre propre email (assurez-vous que le profil de votre contact contient des données).

La personnalisation ne se transforme pas dans les e-mails en direct.

Cause : Le tag Liquid peut avoir perdu son intégrité s'il a été partiellement modifié.

Solution : Supprimez l'ensemble de la balise de personnalisation et réinsérez-la en utilisant le Icône de tag de personnalisation dans la barre d'outils, ou tapez@ dans le bloc de texte. Cela garantit que la balise est correctement formatée.

Le texte de secours ne fonctionne pas

Cause : Syntaxe incorrecte ou guillemets manquants.

Solution : Assurez-vous que les valeurs de secours sont entourées de guillemets :

  • [[ contact.first_name | default: 'there' ]]

  • [[ contact.first_name | default: there ]]

La logique conditionnelle ne fonctionne pas dans les Campagnes

Cause : Les tags et les déclarations conditionnelles ne fonctionnent que dans les Flux de travail d'automatisation.

Solution : Utilisez la logique conditionnelle dans les automatisations – pas dans les Campagnes.

FAQ

Puis-je utiliser Liquid dans les SMS et les notifications push ?

Oui. Les objets et filtres Liquid fonctionnent dans les Email, SMS et notifications push. La logique conditionnelle ne fonctionne que dans l'automatisation.

Quelle est la différence entre {{ }} et [[ ]] ?

Shopify utilise {{ }} pour les objets Liquid. Omnisend utilise [[ ]]. Si vous copiez le code Liquid de la documentation de Shopify, remplacez les accolades par des crochets.

Oui. Ajoutez toujours des valeurs de secours pour éviter les espaces vides lorsque les données de contact sont manquantes :
[[ contact.first_name | default: 'there' ]]

Puis-je combiner plusieurs filtres ?

Oui. Chaînez les filtres avec des symboles | :
[[ contact.first_name | capitalize | default: 'there' ]]

Où puis-je trouver plus d'exemples Liquid ?

En savoir plus dans la documentation Liquid de Shopify – n'oubliez pas de remplacer {{ }} par [[ ]] et {% %} par [% %] dans Omnisend.


Vous êtes le bienvenu pour contacter notre équipe de support primée pour toute assistance supplémentaire via le chat intégré ou à [email protected].

Avez-vous trouvé la réponse à votre question ?