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.extensioneansweredBy.nameidentificam o Ramal que atendeu.department.nameé o departamento, quando associado.pricepossuiamountecurrency(atualmenteBRL); pode sernull.recording.statusinforma somente a disponibilidade lógica (pendingounone); o download é tratado pelo eventorecording.available.
Para a jornada, consulte Roteamento. Para tempos, consulte Tempos e atendimento.