Skip to main content
GET
/
api
/
automations
curl -X GET https://api.disparador.com/api/automations \
  -H "X-Access-Token: seu-access-token"
[
  {
    "id": 1,
    "name": "Aniversariantes do Dia",
    "description": "Envia 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": 1,
    "intervalMinSeconds": 5,
    "intervalMaxSeconds": 10,
    "notificationPhone": null,
    "dedupStrategy": "ONCE",
    "dedupCooldownDays": null,
    "sendLimitPerRun": 100,
    "lastRunAt": "2024-01-21T09:00:00",
    "nextRunAt": "2024-01-22T09:00:00",
    "createdAt": "2024-01-01T10:00:00",
    "updatedAt": "2024-01-15T14:30:00"
  },
  {
    "id": 2,
    "name": "Cobrança Semanal",
    "description": "Lembrete de pagamento pendente",
    "isActive": true,
    "scheduleType": "WEEKLY",
    "schedule": {
      "timeOfDay": "10:00",
      "timezone": "America/Sao_Paulo",
      "weekdays": [2]
    },
    "databaseConfigId": 1,
    "evolutionConfigId": 2,
    "intervalMinSeconds": 10,
    "intervalMaxSeconds": 20,
    "notificationPhone": "5511999999999",
    "dedupStrategy": "COOLDOWN_DAYS",
    "dedupCooldownDays": 7,
    "sendLimitPerRun": null,
    "lastRunAt": "2024-01-15T10:00:00",
    "nextRunAt": "2024-01-22T10:00:00",
    "createdAt": "2024-01-05T11:00:00",
    "updatedAt": "2024-01-05T11:00:00"
  },
  {
    "id": 3,
    "name": "Pesquisa Mensal",
    "description": "Pesquisa de satisfação",
    "isActive": false,
    "scheduleType": "MONTHLY",
    "schedule": {
      "timeOfDay": "14:00",
      "timezone": "America/Sao_Paulo",
      "dayOfMonth": 1
    },
    "databaseConfigId": 2,
    "evolutionConfigId": 1,
    "intervalMinSeconds": 5,
    "intervalMaxSeconds": 15,
    "notificationPhone": null,
    "dedupStrategy": "COOLDOWN_DAYS",
    "dedupCooldownDays": 30,
    "sendLimitPerRun": 500,
    "lastRunAt": "2024-01-01T14:00:00",
    "nextRunAt": null,
    "createdAt": "2023-12-20T09:00:00",
    "updatedAt": "2024-01-10T16:00:00"
  }
]
Este endpoint retorna todas as automações configuradas, independentemente do status (ativas ou inativas).

Headers

X-Access-Token
string
required
Token de acesso da empresa
curl -X GET https://api.disparador.com/api/automations \
  -H "X-Access-Token: seu-access-token"

Response

