> ## Documentation Index
> Fetch the complete documentation index at: https://docs.jelou.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Voz

> Gerencie todo o serviço de voz pelo CLI: chamadas, números, agentes, contatos, campanhas de chamadas, faturamento, relatórios e webhooks.

`jelou voice` cobre todo o serviço de voz da sua organização: **chamadas**
(consulta, gravações, estatísticas), **números de telefone**, **agentes de
voz** (ElevenLabs e outros provedores), **contatos** e **listas de
contatos**, **campanhas de chamadas** (schedules), **faturamento**,
**relatórios de campanha** e **webhooks** de eventos.

<Note>
  Tudo que disca um número real ou gasta dinheiro pede confirmação antes de
  executar: ativar uma campanha, uma chamada de teste, uma chamada de saída e
  qualquer `delete`. Use `--yes` em CI ou scripts não interativos.
</Note>

## Chamadas

```bash theme={null}
jelou voice calls list                       # últimos 30 dias (default)
jelou voice calls list --start-date 2026-07-01 --end-date 2026-07-17
jelou voice calls list --direction inbound --status completed
```

| Flag                        | Descrição                                      |
| --------------------------- | ---------------------------------------------- |
| `--start-date <YYYY-MM-DD>` | Início do intervalo                            |
| `--end-date <YYYY-MM-DD>`   | Fim do intervalo                               |
| `--page <n>`                | Página (default: 1)                            |
| `--limit <n>`               | Resultados por página (default: 20)            |
| `--provider <nome>`         | Filtra por provedor (por exemplo `elevenlabs`) |
| `--direction <dir>`         | `inbound` ou `outbound`                        |
| `--status <estado>`         | Filtra pelo status da chamada                  |

O resultado é paginado: sem `--start-date` e `--end-date` você recebe os
últimos 30 dias.

### Ver uma chamada

```bash theme={null}
jelou voice calls get call_01h2xcejq
```

### Baixar a gravação

```bash theme={null}
jelou voice calls recording call_01h2xcejq --out chamada.mp3
```

Sem `--out` o arquivo é salvo com um nome padrão no diretório atual.

### Estatísticas, exportação e agentes

```bash theme={null}
# Resumo agregado do intervalo (default: últimos 30 dias)
jelou voice calls stats --start-date 2026-07-01 --end-date 2026-07-31

# Exportar para CSV ou XLSX (--format csv|xlsx, default: csv)
jelou voice calls export --start-date 2026-07-01 --end-date 2026-07-31 --out chamadas.csv
jelou voice calls export --start-date 2026-07-01 --end-date 2026-07-31 --format xlsx --out chamadas.xlsx

# Uma métrica pontual por nome (catálogo v2)
jelou voice calls metrics <nome-metrica> --start-date 2026-07-01

# Agentes que já atenderam chamadas
jelou voice calls agents
```

### Chamada de saída pontual

```bash theme={null}
jelou voice calls outbound --phone +593999999999 --agent-id ag_1
jelou voice calls outbound --phone +593999999999 --agent-id ag_1 --phone-number-id num_1 --pbx sip-trunk
```

<Warning>
  `jelou voice calls outbound` disca um número real imediatamente e fatura a
  conta. Pede confirmação a menos que você passe `--yes`.
</Warning>

## Números de telefone

```bash theme={null}
jelou voice numbers list                     # os da sua organização (ElevenLabs por padrão)
jelou voice numbers list --provider <nome>   # outro provedor
jelou voice numbers list --all               # todos os números do provedor
```

| Flag                | Descrição                                                        |
| ------------------- | ---------------------------------------------------------------- |
| `--provider <nome>` | Provedor a consultar (default: `elevenlabs`)                     |
| `--all`             | Lista todos os números do provedor, não só os da sua organização |

## Agentes de voz

Um agente de voz é quem "fala" na chamada: define o prompt, a voz, o idioma,
o limite de duração e sua base de conhecimento.

```bash theme={null}
jelou voice agents list
jelou voice agents list --all                # todos os agentes do provedor
jelou voice agents get ag_1
jelou voice agents voices                     # vozes disponíveis para atribuir
```

