Skip to main content




Mailchimp is a popular marketing automation platform and email marketing service. As part of our range of out-of-the-box integrations, Zephr offers a Mailchimp Extension, ensuring Users who register within Zephr are added as Contacts within Mailchimp. The integration can also trigger automated emails from Mailchimp custom events within Zephr rules.

This integration will add Contacts to Mailchimp conditionally – during configuration, you will nominate a user attribute that denotes explicit consent from the user to determine if a user is added to Mailchimp. The plugin allows you to set the Lists (Mailchimp Audiences) to which you wish those Users to be added. A mapping file lets you choose which information to share with Mailchimp.

It is also possible to use MailChimp’s customer contact ratings in your Zephr rules for any MailChimp audiences to which the customer has been added.


  • A MailChimp account
  • If you wish to use the customer contact ratings in your rules and you would like Zephr to ensure these are periodically updated, you will need to request for the Zephr script injection feature to be switched on for your tenant. Alternatively, you can serve a script from your origin to perform the same function (please see details in the Script section below).

Configuring the Mailchimp Extension

To enable the Mailchimp Extension within Zephr, navigate to Settings > Extensions > Mailchimp. If you cannot see the Mailchimp option in your list of Extensions, email

Once on the configuration screen, you’ll see two sections – Mailchimp API Details and Activate Plugin.

Mailchimp API Details

First, click Mailchimp API Details. Here, you’ll need to input the following information:

  • API Key
  • Mailchimp Data Center
  • Mailchimp Event

These details will need to come from your existing Mailchimp account. If you do not know these details, please consult the Mailchimp help guide, or get in touch with your Mailchimp Account Manager.

Audience Configurations

The Audience Configurations input takes a JSON array where the members are JSON objects representing configuration values for each of the Audiences (Lists) you wish to add users to. The objects in the Audience Configurations array have a format like so:

    "userAttribute" : "<zephr_control_attribute>",
    "audienceId" : "<mailchimp_audience_id>",
    "addIfValueIs" : <true|false>

The value for the “userAttribute” key should be the slug of a Zephr user attribute, nominated to record whether a user has granted consent to be added to the relevant list. The type of this attribute must be ‘checkbox’ when created in the User Attributes section of the Admin Console. An attributes slug will be a lower case, hyphenated version of the attribute name. For example, Newsletter Opt In will have the slug newsletter-opt-in.

The value for the “audienceId” key should be the ID for the relevant MailChimp Audience.

The value for the “addIfValueIs” key should be a boolean. This dictates whether a ‘true ’or ‘false’ value recorded against the nominated User Attribute in Zephr should result in the user being added to the relevant Audience. Typically you will use a value of ‘True’ if you have an ‘opt-in’ user attribute and ‘False’ if you have an ‘opt-out’-style attribute.

Please see below for an example of a multi-list setup, including both ‘opt-in’ and ‘opt-out’ style configurations:

        // in this example, user is added to list in MailChimp if value of
        // nominated user attribute is 'true' - i.e .opt-in style consent
        "userAttribute" : "newsletter-opt-in",
        "audienceId" : "12345",
        "addIfValueIs" : true
        "userAttribute" : "offers-opt-in",
        "audienceId" : "678910",
        "addIfValueIs" : true
        // in this example, user is added to list in MailChimp if value of
        // nominated user attribute is 'false' - i.e .opt-out style consent
        "userAttribute" : "related-company-contact-opt-out",
        "audienceId" : "1112131415",
        "addIfValueIs" : false

MailChimp to Zephr Attribute Mapping

Following this, add a JSON mapping under the MailChimp Objects section. This mapping allows you to map your Zephr User Schema Attributes to the Attributes stored against a Contact within Mailchimp.

Note: the closest approximation to a Zephr User Attribute in MailChimp is a ‘Merge Tag’, you can find a full list of MailChimp Merge Tags here.

  "FNAME" : "first-name",
  "LNAME" : "last-name",


Please Note: In most use cases, there is no need to add any mapping configuration for the user’s email address – if the user has consented to be added to an Audience, their email address will automatically get synced to MailChimp.

Once completed, click Done.

Activate Plugin

Once you’ve input your API details, confirm which of your Sites the extension should be active on. To do this, use the toggles for each site under the Activate Plugin section, or choose Select All Sites.


Once completed, click Save. Your extension is now enabled and will be in use for all new Zephr registrations.


Once configured and active, the extension will work to sync users to MailChimp audiences according to the values stored in the nominated user attributes.

To use customer contact ratings in your rules, a new decision node is provided by the extension. You can drag an instance of the new node onto your rules canvas, select a mailing list to check, and then choose a condition to evaluate any score that is found.


Once you have configured your decision node, it will work to give either a ‘yes’ or ‘no’ decision as customer traffic passes through your rules:


Note: as customers are only synced to MailChimp if they have consented, evaluating a condition against a customer who does not have a customer contact score for a given audience will always result in a ‘no’ decision.

In addition to this, the process for updating customer contact scores in Zephr is asynchronous: this means that the first-page view for a customer who has just been added to an audience is likely to yield a ‘no’ decision.