Skip to main content
This event is triggered when a paused campaign is resumed and continues processing leads.

When This Event Fires

  • Campaign is resumed via the Resume Campaign API
  • Campaign is manually resumed through the dashboard
  • Campaign transitions from PAUSED to STARTED status

Payload

{
  "eventId": "evt_1708456789123_abc123def",
  "eventType": "campaign.resumed",
  "timestamp": "2024-02-24T10:30:00.000Z",
  "workspaceId": "ws_abc123xyz",
  "data": {
    "campaignId": "camp_xyz789",
    "campaignName": "Q1 Tech Founders Outreach",
    "resumedAt": "2024-02-24T10:30:00.000Z",
    "resumedBy": "api"
  }
}

Payload Fields

FieldTypeDescription
eventIdstringUnique event identifier for idempotency
eventTypestringAlways campaign.resumed
timestampstringISO 8601 timestamp when the event occurred
workspaceIdstringYour workspace ID
data.campaignIdstringUnique campaign identifier
data.campaignNamestringHuman-readable campaign name
data.resumedAtstringISO 8601 timestamp when the campaign was resumed
data.resumedBystringHow the campaign was resumed: api or user

Use Cases

Monitoring

Track when campaigns resume operation

Notifications

Alert team when campaigns are back online

Analytics

Track campaign uptime and activity periods

Synchronization

Sync campaign status with external systems

Example Handler

app.post('/webhooks/sendpilot', async (req, res) => {
  const event = req.body;
  
  if (event.eventType === 'campaign.resumed') {
    const { campaignId, campaignName, resumedAt, resumedBy } = event.data;
    
    // Log the resume event
    await analytics.track('campaign_resumed', {
      campaignId,
      campaignName,
      resumedBy
    });
    
    // Notify team
    await slack.postMessage({
      channel: '#campaigns',
      text: `▶️ Campaign resumed!\n` +
            `Name: ${campaignName}\n` +
            `Resumed by: ${resumedBy}\n` +
            `Time: ${resumedAt}`
    });
    
    // Update external tracking systems
    await externalCRM.updateCampaignStatus(campaignId, 'active');
    
    console.log(`Campaign ${campaignName} resumed by ${resumedBy}`);
  }
  
  res.status(200).send('OK');
});
When a campaign is resumed, it continues processing leads from where it left off. The sequence position for each lead is preserved.