Campaigns
The Campaigns API allows you to find specific campaigns and retrieve lists of campaigns from your account.
Find Campaign
QUERYcampaign
Retrieves details for a specific campaign by ID, name or platformId.
Arguments
| Parameter | Type | Description |
|---|---|---|
| criteria | CampaignLookupInput | Required Criteria for finding a campaign |
CampaignLookupInput
| Field | Type | Description |
|---|---|---|
| id | ID | Optional ID of the campaign to find |
| name | String | Optional Name of the campaign to find |
| platformId | String | Optional Platform ID of the campaign to find |
Example Query
query {
viewer {
campaign(criteria: {
name: "Q1 Marketing Campaign"
}) {
id
name
description
status
sendRate
emailSendingAmount
platform
platformCampaignId
brand {
name
}
createdAt
updatedAt
domain {
id
name
}
}
}
}
Response
{
"data": {
"viewer": {
"campaign": {
"id": "Q2FtcGFpZ246MTA=",
"name": "Q1 Marketing Campaign",
"description": "First quarter marketing outreach",
"status": "active",
"sendRate": "High Speed Ramp Up",
"emailSendingAmount": 500,
"platform": "instantly",
"platformCampaignId": "camp_12345",
"brand": {
"name": "Acme Inc."
},
"createdAt": "2024-01-10T08:15:30Z",
"updatedAt": "2024-01-15T14:22:45Z",
"domain": {
"id": "RG9tYWluOjIz",
"name": "marketing.acme.example.com"
}
}
}
}
}
List Campaigns
QUERYcampaigns
Retrieves a paginated and filterable list of campaigns. Requires admin access.
Arguments
| Parameter | Type | Description |
|---|---|---|
| filter | CampaignListFilterInput | Required Filter and pagination options |
CampaignListFilterInput
| Field | Type | Description |
|---|---|---|
| platform | String | Optional Filter campaigns by platform type |
| filter | String | Optional Search term to filter campaigns by name |
| page | Int | Optional Page number for pagination (default: 1) |
| limit | Int | Optional Maximum number of campaigns to return per page (default: 10) |
Example Query
query {
viewer {
campaigns(filter: {
platform: "instantly",
filter: "marketing",
page: 1,
limit: 10
}) {
items {
id
name
description
status
platform
brand {
name
}
createdAt
}
total
page
limit
pages
}
}
}
Response
{
"data": {
"viewer": {
"campaigns": {
"items": [
{
"id": "Q2FtcGFpZ246MTA=",
"name": "Q1 Marketing Campaign",
"description": "First quarter marketing outreach",
"status": "active",
"platform": "instantly",
"brand": {
"name": "Acme Inc."
},
"createdAt": "2024-01-10T08:15:30Z"
},
{
"id": "Q2FtcGFpZ246MTI=",
"name": "Product Marketing Initiative",
"description": "New product launch marketing",
"status": "draft",
"platform": "instantly",
"brand": {
"name": "Acme Partners"
},
"createdAt": "2024-01-25T11:30:45Z"
}
],
"total": 2,
"page": 1,
"limit": 10,
"pages": 1
}
}
}
}
Campaign Fields
The Campaign object contains the following fields:
| Field | Type | Description |
|---|---|---|
| id | ID | Unique identifier for the campaign |
| name | String | Name of the campaign |
| description | String | Description of the campaign |
| status | CampaignStatusEnum | Current status of the campaign |
| sendRate | CampaignSendRateEnum | Send rate configuration |
| emailSendingAmount | Int | Number of emails to send |
| inCurrentSendRateSince | DateTime | Date since current send rate was set |
| sendRateStack | [SendRateStack] | History of send rate changes |
| sendingMode | CampaignSendingModeEnum | Mode of sending (Manual, Auto, Instantly) |
| platform | String | Platform used for the campaign |
| platformCampaignId | String | ID of the campaign on the platform |
| brand | Brand | Brand associated with the campaign |
| user | User | User who created the campaign |
| createdAt | String | Creation date of the campaign |
| updatedAt | String | Last update date of the campaign |
| domain | Domain | Domain used for sending campaign emails |
| dealSetting | CampaignDealSetting | Deal settings for the campaign |
| sentInRolling24hrs | Int | Number of emails sent in the last 24 hours |
| stage1SentInRolling24hrs | Int | Number of stage 1 emails sent in the last 24 hours |
| stage2SentInRolling24hrs | Int | Number of stage 2 emails sent in the last 24 hours |
| campaignSnapshot | CampaignSnapshot | Current snapshot of campaign metrics |
| warmupLimitStack | [WarmupLimitStack] | History of warmup limit changes |
| dailyLimitStack | [DailyLimitStack] | History of daily limit changes |
| lastSpamTestAt | DateTime | Date of the last spam test |
Campaign Status
A campaign can have one of the following status values:
| Status | Description |
|---|---|
| draft | The campaign has been created but not yet activated |
| active | The campaign is currently active and sending emails |
| paused | The campaign has been temporarily paused |
| completed | The campaign has completed its scheduled sends |
| accounts_unhealthy | The campaign is paused because associated accounts are unhealthy |
| bounce_protect | The campaign is paused due to bounce protection |
Working with Campaigns
Access Control
Access to campaign data is controlled by user permissions:
- Global administrators can access any campaign
- Organisation administrators can access campaigns within their organisation's brands
- Brand administrators can access campaigns within their brand
- Regular users may have limited or no access to campaign data
Campaign Analytics
The SixtySeconds platform provides comprehensive analytics for campaigns:
- Email sending statistics (sent, opened, replied)
- Page view and video view metrics
- Meeting booking and button click tracking
- Per-lead engagement data
Use the getCampaignStatByDate query to access detailed analytics for specific campaigns.
Campaign Warmup
To maintain good email deliverability, the platform supports campaign warmup strategies:
- High Speed Ramp Up: Quickly ramp up sending volume over a few days
- Slow Speed Ramp Up: Gradually increase sending volume over several weeks
- Full Scale Sending: Send at maximum configured volume
- Perma-Warm: Maintain a constant low-volume sending pattern
- Idle-Paused: Temporarily pause sending