Passer au contenu

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 :

Structure
{
"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.

Métadonnées du Journey en lecture seule. Retournées par chaque méthode v3. Ne fait pas partie du corps de la requête.

ChampTypeDescription
uuidstringID du Journey.
titlestringNom du Journey.
statusJourneyStatusÉtat actuel.
created_atstringHorodatage de création (ISO 8601).
updated_atstringHorodatage de la dernière mise à jour (ISO 8601).
is_first_activatedboolIndique si le Journey a été démarré au moins une fois.
paramsJourneyParamsConfiguration à l’échelle du Journey.
category_uuidstringUUID de la catégorie, ou vide si non catégorisé.
pointCountsmap<string, uint32>Nombre de points par type.
campaign_typeCampaignTypeComment les utilisateurs entrent dans le Journey.
stop_reasonstringRaison de l’arrêt du Journey, le cas échéant.
last_edited_byUserUtilisateur ayant modifié le Journey en dernier.
dynamic_entryboolIndique si l’entrée dynamique est activée.

JourneyParams

Anchor link to

Configuration à l’échelle du Journey. Envoyée lors de la création/mise à jour et retournée dans info.params.

ChampTypeDescription
application_codestringCode d’application auquel le Journey appartient. Requis à la création.
silent_hoursSilentHoursHeures pendant lesquelles les messages sont supprimés, par canal.
cappingEntryCappingLimites sur la fréquence à laquelle un utilisateur peut réintégrer le Journey.
conversion_windowConversionWindowFenêtre pour l’attribution des conversions d’objectifs.
user_id_track_change_policyUserIDTrackChangePolicyComment gérer le changement d’ID d’un utilisateur en milieu de parcours.

SilentHours

Anchor link to

Supprime l’envoi pendant les heures creuses. Configuré par canal : chaque canal prend ses propres SilentHoursParams :

ChampTypeDescription
push_paramsSilentHoursParamsHeures de silence pour les notifications push.
inapp_paramsSilentHoursParamsHeures de silence pour les messages in-app.
email_paramsSilentHoursParamsHeures de silence pour les e-mails.
sms_paramsSilentHoursParamsHeures de silence pour les SMS.
whatsapp_paramsSilentHoursParamsHeures de silence pour WhatsApp.
line_paramsSilentHoursParamsHeures de silence pour LINE.

Chaque SilentHoursParams est :

ChampTypeDescription
enabledboolIndique si les heures de silence s’appliquent à ce canal.
from_timeTimeDébut de la fenêtre de silence : { "hour": 0–23, "minute": 0–59 }.
to_timeTimeFin de la fenêtre de silence.
week_daysbool[]Sept booléens pour les jours où la fenêtre s’applique (lundi = index 0).
behaviorenumQue 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 to

Limite la fréquence à laquelle le même utilisateur peut entrer dans le Journey.

ChampTypeDescription
is_enabledboolIndique si le plafonnement d’entrée est activé.
perioduint64Nombre minimum de secondes entre les entrées d’un utilisateur.

ConversionWindow

Anchor link to
ChampTypeDescription
secondsuint64Combien de temps après être entré dans un Journey la réalisation de l’objectif par un utilisateur compte encore comme une conversion.

Un point est un nœud sur le canevas du Journey : un point d’entrée, un message, un délai, un diviseur, etc.

ChampTypeDescription
uuidstringID unique du point dans le Journey. Doit être un UUID canonique RFC 4122 : 32 chiffres hexadécimaux en groupes 8-4-4-4-12.
titlestringNom d’affichage du point.
point_typePointTypeLe type de nœud.
outputsarray of PointOutputConnexions aux points en aval.
positionPositionCoordonnées sur le canevas.
point_dataobjectExactement une clé imbriquée, correspondant à point_type (voir le tableau des types de points).

PointOutput

Anchor link to

Les 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.

ChampTypeDescription
identity.keystringClé de la branche. Doit suivre les règles des clés de sortie ci-dessous.
identity.orderintOrdre d’affichage de la branche.
info.titlestringÉtiquette de branche facultative.
info.next_point_uuidstringUUID 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 to

La 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 pointClé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, EXITaucune (pas de sorties)
FILTERdefault, output1
BOOLEAN_SPLITTERdefault, puis output1outputN (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_EVENTdefault 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 diviseurdefault, 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 diviseurdefault, output1
SEND_WHATSAPP avec un préréglage de réponse rapidedefault, plus une branche par réponse rapide. La clé est la valeur de la réponse rapide elle-même
AB_SPLITTERoutput0, output1, output2, … (un par variante. Il n’y a pas de branche default)
ChampTypeDescription
xfloatCoordonnée horizontale sur le canevas.
yfloatCoordonnée verticale sur le canevas.

Types de points et point_data

Anchor link to

point_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_typeClé point_dataObjectif
POINT_TYPE_START_BY_SEGMENTstart_by_segmentEntrée : utilisateurs correspondant à un segment.
POINT_TYPE_EVENTmessage_busEntrée : utilisateurs déclenchant un événement.
POINT_TYPE_START_BY_APIstart_by_apiEntrée : utilisateurs injectés via l’appel Start by API.
POINT_TYPE_WAITdelayAttendre un intervalle fixe ou dynamique.
POINT_TYPE_WAIT_EVENTwait_eventAttendre qu’un événement se produise.
POINT_TYPE_SEND_PUSHsend_pushEnvoyer une notification push.
POINT_TYPE_SEND_EMAILsend_emailEnvoyer un e-mail.
POINT_TYPE_SEND_SMSsend_smsEnvoyer un SMS.
POINT_TYPE_SEND_WHATSAPPsend_whatsappEnvoyer un message WhatsApp.
POINT_TYPE_SEND_TELEGRAMsend_telegramEnvoyer un message Telegram.
POINT_TYPE_SEND_KAKAOsend_kakaoEnvoyer un message Kakao.
POINT_TYPE_SEND_LINEsend_lineEnvoyer un message LINE.
POINT_TYPE_SEND_DATAsend_dataEnvoyer un message de données silencieux.
POINT_TYPE_INAPPinappAfficher un message in-app.
POINT_TYPE_BOOLEAN_SPLITTERboolean_splitterDiviser les utilisateurs selon une condition (segment, tags ou événement).
POINT_TYPE_AB_SPLITTERab_splitterDiviser les utilisateurs en groupes A/B.
POINT_TYPE_FILTERfilterAutoriser uniquement les utilisateurs correspondant à un filtre à continuer.
POINT_TYPE_SET_TAGSset_tagsMettre à jour les tags utilisateur.
POINT_TYPE_WEBHOOKweb_hookEnvoyer une requête HTTP sortante.
POINT_TYPE_GOAL_EVENTgoal_eventSuivre un objectif de conversion.
POINT_TYPE_AUDIENCE_SYNCaudience_syncSynchroniser les utilisateurs avec une audience externe.
POINT_TYPE_EXITterminatorQuitter le Journey.

Exemple de point

Anchor link to

Un 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
ChampTypeDescription
idstringUUID du commentaire.
messagestringTexte du commentaire.
positionPositionCoordonnées sur le canevas.
indexintOrdre d’affichage.
created_atstringHorodatage de création (ISO 8601).
deletedboolIndique si le commentaire est supprimé.

Énumérations

Anchor link to

Énumération JourneyStatus

Anchor link to

STATUS_DRAFT, STATUS_RUNNING, STATUS_FINISHED, STATUS_ARCHIVED, STATUS_PAUSED, STATUS_UNKNOWN.

Énumération CampaignType

Anchor link to
  • TriggerBased : 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 to

Voir 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 to

Contrô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.

Sujets connexes

Anchor link to