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