Skip to content

Managing user subscriptions

Global subscription states

Braze has three global subscription states for email users (listed in the following chart), which are the final gatekeeper between your messages and your users. For example, users who are considered unsubscribed will not receive messages targeted at the Global Subscription State of subscribed or opted-in.

State Definition
Opted-in User has explicitly confirmed they want to receive email. We recommend an explicit opt-in process to get consent from users to send emails.
Subscribed User has neither unsubscribed nor explicitly opted-in to receive emails. This is the default subscription state when a user profile is created.
Unsubscribed User has explicitly unsubscribed from your emails.

Changing subscriptions

Subscription groups

Subscription groups are segment filters that can further narrow your audience from the Global Subscription States. You can add up to 25 subscription groups per app group. These groups allow you to present more granular subscription options to end-users.

For example, suppose you send out multiple categories of email campaigns (Promotional, Newsletter, Product Updates). In that case, you can use subscription groups to let your customers pick and choose which email categories they want to subscribe or unsubscribe from in bulk from a single page, using our email preference center.

Alternatively, you could use subscription groups to let your customers choose how frequently they want to receive emails from you, by creating subscription groups for daily, weekly, or monthly emails.

Use the Subscription Group REST APIs to programmatically manage the subscription groups that you have stored on the Braze dashboard to the Subscription Group page.

Create a group

To create a subscription group, go to the Subscription Groups page, then click + Create Email Subscription Group. Give your subscription group a name and description, and click Save. All subscription groups are automatically added to your preference center.

Fields to create a subscription group.

When creating your segments, set the subscription group name as a filter. This will ensure users who have opted into your group will receive your emails. This is great for monthly newsletters, coupons, membership tiers, and more!

GIF of a user setting a subscription group name as a filter.

Archiving groups

Archived subscription groups cannot be edited and will no longer appear in segment filters or in your preference center. If you attempt to archive a group that is being used as a segment filter in any email, campaign, or Canvas, you will receive an error message that will prevent you from archiving the group until you remove all usages of it.

You can archive your group from the Subscription Groups page. Find your group in the list, then click the gear and select Archive from the dropdown menu.

Braze will not process any state changes for users in archived groups. For example, if you archive “Subscription Group A” while Susie is considered subscribed to it, they will remain “subscribed” to this group, even if they clicks an unsubscribe link (this shouldn’t matter to Susie, “Subscription Group A” is archived and you can’t send any messages using it).

Export user subscription state changes

You can export your users’ subscription state changes via CSV file. From the Preference Center page, click User Subscription Data, then select CSV Export User Subscription Data from the dropdown.

Option to export user subscription state data as a CSV file.

By default, the past 30 days of state changes across all subscription groups are exported.

See subscription groups in campaign analytics

You can see the number of users who changed their Subscription State (subscribed or unsubscribed) from a specific email campaign on that campaign’s analytics page.

From the Campaign Analytics page for your campaign, scroll down to the Email Message Performance section and click the arrow under Subscription Groups to see the aggregate count of state changes, as submitted by your customers.

Sub Group Performance

Email preference center

The email preference center is an easy way to manage which users receive certain groups of newsletters and can be found in the dashboard under Subscription Groups. Each subscription group you create is added to the Preference Center list. Click on the name of the Preference Center to see an interactive preview.

To place a link to the preference center in your emails, use the following preference center Liquid tag and add it to the desired place in your email, similar to the way you insert unsubscribe urls.


The preference center is intended to be used strictly within the email channel itself. The preference center links are dynamic, based on each user, and cannot be hosted externally. You may, however, create and host your own custom preference center and use the Subscription Group REST APIs to keep data in sync with Braze. Refer to the next section for more.

Customize your preference center

You can create and host on your web server a fully custom HTML preference center and sync to Braze using our APIs.

At this time, you can only have one preference center, which will list all of your current subscription groups.

Option 1: Link with string query parameters

Use query string field-value pairs in the body of the URL to pass the users ID and email category to the page so users will only need to confirm their choice to unsubscribe. This option is good for those who store a user identifier in a hashed format and do not already have a subscription center.

For this option, each email category will require its own specific unsubscribe link:

Option 2: JSON web token

Use a JSON web token to authenticate users to a part of your web server (e.g., account preferences) that is normally behind a layer of authentication such as username and password login. This approach does not require query string value-pairs embedded in the URL as these can be passed in the JSON web token’s payload, for example:

    “user_id”: "1234567890",
    "name": "John Doe",
    “category": offers

You can edit the logo of your preference center. Click the gear, then click Edit from the menu that appears.

Changing email subscriptions

In most cases, your users will manage their email subscription through subscription links that are included in the emails they receive.

