The connector only reads data. It never sends, schedules or changes campaigns, and never adds, edits or removes subscribers.
Configuring Campaign Monitor as a Source
In the Sources tab, click on the “Add source” button located on the top right of your screen. Then, select the Campaign Monitor option from the list of connectors. Click Next and you’ll be prompted to add your access.1. Add account access
In Campaign Monitor, click your profile image, open Account settings and then API keys. Copy the API key. The same page shows the Client ID of each client. The following configurations are available:- API Key: Your Campaign Monitor API key.
- Start Date: Campaign reports (summaries, lists and segments, email clients, recipients, opens, clicks, bounces, unsubscribes and spam complaints) cover the campaigns sent on or after this date. Clients, lists and the list of campaigns are read in full on every sync. Subscribers are read in full on the first sync and on full syncs; incremental syncs bring only the subscribers whose state changed (see the tip below).
- Client IDs (advanced): The Client IDs to sync, separated by commas. Leave it empty to sync every client of your account. If your API key belongs to a single client (a client API key), fill in that client’s ID.
- Campaign Reports Window (days) (advanced): Each sync checks every campaign sent since the Start Date for new opens, clicks, bounces, unsubscribes and spam complaints. If you send many campaigns, set a number of days here and later syncs will only check the campaigns sent in that many days before the last activity read. Activity that still arrives for older campaigns is then not loaded (the sync log says how many campaigns were left out); only a full sync reads it. Leave it empty to check every campaign.
2. Select streams
Choose which data streams you want to sync. For faster extractions, select only the streams that are relevant to your analysis. You can select entire groups of streams or pick specific ones.Tip: The stream can be found more easily by typing its name.Select the streams and click Next.
3. Configure data streams
Customize how you want your data to appear in your catalog. Select the desired layer where the data will be placed, a folder to organize it inside the layer, a name for each table (which will effectively contain the fetched data) and the type of sync.- Layer: choose between the existing layers on your catalog. This is where you will find your new extracted tables as the extraction runs successfully.
- Folder: a folder can be created inside the selected layer to group all tables being created from this new data source.
- Table name: we suggest a name, but feel free to customize it. You have the option to add a prefix to all tables at once and make this process faster!
- Sync Type: you can choose between INCREMENTAL and FULL_TABLE.
- Incremental: every time the extraction happens, we’ll get only the new data, which is good if, for example, you want to keep every record ever fetched.
- Full table: every time the extraction happens, we’ll get the current state of the data, which is good if, for example, you don’t want to have deleted data in your catalog.
4. Configure data source
Describe your data source for easy identification within your organization, not exceeding 140 characters. To define your Trigger, consider how often you want data to be extracted from this source. This decision usually depends on how frequently you need the new table data updated (every day, once a week, or only at specific times). Optionally, you can define some additional settings:- Configure Delta Log Retention and determine for how long we should store old states of this table as it gets updated. Read more about this resource here.
- Determine when to execute an Additional Full Sync. This will complement the incremental data extractions, ensuring that your data is completely synchronized with your source every once in a while.
5. Check your new source
You can view your new source on the Sources page. If needed, manually trigger the source extraction by clicking on the arrow button. Once executed, your data will appear in your Catalog.Good to know
- Dates are in each client’s time zone. Campaign Monitor returns dates without a time zone, in the time zone set for each client. The
timezonecolumn of the Clients table shows it. The Start Date is read in the same way. - Campaign reports follow the Start Date. Campaigns sent before the Start Date stay in the Campaigns table, but their reports and activity are not read.
- Activity tables keep the full history. Opens, clicks, bounces, unsubscribes and spam complaints are read incrementally: each sync reads the new activity of every campaign (one day before the last activity read, to catch late records).
- Several opens in the same minute count once. Campaign Monitor gives opens and clicks no ID and records their time to the minute, so two opens of the same email by the same subscriber in the same minute appear as one row.
- Stats tables are snapshots. Campaign Summaries, List Stats and Journey Emails hold the totals at the time of the sync.
Streams and Fields
Available streams
The table below lists every stream, its slug (the exact identifier to pass when creating the source via API) and a short description.Fields by stream
Clients
Clients
Primary key:
client_id · Sync: Full tableclient_id- ID of the Campaign Monitor client (brand/account) the record belongs toname- Name of the client as listed in the accountcompany_name- Company name of the clientcontact_name- Name of the client’s contact (returned only when the client has a single person)email_address- Email address of the client’s contact (returned only when the client has a single person)primary_contact_name- Name of the client’s primary contactprimary_contact_email- Email address of the client’s primary contactcountry- Country of the clienttimezone- Time zone of the client, as named by Campaign Monitor. Dates of this client’s records are in this time zonemonthly_scheme- Monthly billing plan of the client (Basic, Unlimited or Premier), when on a monthly planaccess_details- Access details of the client (JSON object with Username and AccessLevel), when returnedbilling_details- Billing settings of the client (JSON object: credits, currency, rates and markups)
Campaigns
Campaigns
Primary key:
campaign_id · Sync: Full tableclient_id- ID of the Campaign Monitor client (brand/account) the record belongs tocampaign_id- Unique identifier of the campaignname- Internal name of the campaignsubject- Subject line of the campaign emailfrom_name- Sender name of the campaignfrom_email- Sender email address of the campaignreply_to- Reply-to email address of the campaigntags- Tags assigned to the campaignsent_date- Date and time the campaign was sent, in the client’s time zonetotal_recipients- Number of recipients the campaign was sent toweb_version_url- URL of the web version of the campaignweb_version_text_url- URL of the text web version of the campaign
Scheduled Campaigns
Scheduled Campaigns
Primary key:
campaign_id · Sync: Full tableclient_id- ID of the Campaign Monitor client (brand/account) the record belongs tocampaign_id- Unique identifier of the campaignname- Internal name of the campaignsubject- Subject line of the campaign emailfrom_name- Sender name of the campaignfrom_email- Sender email address of the campaignreply_to- Reply-to email address of the campaigntags- Tags assigned to the campaigndate_created- Date and time the campaign was created, in the client’s time zonedate_scheduled- Date and time the campaign is scheduled to be sent, in the time zone given by scheduled_time_zonescheduled_time_zone- Time zone of the scheduled send datepreview_url- URL of the campaign previewpreview_text_url- URL of the text preview of the campaign
Draft Campaigns
Draft Campaigns
Primary key:
campaign_id · Sync: Full tableclient_id- ID of the Campaign Monitor client (brand/account) the record belongs tocampaign_id- Unique identifier of the campaignname- Internal name of the campaignsubject- Subject line of the campaign emailfrom_name- Sender name of the campaignfrom_email- Sender email address of the campaignreply_to- Reply-to email address of the campaigntags- Tags assigned to the campaigndate_created- Date and time the draft was created, in the client’s time zonepreview_url- URL of the draft previewpreview_text_url- URL of the text preview of the draft
Segments
Segments
Primary key:
segment_id · Sync: Full tableclient_id- ID of the Campaign Monitor client (brand/account) the record belongs tosegment_id- Unique identifier of the segmentlist_id- ID of the subscriber list the segment belongs totitle- Name of the segment
Suppression List
Suppression List
Primary key:
client_id, email_address · Sync: Full tableclient_id- ID of the Campaign Monitor client (brand/account) the record belongs toemail_address- Suppressed email addresssuppression_reason- Why the address is suppressed (e.g. Unsubscribed, Bounced, Suppressed manually)date- Date and time the address was suppressed, in the client’s time zonestate- State of the suppressed address
Templates
Templates
Primary key:
template_id · Sync: Full tableclient_id- ID of the Campaign Monitor client (brand/account) the record belongs totemplate_id- Unique identifier of the templatename- Name of the templatepreview_url- URL of the template previewscreenshot_url- URL of a screenshot of the template
People
People
Primary key:
client_id, email_address · Sync: Full tableclient_id- ID of the Campaign Monitor client (brand/account) the record belongs toemail_address- Email address of the person (a user with access to the client, not a subscriber)name- Name of the personaccess_level- Access level of the person, as a Campaign Monitor permission bitmaskstatus- Status of the person (Active, or waiting to accept the invitation)
Lists
Lists
Primary key:
list_id · Sync: Full tableclient_id- ID of the Campaign Monitor client (brand/account) the record belongs tolist_id- ID of the subscriber listname- Name (title) of the listconfirmed_opt_in- Whether new subscribers must confirm their subscription (double opt-in)confirmation_success_page- URL subscribers are sent to after confirmingunsubscribe_page- URL subscribers are sent to after unsubscribingunsubscribe_setting- Whether unsubscribing removes the address from this list only or from all the client’s lists
List Stats
List Stats
Primary key:
list_id · Sync: Full tableclient_id- ID of the Campaign Monitor client (brand/account) the record belongs tolist_id- ID of the subscriber listtotal_active_subscribers- Total number of active subscribers of the list at the time of the syncnew_active_subscribers_today- Number of new active subscribers today (since midnight in the client’s time zone)new_active_subscribers_yesterday- Number of new active subscribers yesterdaynew_active_subscribers_this_week- Number of new active subscribers this week (since Sunday)new_active_subscribers_this_month- Number of new active subscribers this monthnew_active_subscribers_this_year- Number of new active subscribers this yeartotal_unsubscribes- Total number of unsubscribes of the list at the time of the syncunsubscribes_today- Number of unsubscribes today (since midnight in the client’s time zone)unsubscribes_yesterday- Number of unsubscribes yesterdayunsubscribes_this_week- Number of unsubscribes this week (since Sunday)unsubscribes_this_month- Number of unsubscribes this monthunsubscribes_this_year- Number of unsubscribes this yeartotal_deleted- Total number of deleted subscribers of the list at the time of the syncdeleted_today- Number of deleted subscribers today (since midnight in the client’s time zone)deleted_yesterday- Number of deleted subscribers yesterdaydeleted_this_week- Number of deleted subscribers this week (since Sunday)deleted_this_month- Number of deleted subscribers this monthdeleted_this_year- Number of deleted subscribers this yeartotal_bounces- Total number of bounced subscribers of the list at the time of the syncbounces_today- Number of bounced subscribers today (since midnight in the client’s time zone)bounces_yesterday- Number of bounced subscribers yesterdaybounces_this_week- Number of bounced subscribers this week (since Sunday)bounces_this_month- Number of bounced subscribers this monthbounces_this_year- Number of bounced subscribers this year
List Custom Fields
List Custom Fields
Primary key:
list_id, key · Sync: Full tableclient_id- ID of the Campaign Monitor client (brand/account) the record belongs tolist_id- ID of the subscriber listkey- Key of the custom field, as it appears in subscribers’ custom_fields (e.g. [website])field_name- Name of the custom fielddata_type- Data type of the custom field (Text, Number, Date, MultiSelectOne, MultiSelectMany, Country, USState)field_options- Allowed options of a multi-option custom fieldvisible_in_preference_center- Whether subscribers can see and edit the field in the preference center
Subscribers
Subscribers
Primary key:
list_id, email_address · Sync: Incremental on dateclient_id- ID of the Campaign Monitor client (brand/account) the record belongs tolist_id- ID of the subscriber listemail_address- Email address of the subscribername- Name of the subscribermobile_number- Mobile number of the subscriber, when availablestate- State of the subscriber in this list: Active, Unconfirmed, Bounced, Unsubscribed or Deleteddate- Date and time of the subscriber’s current state (subscribed, confirmed, bounced, unsubscribed or deleted), in the client’s time zone; used as the incremental replication keylist_joined_date- Date and time the subscriber joined the list, in the client’s time zonecustom_fields- Custom field values of the subscriber (JSON array of objects with Key and Value; a multi-option field appears once per selected value)reads_email_with- Email client the subscriber most recently opened withconsent_to_track- Whether the subscriber consented to tracking (Yes, No or Unchanged)consent_to_send_sms- Whether the subscriber consented to receive SMS, when available
Campaign Summaries
Campaign Summaries
Primary key:
campaign_id · Sync: Full tableclient_id- ID of the Campaign Monitor client (brand/account) the record belongs tocampaign_id- ID of the sent campaignname- Name of the campaignsent_date- Date and time the campaign was sent, in the client’s time zonerecipients- Number of recipients the campaign was sent tototal_opened- Total number of opens, counting repeated opens by the same subscriberunique_opened- Number of distinct subscribers who opened the campaignclicks- Number of distinct subscribers who clicked a linkunsubscribed- Number of subscribers who unsubscribed from the campaignbounced- Number of bounced emailsspam_complaints- Number of spam complaintsforwards- Number of times the campaign was forwardedlikes- Number of likesmentions- Number of social mentionsweb_version_url- URL of the web version of the campaignweb_version_text_url- URL of the text web version of the campaignworldview_url- URL of the Worldview report of the campaign
Campaign Lists and Segments
Campaign Lists and Segments
Primary key:
campaign_id, type, id · Sync: Full tableclient_id- ID of the Campaign Monitor client (brand/account) the record belongs tocampaign_id- ID of the sent campaigntype- Whether the campaign was sent to a whole list (‘list’) or to a segment of a list (‘segment’)id- ID of the list or segment the campaign was sent tolist_id- ID of the list (for a segment, the list the segment belongs to)segment_id- ID of the segment (empty for a whole list)name- Name of the list, or title of the segment
Campaign Email Client Usage
Campaign Email Client Usage
Primary key:
campaign_id, email_client, version · Sync: Full tableclient_id- ID of the Campaign Monitor client (brand/account) the record belongs tocampaign_id- ID of the sent campaignemail_client- Email client used to open the campaign (e.g. Gmail, iOS Devices)version- Version of the email clientpercentage- Share of the opening subscribers who used this email client, in percentsubscribers- Number of subscribers who opened the campaign with this email client
Campaign Recipients
Campaign Recipients
Primary key:
campaign_id, list_id, email_address · Sync: Incremental on sent_dateclient_id- ID of the Campaign Monitor client (brand/account) the record belongs tocampaign_id- ID of the sent campaignsent_date- Date and time the campaign was sent, in the client’s time zone; used as the incremental replication keylist_id- ID of the list the recipient was onemail_address- Email address of the recipient
Campaign Opens
Campaign Opens
Primary key:
campaign_id, list_id, email_address, date · Sync: Incremental on dateclient_id- ID of the Campaign Monitor client (brand/account) the record belongs tocampaign_id- ID of the sent campaignlist_id- ID of the list the subscriber was on when the campaign was sentemail_address- Email address of the subscriberdate- Date and time of the open, in the client’s time zone; used as the incremental replication keyip_address- IP address the event came fromlatitude- Approximate latitude of the event, when availablelongitude- Approximate longitude of the event, when availablecity- Approximate city of the event, when availableregion- Approximate region or state of the event, when availablecountry_code- Two-letter country code of the event, when availablecountry_name- Country name of the event, when available
Campaign Clicks
Campaign Clicks
Primary key:
campaign_id, list_id, email_address, date, url · Sync: Incremental on dateclient_id- ID of the Campaign Monitor client (brand/account) the record belongs tocampaign_id- ID of the sent campaignlist_id- ID of the list the subscriber was on when the campaign was sentemail_address- Email address of the subscriberdate- Date and time of the click, in the client’s time zone; used as the incremental replication keyurl- URL of the link that was clickedip_address- IP address the event came fromlatitude- Approximate latitude of the event, when availablelongitude- Approximate longitude of the event, when availablecity- Approximate city of the event, when availableregion- Approximate region or state of the event, when availablecountry_code- Two-letter country code of the event, when availablecountry_name- Country name of the event, when available
Campaign Bounces
Campaign Bounces
Primary key:
campaign_id, list_id, email_address, date · Sync: Incremental on dateclient_id- ID of the Campaign Monitor client (brand/account) the record belongs tocampaign_id- ID of the sent campaignlist_id- ID of the list the subscriber was on when the campaign was sentemail_address- Email address of the subscriberdate- Date and time of the bounce, in the client’s time zone; used as the incremental replication keybounce_type- Type of bounce: Hard (permanent) or Soft (temporary)reason- Reason given for the bounce
Campaign Unsubscribes
Campaign Unsubscribes
Primary key:
campaign_id, list_id, email_address, date · Sync: Incremental on dateclient_id- ID of the Campaign Monitor client (brand/account) the record belongs tocampaign_id- ID of the sent campaignlist_id- ID of the list the subscriber was on when the campaign was sentemail_address- Email address of the subscriberdate- Date and time of the unsubscribe, in the client’s time zone; used as the incremental replication keyip_address- IP address the unsubscribe came from
Campaign Spam Complaints
Campaign Spam Complaints
Primary key:
campaign_id, list_id, email_address, date · Sync: Incremental on dateclient_id- ID of the Campaign Monitor client (brand/account) the record belongs tocampaign_id- ID of the sent campaignlist_id- ID of the list the subscriber was on when the campaign was sentemail_address- Email address of the subscriberdate- Date and time of the spam complaint, in the client’s time zone; used as the incremental replication key
Journeys
Journeys
Primary key:
journey_id · Sync: Full tableclient_id- ID of the Campaign Monitor client (brand/account) the record belongs tojourney_id- Unique identifier of the journey (automation)list_id- ID of the list the journey is attached toname- Name of the journeystatus- Status of the journey (e.g. Active, Inactive)trigger_type- What starts the journey for a subscriber (e.g. subscribe to a list, a date)
Journey Emails
Journey Emails
Primary key:
journey_id, email_id · Sync: Full tableclient_id- ID of the Campaign Monitor client (brand/account) the record belongs tojourney_id- ID of the journey the email belongs toemail_id- Unique identifier of the journey emailname- Name of the journey emailsent- Number of times the email was sentopened- Total number of opensunique_opened- Number of distinct subscribers who opened the emailclicked- Number of clicksbounced- Number of bouncesunsubscribed- Number of unsubscribes from the email