- Le solde de récompenses actuel d’un utilisateur
- Le dernier statut de commande
- Des recommandations de produits personnalisées
Les flux de données sont actuellement disponibles uniquement pour les messages e-mail envoyés via Journeys.
Besoin d’un autre canal ? Remplissez cette courte enquête.
Comment fonctionnent les flux de données
- Créez un flux de données – Configurez la façon dont OneSignal se connecte à votre API.
- Attachez le flux de données à un modèle de message.
- Insérez les champs de réponse dans votre message en utilisant la syntaxe Liquid.
- Au moment de l’envoi, OneSignal effectue un appel API pour chaque destinataire, analyse la réponse et injecte les données dans votre message.
Exemple : Afficher les points de récompense
Supposons que vous souhaitez montrer à chaque client son solde de récompenses :{{ data_feed.rewards.points }} et {{ data_feed.rewards.status_level }}.
Nous utiliserons cet exemple pour vous montrer comment configurer un flux de données étape par étape ci-dessous.
Création et utilisation d’un flux de données
1. Configurez votre flux de données
Accédez à Data > Data Feeds dans la barre latérale pour voir la liste des flux de données existants et en créer un nouveau. Chaque flux de données doit avoir :- Nom : Un nom descriptif comme “API de récompenses client” pour vous aider à le distinguer dans votre liste de flux. Nous recommandons que ceux-ci soient uniques, mais ce n’est pas obligatoire.
- Alias : Un nom court comme rewards que vous utiliserez dans la syntaxe Liquid. Ceux-ci doivent être uniques, ne contenir aucun espace et ne peuvent contenir que des caractères alphanumériques en minuscules sans symboles spéciaux.
- Méthode : Comment nous devrions contacter votre API. Généralement, c’est GET mais POST est également pris en charge.
- URL : L’adresse de l’API. Vous pouvez inclure la syntaxe Liquid, ce qui nous permet d’appeler l’API pour récupérer des données spécifiques à l’utilisateur.
- En-têtes : Entrez les paires clé-valeur d’en-tête selon les spécifications de votre API. Une utilisation importante typique sera d’inclure des informations d’authentification. Ces champs prennent également en charge la syntaxe Liquid si nécessaire.
- Corps : Si votre API l’exige, vous pouvez inclure un corps dans la requête au format JSON. Cet éditeur prend en charge la syntaxe Liquid, tout comme les webhooks Journey.

Exemple de configuration de flux de données
2. Attachez le flux de données à votre modèle de message
Attachez votre flux de données à votre modèle de message afin que OneSignal sache l’utiliser.- Accédez à Messages > Templates
- Dans la section Message, sélectionnez le bouton Personalization

Options du bouton de personnalisation
- Activez Data Feeds et sélectionnez votre flux

