Pular para o conteúdo

Conversas do negócio, em cartões

GET
/v1/deals/{dealId}/conversations
curl --request GET \
--url 'https://developers.nexo.winningsales.com.br/v1/deals/example/conversations?page=1&pageSize=24&channel=meeting' \
--header 'Authorization: Bearer <token>'

As conversas do negócio como cartões, das mais novas para as mais antigas: as reuniões gravadas e cada conversa vinculada a ele (WhatsApp, e-mail da caixa conectada ou do CRM, notas e ligações do CRM). Cada cartão traz título, período, duração (reunião), quantas mensagens (WhatsApp e e-mail), as pessoas com o lado, se há áudio e transcrição, a linha do Nexo quando a conversa já foi lida e qual rota baixa a transcrição, com o id que ela recebe (nulo, e sem áudio, quando a pessoa não pode baixar aquela conversa pela regra de escopo dos downloads). Leve: não traz os trechos; o texto da conversa sai na rota de trechos e nos downloads. Filtre por canal e busque com q, que procura também no que foi dito nas conversas que a pessoa pode abrir. Os arquivos saem nas rotas /v1/downloads, sempre por link assinado. O vendedor só enxerga os próprios negócios; admin e líder de vendas enxergam os da empresa, como no app. Exige o escopo conversations:read; cada listagem fica registrada na atividade da empresa.

dealId
required
string

Id do negócio no Nexo

page

Página, a partir de 1

integer
default: 1 >= 1

Página, a partir de 1

pageSize

Cartões por página, até 100

integer
default: 24 >= 1 <= 100

Cartões por página, até 100

channel

Só um canal: meeting, whatsapp, email (caixa conectada e CRM), note, call ou crm_whatsapp

string
Allowed values: meeting whatsapp email note call crm_whatsapp

Só um canal: meeting, whatsapp, email (caixa conectada e CRM), note, call ou crm_whatsapp

q

Busca, sem diferenciar maiúsculas e acentos, no título, nas pessoas (nome ou e-mail), na linha do Nexo e no que foi dito ou escrito na conversa, este só nas conversas que a pessoa pode abrir

string
>= 1 characters <= 120 characters

Busca, sem diferenciar maiúsculas e acentos, no título, nas pessoas (nome ou e-mail), na linha do Nexo e no que foi dito ou escrito na conversa, este só nas conversas que a pessoa pode abrir

Uma página de cartões

Media typeapplication/json
object
data
required

Records of the current page

Array<object>
object
channel
required

Canal do cartão: reunião, WhatsApp, e-mail (da caixa conectada ou do CRM), nota, ligação ou WhatsApp registrado no CRM

string
Allowed values: meeting whatsapp email note call crm_whatsapp
conversationId
required

Id da conversa no canal: o mesmo das rotas de trechos e leitura, e o que as rotas de download recebem

string format: uuid
source
required

De onde a conversa vem: gravação do Nexo, sessão de WhatsApp, thread da caixa de e-mail ou registro do CRM

string
Allowed values: nexo_meeting whatsapp_session mailbox_thread crm_email crm_note crm_call crm_whatsapp
title
required

Título da reunião, assunto do e-mail ou nome do contato no WhatsApp

string
nullable
at
required

Quando a conversa conta para o negócio; é a ordem da lista, das mais novas para as mais antigas

string format: date-time
startedAt
required

Início da reunião, primeira mensagem do WhatsApp ou do e-mail, ou data do registro no CRM

string format: date-time
endedAt
required

Fim da reunião ou última mensagem do WhatsApp ou do e-mail; com startedAt, o período do cartão. Nulo no CRM

string format: date-time
nullable
durationSeconds
required

Duração da reunião gravada ou da ligação, em segundos

integer
nullable
messageCount
required

Quantas mensagens: no WhatsApp e no e-mail; nulo nas reuniões, notas e ligações

integer
nullable
participants
required

Quem participou: convidados da reunião, vendedor e contato no WhatsApp, remetentes e destinatários do e-mail

Array<object>
object
name
required

Nome da pessoa

string
nullable
email
required

E-mail da pessoa, quando conhecido

