Aperçu
Dans ce tutoriel, vous allez configurer un flux de travail de réservation courant :- Envoyer un email de confirmation de réservation après qu’un utilisateur complète une réservation.
- Envoyer un email de récupération si un utilisateur commence une réservation mais ne la complète pas à temps.
- Deux Événements Personnalisés (
booking_started,booking_complete) - Un Journey qui se divise selon l’achèvement vs l’abandon
- Un Data Feed de réservation pour les détails de confirmation
- Un Data Feed de coupon optionnel pour les incitations à la récupération
Flux de configuration
- Votre application suit un événement personnalisé
booking_started. - Cela fait entrer l’utilisateur dans un Journey.
- Le Journey attend un événement
booking_completeet s’il n’est pas reçu à temps, il envoie des rappels de suivi. - Si la réservation se complète, OneSignal appelle un Data Feed de réservation au moment de l’envoi et envoie un email de confirmation avec les derniers détails de la réservation.
- Si la réservation ne se complète pas dans la fenêtre d’attente, le Journey suit le chemin d’expiration et envoie un email de récupération.
Configuration
Prérequis
Avant de commencer, assurez-vous d’avoir :- Une application OneSignal avec le canal Email activé
- Un endpoint backend qui peut renvoyer des données de réservation et/ou de coupon en JSON
- Un identifiant utilisateur stable partagé entre votre application, backend et ID Externe OneSignal
- Accès aux Événements Personnalisés
1. Suivre les événements de réservation
Suivez les Événements Personnalisés suivants. Ceux-ci peuvent provenir de votre application (en utilisant notre SDK) ou de votre backend (en utilisant notre API REST). Noms d’événements :booking_started— quand l’utilisateur commence le flux de réservationbooking_complete— quand la réservation est complétée avec succès
- Application - Mobile et Web
- Côté Serveur
Utilisez la méthode
trackEvent() sur notre SDK Mobile et/ou SDK Web pour envoyer des événements personnalisés directement depuis votre application/site web.Exemple
Utilisez la même identité utilisateur lors du suivi des événements et lors du retour de données depuis votre backend. Les IDs non correspondants sont la cause la plus courante de personnalisation manquante.
2. Créer des alias de Data Feed
Dans OneSignal, allez à Paramètres > Data Feeds et créez les alias suivants. Data Feed de Réservation : Utilisez ce feed pour extraire les derniers détails de réservation au moment de l’envoi.- Alias :
booking_data - Méthode : GET
- URL :
Exemple d'endpoint
JSON
- Alias :
coupon - Méthode : GET
- URL :
Exemple d'endpoint
JSON
3. Créer des modèles d’email
Email de confirmation de réservation :
Objet :Email de récupération de réservation
Objet :- Utilisant un Data Feed de Coupon
- Sans Data Feed de Coupon
Incluez toujours des filtres
default dans Liquid pour éviter le contenu vide si un champ Data Feed est manquant.4. Construire le Journey
- Dans OneSignal, allez à Messages > Journeys > Créer un Journey
-
Définissez le Déclencheur d’Entrée sur :
- Événement Personnalisé :
booking_started
- Événement Personnalisé :
-
Ajoutez une étape Attendre Jusqu’à :
- Condition : Un Événement Personnalisé se produit
- Nom de l’événement :
booking_complete - Temps d’attente maximum : 10 minutes
- Activez le chemin d’expiration
-
Configurez les branches :
- Terminé : Envoyer un email de confirmation de réservation
- Data Feed :
booking_data
- Data Feed :
- Expiré : Envoyer un email de récupération
- Data Feed :
coupon
- Data Feed :
- Terminé : Envoyer un email de confirmation de réservation
La branche d’expiration vous permet de gérer l’abandon sans logique supplémentaire dans votre application. Voir :
- Paramètres des Journeys - pour les détails sur les règles d’entrée et de sortie des Événements Personnalisés
- Actions des Journeys - pour les détails sur les étapes Attendre Jusqu’à et les branches d’expiration
5. Tester et vérifier
Vérifier les événements
Déclenchez les événements personnalisés depuis votre application ou backend et confirmez. Dans OneSignal, allez à Analytics > Événements Personnalisés et confirmez que vous voyez :- Les événements
booking_startedapparaissent pour votre ID Externe - Les événements
booking_completeapparaissent pour votre ID Externe
Vérifier les Data Feeds
Appelez manuellement vos endpoints Data Feed en utilisant un ID utilisateur connu et confirmez :- Une réponse 200 est renvoyée
- Tous les champs attendus sont présents
Vérifier les emails
Envoyez des messages de test depuis l’éditeur Journey et confirmez :- Les emails de réservation contiennent de vrais détails de réservation
- Les emails de récupération contiennent un coupon valide
- Aucune variable Liquid ne s’affiche vide
Si la personnalisation est manquante, confirmez que l’ID utilisateur dans la requête Data Feed correspond à l’utilisateur qui a déclenché le Journey.
Exemple : Implémentation Data Feed
Exemples d'endpoints Data Feed Node.js
Exemples d'endpoints Data Feed Node.js
Cet exemple montre une implémentation Express minimale pour les Data Feeds de confirmation de réservation et de récupération. Votre langage backend, framework et source de données peuvent différer tant que la forme de réponse JSON correspond à vos modèles d’email.
Exemple de Data Feed de Réservation
Exemple de Data Feed de Coupon
Directives d’implémentation
- Gardez les réponses rapides (les Data Feeds sont appelés au moment de l’envoi)
- Renvoyez toujours une structure JSON prévisible
- Utilisez 404 quand aucune donnée n’existe
- Sécurisez les endpoints avec une clé API envoyée via les en-têtes de requête
Problèmes courants
L’email affiche des valeurs vides
- Le Data Feed a renvoyé 404
- Les noms de champs ont changé dans la réponse JSON
- Incompatibilité d’identité utilisateur
Le Journey ne se divise pas
- L’événement
booking_completen’est pas suivi - Incompatibilité de nom d’événement (sensible à la casse)
- L’événement se produit en dehors de la fenêtre d’attente
Le Data Feed renvoie 401 ou 403
- Clé API manquante ou invalide
- En-tête non configuré dans les paramètres Data Feed
Étapes suivantes
- Ajouter des propriétés d’événement (type de service, prix) pour des conditions Journey plus avancées
- Ajouter des étapes de récupération supplémentaires comme des rappels push ou SMS
- Utiliser les règles de sortie Journey pour éviter les messages de récupération répétés