Section des flux de données dans le compositeur de messages
- Enregistrez votre modèle
3. Utilisez les données dans votre message
Utilisez la syntaxe Liquid pour insérer les données de réponse n’importe où dans votre message. Dans notre exemple, disons que la réponse pour Sarah, dont l’external_id est1a1-b2c3, est un simple bloc JSON comme celui-ci :
- Utilisez un flux de données
- Utilisez le flux de données
rewards- Rappel : le flux
rewardssait appeler l’API avec l’external_iddu destinataire
- Rappel : le flux
- À partir de la réponse, insérez la valeur de l’élément
points(193) et de l’élémentstatus_level(Gold)
Exigences et limites
Votre API doit :- Accepter l’authentification en une seule étape avec des jetons d’authentification dans les en-têtes
- Répondre rapidement. Moins de 250 ms recommandé (cela affecte directement la vitesse d’envoi)
- Renvoyer du JSON. Les autres formats ne sont pas pris en charge pour le moment.
- Si vous avez un cas d’utilisation reposant sur un format alternatif, nous voulons l’entendre de votre part ! Remplissez cette courte enquête ici.
- Gérer votre volume et votre taux d’envoi de messages. Si votre API a une limite de taux faible, cela nous empêchera de délivrer vos messages rapidement.
- Renvoyer des charges utiles de taille raisonnable. Nous recommandons de maintenir les réponses en dessous de 50 ko pour de meilleures performances.
- Un flux de données par modèle. Nous prévoyons d’augmenter cette limite à l’avenir. Remplissez cette courte enquête ici pour nous faire savoir que vous en avez besoin.
- Un appel API par flux de données par message. Récupérez tout ce dont vous avez besoin en un seul appel.
- Journeys uniquement. Pas encore disponible pour d’autres méthodes d’envoi. Remplissez cette courte enquête ici pour nous faire savoir que vous en avez besoin.
- Pas d’enchaînement d’appels. La charge utile d’un flux de données ne peut pas être utilisée pour appeler un autre.
Configuration de votre API
Avant de créer un flux de données, assurez-vous que votre API peut gérer ces exigences :Authentification
Votre API doit accepter l’authentification via les en-têtes :Corps de requête JSON
Si vous devez inclure un corps dans la requête, votre API doit accepter JSON. Cela peut signifier que vos en-têtes doivent inclureContent: application/json.
Réponse JSON
Votre API doit renvoyer un objet JSON. Typiquement, cela signifie que vos en-têtes inclurontAccept: application/json.
Paramètres de personnalisation
Vous passerez généralement les identifiants utilisateur dans l’URL comme ceci :JSON
Limites de taux
Considérez les limites de taux de votre API. Si vous envoyez à 10 000 utilisateurs en succession rapide, nous effectuerons 10 000 appels API. Assurez-vous que votre API peut gérer ce volume.Gestion des erreurs
Si votre API renvoie une erreur ou n’a pas de données pour un utilisateur, le message ne sera pas envoyé à ce destinataire. Assurez-vous que votre API renvoie des données pour tous les utilisateurs attendus.Liste de contrôle de démarrage
Avant de mettre en œuvre les flux de données, répondez à ces questions :- Quelles données veux-je afficher dans mon message ? Travailler à rebours à partir d’un simple plan avec les éléments à remplir depuis votre API identifiés vous aidera à organiser votre réflexion.
- Ces données sont-elles disponibles via un seul point de terminaison API ?
- Comment vais-je authentifier les requêtes API ?
- Quel identifiant ou autre élément de données vais-je utiliser pour récupérer les données personnalisées ?
- Cet identifiant est-il déjà stocké dans OneSignal ? Si non, comment sera-t-il rempli ?
- Mon API peut-elle gérer le volume de requêtes que je vais générer ?
- Que se passe-t-il si mon API n’a pas de données pour un utilisateur ?
Exemples et cas d’utilisation avancés
Les flux de données peuvent être utilisés avec la syntaxe Liquid ou en combinaison avec d’autres fonctionnalités de manière créative pour produire une personnalisation plus complexe.Itération avec des boucles : panier abandonné
Disons que vous avez un flux de données cart qui renvoie un tableau d’articles dans le panier de l’utilisateur, plus le montant total du panier en dollars :JSON
HTML
Si vous utilisez l’éditeur de blocs d’e-mail, lors de l’insertion de ce type de syntaxe Liquid complexe, en particulier si vous devez inclure des images ou des liens, pour de meilleurs résultats, utilisez l’élément de bloc HTML personnalisé.
Propriétés d’événements personnalisés
En poursuivant l’exemple précédent du panier abandonné, comment pourrions-nous savoir comment récupérer ce panier particulier en premier lieu ? Une méthode pourrait être de créer un Journey déclenché par un événement personnalisécart_abandoned, où les propriétés incluent un cart_id. Dans cet exemple, cet événement est envoyé à OneSignal via API :
curl

Événement personnalisé pour l'entrée dans le Journey
user_12345 entre dans le journey lorsque cet événement est déclenché, puis atteint un nœud envoyant un e-mail. Ce modèle d’e-mail est configuré avec le flux de données cart, où l’URL est définie pour récupérer le contenu d’un panier particulier comme ceci :
- La valeur
cart_idde98765sera stockée dans le Journey - Lorsque l’étape d’e-mail est atteinte, le flux de données
cartréférencera cette valeurcart_idet l’utilisera pour appeler l’API du panier - Les propriétés JSON renvoyées seront analysées et insérées dans l’e-mail comme dans l’exemple précédent ci-dessus
Affichage conditionnel : statut de commande
Disons que vous voulez inclure le statut de la commande d’un client, mais n’inclure un lien de numéro de suivi que si la commande a été expédiée. Vous pouvez utiliser une instructionif pour ce faire :
tracking_number existe.
Automatisation sans personnalisation
Les flux de données peuvent être utilisés pour insérer automatiquement des informations à jour dans vos messages sans nécessairement avoir besoin d’être personnalisés par destinataire. Par exemple, vous insérez peut-être une image de bannière en haut de vos e-mails et la changez mensuellement pour suivre les vacances et autres événements mensuels. Plutôt que de vous souvenir de télécharger une nouvelle image sur OneSignal et de modifier tous vos modèles chaque mois, vous pourriez configurer un flux de données qui récupère l’URL de l’image de bannière actuelle depuis votre CMS ou autre emplacement de gestion d’actifs. Vous configureriez un flux de donnéesbanner qui pointe vers un point de terminaison sans aucune variable dans l’URL comme ceci :
JSON
{{ data_feed.banner.banner_url }} comme URL source de l’image, automatisant ce processus à l’avenir.
Dépannage
Mes données ne s’affichent pas
- Vérifiez que votre flux de données est attaché au modèle
- Vérifiez que votre syntaxe Liquid correspond exactement à votre structure JSON
- Testez votre point de terminaison API manuellement pour vous assurer qu’il renvoie des données
- Vérifiez que l’utilisateur a les balises de données requises (comme
external_id)
Les messages s’envoient lentement
- Vérifiez le temps de réponse de votre API
- Assurez-vous que votre API peut gérer les requêtes simultanées
Certains destinataires ne reçoivent pas de messages
- Votre API pourrait ne pas avoir de données pour ces utilisateurs
- Vérifiez le journal des erreurs dans la configuration du flux de données pour les erreurs 404 ou autres erreurs
- Vérifiez vos journaux API pour les erreurs 404 ou autres erreurs
- Vérifiez que ces utilisateurs ont les identifiants requis dans OneSignal