Release Status Released Supported By Singer community
Availability Free Status Page Campaign Monitor Status Page
Default Historical Sync 1 year Default Replication Frequency 30 minutes
Whitelisting Unsupported Destination Incompatibilities None

Connecting Campaign Monitor

Step 1: Retrieve your Campaign Monitor API credentials

  1. Sign into your Campaign Monitor account.
  2. Click the user menu (your avatar), located in the top right corner.
  3. Click Account settings.
  4. On the Account Settings page, click API keys.
  5. 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

  1. Sign into your Stitch account.
  2. On the Stitch Dashboard page, click the Add Integration button.

  3. Click the Campaign Monitor icon.

  4. 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.

  5. In the Campaign Monitor Client ID field, paste your Campaign Monitor client ID.

Step 3: Define the Historical Sync

The Sync Historical Data setting will define the starting date for your Campaign Monitor integration. This means that:

  • For tables using Incremental Replication, data equal to or newer than this date will be replicated to your data warehouse.
  • 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 data warehouse.

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.

Stitch offers two methods of creating a replication schedule:

  • Replication Frequency: This method requires selecting the interval you want replication to run for the integration. Start times of replication jobs are based on the start time and duration of the previous job. Refer to the Replication Frequency documentation for more information and examples.
  • Anchor scheduling: Based on the Replication Frequency, or interval, you select, this method “anchors” the start times of this integration’s replication jobs to a time you select to create a predictable schedule. Anchor scheduling is a combination of the Anchor Time and Replication Frequency settings, which must both be defined to use this method. Additionally, note that:

    • A Replication Frequency of at least one hour is required to use anchor scheduling.
    • An initial replication job may not begin immediately after saving the integration, depending on the selected Replication Frequency and Anchor Time. Refer to the Anchor Scheduling documentation for more information.

To help prevent overages, 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

  1. Next, you’ll be prompted to sign into your Campaign Monitor account.
  2. Follow the prompts to complete the authorization process.
  3. After the authorization process is successfully completed, you’ll be directed back to Stitch.
  4. 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.

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 schemas

Replication Method: Key-based Incremental Replication Key : Date
Primary Key : CampaignID : EmailAddress : Date : ListID API Endpoint: Get campaign bounces

The campaign_bounces table contains info about the subscribers who bounced for a given campaign.


Replication Method: Key-based Incremental Replication Key : Date
Primary Key : CampaignID : EmailAddress : ListID : Date API Endpoint: Get campaign clicks

The campaign_clicks table contains info about subscribers who clicked a link in a given campaign.

CampaignID
STRING

The campaign ID.

Reference:

EmailAddress
STRING

The email address.

ListID
STRING

The list ID.

Reference:

Date
STRING

The date the click occurred.

URL
STRING

The URL that was clicked.

IPAddress
STRING

The IP address.

Latitude
NUMBER

The latitude.

Longitude
NUMBER

The longitude.

City
STRING

The city.

Region
STRING

The region.

CountryCode
STRING

The country code.

CountryName
STRING

The country name.


campaign_email_client_usage

Replication Method: Full Table API Endpoint: Get email client usage
Primary Key : CampaignID : Client : Version

The campaign_email_client_usage table contains info about the email clients subscribers use to open campaigns.

CampaignID
STRING

The campaign ID.

Client
STRING

The name of the email client.

Version
STRING

The version of the email client.

Percentage
NUMBER

The percentage of users who use the email client and version.

Subscribers
INTEGER

The number of subscribers who used the email client and version to open the campaign.


Replication Method: Key-based Incremental Replication Key : Date
Primary Key : CampaignID : EmailAddress : ListID : Date API Endpoint: Get campaign opens

The campaign_opens table contains info about subscribers who opened a campaign.

CampaignID
STRING

The campaign ID.

Reference:

EmailAddress
STRING

The email address.

ListID
STRING

The list ID.

Reference:

Date
STRING

The date the subscriber opened the campaign.

IPAddress
STRING

The IP address.

Latitude
NUMBER

The latitude.

Longitude
NUMBER

The longitude.

City
STRING

The city.

Region
STRING

The region.

CountryCode
STRING

The country code.

CountryName
STRING

The country name.


campaign_recipients

Replication Method: Key-based Incremental Replication Key :
Primary Key : CampaignID : EmailAddress : ListID API Endpoint: Get campaign recipients

The campaign_recipients table contains info about the subscribers that a campaign was sent to.


campaign_spam_complaints

Replication Method: Key-based Incremental Replication Key : Date
Primary Key : CampaignID : EmailAddress : ListID : Date API Endpoint: Get campaign spam complaints

The campaign_spam_complaints table contains info about subscribers who marked a campaign as spam.


Replication Method: Full Table API Endpoint: Get campaign summary
Primary Key : CampaignID

The campaign_summary table contains summary info about sent campaigns.

CampaignID
STRING

The campaign ID.

Reference:

Recipients
INTEGER

The number of campaign recipients.

TotalOpened
INTEGER

The total number of opens for the campaign.

Clicks
INTEGER

The total number of clicks for the campaign.

