Pedir uma exportação
const url = 'https://developers.nexo.winningsales.com.br/v1/exports';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"kind":"conversations","filters":{}}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://developers.nexo.winningsales.com.br/v1/exports \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "kind": "conversations", "filters": {} }'Monta, em segundo plano, os arquivos do que você enxerga: as conversas (uma linha NDJSON por conversa, com os trechos e a leitura do Nexo), um negócio, o contexto da empresa, ou tudo da empresa (só administradores; os outros administradores recebem um aviso). Responde na hora com a exportação na fila; acompanhe por GET /v1/exports/{id}. Exige o escopo exports:create, e conversations:read para exportar conversas. Cada pedido fica na atividade da empresa. Os arquivos ficam num bucket próprio do Nexo por 7 dias; o download é sempre por link assinado do S3, válido por 15 minutos e renovado a cada consulta. Nenhum arquivo passa pela API.
Authorizations
Seção intitulada “Authorizations”Request Bodyrequired
Seção intitulada “Request Bodyrequired”object
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)
Filtros das conversas exportadas nos tipos conversations e deal; context e everything ignoram os filtros
object
Canais das conversas (meeting, note, call, email, whatsapp, crm_whatsapp). Ausente: todos
Só conversas que começaram a partir deste instante (ISO-8601)
Só conversas que começaram antes deste instante (ISO-8601)
Negócio: obrigatório no tipo deal; nas conversas, filtra pelas do negócio
Responses
Seção intitulada “Responses”Exportação na fila
object
Id da exportação
Tipo da exportação
Queued (na fila), building (montando), ready (pronta), failed (falhou) ou expired (passou dos 7 dias e foi apagada)
Os filtros aplicados: os pedidos em conversations e deal; todos nulos em context e everything
object
Canais aplicados; nulo: todos
Início do período
Fim do período
Negócio
Quando foi pedida
Quando começou a ser montada
Quando ficou pronta
Quando os arquivos somem (7 dias depois do pedido)
Por que falhou: owner_unavailable, forbidden, deal_unavailable, too_large ou unexpected
Soma dos arquivos
Quantos itens saíram, por tipo (conversations, deals)
object
Os arquivos; o manifest.json lista os outros com tamanho, sha256 e linhas
object
Nome do arquivo: manifest.json, company_context.json, context_pack.md, deal.json ou
Tipo do arquivo
Tamanho em bytes
SHA-256 do arquivo, em hexadecimal, para conferir o download
Linhas do NDJSON (uma por conversa ou por negócio); nulo nos outros arquivos
Link assinado do S3, válido por 15 minutos e renovado a cada consulta; nulo na listagem ou fora de ready
Quando o link expira
Example
{ "kind": "conversations", "status": "queued"}Tipo ou filtros inválidos, ou tipo deal sem dealId
object
Stable machine-readable error code (e.g. identity.email_already_in_use)
Error class name
HTTP status code
Human-readable message, safe to display to end users
Correlation id — send it to support to locate the full trail
Structured details safe for the frontend (field errors, ids)
object
Example generated
{ "type": "example", "title": "example", "status": 1, "detail": "example", "requestId": "example", "meta": { "additionalProperty": "example" }}Token ausente, inválido, expirado ou revogado
object
Stable machine-readable error code (e.g. identity.email_already_in_use)
Error class name
HTTP status code
Human-readable message, safe to display to end users
Correlation id — send it to support to locate the full trail
Structured details safe for the frontend (field errors, ids)
object
Example
{ "type": "public_api.invalid_credential", "title": "InvalidCredentialError", "status": 401, "detail": "Token de acesso inválido, expirado ou revogado. Crie um novo token de acesso no Nexo.", "requestId": "019fcae7-3e54-755a-8458-bdb605b324bb"}Tudo da empresa sem ser administrador
Papel, escopo do token ou plano não permitem a operação
object
Stable machine-readable error code (e.g. identity.email_already_in_use)
Error class name
HTTP status code
Human-readable message, safe to display to end users
Correlation id — send it to support to locate the full trail
Structured details safe for the frontend (field errors, ids)
object
Example
{ "type": "public_api.insufficient_scope", "title": "InsufficientScopeError", "status": 403, "detail": "Este token não tem o escopo conversations:read, exigido por esta operação. Gere um token com esse escopo.", "requestId": "019fcae7-3e54-755a-8458-bdb605b324bb", "meta": { "operation": "conversations.reading", "scope": "conversations:read" }}Negócio inexistente ou fora da sua carteira
object
Stable machine-readable error code (e.g. identity.email_already_in_use)
Error class name
HTTP status code
Human-readable message, safe to display to end users
Correlation id — send it to support to locate the full trail
Structured details safe for the frontend (field errors, ids)
object
Example generated
{ "type": "example", "title": "example", "status": 1, "detail": "example", "requestId": "example", "meta": { "additionalProperty": "example" }}Duas exportações da empresa já estão em andamento
Limite de chamadas da empresa ou do token atingido
object
Stable machine-readable error code (e.g. identity.email_already_in_use)
Error class name
HTTP status code
Human-readable message, safe to display to end users
Correlation id — send it to support to locate the full trail
Structured details safe for the frontend (field errors, ids)
object
Example
{ "type": "public_api.rate_limited", "title": "PublicRateLimitedError", "status": 429, "detail": "Muitas chamadas em pouco tempo. Tente de novo em 12 segundos.", "requestId": "019fcae7-3e54-755a-8458-bdb605b324bb", "meta": { "class": "content", "limitedBy": "company", "limit": 120, "windowSeconds": 60, "retryAfterSeconds": 12 }}