Ir para o conteúdo

Evento call.completed

call.completed é emitido quando o registro público da chamada foi consolidado. O contrato atual é a versão 1.

Envelope

Campo Tipo Presença Descrição
event string obrigatória Sempre call.completed.
eventId string obrigatória Identificador da entrega; use para deduplicação.
version integer obrigatória Atualmente 1.
occurredAt string obrigatória Data/hora ISO 8601 UTC do evento.
id integer obrigatória Identificador da empresa.
data.call object obrigatória Registro público da chamada.

data.call.id identifica a chamada. eventId identifica a entrega e não deve ser usado como identificador da chamada.

data.call

Campo Tipo Presença Descrição
id string obrigatória Identificador público da chamada.
direction string obrigatória inbound, outbound ou internal.
type string obrigatória Tipo comercial/técnico, por exemplo inbound.did, outbound.mobile.lc ou internal. Não trate a lista como enum fechado.
status string obrigatória answered, no_answer, busy, failed, completed ou rejected.
humanAnswered boolean inbound/internal true somente quando um Ramal Moonu atendeu. Omitido em chamadas outbound.
from object obrigatória Participante de origem.
to object outbound Participante remoto de saída. Em chamadas inbound/internal normalmente é omitido.
callerId string condicional Identificação apresentada em chamadas de saída, quando disponível.
inboundNumber string ou null inbound Número Moonu que recebeu a chamada.
timing object obrigatória Tempos técnicos e, quando comprovados, tempos humanos.
answeredBy object ou null inbound/internal Ramal humano que atendeu; null quando não conhecido. Omitido em outbound.
routing object obrigatória Jornada e contexto de roteamento.
department object condicional Departamento associado.
price object ou null obrigatória Valor calculado, quando disponível.
recording object obrigatória Estado da gravação: atualmente pending ou none.

Participantes e cidade

from e to usam number e, quando resolvidos, name, type e city. A cidade pertence ao participante que ela descreve: em inbound e internal, from.city; em outbound, to.city. A API não publica mais geography nem appliesTo.

{"from":{"number":"+5511995203171","city":"São Paulo"},"to":{"type":"pstn","number":"+551140001234","city":"São Paulo"}}

Rótulos legados como Nacional 0800, Nacional 0300 e Internacional não são publicados como city.

timing

Campo Presença Descrição
startedAt, endedAt obrigatórios Instantes ISO 8601 UTC.
answeredAt condicional Atendimento técnico/PSTN; não prova atendimento humano.
durationSeconds, talkTimeSeconds obrigatórios Duração e tempo técnico do CDR.
timeToHumanAnswerSeconds condicional Tempo até um Ramal Moonu atender.
humanTalkTimeSeconds condicional Tempo conectado a pelo menos uma pessoa em Ramal Moonu.

status: "completed" pode representar uma URA ou outro serviço que concluiu intencionalmente a chamada sem atendimento humano. status: "answered" pode ser apenas atendimento técnico; consulte humanAnswered e answeredBy para atendimento humano.

Outros objetos

  • answeredBy.extension e answeredBy.name identificam o Ramal que atendeu.
  • department.name é o departamento, quando associado.
  • price possui amount e currency (atualmente BRL); pode ser null.
  • recording.status informa somente a disponibilidade lógica (pending ou none); o download é tratado pelo evento recording.available.

Para a jornada, consulte Roteamento. Para tempos, consulte Tempos e atendimento.