Pular para o conteúdo

Objeto Journey

Os métodos de ciclo de vida, criação e atualização retornam um objeto Journey com a mesma estrutura de nível superior:

Estrutura
{
"info": { ... }, // metadados somente leitura (apenas respostas)
"params": { ... }, // configuração para toda a Journey (criar / atualizar)
"points": [ ... ], // nós da tela e suas conexões
"comments": [ ... ] // comentários da tela
}

Quando você cria ou atualiza uma Journey, você envia title, params, points e comments. As respostas retornam info (que contém params) mais points e comments.

Metadados de Journey somente leitura. Retornado por todos os métodos v3. Não faz parte do corpo da solicitação.

CampoTipoDescrição
uuidstringID da Journey.
titlestringNome da Journey.
statusJourneyStatusEstado atual.
created_atstringTimestamp de criação (ISO 8601).
updated_atstringTimestamp da última atualização (ISO 8601).
is_first_activatedboolSe a Journey foi iniciada pelo menos uma vez.
paramsJourneyParamsConfiguração para toda a Journey.
category_uuidstringUUID da categoria, ou vazio se não categorizado.
pointCountsmap<string, uint32>Contagem de Points por tipo.
campaign_typeCampaignTypeComo os usuários entram na Journey.
stop_reasonstringPor que a Journey parou, se aplicável.
last_edited_byUserUsuário que editou a Journey pela última vez.
dynamic_entryboolSe a entrada dinâmica está habilitada.

JourneyParams

Anchor link to

Configuração para toda a Journey. Enviado na criação/atualização e retornado dentro de info.params.

CampoTipoDescrição
application_codestringCódigo da Aplicação à qual a Journey pertence. Obrigatório na criação.
silent_hoursSilentHoursHoras durante as quais as mensagens são suprimidas, por canal.
cappingEntryCappingLimites de frequência com que um usuário pode reentrar na Journey.
conversion_windowConversionWindowJanela para atribuir conversões de meta.
user_id_track_change_policyUserIDTrackChangePolicyComo lidar com a mudança de ID de um usuário no meio da Journey.

SilentHours

Anchor link to

Suprime o envio durante horários de silêncio. Configurado por canal: cada canal utiliza seus próprios SilentHoursParams:

CampoTipoDescrição
push_paramsSilentHoursParamsHoras de silêncio para notificações push.
inapp_paramsSilentHoursParamsHoras de silêncio para mensagens in-app.
email_paramsSilentHoursParamsHoras de silêncio para e-mails.
sms_paramsSilentHoursParamsHoras de silêncio para SMS.
whatsapp_paramsSilentHoursParamsHoras de silêncio para WhatsApp.
line_paramsSilentHoursParamsHoras de silêncio para LINE.

Cada SilentHoursParams é:

CampoTipoDescrição
enabledboolSe as horas de silêncio se aplicam a este canal.
from_timeTimeInício da janela de silêncio: { "hour": 0–23, "minute": 0–59 }.
to_timeTimeFim da janela de silêncio.
week_daysbool[]Sete booleanos para os dias em que a janela se aplica (Segunda-feira = índice 0).
behaviorenumO que fazer quando uma mensagem cai dentro das horas de silêncio: WaitAndSend (reter e enviar quando a janela terminar), DropAndGo (pular a mensagem e continuar a Journey imediatamente), ou WaitAndDrop (aguardar o fim da janela e continuar sem enviar).

EntryCapping

Anchor link to

Limita a frequência com que o mesmo usuário pode entrar na Journey.

CampoTipoDescrição
is_enabledboolSe a limitação de entrada está ativa.
perioduint64Número mínimo de minutos entre as entradas de um usuário. 0 significa que o usuário pode entrar apenas uma vez na vida.

O limite é contado a partir do momento em que o usuário entrou na Journey, e é rastreado por ID de usuário, então todos os dispositivos de um usuário compartilham uma única entrada. Enquanto o período durar, o ponto de entrada rejeita novas tentativas de entrada e as conta como erros em vez de criar um viajante.

Três comportamentos a serem considerados ao alterar essas configurações:

  • Sair da Journey antecipadamente não libera o limite. O usuário aguarda o período completo mesmo após atingir um ponto de saída.
  • Um period alterado se aplica a entradas feitas após a atualização. Usuários que entraram anteriormente mantêm o período que estava em vigor quando entraram.
  • Definir is_enabled como false remove o limite para todos os usuários imediatamente.

ConversionWindow

Anchor link to
CampoTipoDescrição
secondsuint64Por quanto tempo após entrar em uma Journey a conclusão de uma meta pelo usuário ainda conta como uma conversão.

Um Point é um nó na tela da Journey: um ponto de entrada, uma mensagem, um atraso, um divisor, e assim por diante.

CampoTipoDescrição
uuidstringID único do Point dentro da Journey. Deve ser um UUID canônico RFC 4122: 32 dígitos hexadecimais em grupos 8-4-4-4-12.
titlestringNome de exibição do Point.
point_typePointTypeO tipo de nó.
outputsarray de PointOutputConexões com Points downstream.
positionPositionCoordenadas na tela.
point_dataobjectExatamente uma chave aninhada, correspondendo a point_type (veja a tabela de tipos de Point).

PointOutput

Anchor link to

As saídas de um Point são seus ramos de saída. Suas chaves não são de formato livre. O validador espera um conjunto exato de chaves para cada tipo de Point e rejeita uma Journey cujo Point tenha o número errado de saídas ou uma chave que não reconhece.

