Passer au contenu principal
Utilisez les propriétés (telles que les Tags utilisateur et les identifiants comme l’External ID) pour personnaliser les messages et les charges utiles de livraison avec la syntaxe Liquid. OneSignal résout les espaces réservés Liquid au moment de l’envoi, en utilisant les données déjà stockées sur l’utilisateur, la Subscription, le Journey, le message, le template, l’application ou l’organisation. Vous pouvez utiliser ces données pour personnaliser les messages, les webhooks de Journey et les Event Streams.

Quand utiliser la personnalisation par propriétés

Utilisez la personnalisation par propriétés pour générer le contenu au moment de l’envoi en utilisant des données déjà existantes dans OneSignal — le plus souvent les Tags utilisateur, l’External ID et les champs d’abonnement comme l’adresse e-mail ou le numéro de téléphone. Cette approche est adaptée lorsque :
  • Les données sont déjà stockées dans OneSignal
  • Vous souhaitez que les espaces réservés Liquid soient automatiquement remplacés lors de l’envoi du message
  • Vous n’avez pas besoin de récupérer ou de calculer des données fraîches au moment de la livraison
Si la valeur doit être récupérée ou calculée au moment de l’envoi (par exemple, des prix en temps réel ou un état de stock), utilisez les Data Feeds ou notre API avec custom_data.Si la valeur provient de l’événement qui a fait entrer ou progresser un utilisateur dans un Journey, utilisez la personnalisation par Custom Events.

Prise en charge des canaux

Chaque canal prend en charge des types de propriétés et des champs spécifiques.
Prend en charge les propriétés utilisateur et d’abonnement dans :
  • Objet, Répondre à et Pré-en-tête
  • Corps du message
  • Attributs HTML (par exemple : <img src="{{ image_url }}" />)
  • Actions des boutons (URL, mailto, etc.)

Fonctionnement de la personnalisation par propriétés

OneSignal remplace les espaces réservés Liquid par les valeurs de propriété correspondantes pour l’utilisateur et la Subscription auxquels le message est envoyé.
Liquid
Hi {{ first_name | default: "friend" }}!
Congrats on reaching level {{ level | default: "1" }}!
Si un utilisateur a les Tags first_name: Jon et level: 5, il verra :
Text
Hi Jon!
Congrats on reaching level 5!

Si un utilisateur n’a aucun tag défini, il verra les valeurs par défaut à la place.

Référence des objets Liquid de propriétés

Utilisez cette section pour consulter les noms exacts des objets et des champs disponibles en Liquid.

Propriétés utilisateur et d’abonnement

Utilisez user pour les données au niveau utilisateur. Utilisez subscription lorsque vous avez besoin de valeurs spécifiques au canal, comme l’adresse e-mail ou le numéro de téléphone.
user.tags
Les Tags de l’utilisateur. Vous pouvez référencer les Tags de plusieurs manières :
  • Utilisez la key directement ou placez la clé après tags
  • Exemple de Tags définis : first_name: Jon, level: 5
Liquid
Your first name is {{ first_name }}.
Your first name is {{ user.tags.first_name }}.
Your level is {{ level }}.
Your level is {{ user.tags.level }}.
  • Itérez sur les Tags avec la syntaxe de boucle for. Cet exemple affiche les paires clé:valeur séparées par des virgules.
Liquid
{% for tag in user.tags %}
{{ tag[0] }}: {{ tag[1] }}
{% unless forloop.last %},
{% endunless %}{% endfor %}
user.external_id
L’External ID de l’utilisateur.
Liquid
Your user ID is {{ user.external_id }}.
Your user ID is {{ subscription.external_id }}.
user.onesignal_id
L’identifiant OneSignal de l’utilisateur.
Liquid
Your OneSignal user ID is {{ user.onesignal_id }}.
subscription.email
L’adresse e-mail de la Subscription e-mail à laquelle le message est envoyé.
Liquid
Thanks for subscribing with email {{ subscription.email }}.
subscription.phone_number
Le numéro de téléphone de la Subscription SMS à laquelle le message est envoyé.
Liquid
Thanks for subscribing with phone number {{ subscription.phone_number }}.
user.language
Le code de langue de l’utilisateur.
Liquid
Preferred language: {{ user.language }}
Preferred language: {{ subscription.language }}
user.subscriptions
Les Subscriptions de l’utilisateur.
  • Itérez sur les Subscriptions avec la syntaxe de boucle for.
  • Cet exemple affiche le token et l’identifiant de chaque Subscription, séparés par des virgules.
JSON
{
  "subscriptions": "{% for subscription in user.subscriptions %}{% if subscription.subscription_token %}{{ subscription.subscription_token }}: {{ subscription.id }}{% unless forloop.last %}, {% endunless %}{% endif %}{% endfor %}"
}
subscription.unsubscribe_token
Le token utilisé avec l’API de désabonnement par e-mail avec token.
Unsubscribe: https://your-domain.com/unsubscribe?token={{ subscription.unsubscribe_token }}

Propriétés de Journey

L’objet journey vous permet de référencer le nom du Journey ou d’accéder à la personnalisation par Custom Events pour le Journey.
journey.name
Le nom du Journey.
JSON
{
  "journey_name": "{{ journey.name }}"
}

Propriétés de message

