Approfondissement des templates Liquid et des variables
Écrire du Liquid valide pour les notifications OmniLab et comprendre quelles variables chaque type de notification accepte.
Ce guide complète la documentation Notifications et se concentre sur les règles d'écriture qui comptent lorsque vous voulez que vos templates passent la validation et s'affichent proprement en production.
Où Liquid peut être utilisé
Liquid peut être utilisé dans ces champs de notification :
Email Subject LineEmail PreheaderEmail ContentEmail CTA LabelEmail CTA Link- Le lien de l'Email Banner
Comment Liquid se comporte dans OmniLab
- Si une variable documentée n'a pas de valeur, elle s'affiche comme une chaîne vide.
- Les variables non définies sont bloquées par la validation avant le lancement.
- Une syntaxe Liquid invalide est bloquée par la validation avant le lancement.
- Les erreurs au rendu sont également remontées par la validation.
- La variante de langue sélectionnée est résolue en premier, puis Liquid est rendu dans ce texte final.
Familles de variables
| Famille de variables | Ce qu'elle contient | Exemples de variables |
|---|---|---|
| Common | Organisation, expéditeur, reply-to, en-tête, pied de page et liens sociaux | enterprise_name, sender_from_email, reply_from_email |
| Contact | Le participant courant et les champs personnalisés du contact | contact_fullname, contact_email, contact_external_id |
| Touchpoint | Le contexte du point de contact ou de l'activité en cours | collectible_title, collectible_location |
| Reward | Informations sur le gain | reward_display_name, reward_eligible_title |
| Coupon | Détails du coupon ou du bon | coupon_code, coupon_name |
| Event | Détails de l'activité et de l'expérience de réservation | event_title, event_location |
| Booking | Champs spécifiques à la réservation | booking_id, booking_event_id |
Les variables personnalisées au niveau de l'organisation sont aussi disponibles directement par leur propre nom de clé. Autrement dit, une variable comme country peut être référencée par {{ country }} si elle existe dans votre configuration OmniLab.
Utilisez contact_fullname pour saluer un participant
Le nom d'un contact est stocké sous l'une des deux formes, selon la façon dont le formulaire d'acquisition de la campagne le collecte : contact_firstname + contact_lastname, ou un unique nom complet. Les trois variables existent, mais une seule permet de saluer sans risque :
| Variable | Ce qu'elle renvoie |
|---|---|
contact_fullname | Le nom du contact quelle que soit la forme qu'il porte — le nom complet unique, ou les deux parties assemblées, ou son adresse email en dernier recours |
contact_firstname | Le prénom, vide pour un contact acquis via une campagne Nom complet |
contact_lastname | Le nom de famille, vide pour un contact acquis via une campagne Nom complet |
Privilégiez contact_fullname dans vos nouveaux modèles. Une salutation écrite Hello {{ contact_firstname }} {{ contact_lastname }}, s'affiche Hello , pour ces contacts, et une même organisation peut détenir les deux formes en même temps : les parties ne sont donc sûres que si vous savez que tous les contacts atteignables par le modèle ont été collectés avec elles.
Vos modèles existants ne sont pas réécrits pour vous
Basculer une campagne vers un unique champ Nom complet ne met pas à jour les modèles déjà écrits avec contact_firstname. Réécrivez ces modèles avec contact_fullname en même temps, sans quoi le premier envoi après la bascule ne salue personne.
Matrice de disponibilité par type de notification
| Type de notification | Common | Contact | Touchpoint | Reward | Coupon | Event | Booking | Exemples de variables |
|---|---|---|---|---|---|---|---|---|
Participate | Oui | Oui | Non | Non | Non | Non | Non | contact_fullname, enterprise_name |
Touchpoint Unlocked | Oui | Oui | Oui | Non | Non | Non | Non | collectible_title, collectible_location |
Winner | Oui | Oui | Non | Oui | Oui | Non | Non | reward_display_name, coupon_code |
Loser | Oui | Oui | Non | Oui | Non | Non | Non | reward_title, reward_display_name |
Eligible | Oui | Oui | Non | Oui | Non | Non | Non | reward_eligible_title, reward_display_name |
Reward Redeemed | Oui | Oui | Non | Oui | Oui | Non | Non | reward_display_name, coupon_code |
Booking Confirmation | Oui | Oui | Oui | Non | Non | Oui | Oui | event_title, booking_id |
Booking Cancellation | Oui | Oui | Oui | Non | Non | Oui | Oui | event_title, booking_id |
Booking Confirmation Reminder | Oui | Oui | Oui | Non | Non | Oui | Oui | event_title, booking_slot_start_date |
Exemples pratiques
Congratulations {{ contact_fullname }}. You won {{ reward_display_name }}Hi {{ contact_fullname }},
Congratulations. You won {{ reward_display_name }}.
Your code: {{ coupon_code }}Hi {{ contact_fullname }},
Your booking for {{ event_title }} is confirmed.
Start time: {{ booking_slot_start_date }}
Location: {{ event_location }}
Booking ID: {{ booking_id }}https://example.com/rewards/{{ reward_id }}?contact={{ contact_external_id }}Règles qui évitent les erreurs de validation
- Gardez le HTML en dehors des délimiteurs
{{ }}. - N'utilisez que des lettres, chiffres, underscores et points dans les noms de variables.
- Ne réutilisez pas une famille de variables sur un type de notification qui ne la prend pas en charge.
- Gardez le message lisible même si une variable est résolue comme valeur vide.
- Re-testez les templates copiés lorsque vous les déplacez d'un type de notification à un autre.
<span>{{ contact_fullname }}</span>{{ <span>contact_fullname</span> }}Messages de validation Liquid courants
| Problème | Message de validation | Ce qu'il faut changer |
|---|---|---|
| HTML à l'intérieur de Liquid | {{notification_type}} {{field}} contains HTML tags inside liquid template: {{example}} | Déplacez le HTML en dehors des délimiteurs Liquid |
| Syntaxe invalide | {{notification_type}} {{field}} has invalid liquid template syntax: {{error}} | Équilibrez les délimiteurs et corrigez les expressions malformées |
| Échec au rendu | {{notification_type}} {{field}} liquid template failed to render: {{error}} | Simplifiez la logique du template et restez sur les variables prises en charge |
| Variable non définie | Undefined liquid variable '{{variable}}' used in {{notification_type}} {{field}} | Remplacez-la par une variable documentée |
| Variable non autorisée pour ce type | Liquid variable '{{variable}}' ({{category}} binding) cannot be used in {{notification_type}} notification {{field}} | Utilisez une famille de variables prise en charge par le type de notification courant |
Une dépendance de notification booking qui compte souvent
Si vous activez Booking Confirmation Reminder, gardez aussi Booking Cancellation active. La validation OmniLab le vérifie explicitement, afin que les participants ne reçoivent pas de rappel pour une réservation qui pourrait ensuite être annulée sans email d'annulation correspondant.
Pour aller plus loin
Écrire des scripts d'organisation
Écrire et tester des scripts d'organisation Global qui s'exécutent dans OmniLab Pages sans perturber l'expérience participant.
Intégration borne (pour les développeurs)
Embarquer OmniLab dans un wrapper borne, une page hôte iframe ou une WebView avec les bons messages, le bon dimensionnement et les bonnes permissions.