Constant Contact Email Integration

This article will guide you through the process of setting up and using the Constant Contact integration for your Alpine database.

Overview

Setup & Configuration

Pulling Contacts from Constant Contact into Alpine

Pushing Contacts from Alpine into Constant Contact

Syncing Email Subscriber Activity

Syncing Email Campaign Content

Overview

Humanitru Alpine offers deep integrations with best-in-class email marketing platforms to assist you in all of your email engagement needs. This guide is meant to provide an overview of what goes on behind the scenes, taken directly from the code to ensure that nothing goes missing and undocumented.

To the best of our ability, we will ensure that all email marketing integrations behave similarly. However, as this is a guide specifically for Constant Contact, we will use language that is appropriate to that platform.

Vocabulary

This guide assumes an intermediate understanding of the Constant Contact platform and its vocabulary.

Contacts: These are the individual people you communicate with via email. Each contact has unique information associated with them, such as their email address, name, and other details.

Lists: Lists are groups or collections of contacts. You can have multiple lists in your account, and each list can have its unique set of contacts.

Tags: While Lists allow for broader segmentation, Tags offer a more granular way to categorize contacts. Tags are labels or descriptors you can attach to Constituents regardless of the list they belong to. For instance, within your "Newsletter Subscribers" list, you might have some Constituents tagged as "VIP" or "Donor”. Similarly, in the "Event Attendees" list, you might have tags like "Workshop Participant" or "Speaker."



How it works

Within Constant Contact, your Contacts belong to Lists, with the potential for your account to have multiple Lists (e.g., Newsletter Subscribers vs. Gala attendees). 

Within a List, you can have Tags that you can use to segment contacts. Contacts may have multiple Tags, and Tags can have multiple Contacts.

Each Contact can have Fields (Merge Fields) that can be used when personalizing content, e.g. first name, last name, etc. Constant Contact's preferred syntax for denoting these Merge Fields is with double brackets prefixing and suffixing the field name, e.g. [[FirstName]], this syntax is unique to Constant Contact. 

Finally, within Constant Contact, a contact may have several subscription statuses: Awaiting Confirmation All Subscribed, Subscribed - Implied, Subscribed - Express, Subscribed - Confirmed, Temporary Hold, Unsubscribed, No Permissions Set. Please refer to the Constant Contact documentation for specific definitions of what these contact subscription statuses mean.

 

Setup & Configuration

 

Connecting Constant Contact

To connect your Alpine database to Constant Contact, follow these steps.

  1. Log in to your Alpine database.
  2. Click on the Settings button on the left-side navigation bar.
  3. Scroll down to the Integrations section.
  4. Click Connect your Constant Contact account. A pop-up will appear, asking you to log in with the above credentials.
  5. Enter your Constant Contact login credentials and click Sign In. After signing in, you will automatically be returned to Alpine.
  6. Finally, verify the integration is connected by clicking the Test Status button under next Settings.

Ignore Email Addresses 

In Alpine, under "Settings", once you connect the Constant Contact integration, a new field called Ignored Email Addresses will appear allowing you to add email addresses that you wish to be ignored when the integration pulls information from Constant Contact. As the information pulled involves both contacts and email subscriber activity (emails sent, opened, links clicked, etc.), any email addresses in this field will be ignored entirely.

Use this setting for any contacts within Constant Contact that you do not wish to appear in Alpine.

NOTE: To avoid pushing Constituents from Alpine into Constant Contact that you don't want to be included, you can use the "Do Not Sync" Tag within Alpine under the Tag Group "[Constant Contact] Subscription Status"

Merge Fields

Alpine users can manage their synced fields with Constant Contact, allowing you to use personalized content and information from your Constituent Reports in your Constant Contact email campaigns.

To sync custom fields from your Alpine database to Constant Contact, follow these steps.

  1. Log in to your Alpine database.
  2. Click Settings on the left-hand side navigation bar.
  3. Scroll down to All Fields.
  4. Click the SYNC TO EMAIL MARKETING MERGE FIELD checkbox for each custom field you want to sync to Constant Contact.

Each field will be prefixed with “[Alpine]”, e.g. “[Alpine] Name”, and the value used in templates will be “alpine_field_name_here”, e.g. “alpine_name” which is the full name lowercase with underscores replacing spaces

If you accidentally delete these Merge Fields within Constant Contact, they will be restored during the nightly sync from Alpine. If you replace or set any values for these Alpine-managed Merge Fields within Constant Contact, they will be overridden/replaced on a nightly basis

