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
| 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
curl -X POST \
https://{{dominio}}.callwe.io/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
{
"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
}
}
|
{
"meta": {
"status": 400,
"message": "Bad request"
},
"errors": {
"name": [
"This campaign Campanha de Teste is already in use"
]
}
}
|
{
"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"
]
}
}
|
{
"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://{{dominio}}.callwe.io/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
{
"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
}
}
|
{
"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"
}
}
|