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.

  • Tester la personnalisation avant l'envoi – Les e-mails de test affichent les balises Liquid brutes ([[ contact.first_name ]]). Utiliser Test & Prévisualisation dans l'éditeur et sélectionnez un vrai contact pour voir la personnalisation se remplir.

  • 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 à l'aide de trois éléments :

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

  2. Balises – 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 carrés.

[[ 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 la commande : [[ order.variable ]] (ID de commande, total, articles) – Flux de travail d'automatisation uniquement

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

  • Propriétés de date : [[ current_date ]] (jour, 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 fallback lorsque les données sont manquantes :[[ contact.first_name | default: 'there' ]]

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

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

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

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

  • vocative – 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 balises sont entourées d'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 fallback

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

Sortie (si le prénom est manquant) : "Salut là-bas, bienvenue chez Omnisend !"

🔁 Pourquoi utiliser des fallbacks ?
Si le profil d'un contact manque de données (par exemple, pas de prénom), les balises de personnalisation afficheront des espaces vides. Les fallbacks empêchent cela :

  • Avec secours : Salut [[ contact.first_name | default: 'là' ]] → "Salut là"

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

Ajoutez toujours des fallback pour éviter des espaces vides gênants.

Insertion de variables dans les messages

Insérer des variables Liquid dans :

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

  • Texte du corps de l'Email :Votre commande totale : [[ 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.

Localisation de la langue

[% 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

Tableau de référence des objets

Propriétés de contact

Titre du menu déroulant

Tag

Type de valeur

Description

Email

[[ contact.email ]]

chaîne

Email de contact

Nom

[[ contact.first_name ]]

chaîne

Prénom du contact

Nom de famille

[[ contact.last_name ]]

chaîne

Nom de famille du contact

Ville

[[ contact.city ]]

chaîne

Ville du contact

Pays

[[ contact.country ]]

chaîne

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 ]]

objet

Propriétés personnalisées du contact

Numéro de téléphone

[[ contact.phone_number ]]

chaîne

Numéro de téléphone du contact

Propriétés du Compte

Titre du menu déroulant

Tag

Type de valeur

Description

Email

[[ contact.email ]]

chaîne

Email de contact

Nom

[[ contact.first_name ]]

chaîne

Prénom du contact

Nom de famille

[[ contact.last_name ]]

chaîne

Nom de famille du contact

Ville

[[ contact.city ]]

chaîne

Ville du contact

Pays

[[ contact.country ]]

chaîne

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 de désinscription du contact

Lien du centre de préférences

[[ preference_link ]]

Lien de préférence de contact

Propriétés personnalisées

[[ contact.custom_properties.customPropertyName ]]

objet

Propriétés personnalisées du contact

Numéro de téléphone

[[ contact.phone_number ]]

chaîne

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 ]]

chaîne

Nom du compte

Adresse

[[ account.address ]]

chaîne

Adresse du compte

Ville

[[ account.city ]]

string

Ville du compte

Code postal

[[ 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 actuelle

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

-

L'année actuelle où 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 ]]

string

ID de la commande

Numéro de commande

[[ order.order_number ]]

int64

Numéro de la commande

Nom de la commande

[[ order.order_name ]]

string

Nom de la commande

Date de la commande

[[ order.order_date ]]

Date

Date de création de la commande

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 la 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 ]]

chaîne

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

Pays

[[ order.billing_address.country ]]

chaîne

Pays du contact fourni dans l'adresse de facturation

Code du pays

[[ order.billing_address.country_code ]]

chaîne

Code du pays du contact fourni dans l'adresse de facturation

État

[[ order.billing_address.state ]]

chaîne

État du contact fourni dans l'adresse de facturation

Code de l'état

[[ order.billing_address.state_code ]]

chaîne

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

Ville

[[ order.billing_address.city ]]

chaîne

Ville du contact fournie dans l'adresse de facturation

Address 1 et

[[ order.billing_address.address1 ]]

chaîne

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

Adresse 2

[[ order.billing_address.address2 ]]

chaîne

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

Code postal

[[ order.billing_address.zip ]]

chaîne

Code postal du contact fourni dans l'adresse de facturation

Société

[[ order.billing_address.company ]]

chaîne

Titre de l'entreprise du contact fourni dans l'adresse de facturation

Téléphone

[[ order.billing_address.phone ]]

chaîne

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 ZIP / Postal

[[ order.shipping_address.zip ]]

chaîne

Code ZIP / Postal 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 accéder/récupérer le panier abandonné

Dépannage

La personnalisation affiche du code brut dans les e-mails

Cause : Vous visualisez un email de test au lieu d'un email en direct.

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

  • Utilisez Test & Aperçu dans l'éditeur et sélectionnez un contact réel.

  • Ou envoyez la campagne/l'automatisation en direct à votre propre email (assurez-vous que votre profil de 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 menu de balise de personnalisation dans l'éditeur.

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 du code Liquid à partir de la documentation Shopify, remplacez les accolades par des crochets.

Dois-je ajouter des valeurs de secours ?

Oui. Ajoutez toujours des solutions 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 d'assistance primée pour toute assistance supplémentaire via le chat intégré ou à [email protected].

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