Journey object
이 콘텐츠는 아직 귀하의 언어로 제공되지 않습니다.
The lifecycle, create, and update methods all return a journey object with the same top-level 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.
Info
Anchor link toRead-only journey metadata. Returned by every v3 method. Not part of the request body.
| Field | Type | Description |
|---|---|---|
uuid | string | Journey ID. |
title | string | Journey name. |
status | JourneyStatus | Current state. |
created_at | string | Creation timestamp (ISO 8601). |
updated_at | string | Last update timestamp (ISO 8601). |
is_first_activated | bool | Whether the journey has been started at least once. |
params | JourneyParams | Journey-wide configuration. |
category_uuid | string | UUID of the category, or empty if uncategorized. |
pointCounts | map<string, uint32> | Count of points by type. |
campaign_type | CampaignType | How users enter the journey. |
stop_reason | string | Why the journey stopped, if applicable. |
last_edited_by | User | User who last edited the journey. |
dynamic_entry | bool | Whether dynamic entry is enabled. |
JourneyParams
Anchor link toJourney-wide configuration. Sent on create/update and returned inside info.params.
| Field | Type | Description |
|---|---|---|
application_code | string | Application code the journey belongs to. Required on create. |
silent_hours | SilentHours | Hours during which messages are suppressed, per channel. |
capping | EntryCapping | Limits on how often a user can re-enter the journey. |
conversion_window | ConversionWindow | Window for attributing goal conversions. |
user_id_track_change_policy | UserIDTrackChangePolicy | How to handle a user’s ID changing mid-journey. |
SilentHours
Anchor link toSuppresses sending during quiet hours. Configured per channel: each channel takes its own SilentHoursParams:
| Field | Type | Description |
|---|---|---|
push_params | SilentHoursParams | Silent hours for push notifications. |
inapp_params | SilentHoursParams | Silent hours for in-app messages. |
email_params | SilentHoursParams | Silent hours for emails. |
sms_params | SilentHoursParams | Silent hours for SMS. |
whatsapp_params | SilentHoursParams | Silent hours for WhatsApp. |
line_params | SilentHoursParams | Silent hours for LINE. |
Each SilentHoursParams is:
| Field | Type | Description |
|---|---|---|
enabled | bool | Whether silent hours apply to this channel. |
from_time | Time | Start of the quiet window: { "hour": 0–23, "minute": 0–59 }. |
to_time | Time | End of the quiet window. |
week_days | bool[] | Seven booleans for the days the window applies (Monday = index 0). |
behavior | enum | What 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 toLimits how often the same user can enter the journey.
| Field | Type | Description |
|---|---|---|
is_enabled | bool | Whether entry capping is on. |
period | uint64 | Minimum number of seconds between a user’s entries. |
ConversionWindow
Anchor link to| Field | Type | Description |
|---|---|---|
seconds | uint64 | How long after entering a journey a user’s goal completion still counts as a conversion. |
Point
Anchor link toA point is a node on the journey canvas: an entry point, a message, a delay, a splitter, and so on.
| Field | Type | Description |
|---|---|---|
uuid | string | Unique ID of the point within the journey. Must be a canonical RFC 4122 UUID: 32 hex digits in 8-4-4-4-12 groups. |
title | string | Display name of the point. |
point_type | PointType | The kind of node. |
outputs | array of PointOutput | Connections to downstream points. |
position | Position | Canvas coordinates. |
point_data | object | Exactly one nested key, matching point_type (see the point types table). |
PointOutput
Anchor link toA 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.
| Field | Type | Description |
|---|---|---|
identity.key | string | Branch key. Must follow the output key rules below. |
identity.order | int | Display order of the branch. |
info.title | string | Optional branch label. |
info.next_point_uuid | string | UUID of the next point this branch connects to. |
Output keys
Anchor link toThe 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 type | Expected 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, EXIT | none (no outputs) |
FILTER | default, output1 |
BOOLEAN_SPLITTER | default, then output1 … outputN (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_EVENT | default is the event-not-triggered branch. output1 (or, with a conditions script, one branch per condition) is the triggered path |
SEND_PUSH with a splitter | default, output1 (and output2 when both the message and delivery splitters are on) |
SEND_EMAIL / SEND_SMS / SEND_LINE / SEND_WHATSAPP with a splitter | default, output1 |
SEND_WHATSAPP with a quick-reply preset | default, plus one branch per quick reply. The key is the quick-reply value itself |
AB_SPLITTER | output0, output1, output2, … (one per variant. There is no default branch) |
Position
Anchor link to| Field | Type | Description |
|---|---|---|
x | float | Horizontal coordinate on the canvas. |
y | float | Vertical coordinate on the canvas. |
Point types and point_data
Anchor link topoint_data is a one-of: it carries exactly one nested object whose key is determined by the point’s point_type.
point_type | point_data key | Purpose |
|---|---|---|
POINT_TYPE_START_BY_SEGMENT | start_by_segment | Entry: users matching a segment. |
POINT_TYPE_EVENT | message_bus | Entry: users triggering an event. |
POINT_TYPE_START_BY_API | start_by_api | Entry: users injected via the Start by API call. |
POINT_TYPE_WAIT | delay | Wait for a fixed or dynamic interval. |
POINT_TYPE_WAIT_EVENT | wait_event | Wait until an event happens. |
POINT_TYPE_SEND_PUSH | send_push | Send a push notification. |
POINT_TYPE_SEND_EMAIL | send_email | Send an email. |
POINT_TYPE_SEND_SMS | send_sms | Send an SMS. |
POINT_TYPE_SEND_WHATSAPP | send_whatsapp | Send a WhatsApp message. |
POINT_TYPE_SEND_TELEGRAM | send_telegram | Send a Telegram message. |
POINT_TYPE_SEND_KAKAO | send_kakao | Send a Kakao message. |
POINT_TYPE_SEND_LINE | send_line | Send a LINE message. |
POINT_TYPE_SEND_DATA | send_data | Send a silent data message. |
POINT_TYPE_INAPP | inapp | Show an in-app message. |
POINT_TYPE_BOOLEAN_SPLITTER | boolean_splitter | Split users by a condition (segment, tags, or event). |
POINT_TYPE_AB_SPLITTER | ab_splitter | Split users into A/B groups. |
POINT_TYPE_FILTER | filter | Allow only users matching a filter to continue. |
POINT_TYPE_SET_TAGS | set_tags | Update user tags. |
POINT_TYPE_WEBHOOK | web_hook | Send an outbound HTTP request. |
POINT_TYPE_GOAL_EVENT | goal_event | Track a conversion goal. |
POINT_TYPE_AUDIENCE_SYNC | audience_sync | Sync users to an external audience. |
POINT_TYPE_EXIT | terminator | Exit the journey. |
Example point
Anchor link toA “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| Field | Type | Description |
|---|---|---|
id | string | Comment UUID. |
message | string | Comment text. |
position | Position | Canvas coordinates. |
index | int | Display order. |
created_at | string | Creation timestamp (ISO 8601). |
deleted | bool | Whether the comment is deleted. |
Enums
Anchor link toJourneyStatus enum
Anchor link toSTATUS_DRAFT, STATUS_RUNNING, STATUS_FINISHED, STATUS_ARCHIVED, STATUS_PAUSED, STATUS_UNKNOWN.
CampaignType enum
Anchor link toTriggerBased: 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 toSee the point types table above for the full list and the point_data key each maps to.
UserIDTrackChangePolicy enum
Anchor link toControls 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.