Skip to main content
POST
/
api
/
automations
curl -X POST https://api.disparador.com/api/automations \
  -H "Content-Type: application/json" \
  -H "X-Access-Token: seu-access-token" \
  -d '{
    "name": "Aniversariantes do Dia",
    "description": "Envia mensagem de parabéns para aniversariantes",
    "isActive": true,
    "scheduleType": "DAILY",
    "schedule": {
      "timeOfDay": "09:00",
      "timezone": "America/Sao_Paulo",
      "weekdays": [2, 3, 4, 5, 6]
    },
    "databaseConfigId": 1,
    "filters": [
      {
        "filterId": "birthday",
        "value": "2025-08-13",
        "operator": "equals",
        "ignoreYear": true
      }
    ],
    "messageConfig": {
      "message": "🎉 Parabéns {PrimeiroNome}! 🎂\n\nDesejamos um dia muito especial!"
    },
    "evolutionConfigId": 2,
    "intervalMinSeconds": 5,
    "intervalMaxSeconds": 12,
    "dedupStrategy": "ONCE",
    "sendLimitPerRun": 100
  }'
{
  "id": 10,
  "name": "Aniversariantes do Dia",
  "description": "Envia mensagem de parabéns para aniversariantes",
  "isActive": true,
  "scheduleType": "DAILY",
  "schedule": {
    "timeOfDay": "09:00",
    "timezone": "America/Sao_Paulo",
    "weekdays": [2, 3, 4, 5, 6]
  },
  "databaseConfigId": 1,
  "evolutionConfigId": 2,
  "intervalMinSeconds": 5,
  "intervalMaxSeconds": 12,
  "notificationPhone": null,
  "dedupStrategy": "ONCE",
  "dedupCooldownDays": null,
  "sendLimitPerRun": 100,
  "lastRunAt": null,
  "nextRunAt": "2024-01-22T09:00:00",
  "createdAt": "2024-01-21T15:30:00",
  "updatedAt": "2024-01-21T15:30:00"
}
Use automações para disparos recorrentes baseados em filtros dinâmicos. São independentes de campanhas e executam automaticamente com base no agendamento configurado.

Headers

Content-Type
string
required
application/json
X-Access-Token
string
required
Token de acesso da empresa

Body

Campos principais

name
string
required
Nome da automação
description
string
Descrição da automação
isActive
boolean
default:"true"
Define se a automação inicia ativa

Agendamento

scheduleType
string
required
Tipo de agendamentoValores aceitos:
  • DAILY - Execução diária
  • WEEKLY - Execução semanal
  • MONTHLY - Execução mensal
  • CRON - Expressão cron customizada
schedule
object
required
Configuração do agendamento

Segmentação

databaseConfigId
number
required
ID da configuração de banco de dados externo
filters
array
Filtros dinâmicos para segmentação

Configuração da Mensagem

messageConfig
object
required
Configuração da mensagem a ser enviada
evolutionConfigId
number
required
ID da configuração da Evolution API

Comportamento de Envio

intervalMinSeconds
number
default:"5"
Intervalo mínimo entre mensagens em segundos
intervalMaxSeconds
number
default:"12"
Intervalo máximo entre mensagens em segundos
notificationPhone
string
Telefone para notificação ao término
dedupStrategy
string
default:"ONCE"
Estratégia de deduplicaçãoValores aceitos:
  • NEVER - Nunca deduplica (permite reenvios)
  • ONCE - Deduplica sempre (evita qualquer reenvio)
  • COOLDOWN_DAYS - Deduplica por período (requer dedupCooldownDays)