Unsubscribed
INTEGER

The total number of unsubscribes for the campaign.

Bounced
INTEGER

The total number of bounces for the campaign.

UniqueOpened
INTEGER

The unique number of opens for the campaign.

SpamComplaints
INTEGER

The number of spam complaints for the campaign.

WebVersionURL
STRING

The campaign’s web version URL.

WebVersionTextURL
STRING

The campaign’s web version text URL.

WorldviewURL
STRING

The campaign’s public Worldview URL.

Forwards
INTEGER

The number of forwards for the campaign.

Likes
INTEGER

The number of likes for the campaign.

Mentions
INTEGER

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: Get campaign unsubscribes

The campaign_unsubscribes table contains info about the subscribers who unsubscribed from the email for a campaign.


Replication Method: Key-based Incremental Replication Key :
Primary Key : CampaignID Documentation: Official Docs

The campaigns table contains info about the the campaigns in your Campaign Monitor account.

CampaignID
STRING

The campaign ID.

Reference:

FromName
STRING

The campaign’s from name.

FromEmail
STRING

The email address campaign emails are sent from.

ReplyTo
STRING

The email address that replies to the campaign will be sent to.

WebVersionURL
STRING

The campaign’s web version URL.

WebVersionTextURL
STRING

The campaign’s web version text URL.

Subject
STRING

The subject of the campaign.

Name
STRING

The name of the campaign.

SentDate
STRING

The date the campaign was sent.

TotalRecipients
NUMBER

The total number of subscribers who received the campaign.


list_active_subscribers

Replication Method: Key-based Incremental Replication Key : Date
Primary Key : ListID : EmailAddress : Date API Endpoint: Get list active subscribers

The list_active_subscribers table contains info about the active subscribers for lists.

ListID
STRING

The list ID.

EmailAddress
STRING

The email address.

Date
STRING

The date.

Name
STRING

The name of the subscriber.

State
STRING

The subscriber’s state.

CustomFields__Key
STRING

The key name of the custom field.

CustomFields__Value
STRING

The value of the custom field.

ReadsEmailWith
STRING

The email client the subscriber uses to read email.

ConsentToTrack
STRING

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: Get list bounced subscribers

The list_bounced_subscribers table contains info about the bounced subscribers for lists.

ListID
STRING

The list ID.

EmailAddress
STRING

The email address.

Date
STRING

The date.

Name
STRING

The name of the subscriber.

State
STRING

The subscriber’s state.

CustomFields__Key
STRING

The key name of the custom field.

CustomFields__Value
STRING

The value of the custom field.

ReadsEmailWith
STRING

The email client the subscriber uses to read email.

ConsentToTrack
STRING

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: Get list deleted subscribers

The list_deleted_subscribers table contains info about the deleted subscribers for lists.

ListID
STRING

The list ID.

EmailAddress
STRING

The email address.

Date
STRING

The date.

Name
STRING

The name of the subscriber.

State
STRING

The subscriber’s state.

CustomFields__Key
STRING

The key name of the custom field.

CustomFields__Value
STRING

The value of the custom field.

ReadsEmailWith
STRING

The email client the subscriber uses to read email.

ConsentToTrack
STRING

Indicates if the subscriber has consented to tracking.


Replication Method: Key-based Incremental Replication Key :
Primary Key : ListID API Endpoint: Get list details

The list_details table contains summary info about lists in your Campaign Monitor account.

ListID
STRING

The list ID.

ConfirmedOptIn
BOOLEAN

If true, the list is a confirmed opt-in list.

Title
STRING

The title of the list.

UnsubscribePage
STRING

The URL of the list’s unsubscribe page.

UnsubscribeSetting
STRING

The list’s unsubscribe setting.

ConfirmationSuccessPage
STRING

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: List unconfirmed subscribers

The list_unconfirmed_subscribers table contains info about the unconfirmed subscribers for lists.

ListID
STRING

The list ID.

EmailAddress
STRING

The email address.

Date
STRING

The date.

Name
STRING

The name of the subscriber.

State
STRING

The subscriber’s state.

CustomFields__Key
STRING

The key name of the custom field.

CustomFields__Value
STRING

The value of the custom field.

ReadsEmailWith
STRING

The email client the subscriber uses to read email.

ConsentToTrack
STRING

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: List unsubscribed subscribers

The list_unsubscribed_subscribers table contains info about the unsubscribed subscribers for lists.

ListID
STRING

The list ID.

EmailAddress
STRING

The email address.

Date
STRING

The date.

Name
STRING

The name of the subscriber.

State
STRING

The subscriber’s state.

CustomFields__Key
STRING

The key name of the custom field.

CustomFields__Value
STRING

The value of the custom field.

ReadsEmailWith
STRING

The email client the subscriber uses to read email.

ConsentToTrack
STRING

Indicates if the subscriber has consented to tracking.


Replication Method: Full Table Documentation: Official Docs
Primary Key : ListID

The lists table contains info about the lists in your Campaign Monitor account.

ListID
STRING

The list ID.

Name
STRING

The name of the list.



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.