Skip to main content

Klaviyo Customer Properties & Events Reference

Written by Kris James

Klaviyo Events

Event properties are structured as the following:

{{ event|lookup:'VARIABLE NAME' }}

For example, with the Points Awarded event, if you wanted to display the name of the earning rule, you can do: {{ event|lookup:'Earning Rule' }}. This returns a value such as Made a purchase or Follow on Instagram.

Points Awarded

Fired when a customer earns points through purchases, actions, or other earning rules.

Profile: Customer's email

Property

Tag

Description

Points Awarded

{{ event|lookup:'Points Awarded'|default:'0' }}

Number of points earned

Earning Rule

{{ event|lookup:'Earning Rule' }}

Name of the earning rule (or "Manual")

Status

{{ event|lookup:'Status' }}

Status of the earning (e.g. approved)

Order Number

{{ event|lookup:'Order Number' }}

Shopify order number, if points were earned from a purchase

Multiplier bonus campaign properties

The three properties below are only included when a multiplier bonus campaign boosted the purchase (for example, double points). The multiplied total is already in Points Awarded above; these just describe the boost. They are not present on a normal earning. Tiered bonus campaigns use the separate Bonus Points Awarded event instead.

Property

Tag

Description

Bonus Campaign

{{ event|lookup:'Bonus Campaign' }}

Name of the multiplier bonus campaign that boosted these points

Bonus Multiplier

{{ event|lookup:'Bonus Multiplier'|default:'0' }}

The multiplier applied, e.g. 2 for double points

Bonus Points

{{ event|lookup:'Bonus Points'|default:'0' }}

The extra points contributed by the campaign (the amount earned above the standard rate)


Bonus Points Awarded

Tiered bonus campaigns only.

This event fires for the flat, per-order bonus from a tiered campaign (for example, "Spend $1,000, earn 200 bonus points"). Multiplier campaigns do not use this event. Their boost is folded into the Points Awarded event above.

This bonus is a separate award from the standard purchase points, so it has its own event and can power a dedicated bonus reward flow without affecting your Points Awarded flow.

Profile: Customer's email

Property

Tag

Description

Bonus Points

{{ event|lookup:'Bonus Points'|default:'0' }}

Number of flat bonus points awarded

Campaign Name

{{ event|lookup:'Campaign Name' }}

Name of the bonus campaign

Qualifying Spend

{{ event|lookup:'Qualifying Spend'|default:'0' }}

The order spend that counted toward the threshold (item subtotal, excluding shipping and taxes)

Spend Threshold

{{ event|lookup:'Spend Threshold'|default:'0' }}

The spend threshold the customer reached to earn this bonus

Status

{{ event|lookup:'Status' }}

Status of the bonus: APPROVED (credited now) or PENDING (held until your approval window passes, matching the purchase points)

Order Number

{{ event|lookup:'Order Number' }}

Shopify order number that earned the bonus


Reward Redeemed

Fired when a customer redeems their points for a reward or discount.

Profile: Customer's email

Property

Tag

Description

Reward Name

{{ event|lookup:'Reward Name' }}

Name of the reward redeemed

Points Spent

{{ event|lookup:'Points Spent'|default:'0' }}

Number of points spent

Discount Type

{{ event|lookup:'Discount Type' }}

Type of discount (e.g. percentage, fixed)

Discount Code

{{ event|lookup:'Discount Code' }}

The discount code for the reward


VIP Tier Changed

Fired when a customer moves up or down VIP tiers based on their lifetime points.

Profile: Customer's email

Property

Tag

Description

New Tier Name

{{ event|lookup:'New Tier Name' }}

Name of the tier the customer moved to (e.g. Gold)

Previous Tier Name

{{ event|lookup:'Previous Tier Name' }}

Name of the previous tier, if applicable


Referral Invite Sent

Fired when an advocate sends a referral email invite to a friend.

Profile: Advocate's email

Property

Tag

Description

Recipient Email

{{ event|lookup:'Recipient Email' }}

Email address of the invited friend

Campaign Name

{{ event|lookup:'Campaign Name' }}

Name of the referral campaign

Advocate Name

{{ event|lookup:'Advocate Name' }}

Name of the advocate (or "A friend" if not provided)

Subject

{{ event|lookup:'Subject' }}

Email subject line used for the invite

Personal Message

