Passer au contenu principal
Event Streams vous permet d’envoyer les données de messages hors de OneSignal en temps réel vers la destination de votre choix. Les event streams sont un excellent moyen de connecter OneSignal à d’autres produits de votre écosystème marketing. Ils permettent à votre équipe de déclencher des messages correspondants, de conserver des enregistrements et bien plus encore. Les types d’événements disponibles incluent :
  • Événements de messages push (envoyés, reçus, cliqués, échoués, désabonnés)
  • Événements e-mail (envoyés, ouverts, cliqués, rebondis, désabonnés, etc.)
  • Événements SMS (envoyés, échoués, désabonnés, etc.)
  • Événements de messages in-app (impression, cliqués, etc.)
  • Événements Live Activity (envoyés, livrés, livraison confirmée, échoués, désabonnés, cliqués)

Cas d’usage courants

  • Centraliser les données d’engagement — Diffusez des événements vers un CRM, un CDP ou un entrepôt de données afin que l’activité multicanale (ouvertures, clics, rebonds) soit regroupée en un seul endroit plutôt que dispersée entre des outils déconnectés.
  • Analyse, reporting et conformité — Enregistrez chaque événement de message dans un entrepôt pour l’analyse des tendances, l’audit ou la conservation des registres réglementaires.
  • Surveiller le désengagement — Suivez les désabonnements, les rebonds et les rejets dans vos propres systèmes pour détecter les risques de rétention tôt.
  • Déclencher des flux de travail externes — Lancez des automatisations dans d’autres outils lorsqu’un utilisateur ouvre ou clique sur un message (p. ex., mettre à jour un score de lead, démarrer une séquence de suivi).
  • Remplacer les synchronisations par lots et les intégrations supplémentaires — Réagissez aux événements en temps réel et connectez OneSignal directement à votre destination, réduisant les outils intermédiaires et les coûts de maintenance.

Démarrer avec votre équipe technique

La configuration d’Event Streams est un effort conjoint entre le responsable marketing/produit (qui décide quels événements sont importants et ils vont) et l’équipe d’ingénierie (qui construit l’endpoint récepteur et configure le stream). Voici ce que cela implique côté ingénierie :
  1. Décider de la destination et du périmètre — Convenir de l’endroit où les événements doivent arriver (votre propre API, un entrepôt de données, un CDP, etc.), des types d’événements à diffuser (push, e-mail, SMS, IAM, Live Activity) et d’une estimation du volume de messages pour dimensionner correctement l’endpoint.
  2. Configurer un endpoint HTTP — Construire ou configurer un endpoint accessible publiquement qui accepte les requêtes POST. Il doit enregistrer les événements rapidement sans traitement lourd pour maintenir des temps de réponse bas. Consultez Nouvelles tentatives / Désactivation pour les attentes de performance et ce qui se passe lorsque l’endpoint prend du retard.
  3. Configurer l’Event Stream dans OneSignal — Dans Données > Event Streams, sélectionnez les événements, définissez l’URL et les en-têtes d’authentification, et définissez le corps JSON en utilisant les champs de Données Event Streams avec la syntaxe Liquid.
  4. Tester de bout en bout — Utilisez webhook.site pour vérifier la forme du payload et les en-têtes avant de basculer vers votre endpoint de production (voir Tests).

Configuration

Vous pouvez configurer un nouvel event stream pour votre application OneSignal sous Données > Event Streams > Nouvel Event Stream.
Bouton Nouvel Event Stream
Exigences Les événements ne peuvent pas être envoyés à moins que les exigences suivantes soient remplies :
  • Une URL ou adresse IP valide pour un endpoint HTTP(S) accessible publiquement
  • Les URL et adresses IP doivent être accessibles publiquement
  • Les domaines doivent inclure un domaine de premier niveau reconnu (par ex. “.com”, “.net”)

Sélection d’événements

Nommez votre Event Stream et cliquez sur Sélectionner les événements.
Configuration de l'event stream affichant les options Sélectionner les événements et déclencheur webhook
Cela ouvrira la page de Sélection d’événements où vous pouvez sélectionner les événements que vous souhaitez déclencher votre event stream.
Chaque événement compte dans le volume d’événements de messages de votre plan. Diffuser chaque type d’événement (surtout sent) pour une grande audience peut rapidement consommer votre allocation — par exemple, un seul envoi à 100 000 utilisateurs génère à lui seul 100 000 événements sent.Pour gérer le volume :
  • Sélectionnez uniquement les types d’événements dont vous avez besoin — p. ex., received et clicked peuvent suffire si vous n’avez pas besoin du suivi au niveau des envois.
  • Utilisez les filtres d’event stream pour limiter les événements à des messages ou des modèles spécifiques au lieu de diffuser tout le trafic.