You must insert a legally-compliant footer with an unsubscribe link at the bottom of every email you send. When users click on the unsubscribe URL in your footer, they should be unsubscribed and taken to a landing page that confirms the change to their subscription.

Braze provides the ability to set an app group-wide custom email footer which you can template into every email using the {{${email_footer}}} Liquid attribute.

This way, you don’t have to create a new footer for every email template or email campaign you use. Changes you make to your custom footer will be reflected in all new and existing email campaigns. Remember that compliance with the CAN-SPAM Act of 2003 requires you to include a physical address for your company and an unsubscribe link in your emails.

To create or edit your custom footer, go to the Manage Settings page, and select the Email Settings tab.

Outbound Email Settings panel.

In the Custom Footer section, you can choose to turn on custom footers. Once turned on, you will see a window to edit your footer and send a test message.

Enabled Custom Footer toggle.

You will see the default footer, which uses the {{${set_user_to_unsubscribed_url}}} attribute and Braze’s physical mailing address. To comply with CAN-SPAM regulations, your custom footer must include {{${set_user_to_unsubscribed_url}}}. You won’t be able to save a custom footer without this attribute.

If using the default footer, which uses the {{${set_user_to_unsubscribed_url}}} attribute, be sure to select <other> for the Protocol.

Protocol and URL values needed for the custom footer.

Example email composed without a footer.

Be very careful to use a template with the custom footer {{${email_footer}}} or {{${set_user_to_unsubscribed_url}}}when composing an email campaign. A warning will pop up; however, the ultimate decision of whether to send an email without an unsubscribe link lies with you.

No-footer campaign composition.

When creating a custom footer, Braze suggests you use attributes for personalization. Here are a few you may find useful:

Attribute Tag
User’s Email Address {{${email_address}}}
User’s Custom Unsubscribe URL {{${set_user_to_unsubscribed_url}}}
User’s Custom Opt-In URL {{${set_user_to_opted_in_url}}}
User’s Custom Subscribe URL {{${set_user_to_subscribed_url}}}

Of course, the full set of default and custom attributes are available to you. As a best practice, Braze recommends including both an unsubscribe link (i.e., {{${set_user_to_unsubscribed_url}}}) and an opt-in link (i.e., {{${set_user_to_opted_in_url}}}) in your custom footer. This way, users will be able to both unsubscribe or opt-in, and you can passively collect opt-in data for a portion of your users.

You can also choose to set a custom footer for plaintext emails from the Email Settings tab, which follows the same rules as the custom footer for HTML emails. If you choose not to write a plaintext footer, Braze will automatically build one from the HTML footer. When your custom footers are to your liking, click Save at the bottom of the page.

Email with Set Custom Plaintext Footer option selected.

Custom unsubscribe landing page

When a user clicks on an unsubscribe URL in an email, they are taken to a default landing page that confirms the change to their subscription.

Optionally, you may provide HTML for your custom landing page that users will be directed to (instead of the default page) upon unsubscribing. This feature is available on the email Settings page.

We recommend including a resubscribe link (i.e., {{${set_user_to_subscribed_url}}} ) on this page so that users have the option to resubscribe in case they unsubscribed by accident.

Custom unsubscribe email in the Custom Unsubscribe Page panel.

Changing push subscriptions

Braze’s SDKs provide methods for changing a user’s push message subscription. Refer to Braze’s technical documentation for your mobile platform for information on configuring these methods:

Manually changing user subscriptions

You can manually change the subscription status for any user in their user profile. You can find individual user profiles by searching for a user’s ID or email address on the User Search page. Under the user profile’s Engagement tab, you’ll find a user’s current push and email subscription status.

Click the Unsubscribed, Subscribed, or Opted In buttons to change that user’s subscription status. If available, the user profile also displays a timestamp for when the user’s subscription was last changed.

A user profile's subscription status as subscribed to email and opted-in to push.

Subscriptions and campaign targeting

Campaigns with push or email messages are targeted at users who are subscribed or opted-in by default. You can change this targeting preference when editing a campaign by going to the Target Users step and clicking Advanced Options.

Braze supports three targeting states:

  • Users who are subscribed or opted-in (default).
  • Only users who are opted-in.
  • All users, including those who have unsubscribed.

Audience targeting example for users who are subscribed or opted in the Advanced Options of the Target Users step.

Segmenting by user subscriptions

The Email Subscription Status and Push Subscription Status filters allow you to segment your users by their subscription status.

For example, this can be useful if you want to target users who have neither opted in nor out and encourage them to explicitly opt-in to email or push. In that case, you would create a segment with a filter for “Email/Push Subscription Status is Subscribed” and campaigns to this segment will go to users who are subscribed, but not opted in.

Email Subscription Status used as a segment filter.

New Stuff!