← All docs

Email marketing integrations

Sprout Affiliate can keep your affiliates in Mailchimp, Klaviyo, Omnisend, Kit, MailerLite, or HubSpot. Each affiliate lands there with their program, their referral link, their discount code, and a status that changes when you approve or pause them. That status is what makes an integration worth connecting: you can start a welcome series the moment someone is approved, without sending it by hand.

The integrations are in Sprout Affiliate under Settings › Integrations, in the Email marketing group. Each service has a Setup guide link beside it that opens its section on this page.

Before you start

Mailchimp

Mailchimp calls a contact list an audience. You choose one audience, and your affiliates are added to it.

Step 1: Choose or create an audience

You can use an audience you already have. If you want affiliates kept apart from your customers, create one for them first:

  1. Sign in to Mailchimp.
  2. Go to Audience and click Create Audience.
  3. Name it, for example Affiliates, fill in the sender details Mailchimp asks for, and click Save.

Some Mailchimp plans allow only one audience. On those plans, use the one you have. The tags described below keep affiliates easy to find in it.

Step 2: Create an API key

  1. In Mailchimp, click your name, then Account & billing.
  2. Click Extras, then API keys.
  3. In the Your API keys section, click Create a key. Name it Sprout Affiliate so you recognize it later.
  4. Copy the key. A Mailchimp key ends with a hyphen and your account's data centre, like -us19.

Step 3: Connect it in Sprout Affiliate

  1. Go to Settings › Integrations and click Connect on the Mailchimp row.
  2. Paste the key into Mailchimp API key and click Connect.
  3. An Audience list appears with the audiences in your Mailchimp account, and how many contacts each has. Pick the one affiliates should go into.
  4. Click Use this audience.
Settings › Integrations, after the key is accepted

Connect Mailchimp

Audience
Affiliates (42)

Use this audience

The Mailchimp row then shows Connected, and every affiliate who can be synced is queued. See When it syncs for how long that takes.

What Sprout Affiliate adds to Mailchimp

When you connect, Sprout Affiliate adds five fields to the audience, so there is nothing to set up yourself. A field you already have with the same tag is left as it is. Each affiliate's contact is then filled in like this:

Merge tagFieldWhat it holds
FNAMEFirst NameThe first word of the affiliate's name
LNAMELast NameThe rest of their name
AFFSTATUSAffiliate statusapplied, approved, or paused
AFFPROGAffiliate programThe name of their program
AFFREFAffiliate refTheir link name
AFFCODEAffiliate discount codeTheir discount code, if they have one
AFFLINKAffiliate referral linkTheir full referral link

To use one in a Mailchimp email, type its merge tag between *| and |*. For example, *|AFFLINK|* puts each affiliate's own link in the email, and *|AFFCODE|* their code.

Tags

Every synced contact gets the tag Sprout Affiliate, and exactly one status tag:

TagWhen
Affiliate: appliedThey have applied and are waiting for your decision
Affiliate: approvedYou approved them, or resumed them after a pause
Affiliate: pausedYou paused them

When the status changes, the old status tag is removed and the new one added in the same step, so a contact never carries two. To send a welcome series when someone is approved, create a Mailchimp automation (a Customer Journey) that starts when the tag Affiliate: approved is added.

Klaviyo

Klaviyo calls a contact list a list. Sprout Affiliate's box calls it an audience, but it is the same thing: you choose one list, and affiliates are added to it.

Step 1: Choose or create a list

  1. Sign in to Klaviyo.
  2. Click Audience, then Lists & Segments, then Create New, then Create List.
  3. Name it, for example Affiliates, and create it.

Step 2: Create a private API key

  1. Click your account name at the bottom left, then Settings.
  2. Open Account, then API keys, and click Create Private API Key.
  3. Name it Sprout Affiliate and choose Full Access Key. If you would rather give only what is needed, choose a custom key with full access to Lists, Profiles, and Subscriptions.
  4. Create the key and copy it. A private key starts with pk_. The public key (also called the site ID) will not work, and Sprout Affiliate says so if you paste it.

Step 3: Connect it in Sprout Affiliate

  1. Go to Settings › Integrations and click Connect on the Klaviyo row.
  2. Paste the key into Klaviyo private API key and click Connect.
  3. Pick the list from Audience, and click Use this audience.

What Sprout Affiliate adds to Klaviyo

Each affiliate's profile gets their first and last name, and these custom properties. Klaviyo needs no setup for them.

