# One-Click Preference Apply Links

Let subscribers update email topics and/or frequency with a **single click from a Klaviyo email**—no form fill-out required. The link opens Last Chance, saves the preferences automatically, and shows a confirmation banner.

## Overview

One-click preference links append query parameters to Klaviyo’s `{% manage_preferences_link %}`. When a subscriber clicks the link:

1. Klaviyo routes them through your **manage preferences** consent / hosted page
2. Last Chance validates the session and applies the topic and/or frequency values from the URL
3. The subscriber lands on your Last Chance page with a success, partial, or failure banner
4. Analytics records dedicated one-click events (separate from in-page preference saves)

This is different from:

| Feature                                         | What it does                                                         |
| ----------------------------------------------- | -------------------------------------------------------------------- |
| **Manage preferences** (standard)               | Opens the preferences screen; subscriber chooses options manually    |
| **One-click preference apply**                  | Saves specific topic/frequency values from the link itself           |
| **One-click unsubscribe** (Gmail/Yahoo headers) | Inbox-level opt-out via `List-Unsubscribe`—unrelated to this feature |

Use one-click apply for campaign CTAs such as “Only send me sales emails,” “Switch me to weekly,” or “Yes, send me new product updates.”

## Prerequisites

Before you use one-click links:

- ✅ Topics and/or frequencies configured under **Settings → User preferences** (only **active** options can be applied)
- ✅ Klaviyo connected, and your **manage preferences** consent page uses a Last Chance hosted redirect — see [Klaviyo Preference Center Setup](./klaviyo-preference-center-setup.md)
- ✅ Email templates use `{% manage_preferences_link %}` (URL-only tag) for custom HTML buttons and links — see [Klaviyo email links & consent](./klaviyo-email-links-and-consent-pages.md)

Unsubscribe hosted page setup alone is not enough if manage-preferences clicks still hit Klaviyo’s default preference page. Wire the preference-center hosted page so one-click apply links reach Last Chance.

## Generate links in the dashboard

### Combined snippet builder

1. Go to **Settings → User preferences**
2. Open the **One-click preference apply links** card (shown above the Topics / Frequencies tabs)
3. Select one or more **topics**, choose merge mode, and optionally pick a **frequency**
4. Copy the generated Liquid URL (starts with `{% manage_preferences_link %}?...`)
5. Paste it into a Klaviyo email button **Link address** or custom HTML `href`

### Per-topic / per-frequency copy buttons

On the **Topics** and **Frequencies** tabs, each active option has a link icon:

- **Frequency** — copies a one-click link that sets that frequency
- **Topic** — choose **Add to existing topics** (`merge`) or **Set only this topic** (`replace`)

## Query parameters

| Parameter        | Purpose                                          | Example                                                    |
| ---------------- | ------------------------------------------------ | ---------------------------------------------------------- |
| `applyTopics`    | One or more topic slugs (comma-separated)        | `applyTopics=sales_and_discounts` or `applyTopics=foo,bar` |
| `applyTopicMode` | How topics combine with existing saved topics    | `merge` (default) or `replace`                             |
| `applyFrequency` | Single frequency slug (always replaces existing) | `applyFrequency=weekly`                                    |

### Topic modes

- **`merge` (default)** — Adds the link’s topics to whatever the subscriber already has saved. If they have no saved topics yet, the link’s topics become their full set.
- **`replace`** — Sets topics to exactly what is in the link (removes other previously saved topics).

Invalid `applyTopicMode` values (anything other than `merge` or `replace`) skip topic apply. A valid `applyFrequency` in the same URL still applies. Subscribers see a partial or failed banner explaining that topics could not be applied.

### `entry=preferences` is optional

One-click apply works **without** `entry=preferences`. Use `entry=preferences` only when you also want subscribers to land on the **preferences screen** instead of the default initial page. Apply params and preferences entry are independent.

## HTML examples