string
nullable
side
required

Lado da pessoa: da empresa (internal), do cliente (external) ou sem como saber (unknown)

string
Allowed values: internal external unknown
hasAudio
required

A reunião tem o MP3 e a pessoa pode baixá-lo. Falso também quando o MP3 existe mas a pessoa não passa na regra de escopo da rota de download (o vendedor baixa só as reuniões que organizou)

boolean
hasTranscript
required

Há conteúdo para a transcrição em PDF

boolean
headline
required

A linha do Nexo sobre a conversa, quando ela já foi lida para o negócio

string
nullable
read
required

O Nexo já leu a conversa para este negócio

boolean
transcriptDownload
required

Qual rota baixa a transcrição, sempre com o conversationId: meeting (reunião, que também tem o áudio), whatsapp_session ou email_thread. Nulo nas notas, ligações e WhatsApp registrados no CRM e também quando a pessoa não pode baixar aquela conversa pela regra de escopo da rota de download: o cartão aparece, mas sem oferecer o download

string
nullable
Allowed values: meeting whatsapp_session email_thread
pagination
required
object
page
required

Current page (1-based)

integer
pageSize
required

Records per page

integer
totalRecords
required

Total records matching the filters

integer
totalPages
required

Total pages for the current pageSize

integer

Example

{
"data": [
{
"channel": "meeting",
"source": "nexo_meeting",
"participants": [
{
"side": "internal"
}
],
"transcriptDownload": "meeting"
}
]
}

Canal, busca ou paginação inválidos

Media typeapplication/json
object
type
required

Stable machine-readable error code (e.g. identity.email_already_in_use)

string
title
required

Error class name

string
status
required

HTTP status code

integer
detail
required

Human-readable message, safe to display to end users

string
requestId
required

Correlation id — send it to support to locate the full trail

string
nullable
meta

Structured details safe for the frontend (field errors, ids)

object
key
additional properties

Example generated

{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"requestId": "example",
"meta": {
"additionalProperty": "example"
}
}

Token ausente, inválido, expirado ou revogado

Media typeapplication/json
object
type
required

Stable machine-readable error code (e.g. identity.email_already_in_use)

string
title
required

Error class name

string
status
required

HTTP status code

integer
detail
required

Human-readable message, safe to display to end users

string
requestId
required

Correlation id — send it to support to locate the full trail

string
nullable
meta

Structured details safe for the frontend (field errors, ids)

object
key
additional properties

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"
}

Papel, escopo do token ou plano não permitem a operação

Media typeapplication/json
object
type
required

Stable machine-readable error code (e.g. identity.email_already_in_use)

string
title
required

Error class name

string
status
required

HTTP status code

integer
detail
required

Human-readable message, safe to display to end users

string
requestId
required

Correlation id — send it to support to locate the full trail

string
nullable
meta

Structured details safe for the frontend (field errors, ids)

object
key
additional properties

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 visibilidade do dono do token

Media typeapplication/json
object
type
required

Stable machine-readable error code (e.g. identity.email_already_in_use)

string
title
required

Error class name

string
status
required

HTTP status code

integer
detail
required

Human-readable message, safe to display to end users

string
requestId
required

Correlation id — send it to support to locate the full trail

string
nullable
meta

Structured details safe for the frontend (field errors, ids)

object
key
additional properties

Example

{
"type": "deals.not_found",
"title": "DealNotFoundError",
"status": 404,
"detail": "Negócio não encontrado.",
"requestId": "019fcae7-3e54-755a-8458-bdb605b324bb",
"meta": {
"dealId": "019fcae7-3e54-755a-8458-bdb605b324aa"
}
}

Limite de chamadas da empresa ou do token atingido

Media typeapplication/json
object
type
required

Stable machine-readable error code (e.g. identity.email_already_in_use)

string
title
required

Error class name

string
status
required

HTTP status code

integer
detail
required

Human-readable message, safe to display to end users

string
requestId
required

Correlation id — send it to support to locate the full trail

string
nullable
meta

Structured details safe for the frontend (field errors, ids)

object
key
additional properties

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
}
}