# Subscriber Preferences & Frequency — A Preference Center That Reduces Unsubscribes

> Offer a preference center — "Hey, instead of unsubscribing, want fewer emails per week, or only the product updates?" — and unsubscribe rates drop materially. AcelleMail's built-in Update form covers this in 3 clicks. Visual walkthrough plus per-topic-list patterns in the collapsible.

- Canonical URL: https://acellesend.com/kb/articles/managing-subscriber-preferences-and-frequency
- Author: Ryan Walsh, Audience & Analytics Editor
- Category: List Management — Segments, tags, import/export, double opt-in, verification, hygiene
- Content type: tutorial · Difficulty: beginner
- Tags: Acellemail
- Published: 2026-03-03 · Last updated: 2026-08-15
- Reading time: 8 min
- Publisher: AcelleMail Knowledge Base, https://acellesend.com/kb

---

## What a preference center is and why it matters

A preference center is the "let me adjust what I get" page subscribers see when they want fewer emails. The naive alternative is the all-or-nothing unsubscribe — they leave, you lose the address forever.

When you offer "Daily / Weekly / Monthly / Only product updates" instead, 30-50% of subscribers who clicked unsubscribe will pick a lower cadence option and stay on the list. That's the same address still consenting, still openable, instead of gone.

AcelleMail's built-in **Profile update form** is the preference center for most senders. You configure it once; the unsubscribe link in your emails can land subscribers on the form before fully removing them.

## Setup in three steps

### Step 1: Add the preference fields to your list

Decide the dimensions you want subscribers to control. Common ones:

| Field name | Type | Options |
|---|---|---|
| `frequency` | Dropdown | `daily` / `weekly` / `monthly` |
| `categories` | Multi-select | `product` / `marketing` / `events` / `digest` |
| `format` | Dropdown | `html` / `plain-text` |
| `channel_email_marketing` | Boolean | yes / no |
| `channel_email_transactional` | Boolean | yes / no |

Add via **Audience → [list] → Fields → New field** for each.

### Step 2: Enable the Profile update form

Every list has a built-in Profile update form. Navigate to **Audience → [list] → Forms / Pages**:

![Forms / Pages — list of all forms](https://acellesend.com/plugins/acelle/landing/images/help/kb/preferences/01-forms-pages.png)

Click the **Update form** (or "Profile update form" depending on your install). Edit which fields appear on the form — the preference fields you just added go here:

![Update form — choose fields to display](https://acellesend.com/plugins/acelle/landing/images/help/kb/preferences/02-update-form.png)

Save. Each subscriber's preference-update URL is generated automatically and accessible via merge tag in your emails.

### Step 3: Link to the preference center from your emails

In any campaign or automation email body, drop the preference-center link before the unsubscribe link in your footer:

```
Manage your preferences: {{ profile_update_url }}
Unsubscribe: {{ unsubscribe_url }}
```

The `{{ profile_update_url }}` merge tag generates a unique-per-recipient URL — clicking it lands on the update form with the subscriber's current values pre-filled.

For higher conversion, intercept the unsubscribe flow: configure your unsubscribe page (Settings → unsubscribe options, varies by install) to first land the subscriber on the preference center with a "Or pick less frequent emails" option, *before* the final remove button.

## Common preference-center patterns

### Pattern A: Frequency control only (simplest)

Single dropdown field `frequency` with values `daily` / `weekly` / `monthly`. Three automations (daily / weekly / monthly digest) read the field and only send to matches.

### Pattern B: Topic filters

Multi-select field `topics` with values like `product-updates` / `industry-news` / `events`. Each topic-list has its own campaign; subscribers see only what they opted into.

### Pattern C: Channel preferences

Boolean fields `wants_email_marketing` / `wants_email_transactional` / `wants_email_invoices`. Transactional emails (receipts, password resets) bypass marketing preferences; marketing campaigns check the flag before sending.

### Pattern D: Hybrid (most flexible)

Combine all three. Higher cognitive load for subscribers, but biggest reduction in full unsubscribes. Worth the complexity for senders with 100k+ subscribers.

## Apply preferences in campaign filters

When you launch a campaign, AcelleMail's filter step lets you scope to subscribers matching the preference values:

![Subscriber tags + filter UI](https://acellesend.com/plugins/acelle/landing/images/help/kb/preferences/03-subscriber-tags.png)

For Pattern B (topic filters):

```
Filter: categories contains 'product-updates'
Action: send campaign
```

Subscribers without `product-updates` in their categories list skip this campaign entirely — no unsubscribe pressure from off-topic sends.

## Common UI signals + fixes

| Symptom | Likely cause | UI fix |
|---|---|---|
| Subscribers click "manage preferences" but the form is blank | Preference fields not added to the Update form | Audience → list → Forms → Update form → edit → check each field |
| Subscribers change preference but next campaign still sends to them | Campaign isn't filtering by the preference field | Campaign settings → Recipients → add filter on the preference field |
| Unsubscribe rate didn't drop after adding preference center | Footer link order wrong: unsubscribe before preferences | Move "manage preferences" ABOVE unsubscribe; most clickers take the first option |
| Mass updates needed (e.g. reset everyone's frequency to weekly) | Bulk-update CSV import with `frequency=weekly` for everyone | Audience → list → Export → edit CSV → import with duplicate-handling=Update |
| `{{ profile_update_url }}` shows the literal text | List-side merge tag disabled, OR you're previewing a non-real subscriber | Send a real test email to verify the URL resolves |
| Preference center accessible without authentication (security concern) | The default form uses signed URLs per-subscriber, not session auth | Confirm `{{ profile_update_url }}` has signature query param; sample a few preview URLs |

## What to do when someone still hits Unsubscribe

Make the unsubscribe land:

- Remove the address — don't fight users who clearly want out
- Mark in the system as **Unsubscribed** (not deleted) — AcelleMail keeps the row for compliance + analytics
- Send a one-time confirmation if your jurisdiction requires (some EU markets do)
- For B2B senders, consider a "we're sorry — was there a specific issue?" follow-up email 7 days later — captures qualitative feedback, doesn't try to resurrect

NEVER:

- Add an unsubscribe-confirmation re-opt-in step ("are you sure?") that's hard to dismiss
- Send a "you have been unsubscribed" email if they unsubscribed via list-unsubscribe header (the email IS the confirmation)
- Re-import unsubscribed addresses from a fresh CSV without explicit re-consent

<details>
<summary><strong>Advanced: per-topic-list architecture, preference center as a SPA, GDPR / CASL alignment</strong></summary>

For senders with sophisticated content programs (separate teams owning separate verticals) the single-list-with-topic-filter pattern can become unwieldy. Two scalable alternatives:

**Per-topic lists** (one list per topic):

Instead of one list with a `topics` multi-select, create separate AcelleMail lists per topic — `product-updates`, `industry-news`, `events`. Each list has its own subscribe/unsubscribe flow. Subscribers can be on all, some, or none.

Pros:
- Clean separation; each list's stats reflect its topic
- Each topic owner manages their list independently
- Subscriber unsubscribing from one topic stays on the others

Cons:
- Duplication of identity across lists (one person = N subscriber rows)
- Cross-list deduplication (segment "everyone on at least one list") needs manual setup
- Compliance auditing harder (per-topic unsubscribe records spread across N lists)

For ~10 topics or fewer, per-topic-lists works well. Above that, single-list-with-topic-filter scales better.

**Preference center as a custom landing page:**

The built-in Update form covers most cases. For brand-aligned UX (matches your website chrome, supports complex conditional fields), build a custom preference page on your own domain that calls AcelleMail's subscriber-update API on submit:

```html
<form action="/preferences/update" method="POST">
  <input name="subscriber_token" value="{{ subscriber.token }}" type="hidden">
  <h2>Email preferences</h2>
  <label>How often?
    <select name="frequency">
      <option value="daily">Daily digest</option>
      <option value="weekly">Weekly digest</option>
      <option value="monthly">Monthly only</option>
    </select>
  </label>
  ...
  <button>Save</button>
</form>
```

Server-side handler:

```php
$token = $request->input('subscriber_token');
$subscriber = decryptToken($token);

Http::withToken(env('ACELLE_TOKEN'))
   ->patch("https://acellemail.com/api/v1/subscribers/{$subscriber->uid}", [
       'fields' => $request->only(['frequency', 'categories', 'channel_email_marketing']),
   ]);
```

The subscriber token (signed JWT, expires in 7 days, references the AcelleMail subscriber UID) prevents URL-tampering — only the right person can update their preferences.

**GDPR / CASL alignment** — for EU + Canadian senders, the preference center is your compliance backbone:

- **Per-purpose consent**: GDPR Article 7 requires consent to be specific to each purpose. A single "marketing emails on/off" doesn't meet the bar — split into per-channel + per-content-type consent fields, each toggleable independently. AcelleMail's per-field consent log (in subscriber detail) records each consent grant + revocation with timestamp.

- **Withdrawal as easy as grant**: if subscribing was a single click, unsubscribing must be too. The preference center makes the *granular* withdrawal easy; the unsubscribe link is the *blanket* withdrawal — both must work.

- **Right to access**: GDPR Article 15 means subscribers can request all data you hold. Build a "Download my data" button on the preference center → calls AcelleMail's subscriber-export API → emails them a JSON with their fields + consent history. Most senders rarely get the request, but having the button defuses 90% of compliance complaints before they escalate.

**Centralised preference center across multiple AcelleMail installs** — for organizations with regional AcelleMail instances (EU + US + APAC for data-residency reasons), build a single preference center that fans out:

```
User updates preferences on prefs.example.com
   → Backend identifies which AcelleMail instances host this subscriber (could be multiple)
   → Parallel PATCH to each instance with the same field updates
   → Confirm all 200 OK before showing success to user
```

Worth doing only above a certain scale; below that, send users to the right regional center via a simple lookup.

**Soft unsubscribe** (suppression without deletion):

When a subscriber says "I'm done" you set `status=unsubscribed` rather than `delete`. The row persists; AcelleMail won't send to it; suppression list grows. This matters because:

- Re-uploading the same email (e.g. CRM sync) doesn't accidentally re-subscribe them
- Bounce reporting + complaint tracking remains intact
- Compliance audit can show "this address was on the suppression list since 2026-04-15"

In AcelleMail this is the default behaviour — clicking unsubscribe doesn't delete the row. Only **Bulk delete** in the admin UI hard-deletes.

</details>

## Related articles

- [Email list hygiene — clean your list for better deliverability](https://acellesend.com/kb/articles/email-list-hygiene-clean-your-list-for-better-deliverability)
- [Importing contacts CSV — best practices and field mapping](https://acellesend.com/kb/articles/importing-contacts-csv-best-practices-and-field-mapping)
- [Double opt-in vs single opt-in — which to choose](https://acellesend.com/kb/articles/double-opt-in-vs-single-opt-in-which-to-choose)
- [Re-engagement campaigns — win back inactive subscribers](https://acellesend.com/kb/articles/re-engagement-campaigns-win-back-inactive-subscribers)

---

## Related articles

- [Importing Contacts CSV — Best Practices and the 6-Click Field Mapping Wizard](https://acellesend.com/kb/articles/importing-contacts-csv-best-practices-and-field-mapping): Format the CSV right before you upload — column headers in row 1, UTF-8 encoding, one email per row. AcelleMail's import wizard handles the rest in 6 clicks. Visual walkthrough of the wizard plus error-recovery patterns + bulk-update strategies in the collapsible section.
- [List Hygiene in AcelleMail: Verify, Filter, Blacklist](https://acellesend.com/kb/articles/email-list-hygiene-clean-your-list-for-better-deliverability): AcelleMail gives you three concrete tools to keep a list clean — per-list email verification, the Subscribers status filter, and a customer-managed Blacklist. This walkthrough shows when to use each and what good hygiene looks like in production.
- [Segments: Slice Your List Into Audiences That Convert](https://acellesend.com/kb/articles/advanced-segmentation-strategies): Build dynamic subscriber groups in AcelleMail using list fields, tags, activities, and email-verification results. Walk-through with real screenshots of the segment builder.
- [Build a Signup Form and Embed It on Your Site](https://acellesend.com/kb/articles/creating-effective-signup-forms-and-landing-pages): AcelleMail has a drag-and-drop visual builder for signup forms with 4 popup layouts and 5 display triggers (immediate, delay, exit intent, on click, first visit). Walkthrough with real screenshots of every panel.
- [Double Opt-In in AcelleMail: Toggle, Template, Decision Guide](https://acellesend.com/kb/articles/double-opt-in-vs-single-opt-in-which-to-choose): AcelleMail has one Double opt-in toggle per list. This walkthrough shows exactly where the toggle lives, what the confirmation email looks like, and a buyer-style decision guide for when to turn it on.
