Reuniões e ligações
Uma gravação capturada pelo bot de reunião e uma gravação capturada por integração de VoIP são coisas diferentes no produto, então são recursos diferentes na API.
| Reuniões | Ligações | |
|---|---|---|
| Coleção | /v1/meetings | /v1/calls |
object | meeting | call |
| Prefixo do id | mtg_ | call_ |
| De onde vem | Bot de reunião, upload na plataforma, app mobile | Integração de VoIP |
As duas têm as mesmas cinco rotas — listar, obter, transcrição, respostas de
template e avaliação geral — e carregam os mesmos campos, exceto bot_history,
que só a reunião tem. O resto do que muda é a coleção e o prefixo do
identificador.
Não deduza o tipo pelo tipo de mídia
Seção intitulada “Não deduza o tipo pelo tipo de mídia”object e type são eixos independentes:
objectdiz o que o registro é —meetingoucall.typediz como foi capturado —videoouaudio.
Uma ligação pode ser em vídeo, e uma reunião pode ser em áudio. Numa empresa em
produção, 3 das 49 ligações são vídeo e 6 das 863 reuniões são áudio. Decidir
pelo type erra justamente esses casos.
{ "id": "call_IGmhT13We_ltOPvjNSCHKw", "object": "call", "type": "audio" }{ "id": "call_J781tlst89klU_mWPMXgDA", "object": "call", "type": "video" }Identificadores não atravessam coleções
Seção intitulada “Identificadores não atravessam coleções”Um id endereça um recurso em exatamente uma coleção. Pedir na outra é 404, não
redirecionamento:
curl ".../v1/calls/mtg_H9_chV2YG6UGE0n31AqvDQ" -H "Authorization: Bearer $TOKEN"# 404 RESOURCE_NOT_FOUNDÉ de propósito: evita que um id resolva silenciosamente para um recurso de outro tipo, e faz a requisição errada aparecer no seu log em vez de devolver algo plausível.
O que fica visível
Seção intitulada “O que fica visível”Um registro aparece na API só quando está concluído — quando terminou o
processamento que produz transcrição, respostas e avaliações. Registros gravando,
processando ou com falha não são retornados, em vez de serem expostos com
status parcial. Por isso status é sempre completed na v1.
A posse segue a empresa padrão do dono da reunião. Se a empresa padrão de um usuário muda, o histórico dele acompanha. É um trade-off conhecido de resolver posse em tempo de leitura; veja Segurança.
Escolhendo a coleção
Seção intitulada “Escolhendo a coleção”Use /v1/meetings para conversas de venda capturadas pelo bot ou enviadas por
upload, e /v1/calls para conversas por telefone capturadas via VoIP. Se quiser
as duas, pagine cada coleção separadamente — não existe endpoint combinado,
porque na prática elas têm volumes e retenção diferentes.
Restringir por conta, time, tag ou nota
Seção intitulada “Restringir por conta, time, tag ou nota”As duas coleções aceitam account_id, team_id, tag_id, score_min e
score_max. Os ids vêm de GET /v1/accounts, GET /v1/teams e GET /v1/tags,
e toda referência de conta dentro de um registro agora traz name. As regras
(time padrão, conta vinculada, faixa de nota inclusiva, página vazia para id
desconhecido) estão em
Filtrar por conta, time, tag e nota.