Passer au contenu

Objet de parcours

Les méthodes de cycle de vie et de création et mise à jour retournent toutes un objet de parcours avec la même structure de haut niveau :

Structure
{
"info": { ... }, // métadonnées en lecture seule (réponses uniquement)
"params": { ... }, // configuration globale du parcours (création / mise à jour)
"points": [ ... ], // nœuds du canevas et leurs connexions
"comments": [ ... ] // commentaires du canevas
}

Lorsque vous créez ou mettez à jour un parcours, vous envoyez title, params, points et comments. Les réponses retournent info (qui contient params) ainsi que points et comments.

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

ChampTypeDescription
uuidstringID de parcours.
titlestringNom du parcours.
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 parcours a été démarré au moins une fois.
paramsJourneyParamsConfiguration globale du parcours.
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 parcours.
stop_reasonstringRaison de l’arrêt du parcours, le cas échéant.
last_edited_byUserUtilisateur ayant modifié le parcours en dernier.
dynamic_entryboolIndique si l’entrée dynamique est activée.

JourneyParams

Anchor link to

Configuration globale du parcours. Envoyée lors de la création/mise à jour et retournée dans info.params.

ChampTypeDescription
application_codestringCode d’application auquel le parcours 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 parcours.
conversion_windowConversionWindowFenêtre d’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 pendant les heures de silence : WaitAndSend (attendre, puis envoyer à la fin de la fenêtre), DropAndGo (ignorer le message, continuer le parcours 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 parcours.

ChampTypeDescription
is_enabledboolIndique si le plafonnement des entrées 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 parcours, l’accomplissement d’un objectif par un utilisateur compte encore comme une conversion.

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

ChampTypeDescription
uuidstringID unique du point dans le parcours. 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 du 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 attend un ensemble exact de clés pour chaque type de point, et rejette un parcours 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 prochain point auquel cette branche se connecte.

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, EXITaucun (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 de l’é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 parcours.

Exemple de point

Anchor link to

Un point “définir des 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 du 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 lors d’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 : supprimer l’utilisateur du parcours lorsque son ID change.