A especificação OpenAPI está em
jornada.openapi.yaml. Valide cada chamada no ambiente de homologação antes de usar em produção.Servidores
Autenticação
Permissões exigidas:
employee:read (visão geral) e survey_template:read (triggers, disparos e respostas). A empresa do companyId precisa ser a do usuário autenticado.
Endpoints
Os dois
POST usam esse método apenas porque recebem filtros ou IDs no corpo. Nenhum deles altera dados.
Filtros por endpoint
Visão geral (corpo JSON,companyId obrigatório):
Triggers e Disparos: não têm filtros. Query string é ignorada e a lista completa da empresa é devolvida.
Respostas (corpo JSON):
journeyTriggerAudienceIds, lista de IDs de disparo (os journeyTriggerAudienceId devolvidos em Disparos).
Perfis de acesso
- Os dados são individuais (nome, e-mail, score por disparo). Não há endpoint agregado nem regra de anonimato mínimo.
- Perfil sem acesso recebe
403, nunca lista vazia. - Triggers descrevem a configuração da empresa e não trazem dado de pessoa.
Papel: colaborador e líder
Um disparo é do líder quandoonBehalfOfEmployeeId está preenchido: o líder responde em nome daquele colaborador. Com onBehalfOfEmployeeId = null, o disparo é do próprio colaborador.
”Líder não precisa responder” × “líder não respondeu”
O líder não precisa responder quando o trigger tem
sendToManager = false (em triggers de ciclo é sempre true), quando o colaborador não tem gestor imediato ativo ou quando o template não tem perguntas para a Liderança. Ausência de linha não é falta de resposta.
Score, faixas e fases
scoreé inteiro de 0 a 1000 e só existe em disparosANSWEREDcom perguntas pontuáveis.countedForScore = falseindica que o trigger não conta para o score do colaborador.- O score por pergunta dos templates não é retornado. A API devolve o score final do disparo e, em Respostas, só o texto da resposta.
A faixa é uma interpretação da plataforma: a API devolve só o número.
Fases da jornada
ENTRY (Entrada), DEVELOPMENT (Desenvolvimento) e EXIT (Saída) pertencem ao tipo do trigger. Os endpoints devolvem apenas journeyTriggerTypeId, sem a fase e sem o slug do tipo. Os IDs de tipo mudam por ambiente, então não use-os fixos no código.
Empresas também podem ter tipos próprios, que não aparecem nesta tabela.
Enums
O trigger só tem o booleano
active. Não existe enum de status de trigger.
Paginação e limite de uso
- Só a visão geral pagina:
pagecomeça em0; o conector usasize = 20por padrão. A resposta trazpage,size,totalElements,totalPagesedata. - Triggers e disparos devolvem a lista completa da empresa.
- A aplicação não impõe limite por requisição para JWT e
mct_nestas rotas e não devolve429. O limite de 120 requisições por 60 segundos vale só parabvt_, que não é aceito aqui. A infraestrutura pode aplicar um limite próprio. Boa prática: no máximo 1 requisição por segundo por token.
Erros
Não existe código interno de erro. Identifique cada erro por HTTP +message.
Exemplos completos
Todos os dados abaixo são fictícios.Disparo respondido pelo colaborador, e líder que ainda não respondeu
GET /core/v1/journey-dispatch/{companyId} (trecho):
cURL
Python
JavaScript
Versionamento
A versão está no path (/core/v1). Campos novos opcionais podem aparecer sem aviso: ignore campos desconhecidos. Remover um campo ou mudar seu tipo só ocorre em uma nova versão de path. O info.version da especificação acompanha este contrato.