{{ event|lookup:'Personal Message' }}

Custom message written by the advocate

Referral URL

{{ event|lookup:'Referral URL' }}

The referral link sent to the friend

Shop Name

{{ event|lookup:'Shop Name' }}

Name of the Shopify store

Shop Domain

{{ event|lookup:'Shop Domain' }}

Domain of the Shopify store

Channel

{{ event|lookup:'Channel' }}

Always email


Referral Claimed

Fired when a friend claims their referral discount code.

Profile: Friend's email

Property

Tag

Description

Discount Code

{{ event|lookup:'Discount Code' }}

The discount code generated for the friend

Discount Type

{{ event|lookup:'Discount Type' }}

Type of discount (e.g. percentage, fixed, free-shipping, free-product)

Discount Amount

{{ event|lookup:'Discount Amount'|default:'0' }}

The discount value (e.g. 10 for 10% off, or 5 for $5 off)

Campaign Name

{{ event|lookup:'Campaign Name' }}

Name of the referral campaign

Reward Description

{{ event|lookup:'Reward Description' }}

Readable reward (e.g. "10% off", "$5 off", "free shipping")

Advocate Email

{{ event|lookup:'Advocate Email' }}

Email of the advocate who referred the friend, if known

Advocate Name

{{ event|lookup:'Advocate Name' }}

Name of the advocate, if known

Shop Name

{{ event|lookup:'Shop Name' }}

Name of the Shopify store

Shop Domain

{{ event|lookup:'Shop Domain' }}

Domain of the Shopify store


Referral Reward Earned

Fired when an advocate earns their reward after their referred friend completes a purchase.

Profile: Advocate's email

Property

Tag

Description

Friend Email

{{ event|lookup:'Friend Email' }}

Email of the friend whose purchase triggered the reward

Discount Code

{{ event|lookup:'Discount Code' }}

The advocate's reward discount code

Discount Type

{{ event|lookup:'Discount Type' }}

Type of discount (e.g. percentage, fixed, free-shipping, free-product)

Discount Amount

{{ event|lookup:'Discount Amount'|default:'0' }}

The discount value (e.g. 10 for 10% off, or 5 for $5 off)

Reward Description

{{ event|lookup:'Reward Description' }}

Readable reward (e.g. "10% off", "$5 off", "free shipping")

Campaign Name

{{ event|lookup:'Campaign Name' }}

Name of the referral campaign

Shop Name

{{ event|lookup:'Shop Name' }}

Name of the Shopify store

Shop Domain

{{ event|lookup:'Shop Domain' }}

Domain of the Shopify store


Points Expiry Soon

Fired when a customer has loyalty points expiring within the next 7 days. This event is triggered once per customer per 7-day window — multiple earning rules expiring on different days are aggregated into a single event to prevent duplicate notifications.

This event is OFF by default. Merchants must enable it in Settings > Integrations > Klaviyo before it will fire.

Profile: Customer's email

Property

Tag

Description

Points Expiring

{{ event|lookup:'Points Expiring'|default:'0' }}

Total points expiring within the next 7 days

Current Points

{{ event|lookup:'Current Points'|default:'0' }}

Customer's current point balance when the event fires

Days Until Expiry

{{ event|lookup:'Days Until Expiry'|default:'0' }}

Days until the earliest expiring points (e.g. 3 means points expire in 3 days)

Customer Name

{{ event|lookup:'Customer Name' }}

Customer's first name (or "there" if not set)


Gift Reminder

Fired by the daily gift reminders cron when a customer's gift recipient has an upcoming occasion matching one of the configured reminder intervals (e.g. 30 days, 14 days, 7 days before).

Each reminder includes a unique discount code — created on the first reminder and reused on follow-ups.

Merchants must enable it in Settings > Integrations > Klaviyo before it will fire.

Profile: Customer's email

Property

Tag

Description

Recipient Name

{{ event|lookup:'Recipient Name' }}

Name of the gift recipient (e.g. "Mom")

Relationship

{{ event|lookup:'Relationship' }}

How they're related (e.g. "Mother", "Friend")

Occasion Type

{{ event|lookup:'Occasion Type' }}

birthday, anniversary, or other

Occasion Date

{{ event|lookup:'Occasion Date' }}

Date in MM/DD format (e.g. "03/15")

Occasion Month

{{ event|lookup:'Occasion Month' }}

