API - Discador - Campanhas

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

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