Skip to main content
GET
/
api
/
automations
/
{id}
curl -X GET https://api.disparador.com/api/automations/10 \
  -H "X-Access-Token: seu-access-token"
{
  "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": "2024-01-21T09:00:00",
  "nextRunAt": "2024-01-22T09:00:00",
  "createdAt": "2024-01-01T10:00:00",
  "updatedAt": "2024-01-15T14:30:00"
}
Use este endpoint para obter todos os detalhes de uma automação, incluindo configurações completas de filtros e mensagens.

Path Parameters

id
number
required
ID da automação

Headers

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

Response

Objeto completo da automação com todos os detalhes:
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 (NEVER, ONCE, COOLDOWN_DAYS)
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": 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": "2024-01-21T09:00:00",
  "nextRunAt": "2024-01-22T09:00:00",
  "createdAt": "2024-01-01T10:00:00",
  "updatedAt": "2024-01-15T14:30:00"
}

Detalhes Adicionais

O endpoint GET retorna a mesma estrutura do endpoint de criação/atualização, mas com campos adicionais:
  • lastRunAt - Mostra quando foi a última execução
  • nextRunAt - Mostra quando será a próxima execução (null se inativa)
  • createdAt e updatedAt - Timestamps de auditoria
Note que os filtros e configuração de mensagem não são retornados neste endpoint por questões de performance. Use o endpoint de update se precisar visualizar/editar esses dados.

Verificação de Status

// Função para verificar status detalhado
async function checkAutomationStatus(automationId, accessToken) {
  const response = await fetch(
    `https://api.disparador.com/api/automations/${automationId}`,
    {
      headers: { 'X-Access-Token': accessToken }
    }
  );
  
  if (!response.ok) {
    throw new Error('Automação não encontrada');
  }
  
  const automation = await response.json();
  
  // Análise de status
  const status = {
    name: automation.name,
    active: automation.isActive,
    schedule: automation.scheduleType,
    lastRun: automation.lastRunAt ? new Date(automation.lastRunAt) : null,
    nextRun: automation.nextRunAt ? new Date(automation.nextRunAt) : null,
    runInterval: null,
    isOverdue: false
  };
  
  // Calcular intervalo entre execuções
  if (status.lastRun && status.nextRun) {
    status.runInterval = status.nextRun - status.lastRun;
  }
  
  // Verificar se está atrasada
  if (status.active && status.nextRun && status.nextRun < new Date()) {
    status.isOverdue = true;
  }
  
  return status;
}
I