### Criar e ajustar um agente

```bash theme={null}
jelou voice agents create \
  --name "Agente de cobrança" \
  --language pt \
  --voice-id voice_abc123 \
  --system-prompt "Você é um agente de cobrança amigável e direto." \
  --first-message "Olá, estou ligando da parte de..."

jelou voice agents update ag_1 \
  --system-prompt "Prompt atualizado" \
  --max-duration-seconds 300
```

| Flag (`create`/`update`)     | Descrição                                            |
| ---------------------------- | ---------------------------------------------------- |
| `--name`                     | Nome do agente (só em `create`)                      |
| `--language <código>`        | Idioma, por exemplo `pt`                             |
| `--voice-id <id>`            | Voz a usar (`jelou voice agents voices`)             |
| `--system-prompt`            | Prompt do sistema                                    |
| `--first-message`            | Frase de abertura                                    |
| `--max-duration-seconds <n>` | Limite rígido de duração da chamada (só em `update`) |

```bash theme={null}
jelou voice agents assign ag_1                # atribui o agente à organização ativa
jelou voice agents delete ag_1 --yes
```

### Base de conhecimento do agente

```bash theme={null}
jelou voice agents knowledge list ag_1
jelou voice agents knowledge upload ag_1 ./manual-produto.pdf
jelou voice agents knowledge url ag_1 https://exemplo.com/faq --name "FAQ pública"
jelou voice agents knowledge delete ag_1 doc_1 --yes
```

<Warning>
  `jelou voice agents delete` é irreversível.
</Warning>

## Contatos e listas de contatos

Contatos são as pessoas que uma campanha pode chamar. As listas agrupam
contatos e são o alvo (`--contact-list-id`) de uma campanha.

```bash theme={null}
jelou voice contacts list
jelou voice contacts get cnt_1
```

### Criar e atualizar contatos

```bash theme={null}
jelou voice contacts create \
  --first-name Ana --last-name Torres \
  --phone +593999999999 --email ana@exemplo.com \
  --company Acme --position Gerente --notes "Cliente VIP"

jelou voice contacts update cnt_1 --phone +593988888888
jelou voice contacts delete cnt_1 --yes
```

Todos os campos de `create` (`--first-name`, `--last-name`, `--phone`,
`--email`, `--company`, `--position`, `--notes`) também existem em `update`
como overrides parciais. O telefone usa o formato E.164.

### Listas de contatos

```bash theme={null}
jelou voice contacts lists list
jelou voice contacts lists get list_1

# Criar a partir de ids de contatos existentes
jelou voice contacts lists create --name "Carteira vencida" \
  --contact-id cnt_1 --contact-id cnt_2

# Criar a partir de um arquivo CSV/XLSX
jelou voice contacts lists upload ./contatos.csv --name "Campanha julho"

jelou voice contacts lists update list_1 --name "Novo nome" --description "Atualizada"
jelou voice contacts lists add list_1 cnt_3
jelou voice contacts lists remove list_1 cnt_3
jelou voice contacts lists delete list_1 --yes
```

`--contact-id` em `lists create` é repetível. `lists upload` é a forma mais
rápida de montar uma lista grande: basta um CSV ou XLSX com os contatos.

## Campanhas de chamadas (`jelou voice schedules`)

Uma campanha ("schedule") liga para toda uma lista de contatos com um agente
e um número de origem definidos.

```bash theme={null}
jelou voice schedules list
jelou voice schedules get sch_1
jelou voice schedules stats                   # estatísticas de campanhas em toda a organização
jelou voice schedules progress sch_1          # progresso de discagem de uma campanha
jelou voice schedules calls sch_1             # chamadas feitas por uma campanha
jelou voice schedules calls sch_1 --status completed
```

### Criar e ativar uma campanha