dedupCooldownDays
number
Dias de cooldown para deduplicação (quando dedupStrategy = COOLDOWN_DAYS)
sendLimitPerRun
number
Limite de envios por execução (útil para controlar volume)
curl -X POST https://api.disparador.com/api/automations \
  -H "Content-Type: application/json" \
  -H "X-Access-Token: seu-access-token" \
  -d '{
    "name": "Aniversariantes do Dia",
    "description": "Envia mensagem de parabéns para aniversariantes",
    "isActive": true,
    "scheduleType": "DAILY",
    "schedule": {
      "timeOfDay": "09:00",
      "timezone": "America/Sao_Paulo",
      "weekdays": [2, 3, 4, 5, 6]
    },
    "databaseConfigId": 1,
    "filters": [
      {
        "filterId": "birthday",
        "value": "2025-08-13",
        "operator": "equals",
        "ignoreYear": true
      }
    ],
    "messageConfig": {
      "message": "🎉 Parabéns {PrimeiroNome}! 🎂\n\nDesejamos um dia muito especial!"
    },
    "evolutionConfigId": 2,
    "intervalMinSeconds": 5,
    "intervalMaxSeconds": 12,
    "dedupStrategy": "ONCE",
    "sendLimitPerRun": 100
  }'

Response

id
number
ID da automação criada
name
string
Nome da automação
description
string
Descrição da automação
isActive
boolean
Se está ativa
scheduleType
string
Tipo de agendamento
schedule
object
Configuração completa do agendamento
databaseConfigId
number
ID da configuração de banco
evolutionConfigId
number
ID da configuração Evolution
intervalMinSeconds
number
Intervalo mínimo configurado
intervalMaxSeconds
number
Intervalo máximo configurado
notificationPhone
string
Telefone de notificação
dedupStrategy
string
Estratégia de deduplicação
dedupCooldownDays
number
Dias de cooldown
sendLimitPerRun
number
Limite por execução
lastRunAt
string
Data/hora da última execução
nextRunAt
string
Próxima execução prevista
createdAt
string
Data/hora de criação
updatedAt
string
Data/hora da última atualização
{
  "id": 10,
  "name": "Aniversariantes do Dia",
  "description": "Envia mensagem de parabéns para aniversariantes",
  "isActive": true,
  "scheduleType": "DAILY",
  "schedule": {
    "timeOfDay": "09:00",
    "timezone": "America/Sao_Paulo",
    "weekdays": [2, 3, 4, 5, 6]
  },
  "databaseConfigId": 1,
  "evolutionConfigId": 2,
  "intervalMinSeconds": 5,
  "intervalMaxSeconds": 12,
  "notificationPhone": null,
  "dedupStrategy": "ONCE",
  "dedupCooldownDays": null,
  "sendLimitPerRun": 100,
  "lastRunAt": null,
  "nextRunAt": "2024-01-22T09:00:00",
  "createdAt": "2024-01-21T15:30:00",
  "updatedAt": "2024-01-21T15:30:00"
}

Exemplos de Automações

Aniversariantes

{
  "name": "Parabéns Aniversariantes",
  "scheduleType": "DAILY",
  "schedule": {
    "timeOfDay": "09:00",
    "timezone": "America/Sao_Paulo"
  },
  "filters": [
    {
      "filterId": "birthday",
      "ignoreYear": true
    }
  ],
  "messageConfig": {
    "message": "Parabéns {PrimeiroNome}! 🎉"
  },
  "dedupStrategy": "ONCE"
}

Lembrete de Pagamento

{
  "name": "Cobrança Semanal",
  "scheduleType": "WEEKLY",
  "schedule": {
    "timeOfDay": "10:00",
    "weekdays": [2]
  },
  "filters": [
    {
      "filterId": "payment_status",
      "value": "overdue",
      "operator": "equals"
    }
  ],
  "messageConfig": {
    "message": "Olá {PrimeiroNome}, seu pagamento está em atraso."
  },
  "dedupStrategy": "COOLDOWN_DAYS",
  "dedupCooldownDays": 7
}

Enquete Mensal

{
  "name": "Pesquisa de Satisfação",
  "scheduleType": "MONTHLY",
  "schedule": {
    "dayOfMonth": 1,
    "timeOfDay": "14:00"
  },
  "messageConfig": {
    "pollData": {
      "name": "Como você avalia nosso serviço?",
      "selectableCount": 1,
      "options": ["Excelente", "Bom", "Regular", "Ruim"]
    }
  },
  "dedupStrategy": "COOLDOWN_DAYS",
  "dedupCooldownDays": 30
}
I