Sélection d'événements du stream avec le canal et les types d'événements cochés

Filtres d’event stream

Vous pouvez optionnellement affiner davantage les événements en spécifiant les identifiants d’un ou plusieurs messages ou modèles, vous permettant de recevoir uniquement des événements liés à des messages spécifiques.
Champs de filtre de l'event stream pour les IDs de messages et de modèles
Les identifiants de modèle peuvent être copiés en naviguant vers Messages > Modèles. À côté du modèle que vous souhaitez suivre, sélectionnez Options > Copier l’ID du modèle et collez-le dans les filtres de l’Event Stream.
Menu d'action du message avec l'option Copier l'ID du modèle

Configurer l’Event Stream

Sélectionnez la méthode HTTP, l’URL et ajoutez des en-têtes pour l’event stream. C’est ici que l’authentification doit être configurée pour assurer une communication sécurisée entre OneSignal et vos systèmes. L’URI et les en-têtes peuvent contenir de la syntaxe liquid qui proviendra à la fois des propriétés utilisateur et des propriétés de l’event stream.

En-têtes d’authentification

Vous pouvez ajouter des en-têtes d’authentification pour valider que les requêtes vers votre endpoint proviennent véritablement de OneSignal. Les méthodes d’authentification courantes incluent :
  • En-tête Authorization : Ajoutez un en-tête Authorization, où YOUR_TOKEN est fourni par votre système ou un tiers comme :
    • Basic {{YOUR_TOKEN}}
    • Bearer {{YOUR_TOKEN}}
    • ApiKey {{YOUR_API_KEY}}
  • En-têtes personnalisés : Vous pouvez également ajouter des en-têtes personnalisés comme :
    • X-API-Key: {{YOUR_API_KEY}}
Remarque : OneSignal ne fournit pas de services de chiffrement

Tester votre configuration

Si vous cherchez un moyen facile de tester, utilisez webhook.site. Trouvez “Your unique URL” au centre de la page. Copiez cette URL et utilisez-la dans le champ URL de votre configuration d’event stream.
Champ URL de l'event stream configuré avec l'URL de test de webhook.site

En-têtes non autorisés

Les en-têtes suivants sont restreints et ne peuvent pas être définis.
  • content-length
  • referer
  • metadata-flavor
  • x-google-metadata-request
  • host
  • x-onesignal*

Corps

Le corps d’un event stream sera en JSON. Le JSON du corps peut être défini soit comme des paires clé/valeur individuelles, soit comme un bloc de code modifiable. Pour changer la méthode de saisie, utilisez le premier menu déroulant sous l’en-tête du corps et sélectionnez le corps personnalisé.
Éditeur de corps de l'event stream avec les options clé-valeur et corps personnalisé
À droite, vous pouvez voir un exemple de requête cURL construit à partir de ce qui a été saisi lors de la configuration de l’event stream
Panneau d'aperçu cURL pour la requête de l'event stream configuré

Personnalisation

Vous pouvez personnaliser tous les champs de votre Event Stream avec des données Event Streams prédéfinies. Ces données peuvent être ajoutées en utilisant la syntaxe Liquid. Cela vous donne la flexibilité d’utiliser les event streams pour presque tous les cas d’usage.
Voir Données Event Streams pour une liste de toutes les données d’événements, de messages et d’utilisateurs disponibles pour la personnalisation.

Exemple de corps

