跳到内容

Journey 对象

生命周期创建和更新 方法都会返回一个具有相同顶级结构的 journey 对象:

结构
{
"info": { ... }, // 只读元数据(仅限响应)
"params": { ... }, // journey 范围的配置(创建/更新)
"points": [ ... ], // 画布节点及其连接
"comments": [ ... ] // 画布评论
}

当您创建更新一个 journey 时,您需要发送 titleparamspointscomments。响应会返回 info(其中包含 params)以及 pointscomments

只读的 journey 元数据。由每个 v3 方法返回。不属于请求正文的一部分。

字段类型描述
uuidstringJourney ID
titlestringJourney 名称。
statusJourneyStatus当前状态。
created_atstring创建时间戳 (ISO 8601)。
updated_atstring最后更新时间戳 (ISO 8601)。
is_first_activatedboolJourney 是否至少启动过一次。
paramsJourneyParamsJourney 范围的配置。
category_uuidstring类别的 UUID,如果未分类则为空。
pointCountsmap<string, uint32>按类型统计的 point 数量。
campaign_typeCampaignType用户进入 journey 的方式。
stop_reasonstringJourney 停止的原因(如果适用)。
last_edited_byUser最后编辑 journey 的用户。
dynamic_entrybool是否启用了动态进入。

JourneyParams

Anchor link to

Journey 范围的配置。在创建/更新时发送,并在 info.params 内返回。

字段类型描述
application_codestringJourney 所属的应用程序代码。创建时必需。
silent_hoursSilentHours每个渠道的消息静默时段。
cappingEntryCapping用户可以重新进入 journey 的频率限制。
conversion_windowConversionWindow用于归因目标转化的时间窗口。
user_id_track_change_policyUserIDTrackChangePolicy如何处理用户在 journey 中途 ID 发生变化的情况。

SilentHours

Anchor link to

在静默时段内抑制发送。按渠道配置:每个渠道都有自己的 SilentHoursParams

字段类型描述
push_paramsSilentHoursParams推送通知的静默时段。
inapp_paramsSilentHoursParams应用内消息的静默时段。
email_paramsSilentHoursParams电子邮件的静默时段。
sms_paramsSilentHoursParams短信的静默时段。
whatsapp_paramsSilentHoursParamsWhatsApp 的静默时段。
line_paramsSilentHoursParamsLINE 的静默时段。

每个 SilentHoursParams 的结构如下:

字段类型描述
enabledbool静默时段是否适用于此渠道。
from_timeTime静默窗口的开始时间:{ "hour": 0–23, "minute": 0–59 }
to_timeTime静默窗口的结束时间。
week_daysbool[]七个布尔值,表示窗口适用的星期几(星期一 = 索引 0)。
behaviorenum当消息落在静默时段内时的处理方式:WaitAndSend(等待,然后在窗口结束时发送)、DropAndGo(跳过消息,立即继续 journey)或 WaitAndDrop(等待窗口结束,然后不发送消息继续 journey)。

EntryCapping

Anchor link to

限制同一用户进入 journey 的频率。

字段类型描述
is_enabledbool是否启用进入限制。
perioduint64用户两次进入之间的最小秒数。

ConversionWindow

Anchor link to
字段类型描述
secondsuint64用户进入 journey 后,其目标完成仍被计为转化的时间长度。

Point 是 journey 画布上的一个节点:一个入口点、一条消息、一个延迟、一个分割器等等。

字段类型描述
uuidstringJourney 内 point 的唯一 ID。必须是标准的 RFC 4122 UUID:32 个十六进制数字,分为 8-4-4-4-12 组。
titlestringPoint 的显示名称。
point_typePointType节点的类型。
outputsarray of PointOutput到下游 point 的连接。
positionPosition画布坐标。
point_dataobject只有一个嵌套键,与 point_type 匹配(参见 point 类型和 point_data 表)。

PointOutput

Anchor link to

一个 point 的 output 是其传出的分支。它们的键不是自由格式的。验证器期望每种 point 类型都有一组确切的键,并会拒绝那些 point 具有错误数量的 output 或无法识别的键的 journey。

字段类型描述
identity.keystring分支键。必须遵循下面的输出键规则
identity.orderint分支的显示顺序。
info.titlestring可选的分支标签。
info.next_point_uuidstring此分支连接到的下一个 point 的 UUID。可选——不设置此项会为用户结束 journey,与显式的终止器 point 效果相同。

默认(第一个)分支总是命名为 "default"。额外的分支命名为 "output1""output2"……(前缀 output 后跟一个从 1 开始的索引)。有两种 point 类型打破了此规则,如下所述。

