Pular para o conteúdo

Relatório do mês do time

GET
/v1/reports/monthly
curl --request GET \
--url https://developers.nexo.winningsales.com.br/v1/reports/monthly \
--header 'Authorization: Bearer <token>'

O relatório consolidado do mês, refeito todo dia às 7h: meta e ritmo, onde o funil trava, um bloco por vendedor, pendências e o que foi bem. Sem month vem o mais recente; com month (AAAA-MM), a leitura guardada daquele mês, sem recálculo. Já está escrito: ler não consome IA. Só admin e líder de vendas, como no app.

month

Mês da leitura guardada, AAAA-MM. Ausente = o relatório mais recente

string
/^\d{4}-(0[1-9]|1[0-2])$/

Mês da leitura guardada, AAAA-MM. Ausente = o relatório mais recente

O relatório, ou null quando o mês não tem relatório

Media typeapplication/json
object
report
required

O relatório mais recente; null antes do primeiro cálculo ou quando o gravado está desatualizado (ver outdated)

object
month
required

Mês do relatório, AAAA-MM

string
writtenAt
required

Quando o relatório foi escrito, ISO 8601

string
headline
required

A manchete do mês; null quando o texto não passou na conferência

string
nullable
summary
required

O resumo do mês; null quando o texto não passou na conferência

string
nullable
withheld
required

True quando o conferidor recusou o texto e a tela mostra só os números

boolean
notes
required

Um parecer por vendedor

Array<object>
object
ownerId
required

Vendedor de quem é o parecer

string
note
required

O parecer escrito pelo Nexo a partir dos números dele

string
digest
required

Os números que sustentam o relatório, com as falas de cada ponto

object
month
required

Mês do relatório, AAAA-MM

string
dayOfMonth
required

Dia do mês em que foi calculado

integer
daysInMonth
required

Dias do mês

integer
businessDaysRemaining
required

Dias úteis restantes no mês, de segunda a sexta, no fuso da empresa, sem contar hoje; feriados não são descontados

integer
companyName
required

Nome da empresa

string
goal
required

A meta do time, o ritmo e o que fecha se o commit entrar

object
currency
required
string
goalInCents
required
number
nullable
realizedInCents
required
number
attainment
required
number
nullable
remainingInCents
required
number
nullable
expectedInCents
required
number
nullable
deviationInCents
required
number
nullable
deviationPercent
required
number
nullable
commitInCents
required
number
nullable
floorAttainment
required
number
nullable
businessDays
required

Dias úteis do mês até hoje

integer
perBusinessDayInCents
required

Realizado por dia útil; null sem dia útil

number
nullable
previousPerBusinessDayInCents
required

Realizado por dia útil no mês anterior

number
nullable
conversion
required

Conversão do mês

number
nullable
requiredCoverage
required

Cobertura necessária para a meta

number
nullable
newDeals
required

Negócios que entraram no funil no mês

integer
newDealsBefore
required

O mesmo no mês anterior

integer
noShowRate
required

Reuniões marcadas que não aconteceram

number
nullable
noShowOutcomeCoverage
required

Quanto das reuniões passadas tem resultado marcado no CRM

number
nullable
holes
required

Onde o funil do time trava, contra o histórico de 12 meses da própria empresa

Array<object>
object
pipelineName
required

Funil do CRM onde a passagem trava

string
stageName
required

Etapa onde o funil trava

string
nextName
required

Etapa seguinte

string
rate
required

Quanto passa no mês, em percentual

number
reference
required

A mesma passagem na referência, em percentual

number
referenceSource
required

De onde vem a referência: o histórico de 12 meses da empresa, ou a tabela da Winning quando a empresa ainda não tem 8 negócios decididos nessa passagem

string
Allowed values: history winning
delta
required

Diferença em pontos para a referência; negativo porque é furo

number
stopped
required

Negócios que pararam nessa etapa

integer
reps
required

Um bloco por vendedor

Array<object>
object
ownerId
required

Dono no CRM

string
name
required

Nome do vendedor como está no CRM

string
goalInCents
required

Meta do mês; null quando não foi definida

number
nullable
realizedInCents
required

Realizado no mês

number
attainment
required

Atingimento em percentual, 0 a 100

number
nullable
conversion
required

Conversão dele contra a do time

object
rep
required

O número do vendedor

number
nullable
team
required

O mesmo número do time inteiro, para comparar

number
nullable
base
required

Quantos negócios ou reuniões entraram na conta dele

integer
cycleDays
required

Ciclo mediano até ganhar

object
rep
required

O número do vendedor

number
nullable
team
required

O mesmo número do time inteiro, para comparar

number
nullable
base
required

Quantos negócios ou reuniões entraram na conta dele

integer
noShowRate
required

Reuniões marcadas que não aconteceram