Month as a number (1-12)

Occasion Day

{{ event|lookup:'Occasion Day' }}

Day as a number (1-31)

Days Until Occasion

{{ event|lookup:'Days Until Occasion'|default:'0' }}

How many days until the occasion

Reminder Number

{{ event|lookup:'Reminder Number'|default:'0' }}

Which reminder this is (1, 2, or 3)

Discount Code

{{ event|lookup:'Discount Code' }}

Unique discount code for this recipient

Customer Name

{{ event|lookup:'Customer Name' }}

Customer's first name (or "there" if not set)

Shop Domain

{{ event|lookup:'Shop Domain' }}

The store's public domain

Suggested flow setup

  1. In Klaviyo, go to Flows > Create Flow > Create from Scratch

  2. Set the trigger to Metric > Points Expiry Soon

  3. Add a Time Delay if desired (e.g. no delay, or a short delay to batch)

  4. Add an Email action with your expiry reminder template

  5. Use the event properties above as dynamic variables in your email template

Example subject line

{{ event.Customer Name }}, your {{ event.Points Expiring }} points expire in {{ event.Days Until Expiry }} days!


Birthday

Fired when a customer earns birthday points via the birthday earning rule.

This event is OFF by default. Merchants must enable it in Settings > Integrations > Klaviyo before it will fire.

Profile: Customer's email

Property

Tag

Description

Customer Name

{{ event|lookup:'Customer Name' }}

Customer's first name (or "Valued Customer" if not set)

Shop Name

{{ event|lookup:'Shop Name' }}

Name of the Shopify store

Points Earned

{{ event|lookup:'Points Earned'|default:'0' }}

Number of birthday points awarded today

Current Points

{{ event|lookup:'Current Points'|default:'0' }}

Customer's updated total point balance after the award


Mage Welcome

Fired once when a customer joins the loyalty program. Use this to trigger a welcome email or onboarding flow.

Profile: Customer's email

Property

Tag

Description

Current Points

{{ event|lookup:'Current Points'|default:'0' }}

Customer's point balance when they joined (usually 0, or any signup bonus you've configured)


Cashback Credited

Fired when a customer earns cashback that is paid out as Shopify store credit.

This event is OFF by default. Merchants must enable it in Settings > Integrations > Klaviyo before it will fire.

Profile: Customer's email

Property

Tag

Description

Cashback Amount

{{ event|lookup:'Cashback Amount'|default:'0' }}

The cashback value as a number (e.g. 5.5)

Cashback Amount Formatted

{{ event|lookup:'Cashback Amount Formatted' }}

The cashback value with its currency symbol (e.g. $5.50)

Currency

{{ event|lookup:'Currency' }}

Currency code (e.g. USD)

Offer Name

{{ event|lookup:'Offer Name' }}

Name of the cashback offer that awarded this

Order Number

{{ event|lookup:'Order Number' }}

Shopify order number that earned the cashback

Reward Method

{{ event|lookup:'Reward Method' }}

Always store_credit for this event

Expires At

{{ event|lookup:'Expires At' }}

When the cashback expires, in ISO format. Only present when the offer has an expiry


Cashback Code Issued

Fired when a customer earns cashback that is issued as a single-use discount code. It also fires when a code is reissued at a lower value after a partial refund, carrying the new code.

This event is OFF by default. Merchants must enable it in Settings > Integrations > Klaviyo before it will fire.

Profile: Customer's email

Property

Tag

Description

Discount Code

{{ event|lookup:'Discount Code' }}

The single-use discount code awarded to the customer

Cashback Amount

{{ event|lookup:'Cashback Amount'|default:'0' }}

The cashback value as a number (e.g. 5.5)

Cashback Amount Formatted

{{ event|lookup:'Cashback Amount Formatted' }}

The cashback value with its currency symbol (e.g. $5.50)

Currency

{{ event|lookup:'Currency' }}

Currency code (e.g. USD)

Offer Name

{{ event|lookup:'Offer Name' }}

Name of the cashback offer that awarded this

Order Number

{{ event|lookup:'Order Number' }}

Shopify order number that earned the cashback

Reward Method

{{ event|lookup:'Reward Method' }}

Always discount_code for this event

Expires At

{{ event|lookup:'Expires At' }}

When the code expires, in ISO format. Only present when the offer has an expiry


Wishlist Reminder

