Aller au contenu principal

Relance de panier abandonné

Ce workflow alerte l'équipe e-commerce dès qu'un panier est abandonné, puis publie la relance sur un topic Google Pub/Sub consommé par le CRM.

Chargement du diagramme…

Le besoin​

L'équipe e-commerce doit être alertée dès qu'un panier non vide est abandonné, afin d'organiser la relance du client via le CRM. Chaque relance doit être publiée sur le topic Google Pub/Sub du CRM pour éviter d'en envoyer plusieurs au même client. Le flux n'adresse jamais le client final : c'est l'équipe e-commerce qui relaie via un outil CRM dédié.

Ce que fait le flux​

  1. Panier abandonné — le déclencheur capture l'événement cart.abandoned. Le panier (adresse client, nombre d'articles) arrive dans data.
  2. Panier non vide ? — la condition vérifie que le panier contient au moins un article (data.itemsCount > 0) pour éviter les relances sur des paniers vides.
  3. Notifier l'équipe e-commerce — le nœud Envoi e-mail alerte l'équipe e-commerce (équipe interne), qui organise la relance du client via le CRM ; le flux n'adresse pas directement le client.
  4. Différer la trace (J+1) — le nœud Attente suspend l'exécution d'un jour avant de tracer.
  5. Publier la relance (CRM) — le nœud Envoi événement publie cart_reminder_sent sur le topic Pub/Sub du CRM pour éviter les relances multiples.

Ce dont vous avez besoin​

  • Un déclencheur configuré sur l'événement cart.abandoned.
  • Les nœuds du flux : Condition, Envoi e-mail, Attente et Envoi événement.
  • Un topic Google Pub/Sub (cart-reminders) auquel le CRM est abonné et qui reçoit l'événement cart_reminder_sent.

Construction​

Copiez la définition du workflow et collez-la dans l'éditeur (le nœud Déclencheur est recréé automatiquement, il n'est pas dans le snippet) :

[
{
"id": "cond-105",
"name": "Panier non vide ?",
"config": {
"type": "CONDITION",
"conditionCode": "return data.itemsCount > 0;",
"conditions": [
{
"value": true,
"next": "email-105"
},
{
"value": false,
"next": null
}
]
},
"parents": [
"trigger"
],
"position": {
"x": 0,
"y": 200
}
},
{
"id": "email-105",
"name": "Notifier l'équipe e-commerce",
"config": {
"type": "SEND_EMAIL",
"to": [
"ecommerce@boutique-france.fr"
],
"subject": "Panier abandonné : relance à prévoir",
"content": "Le panier de {{ data.customerEmail }} contient {{ data.itemsCount }} article(s) non finalisés — prévoyez une relance via le CRM.",
"sendAsHtml": true
},
"parents": [
"cond-105"
],
"position": {
"x": 0,
"y": 400
},
"next": "wait-105"
},
{
"id": "wait-105",
"name": "Différer la trace (J+1)",
"config": {
"type": "WAIT",
"time": 86400000
},
"parents": [
"email-105"
],
"position": {
"x": 0,
"y": 600
},
"next": "event-105"
},
{
"id": "event-105",
"name": "Publier la relance (CRM)",
"config": {
"type": "SEND_EVENT",
"provider": {
"type": "GCP_PUBSUB",
"projectId": "mon-projet-crm",
"topicId": "cart-reminders"
},
"body": "{\"event\": \"cart_reminder_sent\", \"email\": \"{{ data.customerEmail }}\"}"
},
"parents": [
"wait-105"
],
"position": {
"x": 0,
"y": 800
}
}
]

Vérifier que ça marche​

Le payload du déclencheur doit exposer customerEmail et itemsCount, sinon les champs {{ data… }} resteront vides. Déployez le flux, déclenchez une exécution sur un panier abandonné et consultez les traces pour vérifier la notification à l'équipe e-commerce et l'événement cart_reminder_sent publié sur le topic Pub/Sub du CRM.

Variantes​

  • Anti-relance : l'événement publié sur le topic permet de savoir qu'une relance a déjà été envoyée pour ce panier ; ajoutez une condition sur ce marqueur pour limiter à une relance par client.
  • Destinataire interne : l'e-mail part vers l'équipe e-commerce, pas vers le client final ; la relance client elle-même est à confier à un outil CRM dédié.

Voir la référence


Voir aussi : Exemples et intégrations