object
rep
required

O número do vendedor

number
nullable
team
required

O mesmo número do time inteiro, para comparar

number
nullable
base
required

Quantos negócios ou reuniões entraram na conta dele

integer
stageHole

A etapa do CRM onde o funil dele mais trava contra o time

object
pipelineName
required

Funil do CRM onde está a etapa

string
stageName
required

Etapa real do CRM onde ele mais trava contra o time

string
nextName
required

Etapa seguinte; Ganho na última

string
rate
required

Quanto passa com ele, em percentual

number
teamRate
required

A mesma passagem no time

number
pointsBelowTeam
required

Quantos pontos ele está abaixo do time nessa passagem; negativo porque é furo

number
base
required

Negócios decididos dele nessa etapa

integer
stopped
required

Negócios que pararam nessa etapa com ele

integer
reference
required

A mesma passagem no histórico dele ou na referência Winning; null sem referência

number
nullable
referenceSource
required

De onde vem a referência: o histórico de 12 meses dele, ou a tabela da Winning quando ele ainda não tem 8 decididos nessa passagem; null quando não há referência

string
nullable
Allowed values: history winning
icp
required

Como os negócios trabalhados dele se dividem contra o perfil de cliente

object
inside
required
integer
partial
required
integer
outside
required
integer
unknown
required
integer
deals
required
integer
atRiskCount
required

Negócios dele em risco agora

integer
atRiskInCents
required

Quanto está em risco

number
lossesWithoutReason
required

Perdas dele sem motivo preenchido

integer
lossStage

Etapa em que ele mais perde, quando a base sustenta o percentual

object
name
required

Nome da etapa onde ele mais perde

string
count
required

Perdas dele nessa etapa

integer
lost
required

Perdas dele no funil dessa etapa

integer
share
required

Count ÷ lost em percentual

integer
tasksOnTime

Tarefas do Meu dia feitas no prazo, contra o total que já venceu; null quando não há tarefa vencida

object
part
required
integer
base
required
integer
rate
required
number
nullable
followUpsOnTime

Follow-ups de compromisso e cobrança no prazo, contra o total que já venceu; null quando não há follow-up vencido

object
part
required
integer
base
required
integer
rate
required
number
nullable
points
required

Até três pontos das conversas gravadas dele

Array<object>
object
kind
required

Tipo do ponto: objeção aberta, sem próximo passo, compromisso atrasado, condição prometida, diagnóstico

string
dealName
required

Negócio de onde saiu

string
detail
required

O que a conversa mostra, na leitura do Nexo

string
amountInCents
required

Valor do negócio em centavos

number
nullable
source

Conversa de onde saiu o trecho; null quando não veio de uma conversa

object
channel
required

Canal de onde saiu o trecho

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

Id da conversa: a reunião, a sessão de WhatsApp, ou o engajamento do CRM

string
excerptRefs
required

Trechos da conversa que sustentam o ponto

Array<string>
quotes
required

Até duas falas que sustentam o ponto; vazio quando a transcrição já saiu da retenção

Array<object>
object
text
required

O que foi dito, como está na transcrição ou na mensagem

string
speakerName
required

Quem falou, com o nome que aparece na conversa

string
nullable
speakerSide
required

De que lado a pessoa está: internal (da empresa) ou external (do cliente)

string
Allowed values: internal external unknown
channel
required

Canal de onde saiu a fala

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

Em que momento da reunião a fala começa, em milissegundos; null fora de reunião

integer
nullable
at
required

Quando a mensagem foi enviada, ISO 8601; null em reunião, onde vale startMs

string
nullable
pending
required

O que depende do time para os números fecharem

Array<object>
object
label
required
string
count
required
integer
owner

O dono com mais itens dessa pendência; null quando não apurado por dono

object
name
required

Nome do dono da falta, como está no CRM

string
count
required

Quantos itens dessa pendência são dele

integer
wins
required

O que foi bem no mês

Array<string>
dealsWithConversations
required

Negócios com conversa gravada lida no período

integer
outdated
required

Preenchido quando existe relatório gravado num formato anterior ao atual; ele é refeito na próxima rodada das 7h. null quando o report veio ou nunca houve cálculo

object
month
required

Mês do relatório gravado, AAAA-MM

string
writtenAt
required

Quando foi escrito, ISO 8601

string

Example

{
"report": {
"digest": {
"holes": [
{
"referenceSource": "history"
}
],
"reps": [
{
"stageHole": null,
"lossStage": null,
"tasksOnTime": null,
"followUpsOnTime": null,
"points": [
{
"source": null,
"quotes": [
{
"speakerSide": "internal",
"channel": "meeting"
}
]
}
]
}
],
"pending": [
{
"owner": null
}
]
}
}
}

Mês fora do formato AAAA-MM

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

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