Journeys marketing

Les journeys comportementaux (aussi appelés flows) sont des automatisations multi-étapes qui enrôlent des contacts sur un déclencheur et les font avancer à travers des étapes au fil du temps. Ils vivent dans le router tRPC journeys sur l'API company-manager, appelé à /api/trpc/journeys.<procedure> avec les conventions tRPC standard.

Attention

Limitation v1 — seules les étapes EMAIL font réellement quelque chose en sortie. L'étape SMS est un stub non fonctionnel, et plusieurs étapes d'action sont aujourd'hui des no-ops qui ne font qu'avancer. Lisez Types d'étapes avant de concevoir un journey — une étape WEBHOOK n'émet pas encore de webhook.

Procédures

Procédure Rôle Permission
list Lister les journeys. automation:read
get Récupérer un journey. automation:read
create Créer un journey. automation:write
update Mettre à jour les métadonnées d'un journey. automation:write
updateSteps Remplacer les étapes du journey. automation:write
activate Activer un journey (commence à se déclencher). automation:write
pause Mettre un journey en pause. automation:write
setActive Définir explicitement l'état actif. automation:write
listTemplates Lister les templates prédéfinis. automation:read
createFromTemplate Créer un journey depuis un template. automation:write
listEnrollments Lister les enrôlements. automation:read
enroll Enrôler manuellement un contact. automation:write
getStats Statistiques du journey. automation:read
tick Faire avancer les enrôlements dus (voir Déclenchement). automation:write

Déclencheurs

Un journey démarre lorsque son déclencheur se déclenche pour un contact :

Déclencheur Se déclenche sur
NEWSLETTER_SIGNUP Une soumission publique de newsletter / d'inscription.
CART_ABANDONED Un balayage de panier abandonné.
ORDER_MINTED Une commande en cours de création (mint).
DATE_WINBACK Un balayage de reconquête basé sur une date.
MANUAL Un appel explicite à journeys.enroll.

Types d'étapes

Les étapes sont déclarées sur le journey (via create + updateSteps, ou un template). La colonne statut reflète la réalité v1 :

Type d'étape Statut
EMAIL Fonctionnelle — c'est la seule étape qui envoie.
WAIT Contrôle de flux — le délai entre les étapes (par ex. J+3).
CONDITION Contrôle de flux — marqueur de branchement.
GOAL Contrôle de flux — marqueur d'objectif.
SMS Stub non fonctionnel — n'envoie pas.
WEBHOOK No-op qui ne fait qu'avancer (v1) — n'émet aucun webhook sortant.
UPDATE_FIELD No-op qui ne fait qu'avancer (v1).
ADD_TO_SEGMENT No-op qui ne fait qu'avancer (v1).
REMOVE_FROM_SEGMENT No-op qui ne fait qu'avancer (v1).
CREATE_TASK No-op qui ne fait qu'avancer (v1).
SEND_NOTIFICATION No-op qui ne fait qu'avancer (v1).
Attention

Une étape « no-op qui ne fait qu'avancer » est traversée — l'enrôlement la dépasse — mais elle n'effectue aucun effet de bord. Ne comptez pas sur WEBHOOK, UPDATE_FIELD, ADD_TO_SEGMENT / REMOVE_FROM_SEGMENT, CREATE_TASK ou SEND_NOTIFICATION pour faire quoi que ce soit aujourd'hui, et traitez SMS comme inerte.

Templates prédéfinis

listTemplates expose des journeys prêts à l'emploi ; createFromTemplate en instancie un :

Template Déclencheur Forme
welcome NEWSLETTER_SIGNUP emails J+0 / J+3 / J+7 + un GOAL.
abandoned-cart CART_ABANDONED 1h + 24h.
post-purchase ORDER_MINTED remerciement J+0 + avis J+7.
win-back DATE_WINBACK J+0 + J+3.
Note

createFromTemplate crée un journey inactif. Rien ne se déclenche tant qu'un administrateur ne l'a pas activé avec activate.

Comment fonctionne le déclenchement

L'enrôlement se produit différemment selon le déclencheur :

Déclencheur Comment il se déclenche Par défaut
NEWSLETTER_SIGNUP Depuis la soumission publique de newsletter / d'inscription. Actif.
CART_ABANDONED Un émetteur de balayage cron (JOURNEYS_CART_EMITTER). Borné, plafonné à 500/tick. Activé.
DATE_WINBACK Un émetteur de balayage cron (JOURNEYS_WINBACK_EMITTER). Borné, plafonné à 500/tick. Activé.
ORDER_MINTED Piloté par événement depuis le cycle de vie de la commande + le webhook Stripe magazine (JOURNEYS_PURCHASE_EMITTER). Désactivé.
MANUAL Appeler journeys.enroll avec un journeyId. s.o.

Une fois un contact enrôlé, le travail récurrent de « faire avancer les enrôlements dus » est piloté par journeys.tick. tick est invoqué selon une planification par le scheduler du SDK bext via loopback — et non par BullMQ. Voir Jobs planifiés.

Définir et activer un journey

Le parcours du développeur est court :

journeys.createFromTemplate         (or: journeys.create + journeys.updateSteps)
        │
        ▼
journeys.activate

Après activate :

  • L'enrôlement est automatique pour les types de déclencheurs (sous réserve des valeurs par défaut des émetteurs ci-dessus).
  • Ou enrôlez des contacts manuellement avec journeys.enroll (le parcours MANUAL).

Voir aussi