CAUTION: Within Constant Contact, you are limited to 100 custom fields (each contact may only have 25 custom fields however, so it’s a de facto 25 custom field limit)

 

Pulling Contacts from Constant Contact into Alpine

 

CONTACTS ONLY (EMAIL ADDRESSES + ADDITIONAL INFO)

The integration will begin pull Contacts into your Alpine database according to the following process:  

  1. Delete all applied Alpine Tags under the Tag Group: “[Constant Contact]”) except for “Do Not Sync” and “Deleted (Do Not Sync)”, as they will be subsequently refreshed directly from their Constant Contact.
  2. Alpine will fetch a list of Contacts from Constant Contact, along with additional information depending on the platform.
  3. Alpine will then attempt to either match these Contacts to pre-existing Constituents or create new ones if not present or found. This matching algorithm is standardized across our entire platform. Matching will return the first result from the following lists, ordered by priority:
    1. Any Constituent with the [Base] Email field equal to the correct value
    2. Any Constituent with Custom Fields of type Email (e.g. Secondary Email, Tertiary Email, etc.)
  4. If there are multiple matches within the same type of match (e.g. multiple Constituents with the same [Base] Email field matching the email address given, then it will choose the first Constituent created (lower ID). However, do not rely on this as this is not guaranteed [e.g. merging Constituents will generate a new Constituent with a higher ID than any of its merged Constituents]).

Additional Fields pulled from Constant Contact

Constant Contact

Corresponding Alpine Field

Email Address [contact_email]

 [Base] Email

First Name [first_name]

 [Base] Email Salutation

Last Name [last_name]

 [first_name] [last_name] will be [Base] Name   (to combat spam, this will be truncated to   255 characters)

Address Line 1 [address_line1] 

 All address fields combined into [Base]       Address (and then geocoded into [Derived]   Address Fields)

Address Line 2 [address_line2] 

City [city] 

State Abbreviation [state_code] 

Postal Code [postal_code]

Subscription Status

 A Tag Group named: [Constant Contact]   Permission to Send


 

Pushing Contacts from Alpine into Constant Contact

CONTACTS ONLY (EMAIL ADDRESSES + ADDITIONAL INFO)

The integration will begin pushing Contacts into your Alpine database according to the following process:  

  1. Take every single Constituent within your Alpine database.
  2. Out of those Constituents, remove any that are tagged with the following tags:
    1. [Constant Contact] Permission to Send: Do Not Sync
    2. [Constant Contact] Permission to Send: Deleted (Do Not Sync)
  3. Fetch all Constant Contact “Merge Fields”, looking for those maintained by Alpine (within Constant Contact, these will be merge-fields that are under the Group “Alpine”). If these Fields do not yet exist, then they will be created.

  4. Push remaining Constituents with Constant Contact Merge Fields into Constant Contact. 
    Each Constituent will be associated with an email address. Email addresses will be pulled from the [Base] Email field, as well as any Custom Fields that are of type Email. If multiple Constituents share the same email address (either via Custom Fields, Base Fields, or a mix of the two), then the following priority will be used as which Constituent’s information will be used for that email address:
      1. Custom Fields
      2. Base Fields
  5. Constant Contact automatically matches passed-in email addresses provided by Alpine. If Alpine provides an email address for a Constituent that does not have a matching Contact in Constant Contact, a new Contact will be created in Constant Contact with a Subscription Status of "Subscribed". Alpine will never override the pre-existing subscription status within Constant Contact if the matched Contact already exists. For example, if someone is unsubscribed within Constant Contact, Alpine will never reset that status.

NOTE: Alpine will never push information into your pre-existing non-Alpine Constant Contact Merge Fields, e.g. “[first_name]” or [last_name]. This is to preserve any data you have within these platforms. However, when pulling information from Constant Contact, Alpine will access these fields.

CAUTION: It's strongly recommended that users maintain unique email addresses per Constituent within Alpine to minimize the chances of email address collision.

TIP: To avoid Alpine re-syncing deleted Contacts from Constant Contact, it's recommended to mark them as unsubscribed within Constant Contact instead of deleting them. This way, the Contacts will remain in the system but Alpine will not override them since they already exist in Constant Contact.

 

Syncing Tags from Constant Contact

