Retoma o envio de mensagens de uma campanha que foi pausada anteriormente.
Token de acesso da empresa
Path Parameters
ID da campanha a ser retomada
curl -X PUT https://api.disparador.com/api/campaigns/123/resume \
-H "X-Access-Token: seu-access-token"
Response
Retorna os dados completos atualizados da campanha após retomar.
Campos Principais
Novo status (será “ACTIVE”)
Tipo da campanha (TEXT, MEDIA, POLL)
Data/hora do início original
Estatísticas
Total de contatos na campanha
Mensagens ainda pendentes
Nova estimativa de conclusão
Outros Campos
Todos os demais campos da estrutura CampaignResponse também são retornados, incluindo:
- messageContent
- mediaType
- mediaUrl
- evolutionInstance
- evolutionConfig
- etc.
Mensagem de erro (apenas em caso de falha)
{
"id": 123,
"name": "Campanha de Vendas",
"description": null,
"status": "ACTIVE",
"type": "TEXT",
"createdAt": "2024-01-20T10:00:00",
"scheduledFor": null,
"startedAt": "2024-01-20T10:01:00",
"completedAt": null,
"pausedAt": null,
"totalContacts": 500,
"sentContacts": 234,
"failedContacts": 5,
"pendingContacts": 261,
"progressPercentage": 46.8,
"successRate": 97.86,
"estimatedCompletion": "2024-01-20T18:30:00",
"messageContent": "Aproveite nossa promoção especial!",
"mediaType": null,
"mediaUrl": null,
"fileName": null,
"evolutionInstance": "whatsapp-01",
"minInterval": 5,
"maxInterval": 10,
"notificationPhone": null,
"pollData": null,
"evolutionConfig": {
"id": 1,
"name": "WhatsApp Principal",
"url": "https://evolution-api.exemplo.com",
"instance": "whatsapp-01"
},
"message": null
}
Regras de Negócio
- Apenas campanhas com status
PAUSED
podem ser retomadas
- A campanha continua exatamente de onde parou
- Mensagens já enviadas não são reenviadas
- O intervalo entre mensagens é mantido
- O campo pausedAt volta a ser null após retomar
Continuação do Envio
Ao retomar uma campanha:
- Fila preservada - Contatos não enviados permanecem na ordem original
- Estatísticas mantidas - Contadores de sucesso/falha continuam
- Configurações iguais - Intervalos e parâmetros são preservados
- Sem duplicação - Sistema garante que não há reenvios
Exemplo de Gerenciamento
// Sistema de pausa/retomada automática por horário
async function manageBusinessHours(campaignId, accessToken) {
const now = new Date();
const hour = now.getHours();
// Horário comercial: 9h às 18h
const isBusinessHour = hour >= 9 && hour < 18;
// Verificar status atual
const statusResponse = await fetch(
`https://api.disparador.com/api/campaigns/${campaignId}`,
{
headers: { 'X-Access-Token': accessToken }
}
);
const campaign = await statusResponse.json();
if (!isBusinessHour && campaign.status === 'ACTIVE') {
// Pausar fora do horário comercial
await fetch(
`https://api.disparador.com/api/campaigns/${campaignId}/pause`,
{
method: 'PUT',
headers: { 'X-Access-Token': accessToken }
}
);
console.log('Campanha pausada - fora do horário comercial');
} else if (isBusinessHour && campaign.status === 'PAUSED') {
// Retomar no horário comercial
const resumeResponse = await fetch(
`https://api.disparador.com/api/campaigns/${campaignId}/resume`,
{
method: 'PUT',
headers: { 'X-Access-Token': accessToken }
}
);
const resumed = await resumeResponse.json();
console.log('Campanha retomada - horário comercial');
console.log(`Nova estimativa de conclusão: ${resumed.estimatedCompletion}`);
}
}
// Executar a cada 30 minutos
setInterval(() => manageBusinessHours(123, 'seu-token'), 1800000);
Boas Práticas
Verificar Status
Sempre verifique o status antes de tentar retomar
Logs e Notificações
Registre quando e por que campanhas foram pausadas/retomadas
Horários Adequados
Retome campanhas em horários apropriados para melhor engajamento
Monitorar Após Retomar
Acompanhe métricas para garantir que tudo está funcionando