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
MethodPOST

Parâmetros

Corpo em JSON

CampoDescrição
Valor default
nameNome da campanhaobrigatório-
campaign_typeTipo da campanha: Valores: transfer, ivr, broadcastopcionaltransfer
scriptTexto com o script da campanhaopcional-
retry_countNúmero máximo de tentativas que um assinante receberá antes de ser marcado com erroopcional3
retry_secondsNúmero de segundos que o discador deve esperar antes de tentar ligar novamente para um assinante.opcional300
wrapup_timeNúmero de segundos que o operador não receberá chamadas após desligar uma ligação.opcional30
min_call_ratioValor mínimo da agressividade da campanhaopcional1.0
max_call_ratioValor máximo da agressividade da campanhaopcional1.0
call_ratio_increase_stepValor indicando quanto o sistema irá aumentar a agressividade quando for necessário.opcional0.5
call_ratio_decrease_stepValor indicando quanto o sistema irá reduzir a agressividade quando for necessário.opcional1.0
call_ratio_analysis_intervalNúmero em segundos que o sistema deverá aguardar antes de reavaliar a agressividade.opcional60
concurrent_callsNúmero de chamadas simultâneas permitidas.opcional30

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

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
MethodPOST

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
MethodPOST

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