Sélectionnez “Corps personnalisé” dans le menu déroulant :
JSON
{
  "Event Data": {
    "event.kind": "{{ event.kind }}",
    "event.id": "{{ event.id }}",
    "event.timestamp": "{{ event.timestamp }}",
    "event.datetime": "{{ event.datetime }}",
    "event.app_id": "{{ event.app_id }}",
    "event.subscription_device_type": "{{ event.subscription_device_type }}",
    "event.subscription_id": "{{ event.subscription_id }}",
    "event.onesignal_id": "{{ event.onesignal_id }}",
    "event.external_id": "{{ event.external_id }}",
    "event.data.page_name": "{{ event.data.page_name}}",
    "event.data.page_id": "{{ event.data.page_id}}",
    "event.data.target_name": "{{ event.data.target_name}}",
    "event.data.target_id": "{{ event.data.target_id}}",
    "event.data.failure_reason": "{{ event.data.failure_reason}}"
  },
  "Message Data": {
    "message.id": "{{ message.id }}",
    "message.name": "{{ message.name }}",
    "message.title": "{{ message.title.en }}",
    "message.contents": "{{ message.contents.en }}",
    "message.template_id": "{{ message.template_id }}",
    "message.url": "{{ message.url }}",
    "message.app_url": "{{ message.app_url }}",
    "message.web_url": "{{ message.web_url }}"
  }
}
Corps JSON personnalisé de l'event stream avec des espaces réservés Liquid

Utilisation de la syntaxe Liquid dans JSON

Lors de l’utilisation de la syntaxe Liquid dans JSON, les guillemets appropriés dépendent du type de données : Directives pour le formatage JSON
  • ChaînesDoivent être enveloppées dans des guillemets.
  • NombresNe doivent pas être enveloppés dans des guillemets.
  • ObjetsNe doivent pas être enveloppés dans des guillemets.
Les lignes de commentaire // dans les exemples Corrects ci-dessous sont uniquement pour la lisibilité. Supprimez-les dans le corps réel de votre Event Stream — le JSON strict n’autorise pas les commentaires //.
Exemples
✅ Correct — envelopper dans des guillemets :
JSON
{
  "user_id": "{{ user.onesignal_id }}"
}
❌ Incorrect — l’absence de guillemets produit un JSON invalide :
JSON
{
  "user_id": {{ user.onesignal_id }}
}
Meilleures pratiques pour gérer les conditionnels multilingues dans la syntaxe liquid Pour éviter les problèmes avec les conditionnels basés sur la langue
  1. Utilisez des vérifications de langue directes : Vérifiez toujours user.language directement dans les conditionnels, pas dans des variables comme userLang, pour une meilleure compatibilité.
  2. Commencez simplement : Commencez par des phrases de base, puis ajoutez progressivement de la complexité.
  3. Évitez l’imbrication excessive : Gardez les conditionnels plats pour éviter les problèmes d’analyse.
  4. Testez d’abord la ponctuation de base : Commencez par des phrases simples et de la ponctuation avant d’utiliser des caractères spéciaux.
  5. Utilisez des solutions de secours : Assurez-vous d’avoir une langue par défaut (par ex. anglais) en cas de traductions manquantes.
  6. Tenez-vous-en aux clés standard : Utilisez des clés OneSignal standard comme content/title/en pour la fiabilité.
Cette approche minimise les erreurs d’analyse et garantit la compatibilité avec le système.
Pour des détails et des options sur comment personnaliser vos messages en utilisant la syntaxe Liquid, consultez notre Guide d’utilisation de la syntaxe Liquid.

Résultats et débogage

Surveiller les performances de votre Event Stream et résoudre les problèmes : Onglet Rapport — Affiche les totaux de tous les temps, le statut actuel de votre event stream et un graphique de séries chronologiques des codes de réponse HTTP au fil du temps.
RéponseSignification
2xxL’événement a été reçu avec succès par votre endpoint.
4xx / 5xxVotre endpoint a renvoyé une erreur. Consultez l’onglet Logs pour le code de statut spécifique et le corps de la réponse.
TimeoutVotre endpoint n’a pas répondu dans la fenêtre autorisée. OneSignal a fermé la connexion et traité la livraison comme échouée.
Onglet Logs — Affiche un échantillon de requêtes récentes, incluant le corps complet de la requête, les en-têtes et la réponse de votre endpoint. C’est le meilleur endroit pour commencer le débogage — vous pouvez voir exactement ce que OneSignal a envoyé et ce que votre serveur a retourné. Si le payload ou la configuration nécessite un ajustement, modifiez l’event stream et utilisez le bouton Envoyer un test pour envoyer des requêtes d’exemple. Itérez jusqu’à ce que le payload corresponde à ce qu’attend votre endpoint, puis mettez en ligne.
Rapport de l'event stream avec des graphiques et le statut de réponse HTTP au fil du temps

Nouvelles tentatives / Désactivation

