Criar e Disparar Campanha
curl --request POST \
--url https://dash.superagentes.ai/api/campaigns/new \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"agentId": "<string>",
"message": "<string>",
"autoDispatch": true,
"name": "<string>",
"useAgentContacts": false,
"manualPhoneNumbers": [
"<string>"
]
}
'import requests
url = "https://dash.superagentes.ai/api/campaigns/new"
payload = {
"agentId": "<string>",
"message": "<string>",
"autoDispatch": True,
"name": "<string>",
"useAgentContacts": False,
"manualPhoneNumbers": ["<string>"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
agentId: '<string>',
message: '<string>',
autoDispatch: true,
name: '<string>',
useAgentContacts: false,
manualPhoneNumbers: ['<string>']
})
};
fetch('https://dash.superagentes.ai/api/campaigns/new', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://dash.superagentes.ai/api/campaigns/new",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'agentId' => '<string>',
'message' => '<string>',
'autoDispatch' => true,
'name' => '<string>',
'useAgentContacts' => false,
'manualPhoneNumbers' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://dash.superagentes.ai/api/campaigns/new"
payload := strings.NewReader("{\n \"agentId\": \"<string>\",\n \"message\": \"<string>\",\n \"autoDispatch\": true,\n \"name\": \"<string>\",\n \"useAgentContacts\": false,\n \"manualPhoneNumbers\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://dash.superagentes.ai/api/campaigns/new")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"agentId\": \"<string>\",\n \"message\": \"<string>\",\n \"autoDispatch\": true,\n \"name\": \"<string>\",\n \"useAgentContacts\": false,\n \"manualPhoneNumbers\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://dash.superagentes.ai/api/campaigns/new")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"agentId\": \"<string>\",\n \"message\": \"<string>\",\n \"autoDispatch\": true,\n \"name\": \"<string>\",\n \"useAgentContacts\": false,\n \"manualPhoneNumbers\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"status": "DRAFT",
"message": "<string>",
"startedAt": "2023-11-07T05:31:56Z",
"usedPhoneNumbers": [
"<string>"
],
"manualPhoneNumbers": [
"<string>"
],
"agentId": "<string>"
}{
"error": "<string>",
"details": "<string>"
}Campanhas
Criar Campanha
Cria e dispara uma nova campanha de mensagens via WhatsApp
POST
/
campaigns
/
new
Criar e Disparar Campanha
curl --request POST \
--url https://dash.superagentes.ai/api/campaigns/new \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"agentId": "<string>",
"message": "<string>",
"autoDispatch": true,
"name": "<string>",
"useAgentContacts": false,
"manualPhoneNumbers": [
"<string>"
]
}
'import requests
url = "https://dash.superagentes.ai/api/campaigns/new"
payload = {
"agentId": "<string>",
"message": "<string>",
"autoDispatch": True,
"name": "<string>",
"useAgentContacts": False,
"manualPhoneNumbers": ["<string>"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
agentId: '<string>',
message: '<string>',
autoDispatch: true,
name: '<string>',
useAgentContacts: false,
manualPhoneNumbers: ['<string>']
})
};
fetch('https://dash.superagentes.ai/api/campaigns/new', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://dash.superagentes.ai/api/campaigns/new",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'agentId' => '<string>',
'message' => '<string>',
'autoDispatch' => true,
'name' => '<string>',
'useAgentContacts' => false,
'manualPhoneNumbers' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://dash.superagentes.ai/api/campaigns/new"
payload := strings.NewReader("{\n \"agentId\": \"<string>\",\n \"message\": \"<string>\",\n \"autoDispatch\": true,\n \"name\": \"<string>\",\n \"useAgentContacts\": false,\n \"manualPhoneNumbers\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://dash.superagentes.ai/api/campaigns/new")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"agentId\": \"<string>\",\n \"message\": \"<string>\",\n \"autoDispatch\": true,\n \"name\": \"<string>\",\n \"useAgentContacts\": false,\n \"manualPhoneNumbers\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://dash.superagentes.ai/api/campaigns/new")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"agentId\": \"<string>\",\n \"message\": \"<string>\",\n \"autoDispatch\": true,\n \"name\": \"<string>\",\n \"useAgentContacts\": false,\n \"manualPhoneNumbers\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"status": "DRAFT",
"message": "<string>",
"startedAt": "2023-11-07T05:31:56Z",
"usedPhoneNumbers": [
"<string>"
],
"manualPhoneNumbers": [
"<string>"
],
"agentId": "<string>"
}{
"error": "<string>",
"details": "<string>"
}Criar e Disparar Campanha
Crie e dispare uma nova campanha de mensagens via WhatsApp usando este endpoint.Requisição
Headers
Content-Type: application/json
Authorization: Bearer seu_token_aqui
Parâmetros
| Campo | Tipo | Obrigatório | Descrição | Exemplo |
|---|---|---|---|---|
| agentId | string | Sim | ID do agente que fará o disparo | ”agent_123” |
| name | string | Não | Nome da campanha. Se não informado, será usado um nome padrão | ”Campanha de Marketing” |
| useAgentContacts | boolean | Não | CUIDADO! Essa opção dispara para todos os contatos que conversaram com o agente. Padrão: false | false |
| manualPhoneNumbers | string[] | Não | Array de números de telefone para disparo manual | [“+5511999999999”] |
| preferredProvider | string | Não | Provedor preferido para o disparo. Opções: “official”, “evolution”, “evolution-qr”, “z-api" | "evolution” |
| message | string | Sim | Conteúdo da mensagem a ser enviada | ”Olá, esta é uma mensagem de teste” |
| autoDispatch | boolean | Sim | Define se a campanha será disparada automaticamente ou apenas criada | true |
Exemplo de Requisição
curl -X POST \
'https://dash.superagentes.ai/api/campaigns/new' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer seu_token_aqui' \
-d '{
"agentId": "agent_123",
"name": "Campanha de Marketing",
"useAgentContacts": false,
"manualPhoneNumbers": ["+5511999999999"],
"preferredProvider": "evolution",
"message": "Olá, esta é uma mensagem de teste",
"autoDispatch": true
}'
Resposta
Sucesso
{
"id": "campaign_123",
"name": "Campanha de Marketing",
"status": "IN_PROGRESS",
"message": "Olá, esta é uma mensagem de teste",
"startedAt": "2024-03-21T10:00:00Z",
"usedPhoneNumbers": [],
"manualPhoneNumbers": ["+5511999999999"],
"agentId": "agent_123"
}
Erro
{
"error": "Mensagem de erro",
"details": "Detalhes adicionais do erro (se disponíveis)"
}
Códigos de Status
200: Sucesso400: Erro de validação ou dados inválidos401: Não autorizado (token inválido ou ausente)403: Proibido (sem permissão)404: Agente não encontrado500: Erro interno do servidor
Observações Importantes
-
Provedor de WhatsApp
- Se o
preferredProviderespecificado não estiver disponível, será usado o primeiro provedor conectado ao agente - O provedor deve estar ativo e configurado corretamente no agente
- Se o
-
Números de Telefone
- Os números devem estar no formato internacional (ex: +5511999999999)
- Se
useAgentContactsfor true, os contatos do agente serão incluídos no disparo - Números duplicados serão automaticamente removidos
-
Disparo Automático
- Se
autoDispatchfor false, a campanha será criada com status “DRAFT” - Se
autoDispatchfor true, a campanha será iniciada imediatamente - O disparo é feito de forma assíncrona com delay entre as mensagens
- Se
-
Limitações
- O sistema possui limites de taxa para evitar bloqueios
- As mensagens são enviadas com delay para evitar bloqueios do WhatsApp
- Em caso de falha, o sistema fará até 3 tentativas de envio
Exemplos de Uso
- Criar campanha sem disparar
curl -X POST \
'https://dash.superagentes.ai/api/campaigns/new' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer seu_token_aqui' \
-d '{
"agentId": "agent_123",
"message": "Mensagem de teste",
"autoDispatch": false
}'
- Disparar para números específicos
curl -X POST \
'https://dash.superagentes.ai/api/campaigns/new' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer seu_token_aqui' \
-d '{
"agentId": "agent_123",
"useAgentContacts": false,
"manualPhoneNumbers": ["+5511999999999", "+5511888888888"],
"message": "Mensagem de teste",
"autoDispatch": true
}'
- Usar provedor específico
curl -X POST \
'https://dash.superagentes.ai/api/campaigns/new' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer seu_token_aqui' \
-d '{
"agentId": "agent_123",
"preferredProvider": "z-api",
"message": "Mensagem de teste",
"autoDispatch": true
}'
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/json
ID do agente que fará o disparo
Conteúdo da mensagem a ser enviada
Define se a campanha será disparada automaticamente ou apenas criada
Nome da campanha. Se não informado, será usado um nome padrão
Define se deve usar os contatos do agente. Padrão: false
Array de números de telefone para disparo manual
Provedor preferido para o disparo
Available options:
official, evolution, evolution-qr, z-api Response
Sucesso
ID único da campanha
Nome da campanha
Status atual da campanha
Available options:
DRAFT, IN_PROGRESS, COMPLETED, FAILED Conteúdo da mensagem
Data e hora de início da campanha
Números de telefone utilizados na campanha
Números de telefone fornecidos manualmente
ID do agente responsável pela campanha