PropertyWhat it holds
Sprout Affiliateyes
Affiliate statusapplied, approved, or paused
Affiliate programThe name of their program
Affiliate refTheir link name
Affiliate discount codeTheir discount code, if they have one
Affiliate referral linkTheir full referral link

Klaviyo has no tags, so the status is the Affiliate status property. To send a welcome series, build a flow triggered by your list, or by a segment where Affiliate status equals approved. In an email, a property goes in as {{ person|lookup:'Affiliate referral link' }}.

Omnisend

Omnisend has no lists to choose from. Affiliates are added to your contacts and marked with tags, which Omnisend's segments and automations read.

Step 1: Create an API key

  1. Sign in to Omnisend, or create an account.
  2. Open Store settings, then Integrations & API, then API keys, and create a key. Omnisend's own guide to generating an API key has pictures of each step.
  3. Copy the key.

Step 2: Connect it in Sprout Affiliate

  1. Go to Settings › Integrations and click Connect on the Omnisend row.
  2. Paste the key into Omnisend API key and click Connect.

That is all. There is no list to pick, so the row shows Connected straight away and your affiliates are queued.

What Sprout Affiliate adds to Omnisend

Each contact gets the affiliate's first and last name, the tag Sprout Affiliate, one status tag (Affiliate: applied, Affiliate: approved, or Affiliate: paused, the same as Mailchimp), and these custom properties:

PropertyWhat it holds
affiliateStatusapplied, approved, or paused
affiliateProgramThe name of their program
affiliateRefTheir link name
affiliateCodeTheir discount code, if they have one
affiliateLinkTheir full referral link

Tags you added to a contact yourself are kept. Only Sprout Affiliate's own tags are changed.

Kit

Kit (formerly ConvertKit) has no lists. You choose one of your forms or one of your tags, and affiliates are added to it. Kit's automations can start from either.

Step 1: Choose a form or a tag

You can use a form you already have. To keep affiliates apart from your other subscribers, create a tag for affiliates in Kit first, for example Affiliates, and choose that. Sprout Affiliate's own tags (below) are not offered as a choice.

Step 2: Create an API key

  1. Sign in to Kit.
  2. Click your name at the top right, then Settings, then Developer.
  3. Under V4 Keys, click Add a new key, name it Sprout Affiliate, and click Create API Key.
  4. Copy the key. Kit shows it only once.

Step 3: Connect it in Sprout Affiliate

  1. Go to Settings › Integrations and click Connect on the Kit row.
  2. Paste the key into Kit API key and click Connect.
  3. The Audience list shows your forms under Forms and your tags under Tags. Pick one, and click Use this audience.

What Sprout Affiliate adds to Kit

When you connect, Sprout Affiliate adds these custom fields to your Kit account, each with the key shown under it. A field you already have with the same name is used as it is. The affiliate's first name goes in Kit's own First name.

FieldWhat it holds
Last nameThe rest of their name
last_name
Affiliate statusapplied, approved, or paused
affiliate_status
Affiliate programThe name of their program
affiliate_program
Affiliate refTheir link name
affiliate_ref
Affiliate discount codeTheir discount code, if they have one
affiliate_discount_code
Affiliate referral linkTheir full referral link
affiliate_referral_link

In a Kit email, a field goes in as {{ subscriber.affiliate_referral_link }}.

Every synced subscriber also gets the tag Sprout Affiliate and exactly one status tag, the same three as Mailchimp: Affiliate: applied, Affiliate: approved, or Affiliate: paused. When the status changes, the old status tag comes off. To send a welcome series, build a Kit visual automation that starts when a subscriber is added to the tag Affiliate: approved.

MailerLite

MailerLite calls a contact list a group. You choose one group, and your affiliates are added to it. This is for the current MailerLite; an API key from MailerLite Classic is refused.

Step 1: Choose or create a group

  1. Sign in to MailerLite.
  2. Go to Subscribers, then Groups, and create a group, for example Affiliates. You can also use a group you already have.

Step 2: Create an API token

  1. Click Integrations in the left menu.
  2. Next to MailerLite API, click Use, then Generate new token.
  3. Name it Sprout Affiliate, accept the terms, and click Create token. Leave the IP address restriction off: Sprout Affiliate's requests do not come from one fixed address.
  4. Copy the token. MailerLite shows it only once.

