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. |
These Global Subscription States are different from subscription groups, which act as filters that can further narrow your audience from the Global Subscription States.
Changing subscriptions
Braze does not count subscription state changes against your data points, globally, and around subscription groups.
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.
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!
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.
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.
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.
1
{{${preference_center_url}}}
The Preference Center has a checkbox that will allow your users to unsubscribe from all emails.
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:
http://mycompany.com/query-string-form-fill?field_id=John&field_category=offers
It is also possible to hash the users external_id
at the point of send using a Liquid filter. This will convert the user_id
to an md5 hash value, for example:
1
2
3
{% assign my_string = {{${user_id}}} | md5 %}
My encoded string is: {{my_string}}
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:
1
2
3
4
5
{
“user_id”: "1234567890",
"name": "John Doe",
“category": offers
}
Logo
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.
Custom footers
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.
It is your responsibility to make sure that your custom footer meets those requirements.
To create or edit your custom footer, go to the Manage Settings page, and select the Email Settings tab.
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.
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.
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.
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.
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.
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.
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.
It is your responsibility to comply with any applicable spam laws when using these targeting settings.
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.