Exportações e downloads
export_create
Seção intitulada “export_create”Pedir uma exportação. Monta, em segundo plano, os arquivos do que a pessoa enxerga: as conversas (NDJSON com trechos e leitura), um negócio, o contexto da empresa, ou tudo da empresa (só administradores; os outros administradores são avisados). Responde na hora com a exportação na fila; acompanhe com export_get pelo id. Exige o escopo exports:create, e conversations:read para exportar conversas. O download é sempre por link assinado do S3, válido por 15 minutos: entregue o link à pessoa, nenhum arquivo passa pela API. Os arquivos somem em 7 dias.
| Operação | exports.create — a mesma de POST /v1/exports |
| Escopo | exports:create |
| Papéis | admin, líder de vendas, vendedor |
| Classe de limite | export |
| Auditada | sim |
| Comportamento | escreve |
Entrada
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
kind |
"conversations" | "deal" | "context" | "everything" |
sim | O que exportar: conversations (as conversas que você enxerga, com trechos e leitura), deal (um negócio, com contatos e conversas), context (o contexto da empresa em JSON e Markdown) ou everything (tudo da empresa; só administradores, e os outros administradores são avisados) |
filters |
object | não | Filtros das conversas exportadas nos tipos conversations e deal; context e everything ignoram os filtros (padrão {}) |
filters.channels |
("meeting" | "note" | "call" | "email" | "whatsapp" | "crm_whatsapp")[] |
não | Canais das conversas (meeting, note, call, email, whatsapp, crm_whatsapp). Ausente: todos (mín. 1 item) |
filters.from |
string (date-time) | não | Só conversas que começaram a partir deste instante (ISO-8601) |
filters.to |
string (date-time) | não | Só conversas que começaram antes deste instante (ISO-8601) |
filters.dealId |
string (uuid) | não | Negócio: obrigatório no tipo deal; nas conversas, filtra pelas do negócio |
Resultado
O JSON da resposta de sucesso de POST /v1/exports, com os mesmos campos. Por trazer conteúdo de conversa, o resultado vem com dois itens de texto: primeiro o aviso de conteúdo de terceiros, depois o JSON.
exports_list
Seção intitulada “exports_list”Suas exportações. As exportações que a pessoa pediu, das mais novas para as mais antigas, com a situação de cada uma. Sem links.
| Operação | exports.list — a mesma de GET /v1/exports |
| Escopo | exports:create |
| Papéis | admin, líder de vendas, vendedor |
| Classe de limite | read |
| Auditada | não |
| Comportamento | somente leitura · idempotente |
Entrada
Nenhum argumento.
Resultado
O JSON da resposta de sucesso de GET /v1/exports, com os mesmos campos.
export_get
Seção intitulada “export_get”Uma exportação, com os links. A situação da exportação e, quando pronta (status ready), cada arquivo com tamanho, sha256, linhas e um link novo. Enquanto queued ou building, consulte de novo em alguns segundos. O download é sempre por link assinado do S3, válido por 15 minutos: entregue o link à pessoa, nenhum arquivo passa pela API. Os arquivos somem em 7 dias.
| Operação | exports.get — a mesma de GET /v1/exports/{exportId} |
| Escopo | exports:create |
| Papéis | admin, líder de vendas, vendedor |
| Classe de limite | read |
| Auditada | sim |
| Comportamento | somente leitura · idempotente |
Entrada
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
exportId |
string (uuid) | sim | Id da exportação |
Resultado
O JSON da resposta de sucesso de GET /v1/exports/{exportId}, com os mesmos campos. Por trazer conteúdo de conversa, o resultado vem com dois itens de texto: primeiro o aviso de conteúdo de terceiros, depois o JSON.
download_meeting_transcript
Seção intitulada “download_meeting_transcript”Transcrição de uma reunião em PDF. O link do PDF da transcrição da reunião gravada. Sempre por link: o arquivo fica no lake e a resposta é a URL assinada do S3, válida por 15 minutos, que já baixa com o nome do arquivo; nenhum arquivo passa pela API. O vendedor baixa as reuniões que organizou, as próprias conversas de WhatsApp e de e-mail e as de contatos dos próprios negócios (o e-mail do CRM, pelo negócio em que foi registrado); estar vinculada a um negócio dele não basta; admin e líder de vendas baixam as do time. Exige o escopo conversations:read e todo download fica registrado. Limite de downloads de arquivo: 60 por pessoa e 600 pela empresa inteira, numa janela de 10 minutos que começa no primeiro pedido e zera ao fim; acima disso responde 429 até a janela fechar. A conta é a mesma no app, na API pública (/v1) e no MCP.
| Operação | downloads.meeting.transcript — a mesma de POST /v1/downloads/meetings/{meetingId}/transcript |
| Escopo | conversations:read |
| Papéis | admin, líder de vendas, vendedor |
| Classe de limite | file |
| Auditada | sim |
| Comportamento | escreve · idempotente |
Entrada
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
meetingId |
string (uuid) | sim | Id da reunião gravada |
Resultado
O JSON da resposta de sucesso de POST /v1/downloads/meetings/{meetingId}/transcript, com os mesmos campos. Por trazer conteúdo de conversa, o resultado vem com dois itens de texto: primeiro o aviso de conteúdo de terceiros, depois o JSON.
download_meeting_audio
Seção intitulada “download_meeting_audio”Áudio de uma reunião em MP3. O link do MP3 da reunião gravada, quando o áudio foi salvo. Sempre por link: o arquivo fica no lake e a resposta é a URL assinada do S3, válida por 15 minutos, que já baixa com o nome do arquivo; nenhum arquivo passa pela API. O vendedor baixa as reuniões que organizou, as próprias conversas de WhatsApp e de e-mail e as de contatos dos próprios negócios (o e-mail do CRM, pelo negócio em que foi registrado); estar vinculada a um negócio dele não basta; admin e líder de vendas baixam as do time. Exige o escopo conversations:read e todo download fica registrado. Limite de downloads de arquivo: 60 por pessoa e 600 pela empresa inteira, numa janela de 10 minutos que começa no primeiro pedido e zera ao fim; acima disso responde 429 até a janela fechar. A conta é a mesma no app, na API pública (/v1) e no MCP.
| Operação | downloads.meeting.audio — a mesma de POST /v1/downloads/meetings/{meetingId}/audio |
| Escopo | conversations:read |
| Papéis | admin, líder de vendas, vendedor |
| Classe de limite | file |
| Auditada | sim |
| Comportamento | escreve · idempotente |
Entrada
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
meetingId |
string (uuid) | sim | Id da reunião gravada |
Resultado
O JSON da resposta de sucesso de POST /v1/downloads/meetings/{meetingId}/audio, com os mesmos campos. Por trazer conteúdo de conversa, o resultado vem com dois itens de texto: primeiro o aviso de conteúdo de terceiros, depois o JSON.
download_whatsapp_transcript
Seção intitulada “download_whatsapp_transcript”Conversa de WhatsApp em PDF. O link do PDF da sessão de WhatsApp. Sempre por link: o arquivo fica no lake e a resposta é a URL assinada do S3, válida por 15 minutos, que já baixa com o nome do arquivo; nenhum arquivo passa pela API. O vendedor baixa as reuniões que organizou, as próprias conversas de WhatsApp e de e-mail e as de contatos dos próprios negócios (o e-mail do CRM, pelo negócio em que foi registrado); estar vinculada a um negócio dele não basta; admin e líder de vendas baixam as do time. Exige o escopo conversations:read e todo download fica registrado. Limite de downloads de arquivo: 60 por pessoa e 600 pela empresa inteira, numa janela de 10 minutos que começa no primeiro pedido e zera ao fim; acima disso responde 429 até a janela fechar. A conta é a mesma no app, na API pública (/v1) e no MCP.
| Operação | downloads.whatsapp.transcript — a mesma de POST /v1/downloads/whatsapp-sessions/{sessionId}/transcript |
| Escopo | conversations:read |
| Papéis | admin, líder de vendas, vendedor |
| Classe de limite | file |
| Auditada | sim |
| Comportamento | escreve · idempotente |
Entrada
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
sessionId |
string (uuid) | sim | Id da sessão de WhatsApp |
Resultado
O JSON da resposta de sucesso de POST /v1/downloads/whatsapp-sessions/{sessionId}/transcript, com os mesmos campos. Por trazer conteúdo de conversa, o resultado vem com dois itens de texto: primeiro o aviso de conteúdo de terceiros, depois o JSON.
download_email_transcript
Seção intitulada “download_email_transcript”Conversa de e-mail em PDF. O link do PDF da conversa de e-mail (thread da caixa conectada ou e-mail registrado no CRM). Sempre por link: o arquivo fica no lake e a resposta é a URL assinada do S3, válida por 15 minutos, que já baixa com o nome do arquivo; nenhum arquivo passa pela API. O vendedor baixa as reuniões que organizou, as próprias conversas de WhatsApp e de e-mail e as de contatos dos próprios negócios (o e-mail do CRM, pelo negócio em que foi registrado); estar vinculada a um negócio dele não basta; admin e líder de vendas baixam as do time. Exige o escopo conversations:read e todo download fica registrado. Limite de downloads de arquivo: 60 por pessoa e 600 pela empresa inteira, numa janela de 10 minutos que começa no primeiro pedido e zera ao fim; acima disso responde 429 até a janela fechar. A conta é a mesma no app, na API pública (/v1) e no MCP.
| Operação | downloads.email.transcript — a mesma de POST /v1/downloads/email-threads/{threadId}/transcript |
| Escopo | conversations:read |
| Papéis | admin, líder de vendas, vendedor |
| Classe de limite | file |
| Auditada | sim |
| Comportamento | escreve · idempotente |
Entrada
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
threadId |
string (uuid) | sim | Id da conversa de e-mail: a thread da caixa conectada ou o e-mail registrado no CRM |
Resultado
O JSON da resposta de sucesso de POST /v1/downloads/email-threads/{threadId}/transcript, com os mesmos campos. Por trazer conteúdo de conversa, o resultado vem com dois itens de texto: primeiro o aviso de conteúdo de terceiros, depois o JSON.
download_bundle_create
Seção intitulada “download_bundle_create”Pedir um ZIP com várias conversas. Reuniões (com o MP3 se includeAudio), sessões de WhatsApp e conversas de e-mail num ZIP só, de 1 a 30 conversas. Responde na hora com o pedido montando; acompanhe com download_bundle_get pelo id. Sempre por link: o arquivo fica no lake e a resposta é a URL assinada do S3, válida por 15 minutos, que já baixa com o nome do arquivo; nenhum arquivo passa pela API. O vendedor baixa as reuniões que organizou, as próprias conversas de WhatsApp e de e-mail e as de contatos dos próprios negócios (o e-mail do CRM, pelo negócio em que foi registrado); estar vinculada a um negócio dele não basta; admin e líder de vendas baixam as do time. Exige o escopo conversations:read e todo download fica registrado. Limite de pedidos de ZIP: 10 por pessoa e 60 pela empresa inteira, numa janela de 1 hora que começa no primeiro pedido e zera ao fim; acima disso responde 429 até a janela fechar. A conta é a mesma no app, na API pública (/v1) e no MCP.
| Operação | downloads.bundles.create — a mesma de POST /v1/downloads/bundles |
| Escopo | conversations:read |
| Papéis | admin, líder de vendas, vendedor |
| Classe de limite | file |
| Auditada | sim |
| Comportamento | escreve |
Entrada
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
meetingIds |
(string (uuid))[] | não | Reuniões gravadas a incluir no ZIP: a transcrição em PDF e, com includeAudio, o MP3. Repetidas contam uma vez (máx. 30 itens; padrão []) |
sessionIds |
(string (uuid))[] | não | Sessões de WhatsApp a incluir no ZIP, cada uma como a conversa em PDF. Repetidas contam uma vez (máx. 30 itens; padrão []) |
threadIds |
(string (uuid))[] | não | Conversas de e-mail a incluir no ZIP (thread da caixa conectada ou e-mail registrado no CRM), cada uma em PDF. Repetidas contam uma vez (máx. 30 itens; padrão []) |
includeAudio |
boolean | não | true inclui o MP3 de cada reunião que tem áudio, além da transcrição em PDF (padrão false) |
Resultado
O JSON da resposta de sucesso de POST /v1/downloads/bundles, com os mesmos campos. Por trazer conteúdo de conversa, o resultado vem com dois itens de texto: primeiro o aviso de conteúdo de terceiros, depois o JSON.
download_bundles_list
Seção intitulada “download_bundles_list”Os ZIPs pedidos. Os últimos 20 pedidos de ZIP da pessoa, do mais novo para o mais antigo, com o link dos prontos.
| Operação | downloads.bundles.list — a mesma de GET /v1/downloads/bundles |
| Escopo | conversations:read |
| Papéis | admin, líder de vendas, vendedor |
| Classe de limite | read |
| Auditada | sim |
| Comportamento | somente leitura · idempotente |
Entrada
Nenhum argumento.
Resultado
O JSON da resposta de sucesso de GET /v1/downloads/bundles, com os mesmos campos. Por trazer conteúdo de conversa, o resultado vem com dois itens de texto: primeiro o aviso de conteúdo de terceiros, depois o JSON.
download_bundle_get
Seção intitulada “download_bundle_get”Um pedido de ZIP. A situação do pedido (building, ready ou failed com o motivo) e, quando pronto, um link novo. Enquanto building, consulte de novo em alguns segundos.
| Operação | downloads.bundles.get — a mesma de GET /v1/downloads/bundles/{bundleId} |
| Escopo | conversations:read |
| Papéis | admin, líder de vendas, vendedor |
| Classe de limite | read |
| Auditada | sim |
| Comportamento | somente leitura · idempotente |
Entrada
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
bundleId |
string (uuid) | sim | Id do pedido de ZIP |
Resultado
O JSON da resposta de sucesso de GET /v1/downloads/bundles/{bundleId}, com os mesmos campos. Por trazer conteúdo de conversa, o resultado vem com dois itens de texto: primeiro o aviso de conteúdo de terceiros, depois o JSON.