> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sendler.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# campaign.resumed

> Triggered when a paused campaign is resumed

This event is triggered when a paused campaign is resumed and continues processing leads.

## When This Event Fires

* Campaign is resumed via the [Update Campaign API](https://docs.sendler.ai/api-reference/endpoint/patch-campaign.md)
* Campaign is manually resumed through the dashboard
* Campaign transitions from `PAUSED` to `STARTED` status

## Payload

```json theme={null}
{
  "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

| Field | Type | Description |
| - | - | - |
| `eventId` | string | Unique event identifier for idempotency |
| `eventType` | string | Always `campaign.resumed` |
| `timestamp` | string | ISO 8601 timestamp when the event occurred |
| `workspaceId` | string | Your workspace ID |
| `data.campaignId` | string | Unique campaign identifier |
| `data.campaignName` | string | Human-readable campaign name |
| `data.resumedAt` | string | ISO 8601 timestamp when the campaign was resumed |
| `data.resumedBy` | string | How 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

```javascript theme={null}
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');
});
```

> [!NOTE]
>
> When a campaign is resumed, it continues processing leads from where it left off. The sequence position for each lead is preserved.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.