Fired when items have been sitting in a customer's wishlist for the reminder delay configured in the Wishlist builder. One event per customer, batching their eligible items, with a cooldown between reminders so customers are not emailed repeatedly.

Enable it in Settings > Integrations > Klaviyo before it will fire.

Profile: Customer's email

Property

Tag

Description

Customer Name

{{ event|lookup:'Customer Name' }}

Customer's first name (or "there" if not set)

Shop Name

{{ event|lookup:'Shop Name' }}

Your store name

Shop Domain

{{ event|lookup:'Shop Domain' }}

Your storefront domain

Items Count

{{ event|lookup:'Items Count' }}

Number of items included in this event

Items

event.Items

Array of products. See the item fields table below

Each event carries an Items array with one entry per product. Always loop over the array rather than referencing fixed positions, because the number of items varies per customer:

{% for item in event.Items %} ... {{ item.ProductName }} ... {% endfor %}

Inside the loop, each item has the following fields:

Property

Tag

Description

ProductId

{{ item.ProductId }}

Shopify product ID

ProductName

{{ item.ProductName }}

Product title

ProductPrice

{{ item.ProductPrice }}

Current product price as a number

ProductQuantity

{{ item.ProductQuantity }}

Units currently in stock. Can be empty for untracked inventory

ProductBrand

{{ item.ProductBrand }}

Product vendor

ProductCategory

{{ item.ProductCategory }}

Product type from Shopify

VariantId

{{ item.VariantId }}

Shopify variant ID

VariantInfo

{{ item.VariantInfo }}

Variant options (e.g. "Oat / Medium"). Empty for products without variants, so render it conditionally

VariantSKU

{{ item.VariantSKU }}

Variant SKU. Can be empty

ProductURL

{{ item.ProductURL }}

Link to the product page with this variant preselected

ImageURL

{{ item.ImageURL }}

Variant image, falling back to the product's featured image. Can be empty if the product has no images, so guard your image block

ProductTagsList

{{ item.ProductTagsList }}

Product tags as a list

ProductTags

{{ item.ProductTags }}

Product tags as one comma separated string. Includes every tag on the product, including internal ones, so avoid rendering it directly

AddedAt

{{ item.AddedAt }}

When the customer added the item to their wishlist (ISO date)


Wishlist Back in Stock

Fired when wishlisted items come back in stock at or above the threshold configured in the Wishlist builder. Batched per customer (up to 6 items per event) with a 24 hour cooldown; extra items roll over to the next event. Stock is rechecked live at send time, so the event never fires for items that sold out again.

Enable it in Settings > Integrations > Klaviyo before it will fire.

Profile: Customer's email

Property

Tag

Description

Customer Name

{{ event|lookup:'Customer Name' }}

Customer's first name (or "there" if not set)

Shop Name

{{ event|lookup:'Shop Name' }}

Your store name

Shop Domain

{{ event|lookup:'Shop Domain' }}

Your storefront domain

Items Count

{{ event|lookup:'Items Count' }}

Number of items included in this event

Items

event.Items

Array of products. See the item fields table below

Each event carries an Items array with one entry per product. Always loop over the array rather than referencing fixed positions, because the number of items varies per customer:

{% for item in event.Items %} ... {{ item.ProductName }} ... {% endfor %}

Inside the loop, each item has the following fields:

Property

Tag

Description

ProductId

{{ item.ProductId }}

Shopify product ID

ProductName

{{ item.ProductName }}

Product title

ProductPrice

{{ item.ProductPrice }}

Current product price as a number

ProductQuantity

{{ item.ProductQuantity }}

Live units in stock at send time. Useful for "only X left" copy

ProductBrand

{{ item.ProductBrand }}

Product vendor

ProductCategory

{{ item.ProductCategory }}

Product type from Shopify

VariantId

{{ item.VariantId }}

Shopify variant ID

VariantInfo

{{ item.VariantInfo }}

Variant options (e.g. "Oat / Medium"). Empty for products without variants, so render it conditionally

VariantSKU

{{ item.VariantSKU }}

Variant SKU. Can be empty

ProductURL

{{ item.ProductURL }}

Link to the product page with this variant preselected

ImageURL

{{ item.ImageURL }}

Variant image, falling back to the product's featured image. Can be empty if the product has no images, so guard your image block

ProductTagsList