```bash theme={null}
jelou voice schedules create \
  --name "Cobrança julho" \
  --contact-list-id list_1 \
  --agent-id ag_1 \
  --from-number +593222222222 \
  --scheduled-at "2026-07-20T09:00:00-05:00" \
  --max-retries 2

jelou voice schedules activate sch_1 --agent-id ag_1 \
  --retry-on-no-answer --max-retries 2 --retry-delay-minutes 30
```

| Flag                        | Em `create` | Em `activate` |
| --------------------------- | :---------: | :-----------: |
| `--name`                    |      ✓      |       —       |
| `--contact-list-id`         |      ✓      |       —       |
| `--agent-id`                |      ✓      |  ✓ (override) |
| `--from-number` (repetível) |      ✓      |  ✓ (override) |
| `--scheduled-at <iso>`      |      ✓      |  ✓ (override) |
| `--max-retries <n>`         |      ✓      |  ✓ (override) |
| `--retry-delay-minutes <n>` |      —      |       ✓       |
| `--retry-on-no-answer`      |      —      |       ✓       |
| `--yes`                     |      —      |       ✓       |

`create` deixa a campanha pronta mas inativa; `activate` é o que começa a
discar. Os flags de `activate` servem para sobrescrever o que foi definido em
`create` sem precisar recriar a campanha.

<Note>
  `--name` é o único flag que o próprio CLI exige em `create`; o resto é
  validado pela API ao enviar o payload. Na prática, `--agent-id`,
  `--from-number` e `--scheduled-at` são obrigatórios — sem eles a API responde
  400 com `fromNumbers/agentId/scheduledAt should not be empty`.
</Note>

### Testar antes de ativar

```bash theme={null}
jelou voice schedules test-call sch_1 --contact-id cnt_1 --agent-id ag_1
```

<Warning>
  `jelou voice schedules activate` começa a discar chamadas reais imediatamente
  e fatura a conta — confirme a contagem de contatos antes de ativar.
  `test-call` também disca um número real, mesmo que seja só um. Ambos pedem
  confirmação a menos que você passe `--yes`.
</Warning>

### Controlar uma campanha em andamento

```bash theme={null}
jelou voice schedules pause sch_1
jelou voice schedules resume sch_1
jelou voice schedules cancel sch_1            # as chamadas na fila são descartadas
jelou voice schedules delete sch_1 --yes
```

<Warning>
  `cancel` descarta as chamadas que ainda estavam na fila sem serem concluídas —
  não é reversível. Use `delete` apenas em campanhas já finalizadas ou
  canceladas.
</Warning>

## Faturamento

```bash theme={null}
jelou voice billing summary --start-date 2026-07-01 --end-date 2026-07-31
jelou voice billing details --start-date 2026-07-01 --end-date 2026-07-31 \
  --direction outbound --channel sip-trunk
```

| Flag                          | Descrição                                       |
| ----------------------------- | ----------------------------------------------- |
| `--start-date` / `--end-date` | Intervalo de datas                              |
| `--organization-id`           | Restringe a uma organização específica          |
| `--direction`                 | `inbound` ou `outbound`                         |
| `--channel`                   | Canal de faturamento (`sip-trunk`, `twilio`, …) |
| `--page` / `--limit`          | Paginação (só em `details`)                     |

`summary` traz o total faturado do intervalo; `details` detalha linha por
linha.

## Relatórios de campanha

```bash theme={null}
jelou voice reports list
jelou voice reports get rep_1
jelou voice reports export rep_1 --out relatorio-julho.xlsx
```

Sem `--out`, `export` salva o arquivo com um nome padrão no diretório atual.

## Webhooks

```bash theme={null}
jelou voice webhooks list
jelou voice webhooks get wh_1
jelou voice webhooks create --url https://meu-servidor.com/eventos-voz --type call.completed
jelou voice webhooks delete wh_1 --yes
```

## Status do serviço

Verifique se o serviço de voz responde para o perfil ativo:

```bash theme={null}
jelou voice status
```

<Tip>
  Se um comando de voz falhar, rode `jelou voice status` antes de investigar
  mais: separa um problema do serviço de um problema das suas credenciais ou
  filtros.
</Tip>
