Comment fonctionne la personnalisation
Vous pouvez ajouter des données personnalisées dans les messages, les modèles, les Journey Webhooks et les Event Streams en utilisant la syntaxe Liquid. Les données peuvent provenir de :- Flux de données : Données en temps réel provenant de vos API.
- Événements personnalisés : Événements utilisateur en temps réel pour personnaliser les messages de Journey.
- Propriétés et balises : Valeurs intégrées d’utilisateur, de journey, de message, de modèle, d’application ou d’organisation.
- API :
custom_data: Données personnalisées que vous transmettez directement dans notre API Créer un message. - Contenu dynamique : Personnalisation basée sur CSV via les téléchargements du tableau de bord.
Considérations clés
La personnalisation aide les utilisateurs à se connecter plus profondément avec votre application, augmentant potentiellement l’engagement et les revenus. Les exemples courants sont le nom de la personne ou des informations spécifiques (comme les articles de panier abandonné) dans un message, mais les cas d’utilisation sont infinis. Quel est l’objectif ? Que souhaitez-vous envoyer dans le message ? Exemples :- Ajouter une propriété utilisateur comme le nom ou l’ID
- Afficher une facture ou un OTP
- Envoyer du contenu dynamique à partir d’un CSV
- Les données sont-elles stockées dans OneSignal comme une propriété ou une balise ?
- Les données sont-elles stockées dans votre propre base de données ?
- Devez-vous transmettre des données depuis votre backend vers OneSignal ?
- Messages ponctuels : Envoyer le message depuis votre serveur ou via le tableau de bord OneSignal ?
- Messages récurrents : Utiliser Journeys ou d’autres flux de travail automatisés ?
- Objectif : Envoyer un code à usage unique pour aider un utilisateur à se connecter.
- Données :
- OTP stocké sur votre backend.
- Nom d’utilisateur stocké dans OneSignal comme une balise.
- ID externe stocké dans OneSignal comme une propriété.
- Envoi :
- Depuis votre serveur en utilisant notre API REST.
- Depuis un flux de travail automatisé utilisant Journeys.
Une présentation détaillée de cet exemple est disponible dans le tutoriel d’exemple Vérification, lien magique et OTP.Voir plus d’exemples de tutoriels ci-dessous.
Sources de données
Options disponibles pour la personnalisation.Contenu dynamique
Ce guide actuel sur la personnalisation explique comment ajouter du contenu dynamique à vos messages, modèles, Journeys et Event Streams. OneSignal fournit également un moyen de télécharger un CSV de données pour personnaliser les messages en fonction des données de votre propre base de données. Consultez Contenu dynamique pour plus de détails.Flux de données
Les flux de données sont un moyen de récupérer des données en temps réel depuis vos API directement dans les messages au moment de l’envoi. Connectez simplement un modèle à votre source de données et nous récupérerons les données de votre serveur et les injecterons dans le message.Événements personnalisés
Référencez les événements personnalisés dans les modèles utilisés dans les Journeys. Selon la configuration du Journey, il peut stocker un ou plusieurs événements personnalisés au nom de l’utilisateur. Vous pouvez utiliser la syntaxe Liquid pour afficher les propriétés de ces événements stockés, ou pour afficher conditionnellement des parties de votre message en fonction des événements.- Les Journeys déclenchés par événement stockeront l’événement qui a fait entrer l’utilisateur dans le Journey
- Tout Journey utilisant des nœuds Wait Until stockera les événements personnalisés lorsqu’ils correspondent à une condition.
- Propriétés d'événements personnalisés
- Example Custom Event Structure
- Utilisation d'événements dans les modèles
journey.first_event
For Event-triggered Journeys, this will always be the event that caused the user to enter the Journey.If the Journey’s entry rule is not event-triggered, then this will be the first event matched by a Wait Until condition.
journey.last_event
The most recent Custom Event stored. If there is only one stored custom event, then
first_event and last_event will return the same thing.journey.event.most_recent_event_name
The most recent event with a given name (replace
most_recent_event_name with the name of the event you want to reference). If the same event is used multiple times, this will return the most recent instance. Example: purchase.For special characters (e.g. spaces), use hash notation if the event name contains non-alphanumeric characters. For example, if the event name is “order status”, you can reference it with
journey.event["order status"].Propriétés
Predefined fields saved in OneSignal.User & Subscription properties
Follow the provided steps based on where you need to access the data.- Properties available in messages & templates
- Properties available in Journey Webhooks & Event Streams
Use the If you have tags
subscription object to access properties at the Subscription level in messages and templates. Tags can also be accessed directly via the key name. For example:first_name: Jon and level: 5 for User A and first_name: Jeff and level: 100 for User B, each will see their name and level in the message. Otherwise, they’ll see the default values.subscription.external_id
The External ID associated with the Subscription.
subscription.email
The email address of the email Subscription being sent the message.
subscription.phone_number
The phone number of the SMS Subscription being sent the message.
subscription.language
The language code of the user.
subscription.unsubscribe_token
The token used with the Unsubscribe email with token API.
liquid
Journey properties
Thejourney object is helpful for tracking the Journey name or referencing Custom Events within Templates used in Journeys.
journey.name
The name of the Journey.
JSON
Message properties
Themessage object is helpful for accessing custom_data sent from your backend or for tracking properties of the message with Event Streams.
message.id
The OneSignal message ID.
JSON
message.name
The name of the message.
JSON
message.template_id
The OneSignal template ID.
JSON
Template properties
Thetemplate object is helpful for accessing details about the Template used to send the message.
template.id
The OneSignal template ID.
JSON
template.name
The name of the template.
JSON
OneSignal properties
Theapp and org objects are helpful for accessing details about the App and Organization that sent the message.
app.id
The OneSignal App ID.
JSON
app.name
The name of the OneSignal App.
JSON
org.id
The OneSignal Organization ID.
JSON
org.name
The name of the OneSignal Organization.
JSON
API custom_data
Add personalization directly from your backend using custom_data and our Create message API.
Steps:
- Create a template
- Use Liquid Syntax with format
{{ message.custom_data.key }} - Send API request with the
custom_dataobject andtemplate_id
Example: Flat JSON
Template
API Request
Customer sees:
- “Your invoice for Widget is ready.”
- The final URL:
https://your-domain.com/invoice=463246732
Example: Array data
Template
API Request
Customer sees:
- “Your sweater is waiting for you!”
- The image:
https://.../sweater.png
Example: Bulk personalization
To personalize a single message for many users in one request:Template
API Request
Customer sees:
- “Hi John, you have 150 points. Your level is Gold.”
- “Hi Sarah, you have 200 points. Your level is Platinum.”
Tutorials
Verification, Magic Link, & OTP example tutorial
Send verification emails, magic links via SMS, One Time Passwords or custom URLs.
Abandoned cart content
Send lists of data to users like in an abandoned cart or leaderboard.
Transactional messages
Send any type of transactional message across any channel.
In-app message examples
Display personalized in-app messages based on tags.