API - Discador - Campanhas
Disponível a partir da versão 6.15.0
Operações básicas para manipulação de campanhas.
Nos cabeçalhos dos requests, é necessário incluir uma chave "token" cujo valor seja um token de API.
Criação
Criar uma nova campanha
| Endpoint | /api/v1/campaign |
|---|---|
| Method | POST |
Parâmetros
Corpo em JSON
| Campo | Descrição | Valor default | |
|---|---|---|---|
| name | Nome da campanha | obrigatório | - |
| campaign_type | Tipo da campanha: Valores: transfer, ivr, broadcast | opcional | transfer |
| script | Texto com o script da campanha | opcional | - |
| retry_count | Número máximo de tentativas que um assinante receberá antes de ser marcado com erro | opcional | 3 |
| retry_seconds | Número de segundos que o discador deve esperar antes de tentar ligar novamente para um assinante. | opcional | 300 |
| wrapup_time | Número de segundos que o operador não receberá chamadas após desligar uma ligação. | opcional | 30 |
| min_call_ratio | Valor mínimo da agressividade da campanha | opcional | 1.0 |
| max_call_ratio | Valor máximo da agressividade da campanha | opcional | 1.0 |
| call_ratio_increase_step | Valor indicando quanto o sistema irá aumentar a agressividade quando for necessário. | opcional | 0.5 |
| call_ratio_decrease_step | Valor indicando quanto o sistema irá reduzir a agressividade quando for necessário. | opcional | 1.0 |
| call_ratio_analysis_interval | Número em segundos que o sistema deverá aguardar antes de reavaliar a agressividade. | opcional | 60 |
| concurrent_calls | Número de chamadas simultâneas permitidas. | opcional | 30 |
Exemplo de requisição
Criando uma campanha
curl -X POST \
https://example.evolux.net.br/api/v1/campaign \
-H 'Content-Type: application/json' \
-H 'token: <EVOLUX_TOKEN>' \
-d '{
"name": "Campanha de Teste",
"campaign_type": "transfer",
"script": "Hello, $name",
"retry_count": 4,
"retry_seconds": 120,
"wrapup_time": 20,
"min_call_ratio": 1,
"max_call_ratio": 1,
"call_ratio_increase_step": 0,
"call_ratio_decrease_step": 0,
"call_ratio_analysis_interval": 120,
"concurrent_calls": 10
}'
Exemplo de respostas
201
{
"meta": {
"status": 201,
"message": "Campaign created"
},
"data": {
"campaign_type": "transfer",
"name": "Campanha de Teste",
"concurrent_calls": 10,
"script": "Hello, $name",
"max_call_ratio": 1,
"min_call_ratio": 1,
"id": 3,
"retry_count": 4,
"call_ratio_increase_step": 0,
"retry_seconds": 120,
"wrapup_time": 20,
"call_ratio_analysis_interval": 120,
"call_ratio_decrease_step": 0,
"slug": "campanha_de_teste2",
"call_ratio": 1
}
}
Nome em uso
{
"meta": {
"status": 400,
"message": "Bad request"
},
"errors": {
"name": [
"This campaign Campanha de Teste is already in use"
]
}
}
Parâmetros Inválidos
{
"meta": {
"status": 400,
"message": "Bad request"
},
"errors": {
"campaign_type": [
"Unallowed value any"
],
"name": [
"Required field"
],
"min_call_ratio": [
"Min value is 1.0"
],
"max_call_ratio": [
"Min value is 1.0"
],
"retry_count": [
"Min value is 0"
],
"call_ratio_increase_step": [
"Min value is 0"
],
"retry_seconds": [
"Min value is 0"
],
"wrapup_time": [
"Min value is 0"
],
"call_ratio_analysis_interval": [
"Min value is 0"
],
"call_ratio_decrease_step": [
"Min value is 0"
],
"concurrent_calls": [
"Min value is 1"
]
}
}
Missing Token
{
"meta": {
"status": 400,
"message": "Missing token."
}
}
Edição
Atualizar uma campanha existente
| Endpoint | /api/v1/campaign/{campaign_id} |
|---|---|
| Method | PUT |
Corpo do JSON
Os parâmetros são os mesmos da criação, com a diferença de que são todos opcionais e não é possível alterar o tipo da campanha. Pode ser informado apenas o campo que deseja alterar.
Exemplo de requisição
curl -X POST \
https://example.evolux.net.br/api/v1/campaign/1 \
-H 'Content-Type: application/json' \
-H 'token: <EVOLUX_TOKEN>' \
-d '{
"name": "Cobrança",
"retry_count": 4,
"retry_seconds": 50
}'
Exemplo de resposta
Campanha atualizada
{
"meta": {
"status": 200,
"message": "Campaign updated"
},
"data": {
"campaign_type": "transfer",
"name": "Cobrança",
"concurrent_calls": 30,
"script": "<p>Hello</p><p> </p>",
"max_call_ratio": 3,
"min_call_ratio": 2,
"id": 1,
"retry_count": 4,
"call_ratio_increase_step": 0.5,
"retry_seconds": 50,
"wrapup_time": 30,
"call_ratio_analysis_interval": 60,
"call_ratio_decrease_step": 1,
"slug": "teste",
"call_ratio": 2
}
}
Campanha não encontrada
{
"meta": {
"status": 404,
"message": "Campaign not found"
}
}
Iniciar uma campanha
| Endpoint | /api/v1/campaign/{campaign_id}/start |
|---|---|
| Method | POST |
Exemplo de requisição
curl -X POST \ https://ledev/api/v1/campaign/1/start \ -H 'token: <EVOLUX_TOKEN>'
Exemplo de resposta
{
"meta": {
"status": 200,
"message": "Campaign started"
}
}
{
"meta": {
"status": 422,
"message": "Campaign Campanha de Teste doesn't have active rules."
},
"errors": [
"Request well-formed but has a semantic impossibility."
]
}
Parar uma campanha
| Endpoint | /api/v1/campaign/{campaign_id}/stop |
|---|---|
| Method | POST |
Exemplo de requisição
curl -X POST \ https://ledev/api/v1/campaign/1/stop \ -H 'token: <EVOLUX_TOKEN>'
Exemplo de resposta
{
"meta": {
"status": 200,
"message": "Campaign stopped"
}
}
, multiple selections available,