Quick Start
Crie sua primeira análise de vendas em minutos seguindo este guia passo a passo.
Quick Start
Neste guia você vai criar sua primeira análise de ligação de vendas em 2 passos: buscar o ID do vendedor → enviar o áudio → receber a análise com score, transcrição e insights.
Você precisa de uma API Key válida antes de começar. Veja como obter uma em Autenticação.
Pré-requisitos
| Item | Valor |
|---|---|
| Base URL | https://api.evolu-ai.com/trpc |
| Header obrigatório | X-API-Key: evai_your_key_here |
| Content-Type | application/json |
Passo 1 — Buscar o ID do vendedor
A análise precisa do salespersonId para associar a ligação ao vendedor correto. Liste os vendedores da sua empresa — a API Key já identifica automaticamente de qual empresa você faz parte:
curl -X GET 'https://api.evolu-ai.com/trpc/user.listByCompany' \
-H 'X-API-Key: evai_your_key_here'Resposta:
{
"result": {
"data": [
{
"id": "user_abc123",
"name": "João Pereira",
"email": "joao@empresa.com",
"role": "salesperson",
"isActive": true
},
{
"id": "user_def456",
"name": "Ana Costa",
"email": "ana@empresa.com",
"role": "salesperson",
"isActive": true
}
]
}
}Copie o id do vendedor desejado — no exemplo acima, user_abc123 para João Pereira.
Passo 2 — Criar a análise
Agora envie a ligação para análise. Use o link de áudio público abaixo para testar sem precisar de upload próprio:
Áudio de exemplo para testes:
https://storage.evolu-ai.com/samples/demo-sales-call.mp3
Este arquivo é uma ligação de vendas fictícia de ~3 minutos, hospedada publicamente e aceita pela API para fins de demonstração.
curl -X POST 'https://api.evolu-ai.com/v1/analysis.create' \
-H 'Content-Type: application/json' \
-H 'X-API-Key: evai_your_key_here' \
-d '{
"json": {
"salespersonId": "user_abc123",
"audioUrl": "https://storage.evolu-ai.com/samples/demo-sales-call.mp3",
"clientName": "Empresa Teste Ltda"
}
}'Resposta (pode levar 30–90 segundos):
{
"result": {
"data": {
"id": "anal_xyz789",
"score": 74,
"summary": "O vendedor demonstrou boa escuta ativa e identificou necessidades claras do cliente. Houve dificuldade no fechamento — a proposta foi apresentada sem confirmação de BANT.",
"transcript": "Vendedor: Olá, bom dia! Posso falar com o responsável pelas compras?...",
"stage": "Qualify",
"salespersonName": "João Pereira",
"clientName": "Empresa Teste Ltda",
"tokensUsed": 4820,
"audioDuration": 187,
"createdAt": "2025-01-15T14:32:00Z"
}
}
}Fluxo completo em código
JavaScript / Node.js
const API_KEY = 'evai_your_key_here';
const BASE_URL = 'https://api.evolu-ai.com/trpc';
async function primeiraAnalise() {
// Passo 1: Listar vendedores (a API Key já identifica sua empresa)
const usersRes = await fetch(`${BASE_URL}/user.listByCompany`, {
headers: { 'X-API-Key': API_KEY }
});
const { result: { data: vendedores } } = await usersRes.json();
const vendedor = vendedores[0]; // pega o primeiro da lista
console.log('Vendedor selecionado:', vendedor.name, '| ID:', vendedor.id);
// Passo 2: Criar análise com áudio de exemplo
const analysisRes = await fetch(`${BASE_URL}/analysis.create`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-API-Key': API_KEY
},
body: JSON.stringify({
json: {
salespersonId: vendedor.id,
audioUrl: 'https://storage.evolu-ai.com/samples/demo-sales-call.mp3',
clientName: 'Empresa Teste Ltda'
}
})
});
const { result: { data: analise } } = await analysisRes.json();
console.log('=== Análise Criada ===');
console.log('ID:', analise.id);
console.log('Score:', analise.score, '/ 100');
console.log('Etapa da venda:', analise.stage);
console.log('Duração do áudio:', analise.audioDuration, 'segundos');
console.log('Resumo:', analise.summary);
return analise;
}
primeiraAnalise().catch(console.error);Python
import requests
API_KEY = 'evai_your_key_here'
BASE_URL = 'https://api.evolu-ai.com/trpc'
headers = {'X-API-Key': API_KEY, 'Content-Type': 'application/json'}
# Passo 1: Listar vendedores (a API Key já identifica sua empresa)
users = requests.get(f'{BASE_URL}/user.listByCompany', headers=headers).json()
vendedores = users['result']['data']
vendedor = vendedores[0]
print(f"Vendedor: {vendedor['name']} | ID: {vendedor['id']}")
# Passo 2: Criar análise
payload = {
'json': {
'salespersonId': vendedor['id'],
'audioUrl': 'https://storage.evolu-ai.com/samples/demo-sales-call.mp3',
'clientName': 'Empresa Teste Ltda'
}
}
res = requests.post(f'{BASE_URL}/analysis.create', json=payload, headers=headers)
analise = res.json()['result']['data']
print(f"\n=== Análise Criada ===")
print(f"ID: {analise['id']}")
print(f"Score: {analise['score']}/100")
print(f"Etapa: {analise['stage']}")
print(f"Resumo: {analise['summary'][:200]}...")Regras e limites importantes
Leia as regras abaixo antes de integrar em produção para evitar erros inesperados.
Sobre o áudio
| Regra | Valor |
|---|---|
| Tamanho máximo | 40 MB |
| Duração máxima | 2 horas |
| Formatos aceitos | MP3, WAV, M4A, OGG, FLAC, WebM |
| URL deve ser pública | Sim — a API faz o download diretamente |
| URL deve usar HTTPS | Sim — HTTP não é aceito |
Sobre os inputs
Exatamente um dos três campos abaixo é obrigatório por requisição:
| Campo | Quando usar |
|---|---|
audioUrl | URL pública HTTPS de um arquivo de áudio |
audioKey | Chave de objeto no storage da EvoluAI (após upload via upload.getPresignedUrl) |
transcript | Transcrição em texto puro, quando o áudio já foi transcrito externamente |
Rate limit
| Recurso | Limite |
|---|---|
| Requisições por minuto | 60 req/min por API Key |
| Análises simultâneas | Não há limite fixo, mas análises consomem créditos |
Créditos: Cada análise consome créditos baseados na duração do áudio e tokens de IA processados. Verifique seu saldo em GET /trpc/credits.getSummary antes de processar lotes grandes.
Tempo de processamento
O tempo de resposta varia conforme a duração do áudio:
| Duração do áudio | Tempo estimado |
|---|---|
| Até 5 minutos | 20–45 segundos |
| 5–30 minutos | 45–120 segundos |
| 30–120 minutos | 2–8 minutos |