Pular para o conteúdo

Journey object

Este conteúdo ainda não está disponível no seu idioma.

The lifecycle, create, and update methods all return a journey object with the same top-level shape:

Shape
{
"info": { ... }, // read-only metadata (responses only)
"params": { ... }, // journey-wide configuration (create / update)
"points": [ ... ], // canvas nodes and their connections
"comments": [ ... ] // canvas comments
}

When you create or update a journey you send title, params, points, and comments. Responses return info (which contains params) plus points and comments.

Read-only journey metadata. Returned by every v3 method. Not part of the request body.

FieldTypeDescription
uuidstringJourney ID.
titlestringJourney name.
statusJourneyStatusCurrent state.
created_atstringCreation timestamp (ISO 8601).
updated_atstringLast update timestamp (ISO 8601).
is_first_activatedboolWhether the journey has been started at least once.
paramsJourneyParamsJourney-wide configuration.
category_uuidstringUUID of the category, or empty if uncategorized.
pointCountsmap<string, uint32>Count of points by type.
campaign_typeCampaignTypeHow users enter the journey.
stop_reasonstringWhy the journey stopped, if applicable.
last_edited_byUserUser who last edited the journey.
dynamic_entryboolWhether dynamic entry is enabled.

JourneyParams

Anchor link to

Journey-wide configuration. Sent on create/update and returned inside info.params.

FieldTypeDescription
application_codestringApplication code the journey belongs to. Required on create.
silent_hoursSilentHoursHours during which messages are suppressed, per channel.
cappingEntryCappingLimits on how often a user can re-enter the journey.
conversion_windowConversionWindowWindow for attributing goal conversions.
user_id_track_change_policyUserIDTrackChangePolicyHow to handle a user’s ID changing mid-journey.

SilentHours

Anchor link to

Suppresses sending during quiet hours. Configured per channel: each channel takes its own SilentHoursParams:

FieldTypeDescription
push_paramsSilentHoursParamsSilent hours for push notifications.
inapp_paramsSilentHoursParamsSilent hours for in-app messages.
email_paramsSilentHoursParamsSilent hours for emails.
sms_paramsSilentHoursParamsSilent hours for SMS.
whatsapp_paramsSilentHoursParamsSilent hours for WhatsApp.
line_paramsSilentHoursParamsSilent hours for LINE.

Each SilentHoursParams is:

FieldTypeDescription
enabledboolWhether silent hours apply to this channel.
from_timeTimeStart of the quiet window: { "hour": 0–23, "minute": 0–59 }.
to_timeTimeEnd of the quiet window.
week_daysbool[]Seven booleans for the days the window applies (Monday = index 0).
behaviorenumWhat to do when a message falls inside silent hours: WaitAndSend (hold, then send when the window ends), DropAndGo (skip the message, continue the journey immediately), or WaitAndDrop (wait out the window, then continue without sending).

EntryCapping

Anchor link to

Limits how often the same user can enter the journey.

FieldTypeDescription
is_enabledboolWhether entry capping is on.
perioduint64Minimum number of seconds between a user’s entries.

ConversionWindow

Anchor link to
FieldTypeDescription
secondsuint64How long after entering a journey a user’s goal completion still counts as a conversion.

A point is a node on the journey canvas: an entry point, a message, a delay, a splitter, and so on.

FieldTypeDescription
uuidstringUnique ID of the point within the journey. Must be a canonical RFC 4122 UUID: 32 hex digits in 8-4-4-4-12 groups.
titlestringDisplay name of the point.
point_typePointTypeThe kind of node.
outputsarray of PointOutputConnections to downstream points.
positionPositionCanvas coordinates.
point_dataobjectExactly one nested key, matching point_type (see the point types table).

PointOutput

Anchor link to

A point’s outputs are its outgoing branches. Their keys are not free-form. The validator expects an exact set of keys for each point type, and rejects a journey whose point has the wrong number of outputs or a key it does not recognize.

FieldTypeDescription
identity.keystringBranch key. Must follow the output key rules below.
identity.orderintDisplay order of the branch.
info.titlestringOptional branch label.
info.next_point_uuidstringUUID of the next point this branch connects to.

Output keys

Anchor link to

The default (first) branch is always named "default". Additional branches are named "output1", "output2", … (the prefix output followed by a 1-based index). Two point types break this rule, noted below.

