Pular para o conteúdo

Objeto Journey

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

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

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

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

JourneyParams

Anchor link to

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

CampoTipoDescrição
application_codestringCódigo do aplicativo ao qual a jornada 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 jornada.
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 jornada.

SilentHours

Anchor link to

Suprime o envio durante as horas 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, continuar a jornada imediatamente), ou WaitAndDrop (esperar 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 jornada.

CampoTipoDescrição
is_enabledboolSe o limite de entrada está ativado.
perioduint64Número mínimo de segundos entre as entradas de um usuário.

ConversionWindow

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

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

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

PointOutput

Anchor link to

As saídas de um ponto são suas ramificações de saída. Suas chaves não são de formato livre. O validador espera um conjunto exato de chaves para cada tipo de ponto e rejeita uma jornada cujo ponto tenha o número errado de saídas ou uma chave que não reconhece.

CampoTipoDescrição
identity.keystringChave da ramificação. Deve seguir as regras de chaves de saída abaixo.
identity.orderintOrdem de exibição da ramificação.
info.titlestringRótulo opcional da ramificação.
info.next_point_uuidstringUUID do próximo ponto ao qual esta ramificação se conecta.

Chaves de saída

Anchor link to

A ramificação padrão (primeira) é sempre chamada de "default". Ramificações adicionais são chamadas de "output1", "output2", … (o prefixo output seguido por um índice baseado em 1). Dois tipos de ponto quebram essa regra, conforme observado abaixo.

Tipo de pontoChaves 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 output1outputN (uma ramificação 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 ramificação adiciona output1
WAIT_EVENTdefault é a ramificação de evento não acionado. output1 (ou, com um script de condições, uma ramificação por condição) é o caminho acionado
SEND_PUSH com um divisordefault, output1 (e output2 quando os divisores de mensagem e de entrega estão ambos ativados)
SEND_EMAIL / SEND_SMS / SEND_LINE / SEND_WHATSAPP com um divisordefault, output1
SEND_WHATSAPP com um preset de resposta rápidadefault, mais uma ramificação por resposta rápida. A chave é o próprio valor da resposta rápida
AB_SPLITTERoutput0, output1, output2, … (um por variante. Não há ramificação default)
CampoTipoDescrição
xfloatCoordenada horizontal na tela.
yfloatCoordenada vertical na tela.

Tipos de ponto e point_data

Anchor link to

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

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_INAPPinappMostrar 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 jornada.

Ponto de exemplo

Anchor link to

Um ponto “definir tags” com uma única conexão subsequente:

{
"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 ponto acima para a lista completa e a chave point_data à qual cada um corresponde.

Enum UserIDTrackChangePolicy

Anchor link to

Controla o que acontece com um usuário que está no meio da jornada 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 jornada quando seu ID mudar.

Relacionados

Anchor link to