Step 3: Connect it in Sprout Affiliate

  1. Go to Settings › Integrations and click Connect on the MailerLite row.
  2. Paste the token into MailerLite API token and click Connect.
  3. Pick the group from Audience, and click Use this audience.

What Sprout Affiliate adds to MailerLite

Each subscriber gets the affiliate's first name in MailerLite's Name field and the rest in Last name. When you connect, Sprout Affiliate adds these custom fields, each with the key shown under it. A field you already have with the same name is used as it is.

FieldWhat it holds
Affiliate statusapplied, approved, or paused
affiliate_status
Affiliate programThe name of their program
affiliate_program
Affiliate refTheir link name
affiliate_ref
Affiliate discount codeTheir discount code, if they have one
affiliate_discount_code
Affiliate referral linkTheir full referral link
affiliate_referral_link

MailerLite has no tags, so the status is the Affiliate status field, which a segment can filter on. To send a welcome series, create an automation that starts when a subscriber joins your group. In an email, a field goes in as {$affiliate_referral_link}.

HubSpot

Affiliates become HubSpot contacts in a static list you choose, marked as affiliates with a property of Sprout Affiliate's own.

Why a token and not a HubSpot sign-in. An app that any HubSpot account can install has to sign in through HubSpot (OAuth). Sprout Affiliate connects with a token you make in your own HubSpot account instead, which only you can see and you can delete at any time.

Step 1: Create a static list

  1. Sign in to HubSpot.
  2. Go to CRM, then Lists, and click Create list.
  3. Choose Contact-based and Static, name it, for example Affiliates, and save it.

Only static contact lists are offered. HubSpot fills an active list from its own filters, so nothing else can add contacts to one.

Step 2: Create a service key

  1. Click the settings icon, then Integrations, then Service Keys (on some accounts it is Development, then Keys, then Service Keys).
  2. Click Create service key and name it Sprout Affiliate.
  3. Add these scopes: crm.objects.contacts.read, crm.objects.contacts.write, crm.schemas.contacts.read, crm.schemas.contacts.write, crm.lists.read, and crm.lists.write.
  4. Create the key and copy it.

The access token of a HubSpot private app works too, if you already have one with those scopes (Development, then Legacy apps, then the app, then Auth, then Show token). HubSpot stops new private apps being made on October 26, 2026, and ones already made keep working.

Step 3: Connect it in Sprout Affiliate

  1. Go to Settings › Integrations and click Connect on the HubSpot row.
  2. Paste the key into HubSpot access token and click Connect.
  3. Pick the list from Audience, and click Use this audience.

What Sprout Affiliate adds to HubSpot

When you connect, Sprout Affiliate adds a contact property group called Sprout Affiliate with these properties, each with its internal name shown under it. A property you already have with the same internal name is left as it is. Each contact also gets the affiliate's first and last name.

PropertyWhat it holds
Sprout AffiliateYes while the affiliate is synced, No once the affiliate is taken out
sprout_affiliate
Affiliate statusApplied, Approved, or Paused
sprout_affiliate_status
Affiliate programThe name of their program
sprout_affiliate_program
Affiliate refTheir link name
sprout_affiliate_ref
Affiliate discount codeTheir discount code, if they have one
sprout_affiliate_code
Affiliate referral linkTheir full referral link
sprout_affiliate_link

To send a welcome series, build a contact workflow that enrolls contacts when Affiliate status is Approved, or when a contact joins your list. In an email, add a personalization token for Affiliate referral link.

When it syncs

Changes are not sent the instant they happen. They wait in a queue that Sprout Affiliate sends to each service once an hour, up to 40 affiliates per service each time. Each hourly run has a time limit shared by every store, so when many stores have changes waiting, a store not reached in one run is among the first in the next. Mailchimp in particular limits how many connections one account can have open at once, including your own browser, and Kit allows 120 requests a minute for each key, so sending in small, spaced batches keeps your account working normally.

A connected row says what it is doing under its name: the audience it syncs to, when it last synced, and how many changes are waiting.

Settings › Integrations, a connected row
Mailchimp Connected
Syncing to Affiliates · Last synced Sep 24, 2026, 4:00 PM · 3 waiting to sync
Re-sync

If every change in a run is refused, the row shows Needs attention, with your email service's own words for why. The usual cause is a key that was deleted or cancelled in your email service. Disconnect, create a new key, and connect again.

Re-sync and Disconnect

A connected row has two buttons.