Point typeExpected output keys
Entry points (START_BY_SEGMENT, START_BY_API, EVENT), INAPP, SET_TAGS, WEBHOOK, AUDIENCE_SYNC, and message points with no splitter (SEND_PUSH, SEND_EMAIL, SEND_SMS, SEND_WHATSAPP, SEND_LINE, SEND_KAKAO, SEND_TELEGRAM, SEND_DATA)default
GOAL_EVENT, EXITnone (no outputs)
FILTERdefault, output1
BOOLEAN_SPLITTERdefault, then output1outputN (one extra branch per condition. A simple yes/no split is default + output1)
WAIT (delay)default. A dynamic delay with branch splitting adds output1
WAIT_EVENTdefault is the event-not-triggered branch. output1 (or, with a conditions script, one branch per condition) is the triggered path
SEND_PUSH with a splitterdefault, output1 (and output2 when both the message and delivery splitters are on)
SEND_EMAIL / SEND_SMS / SEND_LINE / SEND_WHATSAPP with a splitterdefault, output1
SEND_WHATSAPP with a quick-reply presetdefault, plus one branch per quick reply. The key is the quick-reply value itself
AB_SPLITTERoutput0, output1, output2, … (one per variant. There is no default branch)
FieldTypeDescription
xfloatHorizontal coordinate on the canvas.
yfloatVertical coordinate on the canvas.

Point types and point_data

Anchor link to

point_data is a one-of: it carries exactly one nested object whose key is determined by the point’s point_type.

point_typepoint_data keyPurpose
POINT_TYPE_START_BY_SEGMENTstart_by_segmentEntry: users matching a segment.
POINT_TYPE_EVENTmessage_busEntry: users triggering an event.
POINT_TYPE_START_BY_APIstart_by_apiEntry: users injected via the Start by API call.
POINT_TYPE_WAITdelayWait for a fixed or dynamic interval.
POINT_TYPE_WAIT_EVENTwait_eventWait until an event happens.
POINT_TYPE_SEND_PUSHsend_pushSend a push notification.
POINT_TYPE_SEND_EMAILsend_emailSend an email.
POINT_TYPE_SEND_SMSsend_smsSend an SMS.
POINT_TYPE_SEND_WHATSAPPsend_whatsappSend a WhatsApp message.
POINT_TYPE_SEND_TELEGRAMsend_telegramSend a Telegram message.
POINT_TYPE_SEND_KAKAOsend_kakaoSend a Kakao message.
POINT_TYPE_SEND_LINEsend_lineSend a LINE message.
POINT_TYPE_SEND_DATAsend_dataSend a silent data message.
POINT_TYPE_INAPPinappShow an in-app message.
POINT_TYPE_BOOLEAN_SPLITTERboolean_splitterSplit users by a condition (segment, tags, or event).
POINT_TYPE_AB_SPLITTERab_splitterSplit users into A/B groups.
POINT_TYPE_FILTERfilterAllow only users matching a filter to continue.
POINT_TYPE_SET_TAGSset_tagsUpdate user tags.
POINT_TYPE_WEBHOOKweb_hookSend an outbound HTTP request.
POINT_TYPE_GOAL_EVENTgoal_eventTrack a conversion goal.
POINT_TYPE_AUDIENCE_SYNCaudience_syncSync users to an external audience.
POINT_TYPE_EXITterminatorExit the journey.

Example point

Anchor link to

A “set tags” point with a single downstream connection:

{
"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
FieldTypeDescription
idstringComment UUID.
messagestringComment text.
positionPositionCanvas coordinates.
indexintDisplay order.
created_atstringCreation timestamp (ISO 8601).
deletedboolWhether the comment is deleted.

JourneyStatus enum

Anchor link to

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

CampaignType enum

Anchor link to
  • TriggerBased: users enter on an event.
  • AudienceBased: users enter from a segment.
  • APIBased: users enter via the Start by API call.
  • Mixed: more than one entry type.
  • Unknown: entry type not determined.

PointType enum

Anchor link to

See the point types table above for the full list and the point_data key each maps to.

UserIDTrackChangePolicy enum

Anchor link to

Controls what happens to a user who is mid-journey when their User ID changes:

  • DEFAULT: default behavior.
  • TRACK: keep tracking the user under the new ID.
  • DROP: remove the user from the journey when their ID changes.