Array de objetos de automação, cada um contendo:
id
number
ID único da automação
name
string
Nome da automação
description
string
Descrição da automação
isActive
boolean
Se a automação está ativa
scheduleType
string
Tipo de agendamento (DAILY, WEEKLY, MONTHLY, CRON)
schedule
object
Configuração detalhada do agendamento
databaseConfigId
number
ID da configuração de banco de dados
evolutionConfigId
number
ID da configuração Evolution API
intervalMinSeconds
number
Intervalo mínimo entre mensagens
intervalMaxSeconds
number
Intervalo máximo entre mensagens
notificationPhone
string
Telefone para notificação
dedupStrategy
string
Estratégia de deduplicação
dedupCooldownDays
number
Dias de cooldown para deduplicação
sendLimitPerRun
number
Limite de envios 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": 1,
    "name": "Aniversariantes do Dia",
    "description": "Envia 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": 1,
    "intervalMinSeconds": 5,
    "intervalMaxSeconds": 10,
    "notificationPhone": null,
    "dedupStrategy": "ONCE",
    "dedupCooldownDays": null,
    "sendLimitPerRun": 100,
    "lastRunAt": "2024-01-21T09:00:00",
    "nextRunAt": "2024-01-22T09:00:00",
    "createdAt": "2024-01-01T10:00:00",
    "updatedAt": "2024-01-15T14:30:00"
  },
  {
    "id": 2,
    "name": "Cobrança Semanal",
    "description": "Lembrete de pagamento pendente",
    "isActive": true,
    "scheduleType": "WEEKLY",
    "schedule": {
      "timeOfDay": "10:00",
      "timezone": "America/Sao_Paulo",
      "weekdays": [2]
    },
    "databaseConfigId": 1,
    "evolutionConfigId": 2,
    "intervalMinSeconds": 10,
    "intervalMaxSeconds": 20,
    "notificationPhone": "5511999999999",
    "dedupStrategy": "COOLDOWN_DAYS",
    "dedupCooldownDays": 7,
    "sendLimitPerRun": null,
    "lastRunAt": "2024-01-15T10:00:00",
    "nextRunAt": "2024-01-22T10:00:00",
    "createdAt": "2024-01-05T11:00:00",
    "updatedAt": "2024-01-05T11:00:00"
  },
  {
    "id": 3,
    "name": "Pesquisa Mensal",
    "description": "Pesquisa de satisfação",
    "isActive": false,
    "scheduleType": "MONTHLY",
    "schedule": {
      "timeOfDay": "14:00",
      "timezone": "America/Sao_Paulo",
      "dayOfMonth": 1
    },
    "databaseConfigId": 2,
    "evolutionConfigId": 1,
    "intervalMinSeconds": 5,
    "intervalMaxSeconds": 15,
    "notificationPhone": null,
    "dedupStrategy": "COOLDOWN_DAYS",
    "dedupCooldownDays": 30,
    "sendLimitPerRun": 500,
    "lastRunAt": "2024-01-01T14:00:00",
    "nextRunAt": null,
    "createdAt": "2023-12-20T09:00:00",
    "updatedAt": "2024-01-10T16:00:00"
  }
]

Filtros e Ordenação

As automações são retornadas ordenadas por:
  1. Data de criação (mais recentes primeiro)
  2. Nome (ordem alfabética)
Não há paginação - todas as automações são retornadas de uma vez.

Exemplo de Dashboard

// Função para criar dashboard de automações
async function getAutomationStats(accessToken) {
  const response = await fetch('https://api.disparador.com/api/automations', {
    headers: { 'X-Access-Token': accessToken }
  });
  
  const automations = await response.json();
  
  const stats = {
    total: automations.length,
    active: 0,
    inactive: 0,
    byScheduleType: {},
    nextToRun: null
  };
  
  let earliestNextRun = null;
  
  automations.forEach(automation => {
    // Contar ativas/inativas
    if (automation.isActive) {
      stats.active++;
    } else {
      stats.inactive++;
    }
    
    // Agrupar por tipo de agendamento
    stats.byScheduleType[automation.scheduleType] = 
      (stats.byScheduleType[automation.scheduleType] || 0) + 1;
    
    // Encontrar próxima execução
    if (automation.isActive && automation.nextRunAt) {
      const nextRun = new Date(automation.nextRunAt);
      if (!earliestNextRun || nextRun < earliestNextRun) {
        earliestNextRun = nextRun;
        stats.nextToRun = automation;
      }
    }
  });
  
  return stats;
}

// Usar
const stats = await getAutomationStats('seu-token');
console.log(`Total: ${stats.total} automações`);
console.log(`Ativas: ${stats.active}`);
console.log(`Próxima execução: ${stats.nextToRun?.name} às ${stats.nextToRun?.nextRunAt}`);

Monitoramento

Automações Inativas

Verifique regularmente automações inativas que podem precisar ser reativadas

Última Execução

Monitore o campo lastRunAt para identificar automações que não estão executando

Próximas Execuções

Use nextRunAt para planejar manutenções sem interromper automações

Estratégias de Dedup

Revise dedupStrategy para evitar envios duplicados desnecessários
I