Send emails with Mailchimp

The Mailchimp integration syncs a customer's loyalty profile into one Mailchimp audience and sends a loyalty event whenever something happens in the program. Those events can start a Customer Journey, and both the profile fields and the event details can be inserted into the emails that journey sends.


Connect Mailchimp


  1. In Love Loyalty, open Integrations and select Mailchimp.
  2. Click Connect to Mailchimp and approve access in Mailchimp.
  3. Back on the integration page, choose the Mailchimp audience every contact, merge field, and event should be written to.
  4. Save. Saving creates the Love Loyalty merge fields on that audience.


Nothing syncs until an audience is selected. The page stays on "Mailchimp is connected, but nothing syncs until you select an audience below" until you save one.


Loyalty customers who are not in that audience yet are added as transactional contacts. They are not subscribed, and Mailchimp will not send them a welcome email or a marketing campaign. An existing subscriber stays subscribed. Love Loyalty never changes email consent.


Mailchimp has no way for an app to revoke its own access. Disconnecting in Love Loyalty stops the sync, and you also need to remove Love Loyalty from the connected apps in your Mailchimp account.


Changing the audience later does not copy contacts or their values into the new one. Syncing continues on the new audience only, and the merge fields on the old audience stay there until you remove them in Mailchimp.


What the integration syncs


Two kinds of data are written to the selected audience.


Profile properties are Mailchimp merge fields on the contact, such as the current point balance and VIP tier. They update when the customer's loyalty data changes, and they can be used in segments, journey conditions, and any email.


Events are one-off loyalty actions, such as points earned or a reward redeemed. Each event carries its own properties, such as how many points were earned. An event can start a Customer Journey, and its properties can be inserted into the emails of that journey.


A contact has to exist before Mailchimp will accept an event for them, so each event also updates that contact's profile. If the contact is not in the audience yet, it is created as a transactional contact first.


Some profile fields are off until you turn them on under Enable additional profile properties on the integration page. Saving after you enable one creates its merge field. Merge field names are fixed. They cannot be renamed in Love Loyalty, because a rename would create a new field and leave the old data behind.


A value that no longer applies, such as a cancelled membership or a customer who is already on the top VIP tier, is stored as -. Mailchimp cannot clear a merge field, so - is the empty value.


Archiving a contact does not stop the sync. Mailchimp still accepts updates for an archived contact, and the contact stays archived. Unarchive it in Mailchimp to see the latest loyalty data.


Set up a Customer Journey


Mailchimp only offers an Event API starting point once the account has an API key. Love Loyalty never uses that key. Create one under Account & billing → Extras → API keys, then leave it there.


Mailchimp also only lists an event after it has received that event at least once. On the Mailchimp integration page, click Send test events. That registers every loyalty event on the selected audience by sending one of each to help@loveloyalty.app. You can archive that contact afterwards.


Use a loyalty event as the trigger


  1. In Mailchimp, open Automations and create a Customer Journey for the same audience you selected in Love Loyalty.
  2. Choose a starting point, then API & Integrations → Event API. Mailchimp documents this starting point in Track outside activity with events.
  3. Select the event. The name has to match exactly, including the love_ prefix. love_points_earned starts the journey when points are earned. The friendly name on the integration page, such as "Loyalty points earned", is not the name Mailchimp stores.
  4. Add a Send email step and design that email.


The journey runs for a contact when that event is sent for them. It does not run for the whole audience.


Use profile properties


Profile properties are the contact's merge fields. They are available in every email, including campaign emails, and in audience segments and journey conditions. In a condition, pick the field by the name Mailchimp shows, such as Love Points Balance.


In the email body, insert the merge tag. Mailchimp's merge tag format is documented in All the merge tags cheat sheet. For the point balance:


*|LLPOINTS|*


A sentence such as "You have *|LLPOINTS|* points" shows that contact's current balance, whether or not the journey was started by a points event.


Use event properties


Event properties belong to the event that started the journey. They are available in the emails of that journey, and they describe what just happened rather than the contact's current profile. Points earned on this order and the current balance are different values.


Mailchimp inserts an event property with *|EVENT:property_name|*. The property name is lowercase, with words separated by underscores. For the points earned on a love_points_earned journey:


*|EVENT:points_earned|*


"You just earned *|EVENT:points_earned|* points from *|EVENT:rule_name|*" fills in the amount and the earning rule for that event. The same email can also include *|LLPOINTS|* for the balance after the event.


*|EVENT:points_earned|* only resolves in a journey triggered by love_points_earned. In any other email, Mailchimp has no event to read it from.


Profile properties


These merge fields are created on the audience when you save. Optional fields are created only after you enable them.


Merge tag

Name in Mailchimp

What it stores

LLPOINTS

Love Points Balance

Current point balance

LLVIP

Love VIP Tier

Current VIP tier name

LLBDAY

Love Birthday

Birthday saved in Love Loyalty, as MM-DD

LLMEMBER

Love Paid Membership

Current paid membership name, or - when there is none

LLREFURL

Love Referral URL

The customer's referral link, or - when they cannot refer yet

LLCREDIT

Shopify Store Credit

Current Shopify store credit balance

LLOPTIN

Love Opt-in Status

Active or Inactive, synced only when the program requires opt-in

LLVIPPROG

Love VIP Progress

Current VIP progress. Optional, off by default

LLNEXTTR

Love Points to Next Tier

Points or amount left until the next VIP tier, or - on the top tier. Optional, off by default

LLLTPTS

Love Lifetime Points

Lifetime points earned. Optional, off by default

LLLTRDM

Love Lifetime Redemptions

Lifetime number of redemptions. Optional, off by default

LLLTDISC

Love Lifetime Loyalty Discount Value

Lifetime value of loyalty discounts on orders. Optional, off by default


Events and their properties


Type the event name in the first column into the Event API starting point. In that journey's emails, reference a property as *|EVENT:property_name|*.


love_points_earned — sent when points are earned, and when points are deducted. A deduction sends a negative points_earned.


  • points_earned — points earned or deducted
  • rule_name — earning rule name


love_points_redeemed — sent when points are redeemed.


  • points_redeemed
  • rule_name
  • discount_code — empty when the redemption did not create a code
  • discount_amount


love_discount_code_generated — sent when a discount code is created.


  • discount_code
  • discount_amount
  • rule_name
  • redeem_type


love_reward_reached — sent when the customer reaches a reward's point cost.


  • reward_name
  • reward_cost
  • reward_type


love_approaching_reward — sent when the customer is close to a reward's point cost.


  • reward_name
  • reward_cost
  • points_needed
  • reward_type


love_vip_tier_achieved — sent when the customer reaches a VIP tier.


  • tier_name
  • tier_progress
  • next_tier_name — empty on the top tier
  • amount_until_next_tier


love_approaching_vip_tier — sent when the customer is close to the next VIP tier.


  • current_tier_name
  • tier_progress
  • next_tier_name
  • amount_to_next_tier


love_birthday_reminder_7d and love_birthday_reminder_30d — sent 7 or 30 days before the customer's birthday.


  • birthday_date — MM-DD


love_points_expiry_7d and love_points_expiry_30d — sent 7 or 30 days before points expire.


  • expiry_date — YYYY-MM-DD


love_program_joined — sent when the customer joins the program. This event has no properties.


love_double_opt_in_request — sent when the customer needs to confirm opt-in.


  • confirmation_link


love_membership_started, love_membership_upgraded, and love_membership_downgraded


  • membership_name
  • membership_price
  • expiration_date — YYYY-MM-DD


love_membership_renewed


  • membership_name
  • membership_price
  • expiration_date — included when the customer changes or restarts a plan. A recurring billing renewal does not include it.


love_membership_cancelled


  • membership_name


love_membership_expiry_7d — sent 7 days before a membership renews or expires.


  • membership_name
  • expiration_date
  • is_renewal — true when the membership will renew, false when it will expire


love_store_credit_received — sent when Love Loyalty awards Shopify store credit.


  • earned_credit_amount
  • earn_rule_title
  • expiry_date — YYYY-MM-DD, or empty when the credit does not expire


love_referral_request — sent to each friend a customer refers. This event is not included in Send test events. It appears after the first real referral.


  • referrer_name
  • referral_url
  • referrer_email
  • message

Updated on: 30/09/2026

Was this article helpful?

Share your feedback

Cancel

Thank you!