Comportement de nouvelles tentatives — Lorsqu’une requête échoue avec un statut récupérable (p. ex. 429), OneSignal réessaie avec des délais croissants. Si les nouvelles tentatives pour un seul événement continuent d’échouer, cet événement est marqué comme définitivement échoué et n’est plus retenté. Désactivation automatique — Si votre endpoint renvoie des échecs soutenus sur de nombreux événements, OneSignal peut désactiver l’intégralité de l’event stream. Lorsque cela se produit :
  1. Les administrateurs d’application et d’organisation reçoivent un e-mail lorsque le volume d’échecs devient significatif (avant la désactivation) et à nouveau lorsque le stream est désactivé.
  2. Une bannière apparaît également sur la page d’index des Event Streams dans le tableau de bord.
  3. Corrigez le problème sous-jacent, testez avec l’onglet Logs ou webhook.site, et réactivez le stream.
Recommandations de performance — Votre endpoint doit pouvoir gérer le volume d’événements produits par vos envois de messages. Pour éviter les arriérés et la désactivation :
  • Enregistrez les événements rapidement — Écrivez l’événement entrant dans une file d’attente ou un magasin de données sans traitement inline lourd.
  • Évitez les réponses lentes et les 429 — Des temps de réponse constamment lents ou des réponses de limite de débit entraînent l’accumulation d’événements, ce qui pousse OneSignal à désactiver le stream.
  • Dimensionnez pour votre volume d’envoi — Si vous envoyez 100k messages, attendez jusqu’à 100k événements par type d’événement sélectionné. Consultez le volume de messages de votre plan et provisionnez en conséquence.
Déduplication — Chaque événement livré inclut un event.id unique. Incluez-le dans un en-tête ou dans le corps JSON afin que votre système puisse dédupliquer si le même événement est retenté ou rejoué.

Conseils pour réussir

  • Pointez d’abord les streams vers vos propres serveurs. Vous pouvez vous connecter directement à une API tierce, mais le débogage, la gestion des limites de débit et la gestion du volume sont plus difficiles lorsque vous ne contrôlez pas l’extrémité réceptrice.
  • Mettez en mémoire tampon avant de transmettre à des tiers. OneSignal envoie des événements aussi vite que les utilisateurs les déclenchent — un envoi important peut produire une rafale qui dépasse les limites de débit externes ou fait monter les coûts (surtout avec les fournisseurs SMS). Créez un service léger qui accepte les événements, les met en file d’attente et les transmet aux API externes à un rythme que vous contrôlez.
  • Consultez les docs API des tiers. De nombreux services exposent des API HTTP publiques que vous pouvez cibler avec un event stream. Recherchez leur documentation sur l’authentification, le format de payload accepté et les limites de débit avant de configurer votre stream.

Limitations des données d’événements de message

Les données des messages envoyés via nos Journeys ou API ne sont disponibles dans OneSignal que pendant 30 jours. Cela signifie que tous les événements de message (comme les clics, ouvertures, désabonnements, etc.) qui se produisent 30+ jours après l’envoi du message Journey ou API, ne seront pas disponibles dans l’event stream. Cela peut apparaître comme des données vides ou manquantes dans votre analyse. Pour contourner cette limitation, vous pouvez corréler le message.id de ces événements cliqués/ouverts/désabonnés avec l’événement sent original qui a le même message.id. L’événement sent original devrait avoir les données de message pertinentes (titre, modèle, etc).

Tests

Guide de test de bout en bout utilisant webhook.site. Collez Your unique URL dans le champ URL de l’Event Stream avec la méthode POST.
Champ URL de l'event stream correspondant à l'URL unique de webhook.site
Définissez les événements que vous souhaitez suivre. Dans cet exemple, nous utiliserons les événements push, mais tous fonctionneront.
Sélection d'événements avec les événements de messages push cochés pour les tests
Dans cet exemple, nous utiliserons l’Exemple de corps ci-dessus. Enregistrez l’événement et mettez-le en ligne. Envoyez un message pour déclencher l’événement. Dans webhook.site, nous verrons l’événement avec les données suivantes :
webhook.site affichant le corps et les en-têtes de la requête d'event stream entrante
Cela montre ce qui suit :
  • Host : l’adresse IP d’où provient la requête. Voir Aperçu de l’API REST pour une liste des IP possibles.
  • Request Content : les données envoyées dans le corps de l’event stream.