```html
<a href="{% manage_preferences_link %}?applyTopics=sales_and_discounts">
  Yes, send me sales &amp; discounts
</a>

<a href="{% manage_preferences_link %}?applyTopics=sales_and_discounts&applyTopicMode=replace">
  Only send me sales &amp; discounts
</a>

<a href="{% manage_preferences_link %}?applyFrequency=weekly"> Switch me to weekly emails </a>

<a
  href="{% manage_preferences_link %}?applyTopics=sales_and_discounts&applyFrequency=days_7&applyTopicMode=merge"
>
  Sales emails, once a week
</a>
```

Topic and frequency slugs must match your team’s configured values in **Settings → User preferences**. Prefer copying snippets from the dashboard so slugs stay correct when you rename or reorder options.

## What subscribers see

After a successful apply, Last Chance shows a fixed confirmation banner near the top of the page (for example, “Preferences updated”) with a short summary of what changed. Status variants:

| Status      | Meaning                                                                                           |
| ----------- | ------------------------------------------------------------------------------------------------- |
| **Success** | All requested topic and/or frequency values were applied                                          |
| **Partial** | Some values applied; others were invalid or skipped (e.g. unknown topic slug, invalid topic mode) |
| **Failed**  | Nothing could be applied                                                                          |

Success banners auto-dismiss after a few seconds; subscribers can dismiss any banner manually. Preferences are saved to the Klaviyo profile (`email_topics`, `email_frequency`) the same way as an in-page save.

## Analytics

One-click applies are tracked separately from preference form saves:

| Event                              | When it fires                            |
| ---------------------------------- | ---------------------------------------- |
| `ACTION_ONE_CLICK_SAVED_TOPICS`    | Topics were saved via a one-click link   |
| `ACTION_ONE_CLICK_SAVED_FREQUENCY` | Frequency was saved via a one-click link |

In-page saves still use `ACTION_SAVED_TOPICS` / `ACTION_SAVED_FREQUENCY`. Klaviyo also receives matching metric events (for example, **Last Chance: One-Click Saved Frequency**) so you can trigger flows from one-click updates.

## Best practices

- **Use clear CTA copy** that matches the preference being applied (“Get weekly emails,” not a generic “Update preferences”).
- Prefer **`merge`** for “add me to this topic” CTAs; use **`replace`** when the email is asking for a single exclusive interest.
- Keep **exclusion segments** up to date so campaigns respect the new preferences — see [User Preferences](./user-preferences.md).
- Test with a real Klaviyo send (or preview that goes through the consent page) so the hosted redirect and apply params both run.
- Do not put one-click apply params on unsubscribe links (`{% unsubscribe_link %}`). Use manage-preferences links only.

## Troubleshooting

| Issue                                            | What to check                                                                                        |
| ------------------------------------------------ | ---------------------------------------------------------------------------------------------------- |
| Link opens Klaviyo’s default preference page     | Preference-center hosted page not assigned in Klaviyo consent settings                               |
| Banner says preferences failed / nothing applied | Slugs don’t match active topic/frequency values; option may be inactive                              |
| Topics skipped but frequency applied             | Invalid `applyTopicMode`, or topic slugs not in your allowlist                                       |
| Lands on initial page (expected)                 | One-click apply does not require `entry=preferences`; add it only if you want the preferences screen |
| No analytics event                               | Confirm the click reached Last Chance (`source=klaviyo`) and the apply succeeded                     |

## Related

- [User Preferences](./user-preferences.md) — Configure topics, frequencies, and exclusion segments
- [Klaviyo Preference Center Setup](./klaviyo-preference-center-setup.md) — Hosted page for manage-preferences traffic
- [Klaviyo email links & consent](./klaviyo-email-links-and-consent-pages.md) — Tags, consent pages, and parameter reference
- [Inline Preference Panel](./inline-preference-panel.md) — On-page pause and reduce chips (different from email deep links)
- [Analytics](./analytics.md) — Track preference and retention events

For support: support@yourlastchance.app
