ActBlue Integration

Last updated at:


This guide will walk you through integrating ActBlue with Klaviyo. After completing the steps outlined in this guide, you'll be able to personalize and target emails based on each Contributor's donation and website activity. Here's some of the data we sync from ActBlue:

  • Amount of the contribution
  • Contributor information including first and last name, location, and how they found your site
  • Whether the donation is recurring and if so, how often in will occur
  • The Committee to which the donation was made
  • The EntityID and FecID  

Add the ActBlue Integration

Click on the Integrations tab in the left sidebar of your account. Navigate to the All Integrations tab and find ActBlue on the list of available integrations. All integrations are in alphabetical order so you'll find ActBlue near the top.

First, click Add Integration next to the ActBlue icon. You will then be brought to another page where you need to click Enable ActBlue.647689After clicking to enable the integration, you will see a section titled Setting Up the ActBlue Webhook

Here, you will need to copy the Webhook URL, Username and Password and send it to your ActBlue Account Manager. If you don't have a contact at ActBlue, please contact our Success Team and we will forward it to ActBlue (this process usually takes less than 24 hours).

Image titleMonitor the Klaviyo Sync & Verify Donation Data

To check on your ActBlue integration, navigate to the Metrics tab in your Klaviyo account.

Click on the Made Contribution metric (identifiable with an ActBlue icon) to verify that there is data populated for this metric. If there is data, all you need to do is wait until your ActBlue integration's historical sync has completed; this process can take up to a couple hours depending on how much data you have in your account.

Klaviyo will import all of your historic ActBlue data. To verify this, you can compare the number of orders on a particular day in Klaviyo with what's in your ActBlue interface and confirm they match.

For example, when exploring the Made Contribution metric in your Klaviyo account's Metrics tab, you can mouse over yesterday's data point or look at the table of data below the chart to see how many orders were reported yesterday. Compare that number to what's stored in ActBlue from yesterday and you should see they match exactly. If they don't, the issue is most likely that your Klaviyo account's timezone doesn't match your ActBlue timezone. To check your timezone setting in Klaviyo, go your Account Settings and navigate to Contact Information > Organization. At the bottom, you will see an area to set timezone.

Understanding your ActBlue Data

There is one major metric that is captured by ActBlue and synced into Klaviyo: Made Contribution

647687Made Contribution

This event is tracked when a customer completes the checkout process and makes a contribution in ActBlue. The event Klaviyo syncs includes all the information ActBlue collects including the contribution amount, whether the donation is recurring, and if so, how often the donation will recur. You can filter and target Made Contribution events based on the following criteria:

  • Amount
  • Recurring: This is either True or False
  • Recurring Period: This will be "Once" if the donation is not recurring, otherwise it will indicate how often the donation recurs 
  • Committee Name: The name of the committee to which the contribution was made
  • EntityID
  • FecID

Here is an example of the data we receive along with a Made Contribution event:

647688Customer Data

In addition to the two core metrics Klaviyo syncs from ActBlue, Klaviyo also creates a comprehensive Klaviyo Profile for every contributor. Along with basic contact information, Klaviyo will also sync any additional details you might have stored in ActBlue about a given person - these details will sync as Custom Properties that get added to each Klaviyo profile. You can use these properties in segments and flows. Here are the default properties that are automatically synced from ActBlue:

  • Email
  • First Name
  • Last Name
  • City
  • State/Region
  • Zip Code
  • Country
  • Phone Number

Frequency of ActBlue sync

The Made Contribution metric and custom profile properties from ActBlue are synced using webhooks. This means that ActBlue indicates to Klaviyo when an event has occurred and Klaviyo will then pull all relevant data for the event. This occurs almost instantaneously. 

Add Klaviyo Web Tracking

The final step here is adding Klaviyo's web tracking code to your website footer. This Klaviyo tracking code will allow us to track an Active on Site metric for you so that you can see and leverage data related to site visits and visitor behavior. Through this metric, Klaviyo will track website activity for known browsers.

For example, you can use the Active on Site metric to create segments of people who have visited your site (while logged in), but haven't yet made a donation. 

The following tracking script can be found in the Setup Wizard in Klaviyo:


Paste the following Klaviyo tracking script into the main template of your app before the </body> tag; remember to add your own API Key, found under Account > Settings > API Key, where you see 'API KEY': 

<script type="text/javascript">
 var _learnq = _learnq || [];

 _learnq.push(['account', 'API KEY']);

 _learnq.push(['identify', {
 // TODO: Change the line below to be the current user's unique ID.
 '$id' : '123',
 // TODO: Change the line below to be the current user's email.
 '$email' : '',
 // TODO: Change the line below to be the current user's first name.
 '$first_name' : 'John',
 // TODO: Change the line below to be the current user's last name.
 '$last_name' : 'Smith',
 // TODO: Change the line below to be when the current user signed up.
 'Created At' : 1458046212

 // TODO: If you want to track a user's plan, uncomment the line below and change it to the current user's plan.
 // , 'Plan' : 'Basic Plan'

 (function () {
 var b = document.createElement('script'); b.type = 'text/javascript'; b.async = true;
 b.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + '';
 var a = document.getElementsByTagName('script')[0]; a.parentNode.insertBefore(b, a);
Was this article helpful?
2 out of 2 found this helpful