{{ item.ProductTagsList }}

Product tags as a list

ProductTags

{{ item.ProductTags }}

Product tags as one comma separated string. Includes every tag on the product, including internal ones, so avoid rendering it directly

AddedAt

{{ item.AddedAt }}

When the customer added the item to their wishlist (ISO date)


Wishlist Price Drop

Fired when wishlisted items drop in price by at least the minimum drop percentage configured in the Wishlist builder. Batched per customer with the biggest drops first (up to 8 items per event) and a 24 hour cooldown. Prices are rechecked live at send time, so the event never fires for a price that has already recovered.

Enable it in Settings > Integrations > Klaviyo before it will fire.

Profile: Customer's email

Property

Tag

Description

Customer Name

{{ event|lookup:'Customer Name' }}

Customer's first name (or "there" if not set)

Shop Name

{{ event|lookup:'Shop Name' }}

Your store name

Shop Domain

{{ event|lookup:'Shop Domain' }}

Your storefront domain

Items Count

{{ event|lookup:'Items Count' }}

Number of items included in this event

Total Items On Sale

{{ event|lookup:'Total Items On Sale' }}

Total wishlisted items currently on sale for this customer, including items beyond the 8 shown

Additional Items Count

{{ event|lookup:'Additional Items Count' }}

Items on sale but not shown in this event. Use for "and X more on sale!" copy, and wrap it in a conditional because it is often 0

Items

event.Items

Array of products on sale. See the item fields table below

Each event carries an Items array with one entry per product. Always loop over the array rather than referencing fixed positions, because the number of items varies per customer:

{% for item in event.Items %} ... {{ item.ProductName }} ... {% endfor %}

Inside the loop, each item has the following fields:

Property

Tag

Description

ProductId

{{ item.ProductId }}

Shopify product ID

ProductName

{{ item.ProductName }}

Product title

ProductPrice

{{ item.ProductPrice }}

Current product price as a number

ProductQuantity

{{ item.ProductQuantity }}

Units currently in stock. Can be empty for untracked inventory

ProductBrand

{{ item.ProductBrand }}

Product vendor

ProductCategory

{{ item.ProductCategory }}

Product type from Shopify

VariantId

{{ item.VariantId }}

Shopify variant ID

VariantInfo

{{ item.VariantInfo }}

Variant options (e.g. "Oat / Medium"). Empty for products without variants, so render it conditionally

VariantSKU

{{ item.VariantSKU }}

Variant SKU. Can be empty

ProductURL

{{ item.ProductURL }}

Link to the product page with this variant preselected

ImageURL

{{ item.ImageURL }}

Variant image, falling back to the product's featured image. Can be empty if the product has no images, so guard your image block

ProductTagsList

{{ item.ProductTagsList }}

Product tags as a list

ProductTags

{{ item.ProductTags }}

Product tags as one comma separated string. Includes every tag on the product, including internal ones, so avoid rendering it directly

AddedAt

{{ item.AddedAt }}

When the customer added the item to their wishlist (ISO date)

OldPrice

{{ item.OldPrice }}

The tracked price before the drop. Use this for was/now or strikethrough copy

NewPrice

{{ item.NewPrice }}

The current sale price (same as ProductPrice)

DropPercent

{{ item.DropPercent }}

Drop percentage as a whole number (e.g. 30), always rounded down so it never overstates the discount

CompareAtPrice

{{ item.CompareAtPrice }}

Shopify compare at price. Can differ from OldPrice and can be empty, so prefer OldPrice for discount copy


Klaviyo Customer Properties

In addition to events, Mage syncs the following properties to each Klaviyo profile. These can be used in segments, conditional splits, and email personalization across any flow or campaign.

Points mode

Property

Example Value

Description

Mage Points Balance

100

Customer's current spendable points

Mage Points as Cash Balance

$17.50

Cash value of the customer's current points balance. (Flexible redemption must be enabled)

Mage Lifetime Points

500

Total points ever earned

Mage Redeemed Points

400

Total points spent on rewards

Mage VIP Tier Name

Gold

Current VIP tier (e.g. Bronze, Silver, Gold)

Mage Next VIP Tier Name

Platinum

The next VIP tier the customer has not reached yet. Empty when the customer is already in the highest tier.

Mage Amount to Next VIP Tier

380

How much more the customer needs in order to reach that next tier. Empty when the customer is already in the highest tier.

