Перейти к содержанию

Объект Journey

Методы жизненного цикла, а также создания и обновления возвращают объект Journey с одинаковой структурой верхнего уровня:

Структура
{
"info": { ... }, // метаданные только для чтения (только в ответах)
"params": { ... }, // общие настройки Journey (создание/обновление)
"points": [ ... ], // узлы на холсте и их соединения
"comments": [ ... ] // комментарии на холсте
}

При создании или обновлении Journey вы отправляете title, params, points и comments. Ответы возвращают info (который содержит params), а также points и comments.

Метаданные Journey, доступные только для чтения. Возвращаются каждым методом v3. Не являются частью тела запроса.

ПолеТипОписание
uuidstringJourney ID.
titlestringНазвание Journey.
statusJourneyStatusТекущее состояние.
created_atstringВременная метка создания (ISO 8601).
updated_atstringВременная метка последнего обновления (ISO 8601).
is_first_activatedboolБыла ли Journey запущена хотя бы один раз.
paramsJourneyParamsОбщие настройки Journey.
category_uuidstringUUID категории или пусто, если категория не задана.
pointCountsmap<string, uint32>Количество точек по типам.
campaign_typeCampaignTypeКак пользователи попадают в Journey.
stop_reasonstringПричина остановки Journey, если применимо.
last_edited_byUserПользователь, который последним редактировал Journey.
dynamic_entryboolВключен ли динамический вход.

JourneyParams

Anchor link to

Общие настройки Journey. Отправляются при создании/обновлении и возвращаются внутри info.params.

ПолеТипОписание
application_codestringКод приложения, к которому относится Journey. Обязательно при создании.
silent_hoursSilentHoursЧасы, в течение которых отправка сообщений приостанавливается, для каждого канала.
cappingEntryCappingОграничения на частоту повторного входа пользователя в Journey.
conversion_windowConversionWindowОкно для атрибуции конверсий по целям.
user_id_track_change_policyUserIDTrackChangePolicyКак обрабатывать изменение ID пользователя в середине Journey.

SilentHours

Anchor link to

Приостанавливает отправку в тихие часы. Настраивается для каждого канала: каждый канал принимает свои собственные SilentHoursParams:

ПолеТипОписание
push_paramsSilentHoursParamsТихие часы для push-уведомлений.
inapp_paramsSilentHoursParamsТихие часы для in-app сообщений.
email_paramsSilentHoursParamsТихие часы для email.
sms_paramsSilentHoursParamsТихие часы для SMS.
whatsapp_paramsSilentHoursParamsТихие часы для WhatsApp.
line_paramsSilentHoursParamsТихие часы для LINE.

Каждый SilentHoursParams представляет собой:

ПолеТипОписание
enabledboolПрименяются ли тихие часы к этому каналу.
from_timeTimeНачало тихого окна: { "hour": 0–23, "minute": 0–59 }.
to_timeTimeКонец тихого окна.
week_daysbool[]Семь булевых значений для дней, когда применяется окно (понедельник = индекс 0).
behaviorenumЧто делать, если сообщение попадает в тихие часы: WaitAndSend (удержать, затем отправить по окончании окна), DropAndGo (пропустить сообщение, немедленно продолжить Journey) или WaitAndDrop (подождать окончания окна, затем продолжить без отправки).

EntryCapping

Anchor link to

Ограничивает, как часто один и тот же пользователь может входить в Journey.

ПолеТипОписание
is_enabledboolВключено ли ограничение на вход.
perioduint64Минимальное количество минут между входами пользователя. 0 означает, что пользователь может войти только один раз за все время.

Ограничение отсчитывается с момента входа пользователя в Journey и отслеживается по User ID, поэтому все устройства одного пользователя используют один и тот же вход. Пока длится период, точка входа отклоняет дальнейшие попытки входа и считает их ошибками, а не создает нового “путешественника” (traveler).

Три аспекта поведения, которые следует учитывать при изменении этих настроек:

  • Ранний выход из Journey не снимает ограничение. Пользователь ожидает полного периода, даже после достижения точки выхода.
  • Измененный period применяется к входам, совершенным после обновления. Пользователи, вошедшие ранее, сохраняют период, который действовал на момент их входа.
  • Установка is_enabled в false немедленно снимает ограничение для всех пользователей.

ConversionWindow

Anchor link to
ПолеТипОписание
secondsuint64Как долго после входа в Journey достижение цели пользователем все еще считается конверсией.

Точка (point) — это узел на холсте Journey: точка входа, сообщение, задержка, сплиттер и т. д.

ПолеТипОписание
uuidstringУникальный ID точки в Journey. Должен быть каноническим UUID по RFC 4122: 32 шестнадцатеричных цифры в группах 8-4-4-4-12.
titlestringОтображаемое имя точки.
point_typePointTypeТип узла.
outputsarray of PointOutputСоединения с последующими точками.
positionPositionКоординаты на холсте.
point_dataobjectРовно один вложенный ключ, соответствующий point_type (см. таблицу типов точек).

PointOutput

Anchor link to

Выходы точки — это ее исходящие ветви. Их ключи не являются произвольными. Валидатор ожидает точный набор ключей для каждого типа точки и отклоняет Journey, если у точки неверное количество выходов или ключ, который он не распознает.