Point 类型预期的输出键
入口点(START_BY_SEGMENTSTART_BY_APIEVENT)、INAPPSET_TAGSWEBHOOKAUDIENCE_SYNC 以及没有分割器的消息点(SEND_PUSHSEND_EMAILSEND_SMSSEND_WHATSAPPSEND_LINESEND_KAKAOSEND_TELEGRAMSEND_DATAdefault
GOAL_EVENTEXIT无(没有输出)
FILTERdefaultoutput1
BOOLEAN_SPLITTERdefault,然后是 output1outputN(每个条件一个额外分支。一个简单的“是/否”分割是 default + output1
WAIT (delay)default。带有分支分割的动态延迟会添加 output1
WAIT_EVENTdefault事件未触发分支。output1(或者,使用条件脚本时,每个条件一个分支)是触发路径
SEND_PUSH 带有分割器defaultoutput1(当消息和交付分割器都开启时,还有 output2
SEND_EMAIL / SEND_SMS / SEND_LINE / SEND_WHATSAPP 带有分割器defaultoutput1
SEND_WHATSAPP 带有快速回复预设default,加上每个快速回复一个分支。键是快速回复值本身
AB_SPLITTERoutput0output1output2……(每个变体一个。没有 default 分支
字段类型描述
xfloat画布上的水平坐标。
yfloat画布上的垂直坐标。

Point 类型和 point_data

Anchor link to

point_data 是一个 one-of 结构:它只携带一个嵌套对象,该对象的键由 point 的 point_type 决定。

point_typepoint_data用途
POINT_TYPE_START_BY_SEGMENTstart_by_segment入口:匹配某个 segment 的用户。
POINT_TYPE_EVENTmessage_bus入口:触发某个 event 的用户。
POINT_TYPE_START_BY_APIstart_by_api入口:通过 Start by API 调用注入的用户。
POINT_TYPE_WAITdelay等待一个固定或动态的时间间隔。
POINT_TYPE_WAIT_EVENTwait_event等待直到某个 event 发生。
POINT_TYPE_SEND_PUSHsend_push发送一条推送通知。
POINT_TYPE_SEND_EMAILsend_email发送一封电子邮件。
POINT_TYPE_SEND_SMSsend_sms发送一条短信。
POINT_TYPE_SEND_WHATSAPPsend_whatsapp发送一条 WhatsApp 消息。
POINT_TYPE_SEND_TELEGRAMsend_telegram发送一条 Telegram 消息。
POINT_TYPE_SEND_KAKAOsend_kakao发送一条 Kakao 消息。
POINT_TYPE_SEND_LINEsend_line发送一条 LINE 消息。
POINT_TYPE_SEND_DATAsend_data发送一条静默数据消息。
POINT_TYPE_INAPPinapp显示一条应用内消息。
POINT_TYPE_BOOLEAN_SPLITTERboolean_splitter按条件(segment、tags 或 event)分割用户。
POINT_TYPE_AB_SPLITTERab_splitter将用户分割成 A/B 组。
POINT_TYPE_FILTERfilter只允许匹配过滤器的用户继续。
POINT_TYPE_SET_TAGSset_tags更新用户 tags。
POINT_TYPE_WEBHOOKweb_hook发送一个出站 HTTP 请求。
POINT_TYPE_GOAL_EVENTgoal_event跟踪一个转化目标。
POINT_TYPE_AUDIENCE_SYNCaudience_sync将用户同步到外部受众。
POINT_TYPE_EXITterminator退出 journey。

示例 point

Anchor link to

一个带有单个下游连接的“设置 tags” point:

{
"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
字段类型描述
idstring评论 UUID。
messagestring评论文本。
positionPosition画布坐标。
indexint显示顺序。
created_atstring创建时间戳 (ISO 8601)。
deletedbool评论是否已删除。

JourneyStatus 枚举

Anchor link to

STATUS_DRAFTSTATUS_RUNNINGSTATUS_FINISHEDSTATUS_ARCHIVEDSTATUS_PAUSEDSTATUS_UNKNOWN

CampaignType 枚举

Anchor link to
  • TriggerBased:用户因事件进入。
  • AudienceBased:用户从 segment 进入。
  • APIBased:用户通过 Start by API 调用进入。
  • Mixed:多种进入类型。
  • Unknown:未确定进入类型。

PointType 枚举

Anchor link to

请参阅上面的 point 类型 表,了解完整列表以及每种类型映射到的 point_data 键。

UserIDTrackChangePolicy 枚举

Anchor link to

控制当用户的 User ID 在 journey 中途发生变化时会发生什么:

  • DEFAULT:默认行为。
  • TRACK:在新 ID 下继续跟踪用户。
  • DROP:当用户 ID 发生变化时,将其从 journey 中移除。