If VIP tier is spend based, the value is rounded to the nearest major unit, e.g. 380 = $380.

Mage Date of Birth

1990-09-17T16:00.000Z

Customer's date of birth, if provided. Sent as a date (YYYY-MM-DD) so it can be used in date based segments and flows.

Mage Enrolled Date

2025-01-01T17:00:00.000Z

When the customer joined the loyalty program, as a date (YYYY-MM-DD).

Mage Gift Recipients

[{ "Recipient Name": "Mum", "Relationship": "Mother", "Occasion Type": "Birthday", "Occasion Date": "05/12" }]

Gift reminder recipients the customer has saved. Only synced when your program has a Gift Reminders earning rule.

Mage Last Synced

2026-05-12T15:56:00.000Z

When Mage last updated this profile.

Mage Points to Next Reward

250

Advanced Setting - Points still needed to unlock the cheapest reward the customer cannot yet afford. Empty when the customer can already redeem every reward.

Mage Next Reward Name

$10 off

Advanced Setting - Name of that next reward. Empty when the customer can already redeem every reward.

Mage Points Next Expiry Amount

120

Advanced Setting - Points in the customer's next batch due to expire. Empty when nothing is due to expire.

Mage Points Next Expiry Date

2026-09-30T14:00:00.000Z

Advanced Setting - When that batch expires. Sent as a date so it can be used in date based segments and flows.

Store credit mode

If your loyalty program runs in store credit mode instead of points, the balance properties are replaced by the store credit set below. The VIP tier, date and gift recipient properties are the same in both modes.

Property

Example Value

Description

Mage Store Credit Balance

$12.50

Customer's current store credit balance, formatted in your store currency

Mage Store Credit Balance Value

12.5

The same balance as a plain number, for filters and calculations

Mage Lifetime Store Credit

87.5

Total store credit ever earned

Mage Redeemed Store Credit

40

Total store credit spent

Mage VIP Tier Name

Gold

Current VIP tier (e.g. Bronze, Silver, Gold)

Mage Next VIP Tier Name

Platinum

The next VIP tier the customer has not reached yet. Empty when the customer is already in the highest tier.

Mage Amount to Next VIP Tier

380

How much more the customer needs in order to reach that next tier. Empty when the customer is already in the highest tier.

If VIP tier is spend based, the value is rounded to the nearest major unit, e.g. 380 = $380.

Mage Date of Birth

1990-09-17T16:00.000Z

Customer's date of birth, if provided. Sent as a date (YYYY-MM-DD) so it can be used in date based segments and flows.

Mage Enrolled Date

2025-01-01T17:00:00.000Z

When the customer joined the loyalty program, as a date.

Mage Gift Recipients

[{ "Recipient Name": "Mum", "Relationship": "Mother", "Occasion Type": "Birthday", "Occasion Date": "05/12" }]

Gift reminder recipients the customer has saved. Only synced when your program has a Gift Reminders earning rule.

Mage Last Synced

2026-05-12T15:56:00.000Z

When Mage last updated this profile.

Mage Store Credit Next Expiry Amount

$25.00

Advanced Setting - Store credit in the customer's next batch due to expire, formatted. Empty when nothing is due to expire.

Mage Store Credit Next Expiry Amount Value

25

Advanced Setting - The same amount as above but as a plain number

Mage Store Credit Next Expiry Date

2026-09-30T14:00:00.000Z

Advanced Setting - When that batch expires. Sent as a date so it can be used in date based segments and flows.


FAQ

Why are points not displaying in my emails?

Klaviyo treats 0 as empty, so any property with a value of 0 will display as a blank space in your email. Adding |default:'0' to a tag tells Klaviyo to display 0 instead of a blank when the value is zero. We've included it on the numeric tags above so they always render a value.

What unit is "Mage Amount to Next VIP Tier" measured in?

Whatever your VIP tiers are based on: points, amount spent, or number of orders. A value of 380 means 380 more points if your tiers are points based, or 380 more in your store currency if they are spend based. If your program uses more than one tier requirement, the amount reflects your primary requirement.

Why are the next tier properties empty for some customers?

Either VIP tiers are not enabled on your loyalty program, or the customer is already in your highest tier. You can use that second case to target your top tier members with a filter such as "Mage Next VIP Tier Name is not set".

Did this answer your question?