ПолеТипОписание
identity.keystringКлюч ветви. Должен соответствовать правилам для ключей вывода ниже.
identity.orderintПорядок отображения ветви.
info.titlestringНеобязательная метка ветви.
info.next_point_uuidstringUUID следующей точки, к которой подключается эта ветвь. Необязательно — если оставить пустым, Journey для пользователя завершится, так же как и при явной точке terminator.

Ключи вывода

Anchor link to

Ветвь по умолчанию (первая) всегда называется "default". Дополнительные ветви называются "output1", "output2", … (префикс output, за которым следует индекс, начинающийся с 1). Два типа точек нарушают это правило, что отмечено ниже.

Тип точкиОжидаемые ключи вывода
Точки входа (START_BY_SEGMENT, START_BY_API, EVENT), INAPP, SET_TAGS, WEBHOOK, AUDIENCE_SYNC и точки сообщений без сплиттера (SEND_PUSH, SEND_EMAIL, SEND_SMS, SEND_WHATSAPP, SEND_LINE, SEND_KAKAO, SEND_TELEGRAM, SEND_DATA)default
GOAL_EVENT, EXITнет (без выходов)
FILTERdefault, output1
BOOLEAN_SPLITTERdefault, затем output1 … outputN (одна дополнительная ветвь на каждое условие. Простое разделение да/нет — это default + output1)
WAIT (задержка)default. Динамическая задержка с разделением ветвей добавляет output1
WAIT_EVENTdefault — это ветвь для случая, когда событие не сработало. output1 (или, при использовании скрипта условий, одна ветвь на каждое условие) — это путь для сработавшего события
SEND_PUSH со сплиттеромdefault, output1 (и output2, когда включены оба сплиттера — для сообщения и для доставки)
SEND_EMAIL / SEND_SMS / SEND_LINE / SEND_WHATSAPP со сплиттеромdefault, output1
SEND_WHATSAPP с пресетом быстрых ответовdefault, плюс одна ветвь на каждый быстрый ответ. Ключом является само значение быстрого ответа
AB_SPLITTERoutput0, output1, output2, … (по одной на каждый вариант. Ветви default нет)
ПолеТипОписание
xfloatГоризонтальная координата на холсте.
yfloatВертикальная координата на холсте.

Типы точек и point_data

Anchor link to

point_data — это структура типа “один из”: она содержит ровно один вложенный объект, ключ которого определяется point_type точки.

point_typeключ point_dataНазначение
POINT_TYPE_START_BY_SEGMENTstart_by_segmentВход: пользователи, соответствующие сегменту.
POINT_TYPE_EVENTmessage_busВход: пользователи, вызвавшие событие.
POINT_TYPE_START_BY_APIstart_by_apiВход: пользователи, добавленные через вызов Start by API.
POINT_TYPE_WAITdelayОжидание фиксированного или динамического интервала.
POINT_TYPE_WAIT_EVENTwait_eventОжидание наступления события.
POINT_TYPE_SEND_PUSHsend_pushОтправка push-уведомления.
POINT_TYPE_SEND_EMAILsend_emailОтправка email.
POINT_TYPE_SEND_SMSsend_smsОтправка 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Показ in-app сообщения.
POINT_TYPE_BOOLEAN_SPLITTERboolean_splitterРазделение пользователей по условию (сегмент, теги или событие).
POINT_TYPE_AB_SPLITTERab_splitterРазделение пользователей на A/B группы.
POINT_TYPE_FILTERfilterРазрешить продолжать только пользователям, соответствующим фильтру.
POINT_TYPE_SET_TAGSset_tagsОбновление тегов пользователя.
POINT_TYPE_WEBHOOKweb_hookОтправка исходящего HTTP-запроса.
POINT_TYPE_GOAL_EVENTgoal_eventОтслеживание цели конверсии.
POINT_TYPE_AUDIENCE_SYNCaudience_syncСинхронизация пользователей с внешней аудиторией.
POINT_TYPE_EXITterminatorВыход из Journey.

Пример точки

Anchor link to

Точка “установить теги” с одним последующим соединением:

{
"uuid": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
"title": "Отметить как вовлеченного",
"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
ПолеТипОписание
idstringUUID комментария.
messagestringТекст комментария.
positionPositionКоординаты на холсте.
indexintПорядок отображения.
created_atstringВременная метка создания (ISO 8601).
deletedboolУдален ли комментарий.

Перечисления (Enums)

Anchor link to

JourneyStatus enum

Anchor link to

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

CampaignType enum

Anchor link to
  • TriggerBased: пользователи входят по событию.
  • AudienceBased: пользователи входят из сегмента.
  • APIBased: пользователи входят через вызов Start by API.
  • Mixed: более одного типа входа.
  • Unknown: тип входа не определен.

PointType enum

Anchor link to

Полный список и ключ point_data, которому соответствует каждый тип, см. в таблице типов точек выше.

UserIDTrackChangePolicy enum

Anchor link to

Определяет, что происходит с пользователем, который находится в середине Journey, когда его User ID изменяется:

  • DEFAULT: поведение по умолчанию.
  • TRACK: продолжать отслеживать пользователя под новым ID.
  • DROP: удалить пользователя из Journey при изменении его ID.

Связанные материалы

Anchor link to