CampoTipoDescrição
identity.keystringChave do ramo. Deve seguir as regras de chaves de saída abaixo.
identity.orderintOrdem de exibição do ramo.
info.titlestringRótulo opcional do ramo.
info.next_point_uuidstringUUID do próximo Point ao qual este ramo se conecta. Opcional — deixá-lo em branco encerra a Journey para o usuário, da mesma forma que um Point terminator explícito.

Chaves de saída

Anchor link to

O ramo padrão (primeiro) é sempre nomeado como "default". Ramos adicionais são nomeados "output1", "output2", … (o prefixo output seguido por um índice baseado em 1). Dois tipos de Point quebram essa regra, conforme observado abaixo.

Tipo de PointChaves de saída esperadas
Pontos de entrada (START_BY_SEGMENT, START_BY_API, EVENT), INAPP, SET_TAGS, WEBHOOK, AUDIENCE_SYNC e pontos de mensagem sem divisor (SEND_PUSH, SEND_EMAIL, SEND_SMS, SEND_WHATSAPP, SEND_LINE, SEND_KAKAO, SEND_TELEGRAM, SEND_DATA)default
GOAL_EVENT, EXITnenhuma (sem saídas)
FILTERdefault, output1
BOOLEAN_SPLITTERdefault, depois output1 … outputN (um ramo extra por condição. Uma divisão simples de sim/não é default + output1)
WAIT (atraso)default. Um atraso dinâmico com divisão de ramos adiciona output1
WAIT_EVENTdefault é o ramo de evento-não-acionado. output1 (ou, com um script de condições, um ramo por condição) é o caminho acionado
SEND_PUSH com um divisordefault, output1 (e output2 quando ambos os divisores de mensagem e entrega estão ativos)
SEND_EMAIL / SEND_SMS / SEND_LINE / SEND_WHATSAPP com um divisordefault, output1
SEND_WHATSAPP com um preset de resposta rápidadefault, mais um ramo por resposta rápida. A chave é o próprio valor da resposta rápida
AB_SPLITTERoutput0, output1, output2, … (um por variante. Não há ramo default)
CampoTipoDescrição
xfloatCoordenada horizontal na tela.
yfloatCoordenada vertical na tela.

Tipos de Point e point_data

Anchor link to

point_data é um one-of: ele carrega exatamente um objeto aninhado cuja chave é determinada pelo point_type do Point.

point_typechave point_dataPropósito
POINT_TYPE_START_BY_SEGMENTstart_by_segmentEntrada: usuários que correspondem a um segmento.
POINT_TYPE_EVENTmessage_busEntrada: usuários que acionam um evento.
POINT_TYPE_START_BY_APIstart_by_apiEntrada: usuários injetados através da chamada Start by API.
POINT_TYPE_WAITdelayAguardar por um intervalo fixo ou dinâmico.
POINT_TYPE_WAIT_EVENTwait_eventAguardar até que um evento ocorra.
POINT_TYPE_SEND_PUSHsend_pushEnviar uma notificação push.
POINT_TYPE_SEND_EMAILsend_emailEnviar um e-mail.
POINT_TYPE_SEND_SMSsend_smsEnviar um SMS.
POINT_TYPE_SEND_WHATSAPPsend_whatsappEnviar uma mensagem de WhatsApp.
POINT_TYPE_SEND_TELEGRAMsend_telegramEnviar uma mensagem de Telegram.
POINT_TYPE_SEND_KAKAOsend_kakaoEnviar uma mensagem de Kakao.
POINT_TYPE_SEND_LINEsend_lineEnviar uma mensagem de LINE.
POINT_TYPE_SEND_DATAsend_dataEnviar uma mensagem de dados silenciosa.
POINT_TYPE_INAPPinappExibir uma mensagem in-app.
POINT_TYPE_BOOLEAN_SPLITTERboolean_splitterDividir usuários por uma condição (segmento, tags ou evento).
POINT_TYPE_AB_SPLITTERab_splitterDividir usuários em grupos A/B.
POINT_TYPE_FILTERfilterPermitir que apenas usuários que correspondem a um filtro continuem.
POINT_TYPE_SET_TAGSset_tagsAtualizar tags de usuário.
POINT_TYPE_WEBHOOKweb_hookEnviar uma solicitação HTTP de saída.
POINT_TYPE_GOAL_EVENTgoal_eventRastrear uma meta de conversão.
POINT_TYPE_AUDIENCE_SYNCaudience_syncSincronizar usuários com uma audiência externa.
POINT_TYPE_EXITterminatorSair da Journey.

Exemplo de Point

Anchor link to

Um Point “definir tags” com uma única conexão downstream:

{
"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
CampoTipoDescrição
idstringUUID do comentário.
messagestringTexto do comentário.
positionPositionCoordenadas na tela.
indexintOrdem de exibição.
created_atstringTimestamp de criação (ISO 8601).
deletedboolSe o comentário foi excluído.

Enum JourneyStatus

Anchor link to

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

Enum CampaignType

Anchor link to
  • TriggerBased: usuários entram em um evento.
  • AudienceBased: usuários entram a partir de um segmento.
  • APIBased: usuários entram através da chamada Start by API.
  • Mixed: mais de um tipo de entrada.
  • Unknown: tipo de entrada não determinado.

Enum PointType

Anchor link to

Veja a tabela de tipos de Point acima para a lista completa e a chave point_data a que cada um se refere.

Enum UserIDTrackChangePolicy

Anchor link to

Controla o que acontece com um usuário que está no meio da Journey quando seu ID de Usuário muda:

  • DEFAULT: comportamento padrão.
  • TRACK: continuar rastreando o usuário sob o novo ID.
  • DROP: remover o usuário da Journey quando seu ID mudar.

Relacionados

Anchor link to