EvoluAIv2 Docs

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

ItemValor
Base URLhttps://api.evolu-ai.com/trpc
Header obrigatórioX-API-Key: evai_your_key_here
Content-Typeapplication/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

RegraValor
Tamanho máximo40 MB
Duração máxima2 horas
Formatos aceitosMP3, WAV, M4A, OGG, FLAC, WebM
URL deve ser públicaSim — a API faz o download diretamente
URL deve usar HTTPSSim — HTTP não é aceito

Sobre os inputs

Exatamente um dos três campos abaixo é obrigatório por requisição:

CampoQuando usar
audioUrlURL pública HTTPS de um arquivo de áudio
audioKeyChave de objeto no storage da EvoluAI (após upload via upload.getPresignedUrl)
transcriptTranscrição em texto puro, quando o áudio já foi transcrito externamente

Rate limit

RecursoLimite
Requisições por minuto60 req/min por API Key
Análises simultâneasNã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 áudioTempo estimado
Até 5 minutos20–45 segundos
5–30 minutos45–120 segundos
30–120 minutos2–8 minutos

Próximos passos

On this page