After Alpine has synced its entire Constituent base into Constant Contact, it will look at any Alpine Tags that have been set to sync on a nightly basis, and repeat the process described above, with the following differences. 

    • Nightly Sync for Tags - Instead of syncing all Constituents, Alpine will only sync Constituents that have a specific Alpine Tags attached to them. Those Constituents are then pushed from Alpine into Constant Contact 
    • Constant Contact Tag Process - After pushing Constituents from Alpine to Constant Contact, the integration will retrieve a list of all existing Constant Contact Tags. The integration will focus specifically on the ones that have names starting with Alpine:.
      • For example, a Constant Contact Tag titled “[Alpine: Created 1/20/20 1:45 PM ET] Test Tag 1”
  • Matching Constant Contact Tags to Alpine Tags - Among the Constant Contact Tags that were retrieved, Alpine will search for a tag whose name matches the corresponding tag in Alpine. Using the previous example, if there's a Alpine Tag named “Test Tag 1”, Alpine will look for a Constant Contact Tag named “[Alpine: Created 1/20/20 1:45 PM ET] Test Tag 1” or “[Alpine: Updated 1/24/20 2:39 PM ET]”.
    • If Alpine doesn’t find a matching Constant Contact Tag, it will create a new one. This new tag will adhere to the following format specific naming: [Alpine: Created M/D/YY HH:MM AM TZ] TAG_NAME
  • Associating Constituents with Constant Contact Tags - After ensuring that there’s a corresponding Constant Contact Tag (either by finding an existing one or creating a new one), Alpine will then associate the synced Constituents (who were under the original Alpine Tag) with this Constant Contact Tag.

NOTE: Emails linked to the Constituent ([Base] Email, as well as any Custom Fields of type Email) will be associated with this Constant Contact Tag. This is regardless of if those columns are selected in the Alpine Constituent reporting interface.

NOTE: Since Constituents may have multiple emails on their profile, they may have multiple Subscription Status tags that potentially conflict. At this time, the only way to know which email refers to which tag is to go directly to the email marketing platform.

 

Syncing Email Subscriber Activity

EMAILS SENT, OPENED, AND LINKS CLICKED

Alpine will fetch a list of all Email Campaigns sent to that Lists in the two weeks preceding the last time the email integration synchronization was run. If no date is present (e.g. the first time the integration runs), then it will pick the date of 12 months ago. As this email integration runs nightly, this will usually correspond to any email campaigns sent within the last two weeks.

For Automated ActiveCampaign Campaigns, Alpine will sync all component email campaigns within the larger Automated Email Campaign. For A/B ActiveCampaign Campaigns (known as Split Testing), Alpine will sync not only the A and B versions but also the final winning email campaign sent to the rest of your List.

For each ActiveCampaign Campaign, Alpine will fetch campaign subscriber activity (email address recipients, email opens, links clicked) since the last time the synchronization was run, or if not present, twelve months ago. Therefore, there are three types of campaign subscriber activity:

Campaign Subscriber Activity Types

Email Sent

Email Opened

Email Link Clicked

 Email Address

 Email Address

 Email Address

 Email Body (HTML)

 Email Body (HTML)

 Email Body (HTML)

 Email Subject Line

 Email Subject Line

 Email Subject Line

 Timestamp

 Timestamp

 Timestamp

   

 URL of Link Clicked

 

Campaign subscriber activity will be skipped if the given email address from ActiveCampaign matches one of the values under Setup (Ignored Email Addresses (Comma Separated)).

If during this campaign subscriber activity sync, if a new email address is found (e.g. not previously present in the database), then a new Alpine Constituent will be created with the name “Contact for email@address.com”. This may occur if you have deleted a contact out of ActiveCampaign, but that contact had received an email communication at some point in the past.

If multiple Constituents match a given Email Address, then all matched Constituents will have Actions created under their own profiles. For example, if the email address “hello@example.com “ is linked to three Constituents (two with the “[Base] Email” field set to “hello@example.com”, and a third with a Custom Field of type Email called “Secondary Email” set to “hello@example.com”), then three email open Actions will be created (and associated with the three Constituents).

 

Syncing Email Campaign Content

HTML BODY + SUBJECT LINE + PREVIEW TEXT

For all Constant Contact Campaigns tracked within all Alpine Actions related to email subscriber activity (emails sent, emails opened, email links clicked), Alpine will sync the content of the Constant Contact email campaign into its own database (accessible via “View Preview”). Alpine will attempt to download the following information per Constant Contact email campaign:

  • HTML Content (images, CSS, as displayed to end-users)
    • For A/B email campaigns, the A version will be recorded
  • Plain Text Content (not always available, depending on your Constant Contact plain-text campaign generation settings)
    • For A/B email campaigns, the A version will be recorded
  • Subject Line
  • Preview Text

 

If you have any questions about Humanitru’s Constant Contact integration, please email our Support Team at support@humanitru.com