Objet Journey
Les méthodes de cycle de vie, de création et de mise à jour retournent toutes un objet Journey avec la même structure de haut niveau :
{ "info": { ... }, // métadonnées en lecture seule (réponses uniquement) "params": { ... }, // configuration à l'échelle du Journey (création / mise à jour) "points": [ ... ], // nœuds du canevas et leurs connexions "comments": [ ... ] // commentaires du canevas}Lorsque vous créez ou mettez à jour un Journey, vous envoyez title, params, points et comments. Les réponses retournent info (qui contient params) ainsi que points et comments.
Info
Anchor link toMétadonnées du Journey en lecture seule. Retournées par chaque méthode v3. Ne fait pas partie du corps de la requête.
| Champ | Type | Description |
|---|---|---|
uuid | string | ID du Journey. |
title | string | Nom du Journey. |
status | JourneyStatus | État actuel. |
created_at | string | Horodatage de création (ISO 8601). |
updated_at | string | Horodatage de la dernière mise à jour (ISO 8601). |
is_first_activated | bool | Indique si le Journey a été démarré au moins une fois. |
params | JourneyParams | Configuration à l’échelle du Journey. |
category_uuid | string | UUID de la catégorie, ou vide si non catégorisé. |
pointCounts | map<string, uint32> | Nombre de points par type. |
campaign_type | CampaignType | Comment les utilisateurs entrent dans le Journey. |
stop_reason | string | Raison de l’arrêt du Journey, le cas échéant. |
last_edited_by | User | Utilisateur ayant modifié le Journey en dernier. |
dynamic_entry | bool | Indique si l’entrée dynamique est activée. |
JourneyParams
Anchor link toConfiguration à l’échelle du Journey. Envoyée lors de la création/mise à jour et retournée dans info.params.
| Champ | Type | Description |
|---|---|---|
application_code | string | Code d’application auquel le Journey appartient. Requis à la création. |
silent_hours | SilentHours | Heures pendant lesquelles les messages sont supprimés, par canal. |
capping | EntryCapping | Limites sur la fréquence à laquelle un utilisateur peut réintégrer le Journey. |
conversion_window | ConversionWindow | Fenêtre pour l’attribution des conversions d’objectifs. |
user_id_track_change_policy | UserIDTrackChangePolicy | Comment gérer le changement d’ID d’un utilisateur en milieu de parcours. |
SilentHours
Anchor link toSupprime l’envoi pendant les heures creuses. Configuré par canal : chaque canal prend ses propres SilentHoursParams :
| Champ | Type | Description |
|---|---|---|
push_params | SilentHoursParams | Heures de silence pour les notifications push. |
inapp_params | SilentHoursParams | Heures de silence pour les messages in-app. |
email_params | SilentHoursParams | Heures de silence pour les e-mails. |
sms_params | SilentHoursParams | Heures de silence pour les SMS. |
whatsapp_params | SilentHoursParams | Heures de silence pour WhatsApp. |
line_params | SilentHoursParams | Heures de silence pour LINE. |
Chaque SilentHoursParams est :
| Champ | Type | Description |
|---|---|---|
enabled | bool | Indique si les heures de silence s’appliquent à ce canal. |
from_time | Time | Début de la fenêtre de silence : { "hour": 0–23, "minute": 0–59 }. |
to_time | Time | Fin de la fenêtre de silence. |
week_days | bool[] | Sept booléens pour les jours où la fenêtre s’applique (lundi = index 0). |
behavior | enum | Que faire lorsqu’un message tombe dans les heures de silence : WaitAndSend (attendre, puis envoyer à la fin de la fenêtre), DropAndGo (ignorer le message, continuer le Journey immédiatement), ou WaitAndDrop (attendre la fin de la fenêtre, puis continuer sans envoyer). |
EntryCapping
Anchor link toLimite la fréquence à laquelle le même utilisateur peut entrer dans le Journey.
| Champ | Type | Description |
|---|---|---|
is_enabled | bool | Indique si le plafonnement d’entrée est activé. |
period | uint64 | Nombre minimum de secondes entre les entrées d’un utilisateur. |
ConversionWindow
Anchor link to| Champ | Type | Description |
|---|---|---|
seconds | uint64 | Combien de temps après être entré dans un Journey la réalisation de l’objectif par un utilisateur compte encore comme une conversion. |
Point
Anchor link toUn point est un nœud sur le canevas du Journey : un point d’entrée, un message, un délai, un diviseur, etc.
| Champ | Type | Description |
|---|---|---|
uuid | string | ID unique du point dans le Journey. Doit être un UUID canonique RFC 4122 : 32 chiffres hexadécimaux en groupes 8-4-4-4-12. |
title | string | Nom d’affichage du point. |
point_type | PointType | Le type de nœud. |
outputs | array of PointOutput | Connexions aux points en aval. |
position | Position | Coordonnées sur le canevas. |
point_data | object | Exactement une clé imbriquée, correspondant à point_type (voir le tableau des types de points). |
PointOutput
Anchor link toLes sorties d’un point sont ses branches sortantes. Leurs clés ne sont pas libres. Le validateur s’attend à un ensemble exact de clés pour chaque type de point, et rejette un Journey dont un point a un nombre incorrect de sorties ou une clé qu’il ne reconnaît pas.
| Champ | Type | Description |
|---|---|---|
identity.key | string | Clé de la branche. Doit suivre les règles des clés de sortie ci-dessous. |
identity.order | int | Ordre d’affichage de la branche. |
info.title | string | Étiquette de branche facultative. |
info.next_point_uuid | string | UUID du point suivant auquel cette branche se connecte. Facultatif — le laisser non défini met fin au Journey pour l’utilisateur, de la même manière qu’un point terminateur explicite. |
Clés de sortie
Anchor link toLa branche par défaut (la première) est toujours nommée "default". Les branches supplémentaires sont nommées "output1", "output2", … (le préfixe output suivi d’un index basé sur 1). Deux types de points dérogent à cette règle, comme indiqué ci-dessous.
| Type de point | Clés de sortie attendues |
|---|---|
Points d’entrée (START_BY_SEGMENT, START_BY_API, EVENT), INAPP, SET_TAGS, WEBHOOK, AUDIENCE_SYNC, et points de message sans diviseur (SEND_PUSH, SEND_EMAIL, SEND_SMS, SEND_WHATSAPP, SEND_LINE, SEND_KAKAO, SEND_TELEGRAM, SEND_DATA) | default |
GOAL_EVENT, EXIT | aucune (pas de sorties) |
FILTER | default, output1 |
BOOLEAN_SPLITTER | default, puis output1 … outputN (une branche supplémentaire par condition. Une simple division oui/non est default + output1) |
WAIT (délai) | default. Un délai dynamique avec division de branche ajoute output1 |
WAIT_EVENT | default est la branche événement non déclenché. output1 (ou, avec un script de conditions, une branche par condition) est le chemin déclenché |
SEND_PUSH avec un diviseur | default, output1 (et output2 lorsque les diviseurs de message et de livraison sont tous deux activés) |
SEND_EMAIL / SEND_SMS / SEND_LINE / SEND_WHATSAPP avec un diviseur | default, output1 |
SEND_WHATSAPP avec un préréglage de réponse rapide | default, plus une branche par réponse rapide. La clé est la valeur de la réponse rapide elle-même |
AB_SPLITTER | output0, output1, output2, … (un par variante. Il n’y a pas de branche default) |
Position
Anchor link to| Champ | Type | Description |
|---|---|---|
x | float | Coordonnée horizontale sur le canevas. |
y | float | Coordonnée verticale sur le canevas. |
Types de points et point_data
Anchor link topoint_data est un one-of : il contient exactement un objet imbriqué dont la clé est déterminée par le point_type du point.
point_type | Clé point_data | Objectif |
|---|---|---|
POINT_TYPE_START_BY_SEGMENT | start_by_segment | Entrée : utilisateurs correspondant à un segment. |
POINT_TYPE_EVENT | message_bus | Entrée : utilisateurs déclenchant un événement. |
POINT_TYPE_START_BY_API | start_by_api | Entrée : utilisateurs injectés via l’appel Start by API. |
POINT_TYPE_WAIT | delay | Attendre un intervalle fixe ou dynamique. |
POINT_TYPE_WAIT_EVENT | wait_event | Attendre qu’un événement se produise. |
POINT_TYPE_SEND_PUSH | send_push | Envoyer une notification push. |
POINT_TYPE_SEND_EMAIL | send_email | Envoyer un e-mail. |
POINT_TYPE_SEND_SMS | send_sms | Envoyer un SMS. |
POINT_TYPE_SEND_WHATSAPP | send_whatsapp | Envoyer un message WhatsApp. |
POINT_TYPE_SEND_TELEGRAM | send_telegram | Envoyer un message Telegram. |
POINT_TYPE_SEND_KAKAO | send_kakao | Envoyer un message Kakao. |
POINT_TYPE_SEND_LINE | send_line | Envoyer un message LINE. |
POINT_TYPE_SEND_DATA | send_data | Envoyer un message de données silencieux. |
POINT_TYPE_INAPP | inapp | Afficher un message in-app. |
POINT_TYPE_BOOLEAN_SPLITTER | boolean_splitter | Diviser les utilisateurs selon une condition (segment, tags ou événement). |
POINT_TYPE_AB_SPLITTER | ab_splitter | Diviser les utilisateurs en groupes A/B. |
POINT_TYPE_FILTER | filter | Autoriser uniquement les utilisateurs correspondant à un filtre à continuer. |
POINT_TYPE_SET_TAGS | set_tags | Mettre à jour les tags utilisateur. |
POINT_TYPE_WEBHOOK | web_hook | Envoyer une requête HTTP sortante. |
POINT_TYPE_GOAL_EVENT | goal_event | Suivre un objectif de conversion. |
POINT_TYPE_AUDIENCE_SYNC | audience_sync | Synchroniser les utilisateurs avec une audience externe. |
POINT_TYPE_EXIT | terminator | Quitter le Journey. |
Exemple de point
Anchor link toUn point « set tags » avec une seule connexion en aval :
{ "uuid": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", "title": "Tag as engaged", "point_type": "POINT_TYPE_SET_TAGS", "position": { "x": 480, "y": 120 }, "outputs": [ { "identity": { "key": "default", "order": 0 }, "info": { "title": "", "next_point_uuid": "ffffffff-1111-2222-3333-444444444444" } } ], "point_data": { "set_tags": { "application_code": "XXXXX-XXXXX", "tags": [ { "name": "engaged", "value": "true" } ] } }}JourneyComment
Anchor link to| Champ | Type | Description |
|---|---|---|
id | string | UUID du commentaire. |
message | string | Texte du commentaire. |
position | Position | Coordonnées sur le canevas. |
index | int | Ordre d’affichage. |
created_at | string | Horodatage de création (ISO 8601). |
deleted | bool | Indique si le commentaire est supprimé. |
Énumérations
Anchor link toÉnumération JourneyStatus
Anchor link toSTATUS_DRAFT, STATUS_RUNNING, STATUS_FINISHED, STATUS_ARCHIVED, STATUS_PAUSED, STATUS_UNKNOWN.
Énumération CampaignType
Anchor link toTriggerBased: les utilisateurs entrent sur un événement.AudienceBased: les utilisateurs entrent à partir d’un segment.APIBased: les utilisateurs entrent via l’appel Start by API.Mixed: plus d’un type d’entrée.Unknown: type d’entrée non déterminé.
Énumération PointType
Anchor link toVoir le tableau des types de points ci-dessus pour la liste complète et la clé point_data à laquelle chacun correspond.
Énumération UserIDTrackChangePolicy
Anchor link toContrôle ce qui arrive à un utilisateur qui est en milieu de parcours lorsque son ID utilisateur change :
DEFAULT: comportement par défaut.TRACK: continuer à suivre l’utilisateur sous le nouvel ID.DROP: retirer l’utilisateur du Journey lorsque son ID change.