> For the complete documentation index, see [llms.txt](https://docs.roadmap.so/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roadmap.so/loyalty-and-rewards/loyalty-klaviyo-integration/tier-demotion-alerts.md).

# Tier demotion alerts

Warn customers before they drop to a lower loyalty tier, then trigger a Klaviyo flow at the right time.

Use this metric to warn customers before they drop to a lower tier.

It gives them time to spend more and keep their current status.

Customers close to losing status are often highly motivated.

The alert works best when they know it is coming.

### How tier demotion alerts work

Roadmap checks each customer against their current tier requirement.

This metric supports tiers based on **Points earned** or **Amount spent** within the membership period.

If a customer is at risk of missing that requirement by their renewal date, Roadmap sends a Klaviyo event before the demotion happens.

You choose how early the event fires by setting your **demotion alert days**.

* Default: **30 days**
* Maximum: **90 days**

#### Example

A customer is currently in **Gold**.

Gold requires `1,000` points in the current period.

The customer is `30` days from renewal and has only `650` points.

Roadmap sends the demotion alert event.

Your Klaviyo flow can then email the customer and show they need `350` more points to keep Gold.

Customers who are on track to keep their current tier do not enter the flow.

### Set your alert timing

{% stepper %}
{% step %}

#### Open Klaviyo metrics in Roadmap

In **Roadmap**, go to **Klaviyo Integration** → **Metrics**.
{% endstep %}

{% step %}

#### Open Tier demotion alert

Find **Tier demotion alert**.

Then click **Set alert**.
{% endstep %}

{% step %}

#### Enter the number of days

Choose how many days before tier renewal the event should fire.
{% endstep %}

{% step %}

#### Save the setting

Click **Save**.

<figure><img src="https://393112916-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJ8asLD4FVCFagK40xEr4%2Fuploads%2FQbaCzJlfQWeJJk0LWkT9%2FScreenshot%202026-04-29%20at%2010.13.09%E2%80%AFAM.png?alt=media&amp;token=09602785-4a7c-4bde-8b97-ae16a2d09146" alt=""><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}

{% hint style="info" %}
**30 days is a strong starting point.**

It gives customers time to act without losing urgency.
{% endhint %}

### Klaviyo event name

When a customer is at risk of demotion, Roadmap sends this event to Klaviyo:

* `Roadmap: Loyalty Tier Demotion Alert`

Use this event as the trigger for your Klaviyo flow.

Only customers who are expected to be demoted enter the flow.

You do not need extra Klaviyo logic to exclude customers who will retain their tier.

### Event properties for email personalisation

The demotion alert includes properties from the customer’s current membership period.

Use them to show the customer what they need to do before renewal.

| Data point                           | Event property                 |
| ------------------------------------ | ------------------------------ |
| Membership expiry date               | `membership_expires_at`        |
| Days until renewal                   | `days_until_renewal`           |
| Current tier name                    | `current_tier`                 |
| Current tier level                   | `current_tier_level`           |
| Projected tier name                  | `projected_tier`               |
| Projected tier level                 | `projected_tier_level`         |
| Tier qualification method            | `tier_condition`               |
| Points required for the current tier | `current_tier_points_required` |
| Amount required for the current tier | `current_tier_amount_required` |
| Points earned during the period      | `points_earned_during_period`  |
| Amount spent during the period       | `amount_spent_during_period`   |
| Points needed to maintain the tier   | `points_needed_to_maintain`    |
| Amount needed to maintain the tier   | `amount_needed_to_maintain`    |

#### Show the amount needed to retain status

Use `tier_condition` to tailor the message to the tier's qualification method.

For points-based tiers, use `points_needed_to_maintain`.

For spend-based tiers, use `amount_needed_to_maintain`.

For example:

`Earn {{ event.points_needed_to_maintain }} more points by {{ event.membership_expires_at }} to keep your {{ event.current_tier }} tier.`

Or:

`Spend ${{ event.amount_needed_to_maintain }} more by {{ event.membership_expires_at }} to keep your {{ event.current_tier }} tier.`

You can also calculate the remaining spend from profile data:

```liquid
{{ person|lookup:"roadmap_total_spent_in_period"|multiply:-1|add:(tier point/spend required)|floatformat:2 }}
```

Replace `(tier point/spend required)` with the requirement for the relevant tier.

#### Encourage the next achievable tier

A customer can face a larger demotion at renewal.

For example, a customer in Tier 3 may project to Tier 1.

Do not only ask them to retain Tier 3.

Also show the lower tier they can still reach this period.

Use these profile properties:

| Data point                      | Klaviyo property                          |
| ------------------------------- | ----------------------------------------- |
| Next tier name                  | `person.roadmap_loyalty_next_tier_name`   |
| Points needed for the next tier | `person.roadmap_loyalty_next_tier_points` |

This gives customers a realistic goal when retaining their current tier is unlikely.

### Profile properties for email personalisation

These properties sync to the customer profile in Klaviyo.

They update in real time and can be used in email copy, splits, and segments.

| Data point              | Klaviyo property                                      |
| ----------------------- | ----------------------------------------------------- |
| Points earned in period | `person.roadmap_loyalty_total_points_earnt_in_period` |
| Total spent in period   | `person.roadmap_total_spent_in_period`                |
| Current tier name       | `person.roadmap_loyalty_current_tier_name`            |
| Tier expiry date        | `person.roadmap_loyalty_tier_expiry_date`             |

### Recommended flow structure

For most stores, keep the flow simple:

1. **Trigger:** `Roadmap: Loyalty Tier Demotion Alert`
2. **Email 1 — immediately:** Explain their current tier, progress, and renewal date
3. **Email 2 — 7 to 10 days later:** Add urgency if they still have not purchased
4. **Email 3 — 3 days before expiry:** Send a final reminder

Personalised copy performs better than a generic warning.

For example:

`You've spent $340 this year. Spend $160 more by 15 June to keep your Gold tier.`

### Best practices

* **Lead with what they keep.** Focus on retaining benefits, not punishment.
* **Do not set the alert too short.** Customers need time to act.
* **Do not set it too long.** Alerts sent too early lose urgency.

If you are unsure, start with `30` days and adjust later.

### Turn alerts off

To stop emails from sending, keep the Klaviyo flow in **Draft** or pause the live flow.

Roadmap still sends the metric event.

The profile properties still stay synced in Klaviyo.

That means you can still use the data in segments and other flows.

### Related guides

* [How to integrate Roadmap with Klaviyo](/reviews/integrations/klaviyo-review-integration/how-to-integrate-roadmap-with-klaviyo.md)
* [Loyalty Tiers](/loyalty-and-rewards/membership-tiers-and-referrals/loyalty-tiers.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.roadmap.so/loyalty-and-rewards/loyalty-klaviyo-integration/tier-demotion-alerts.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