L’objet message donne accès à l’identifiant du message, au nom et à l’identifiant du template, ce qui peut être utile pour les Event Streams, ainsi qu’à l’accès aux custom_data pour personnaliser les messages envoyés depuis votre backend.
message.id
L’identifiant du message défini par OneSignal.
{
  "message_id": "{{ message.id }}"
}
message.name
Le nom du message défini par vous, l’expéditeur.
{
  "message_name": "{{ message.name }}"
}
message.template_id
L’identifiant du template défini par OneSignal.
{
  "template_id": "{{ message.template_id }}"
}

Propriétés de template

L’objet template donne accès à l’identifiant et au nom du Template utilisé pour envoyer le message. Cela peut être utile pour les Event Streams.
template.id
L’identifiant du template défini par OneSignal.
{
  "template_id": "{{ template.id }}"
}
template.name
Le nom du template défini par vous, l’expéditeur.
{
  "template_name": "{{ template.name }}"
}

Propriétés d’application et d’organisation

Les objets app et org fournissent des détails sur l’application et l’organisation qui ont envoyé le message. Cela peut être utile pour les Event Streams.
app.id
L’identifiant de l’application défini par OneSignal.
{
  "app_id": "{{ app.id }}"
}
app.name
Le nom de l’application défini par vous, le propriétaire de l’application.
{
  "app_name": "{{ app.name }}"
}
org.id
L’identifiant de l’organisation défini par OneSignal.
{
  "org_id": "{{ org.id }}"
}
org.name
Le nom de l’organisation défini par vous, le propriétaire de l’organisation.
{
  "org_name": "{{ org.name }}"
}

Exemple : Panier abandonné avec des Tags

Cet exemple montre comment personnaliser les messages de panier abandonné en utilisant les Tags utilisateur. Il s’appuie sur le tutoriel Panier abandonné. Exemple de Tags définis :
JSON
{
  "cart_updated": "unix_timestamp_seconds",
  "product_image": "https://i.imgur.com/ssPCfbC.png",
  "product_name": "24 Pack of Acorns",
  "product_quantity": "1",
  "product_price": "$12.99",
  "cart_items_count": "4",
  "cart_url": "https://yourdomain.com/cart"
}

Template e-mail

1

Créer un nouveau template e-mail

Naviguez vers Messages > Templates > New Email Template et ouvrez l’éditeur glisser-déposer.
2

Ajouter la structure de mise en page

Créez cinq lignes :
  • Lignes 1, 2 et 4 : une colonne avec un bloc Paragraphe
  • Ligne 3 : quatre colonnes avec HTML | Paragraphe | Paragraphe | Paragraphe
  • Ligne 5 : une colonne avec un bloc Bouton
3

Ajouter du Liquid aux blocs de paragraphe

Dans la ligne 1, ajoutez :
Liquid
We're holding onto {{cart_items_count}} items in your cart, but don't wait too long, other squirrels are getting ahead!
Dans la ligne 2, ajoutez une description de ce que l’utilisateur regarde :
Text
Currently in your cart:
Dans la ligne 4, ajoutez un autre appel à l’action :
Text
Checkout now while supplies last!
4

Afficher l'article le plus récent

Dans la ligne 3, configurez les quatre colonnes :Colonne 1 (bloc HTML) :
HTML
<img src="{{product_image}}" alt="Image" style="max-width:100%;" />
Colonnes 2 à 4 (blocs Texte) :
  • Colonne 2 : {{product_name}}
  • Colonne 3 : {{product_quantity}}
  • Colonne 4 : {{product_price}}
5

Ajouter l'URL du panier au bouton

Dans le bloc Bouton de la ligne 5, définissez l’URL d’action sur :
{{cart_url}}
6

Tester et prévisualiser le template

Envoyez un e-mail test à vous-même en utilisant le bouton Test & preview.
  • Assurez-vous que les Tags sont définis sur votre Subscription e-mail.
7

Styliser le template

Succès ! Vous pouvez maintenant appliquer votre propre mise en forme au template. Consultez Concevoir des e-mails avec le glisser-déposer.

Template push

Les notifications push ont un espace limité, affichez donc un seul article et mentionnez le nombre total. Champ du message : Affichez l’article et le nombre avec une grammaire correcte en utilisant les instructions conditionnelles.
Liquid
{% assign item_count = cart_items_count | plus: 0 %}
{% if item_count == 1 %}
You left {{product_name}} in your cart.
{% endif %}
{% if item_count == 2 %}
You left {{product_name}} and {{item_count | minus: 1}} more item in your cart.
{% endif %}
{% if item_count > 2 %}
You left {{product_name}} and {{item_count | minus: 1}} more items in your cart.
{% endif %}
Champ de l’image :
Liquid
{{product_image | default: "https://i.imgur.com/ssPCfbC.png"}}
Champ de l’URL de lancement :
{{cart_url | default: "https://yourdomain.com/cart"}}
Succès ! Vous pouvez maintenant créer d’autres templates et les utiliser dans le Journey de panier abandonné.

Pages associées

Besoin d’aide ?Discutez avec notre équipe d’assistance ou envoyez un e-mail à support@onesignal.comVeuillez inclure :
  • Les détails du problème que vous rencontrez et les étapes de reproduction si disponibles
  • Votre OneSignal App ID
  • L’External ID ou le Subscription ID le cas échéant
  • L’URL du message que vous avez testé dans le OneSignal Dashboard le cas échéant
  • Tous les journaux ou messages d’erreur pertinents
Nous serons ravis de vous aider !