This integration is powered by Singer's Campaign Monitor tap. For support, visit the GitHub repo or join the Singer Slack.
Campaign Monitor integration summary
Stitch’s Campaign Monitor integration replicates data using the Campaign Monitor API . Refer to the Schema section for a list of objects available for replication.
Campaign Monitor feature snapshot
A high-level look at Stitch's Campaign Monitor (v1) integration, including release status, useful links, and the features supported in Stitch.
STITCH | |||
Release status |
Released on October 1, 2018 |
Supported by | |
Stitch plan |
Standard |
API availability |
Available |
Singer GitHub repository | |||
REPLICATION SETTINGS | |||
Anchor Scheduling |
Supported |
Advanced Scheduling |
Supported |
Table-level reset |
Unsupported |
Configurable Replication Methods |
Unsupported |
DATA SELECTION | |||
Table selection |
Unsupported |
Column selection |
Unsupported |
Select all |
Unsupported |
||
TRANSPARENCY | |||
Extraction Logs |
Supported |
Loading Reports |
Supported |
Connecting Campaign Monitor
Step 1: Retrieve your Campaign Monitor API credentials
- Sign into your Campaign Monitor account.
- Click the user menu (your avatar), located in the top right corner.
- Click Account settings.
- On the Account Settings page, click API keys.
- Locate your Client ID.
Keep this page open - you’ll need it to complete the next step.
Step 2: Add Campaign Monitor as a Stitch data source
- Sign into your Stitch account.
-
On the Stitch Dashboard page, click the Add Integration button.
-
Click the Campaign Monitor icon.
-
Enter a name for the integration. This is the name that will display on the Stitch Dashboard for the integration; it’ll also be used to create the schema in your destination.
For example, the name “Stitch Campaign Monitor” would create a schema called
stitch_campaign_monitor
in the destination. Note: Schema names cannot be changed after you save the integration. - In the Campaign Monitor Client ID field, paste your Campaign Monitor client ID.
Step 3: Define the historical replication start date
The Sync Historical Data setting defines the starting date for your Campaign Monitor integration. This means that:
- For tables using Key-based Incremental Replication, data equal to or newer than this date will be replicated to your destination.
- For tables using Full Table Replication, all data - including records that are older, equal to, or newer than this date - will be replicated to your destination.
Change this setting if you want to replicate data beyond Campaign Monitor’s default setting of 1 year. For a detailed look at historical replication jobs, check out the Syncing Historical SaaS Data guide.
Step 4: Create a replication schedule
In the Replication Frequency section, you’ll create the integration’s replication schedule. An integration’s replication schedule determines how often Stitch runs a replication job, and the time that job begins.
Campaign Monitor integrations support the following replication scheduling methods:
-
Advanced Scheduling using Cron (Advanced or Premium plans only)
To keep your row usage low, consider setting the integration to replicate less frequently. See the Understanding and Reducing Your Row Usage guide for tips on reducing your usage.
Step 5: Authorize Stitch to access Campaign Monitor
- Next, you’ll be prompted to sign into your Campaign Monitor account.
- Follow the prompts to complete the authorization process.
- After the authorization process is successfully completed, you’ll be directed back to Stitch.
- Click All Done.
Initial and historical replication jobs
After you finish setting up Campaign Monitor, its Sync Status may show as Pending on either the Stitch Dashboard or in the Integration Details page.
For a new integration, a Pending status indicates that Stitch is in the process of scheduling the initial replication job for the integration. This may take some time to complete.
Initial replication jobs with Anchor Scheduling
If using Anchor Scheduling, an initial replication job may not kick off immediately. This depends on the selected Replication Frequency and Anchor Time. Refer to the Anchor Scheduling documentation for more information.
Free historical data loads
The first seven days of replication, beginning when data is first replicated, are free. Rows replicated from the new integration during this time won’t count towards your quota. Stitch offers this as a way of testing new integrations, measuring usage, and ensuring historical data volumes don’t quickly consume your quota.
Campaign Monitor table reference
Schemas and versioning
Schemas and naming conventions can change from version to version, so we recommend verifying your integration’s version before continuing.
The schema and info displayed below is for version 1 of this integration.
This is the latest version of the Campaign Monitor integration.
Table and column names in your destination
Depending on your destination, table and column names may not appear as they are outlined below.
For example: Object names are lowercased in Redshift (CusTomERs
> customers
), while case is maintained in PostgreSQL destinations (CusTomERs
> CusTomERs
). Refer to the Loading Guide for your destination for more info.
campaigns
Replication Method : |
Key-based Incremental |
Replication Key |
|
Primary Key |
CampaignID |
Official docs : |
The campaigns
table contains info about the the campaigns in your Campaign Monitor account.
CampaignID
The campaign ID. Reference: |
FromName
The campaign’s from name. |
FromEmail
The email address campaign emails are sent from. |
ReplyTo
The email address that replies to the campaign will be sent to. |
WebVersionURL
The campaign’s web version URL. |
WebVersionTextURL
The campaign’s web version text URL. |
Subject
The subject of the campaign. |
Name
The name of the campaign. |
SentDate
The date the campaign was sent. |
TotalRecipients
The total number of subscribers who received the campaign. |
campaign_bounces
Replication Method : |
Key-based Incremental |
Replication Key |
Date |
Primary Key |
CampaignID : EmailAddress : Date : ListID |
API endpoint : |
The campaign_bounces
table contains info about the subscribers who bounced for a given campaign.
CampaignID
The campaign ID. Reference: |
EmailAddress
The email address of the subscriber who bounced. |
Date
The date the bounce occurred. |
ListID
The list ID. Reference:
|
BounceType
The type of bounce that occurred. Possible values are:
|
Reason
The reason the bounce occurred. For example: |
campaign_clicks
Replication Method : |
Key-based Incremental |
Replication Key |
Date |
Primary Key |
CampaignID : EmailAddress : ListID : Date |
API endpoint : |
The campaign_clicks
table contains info about subscribers who clicked a link in a given campaign.
CampaignID
The campaign ID. Reference: |
EmailAddress
The email address. |
ListID
The list ID. Reference:
|
Date
The date the click occurred. |
URL
The URL that was clicked. |
IPAddress
The IP address. |
Latitude
The latitude. |
Longitude
The longitude. |
City
The city. |
Region
The region. |
CountryCode
The country code. |
CountryName
The country name. |
campaign_email_client_usage
Replication Method : |
Full Table |
Primary Key |
CampaignID : Client : Version |
API endpoint : |
The campaign_email_client_usage
table contains info about the email clients subscribers use to open campaigns.
CampaignID
The campaign ID. Reference: |
Client
The name of the email client. |
Version
The version of the email client. |
Percentage
The percentage of users who use the email client and version. |
Subscribers
The number of subscribers who used the email client and version to open the campaign. |
campaign_opens
Replication Method : |
Key-based Incremental |
Replication Key |
Date |
Primary Key |
CampaignID : EmailAddress : ListID : Date |
API endpoint : |
The campaign_opens
table contains info about subscribers who opened a campaign.
CampaignID
The campaign ID. Reference: |
EmailAddress
The email address. |
ListID
The list ID. Reference:
|
Date
The date the subscriber opened the campaign. |
IPAddress
The IP address. |
Latitude
The latitude. |
Longitude
The longitude. |
City
The city. |
Region
The region. |
CountryCode
The country code. |
CountryName
The country name. |
campaign_recipients
Replication Method : |
Key-based Incremental |
Replication Key |
|
Primary Key |
CampaignID : EmailAddress : ListID |
API endpoint : |
The campaign_recipients
table contains info about the subscribers that a campaign was sent to.
CampaignID
The campaign ID. Reference: |
EmailAddress
The email address. |
ListID
The list ID. Reference:
|
campaign_spam_complaints
Replication Method : |
Key-based Incremental |
Replication Key |
Date |
Primary Key |
CampaignID : EmailAddress : ListID : Date |
API endpoint : |
The campaign_spam_complaints
table contains info about subscribers who marked a campaign as spam.
CampaignID
The campaign ID. Reference: |
EmailAddress
The email address. |
ListID
The list ID. Reference:
|
Date
The date. |
campaign_summary
Replication Method : |
Full Table |
Primary Key |
CampaignID |
API endpoint : |
The campaign_summary
table contains summary info about sent campaigns.
CampaignID
The campaign ID. Reference: |
Recipients
The number of campaign recipients. |
TotalOpened
The total number of opens for the campaign. |
Clicks
The total number of clicks for the campaign. |
Unsubscribed
The total number of unsubscribes for the campaign. |
Bounced
The total number of bounces for the campaign. |
UniqueOpened
The unique number of opens for the campaign. |
SpamComplaints
The number of spam complaints for the campaign. |
WebVersionURL
The campaign’s web version URL. |
WebVersionTextURL
The campaign’s web version text URL. |
WorldviewURL
The campaign’s public Worldview URL. |
Forwards
The number of forwards for the campaign. |
Likes
The number of likes for the campaign. |
Mentions
The number of mentions for the campaign. |
campaign_unsubscribes
Replication Method : |
Key-based Incremental |
Replication Key |
Date |
Primary Key |
CampaignID : EmailAddress : ListID : Date |
API endpoint : |
The campaign_unsubscribes
table contains info about the subscribers who unsubscribed from the email for a campaign.
CampaignID
The campaign ID. Reference: |
EmailAddress
The email address. |
ListID
The list ID. Reference:
|
Date
The date. |
IPAddress
The IP address. |
Replication Method : |
Full Table |
Primary Key |
ListID |
Official docs : |
The lists
table contains info about the lists in your Campaign Monitor account.
list_active_subscribers
Replication Method : |
Key-based Incremental |
Replication Key |
Date |
Primary Key |
ListID : EmailAddress : Date |
API endpoint : |
The list_active_subscribers
table contains info about the active subscribers for lists.
ListID
The list ID. Reference:
|
||
EmailAddress
The email address. |
||
Date
The date. |
||
Name
The name of the subscriber. |
||
State
The subscriber’s state. |
||
CustomFields
Custom fields about the subscriber.
|
||
ReadsEmailWith
The email client the subscriber uses to read email. |
||
ConsentToTrack
Indicates if the subscriber has consented to tracking. |
list_bounced_subscribers
Replication Method : |
Key-based Incremental |
Replication Key |
Date |
Primary Key |
ListID : EmailAddress : Date |
API endpoint : |
The list_bounced_subscribers
table contains info about the bounced subscribers for lists.
ListID
The list ID. Reference:
|
||
EmailAddress
The email address. |
||
Date
The date. |
||
Name
The name of the subscriber. |
||
State
The subscriber’s state. |
||
CustomFields
Custom fields about the subscriber.
|
||
ReadsEmailWith
The email client the subscriber uses to read email. |
||
ConsentToTrack
Indicates if the subscriber has consented to tracking. |
list_deleted_subscribers
Replication Method : |
Key-based Incremental |
Replication Key |
Date |
Primary Key |
ListID : EmailAddress : Date |
API endpoint : |
The list_deleted_subscribers
table contains info about the deleted subscribers for lists.
ListID
The list ID. Reference:
|
||
EmailAddress
The email address. |
||
Date
The date. |
||
Name
The name of the subscriber. |
||
State
The subscriber’s state. |
||
CustomFields
Custom fields about the subscriber.
|
||
ReadsEmailWith
The email client the subscriber uses to read email. |
||
ConsentToTrack
Indicates if the subscriber has consented to tracking. |
list_details
Replication Method : |
Key-based Incremental |
Replication Key |
|
Primary Key |
ListID |
API endpoint : |
The list_details
table contains summary info about lists in your Campaign Monitor account.
ListID
The list ID. Reference:
|
ConfirmedOptIn
If |
Title
The title of the list. |
UnsubscribePage
The URL of the list’s unsubscribe page. |
UnsubscribeSetting
The list’s unsubscribe setting. |
ConfirmationSuccessPage
The URL of the list’s confirmation page. |
list_unconfirmed_subscribers
Replication Method : |
Key-based Incremental |
Replication Key |
Date |
Primary Key |
ListID : EmailAddress : Date |
API endpoint : |
The list_unconfirmed_subscribers
table contains info about the unconfirmed subscribers for lists.
ListID
The list ID. Reference:
|
||
EmailAddress
The email address. |
||
Date
The date. |
||
Name
The name of the subscriber. |
||
State
The subscriber’s state. |
||
CustomFields
Custom fields about the subscriber.
|
||
ReadsEmailWith
The email client the subscriber uses to read email. |
||
ConsentToTrack
Indicates if the subscriber has consented to tracking. |
list_unsubscribed_subscribers
Replication Method : |
Key-based Incremental |
Replication Key |
Date |
Primary Key |
ListID : EmailAddress : Date |
API endpoint : |
The list_unsubscribed_subscribers
table contains info about the unsubscribed subscribers for lists.
ListID
The list ID. Reference:
|
||
EmailAddress
The email address. |
||
Date
The date. |
||
Name
The name of the subscriber. |
||
State
The subscriber’s state. |
||
CustomFields
Custom fields about the subscriber.
|
||
ReadsEmailWith
The email client the subscriber uses to read email. |
||
ConsentToTrack
Indicates if the subscriber has consented to tracking. |
Related | Troubleshooting |
Questions? Feedback?
Did this article help? If you have questions or feedback, feel free to submit a pull request with your suggestions, open an issue on GitHub, or reach out to us.