Documentation Index

Fetch the complete documentation index at: https://knowledge.technolutions.net/llms.txt

Use this file to discover all available pages before exploring further.

The Slate Summit 2026 executive summary is here:  

Self-Service Email Opt-Out Preference Manager

Prev Next

Use an authenticated portal to show a person the message groups they have opted out of and provide a link to manage their email communication preferences. This pattern can help users understand why they may not be receiving certain communications and gives them a self-service path to resubscribe.

📝 Note

The screenshots in this article use an Applicant Status Portal example, but the pattern is not admissions-specific. You can use the same general approach in any authenticated user-facing portal where the portal method query can identify the logged-in person.

   
       

⭐ Get Inspired

   
   

This article was adapted from a post by Technolutions staff in the Slate Community Forums' Get Inspired space. Have a great idea for a Get Inspired post? Let us know!

Adding the portal method query exports

Add two subquery exports to the query associated with the portal method:

  • subscription-page: Creates a link to the recipient's unsubscribe management page.

  • optout-groups: Returns the message groups from which the person has opted out.

Creating the subscription page export

The subscription-page export creates a single URL that points to the unsubscribe management page for the person.

  1. Open the query associated with the portal method.

  2. Add a Subquery Export.

  3. Configure the following settings:

    • Name: subscription-page

    • Output: Concatenate

    • Row Offset: 1

    • Row Limit: 1

  4. Add a join from Person to Messages.

  5. Add a filter for Message Status in Optout.

  6. Add a literal value for your unsubscribe management URL prefix. Replace the example host with your database URL:

    https://yourdatabaseurl.edu/go?r=optout&mid=
  7. Add an export for Messages → GUID.

  8. Select Save.

A subscription page subquery export that concatenates an opt-out URL prefix with a message GUID.

Creating the opt-out groups export

The optout-groups export returns a dictionary that Liquid markup can loop through in the portal view.

  1. Add another Subquery Export.

  2. Configure the following settings:

    • Name: optout-groups

    • Type: Independent subquery

    • Category: Related

    • Base: Message Opt-Out

    • Output: Dictionary

    • Row Offset: 1

  3. Add a subquery filter that compares the Message Opt-Out recipient to the person's email address.

  4. Add an export for Message Opt-Out → Group.

  5. Rename the export optout-name.

  6. Select Save.

An independent Message Opt-Out subquery export configured with Dictionary output.

A comparison subquery filter that matches the Message Opt-Out recipient to the person email address.

A Message Opt-Out Group export renamed optout-name.

The completed opt-out groups dictionary subquery export.

Adding the portal widget

Add a Static Content widget to the portal view that should display the email preference information. In the Applicant Status Portal example, the widget is named Email Preferences.

  1. Open the portal view.

  2. Add a Static Content widget.

  3. Add a filter so the widget appears only for records with message opt-outs. In the example, the filter looks for a person with a message status in Optout.

  4. Select Save.

A Static Content widget named Email Preferences.

A filter that limits the Email Preferences widget to records with message opt-outs.

Adding the Static Content source

In the Static Content widget, use Liquid markup to loop through the optout-groups dictionary export and use the subscription-page merge field as the link URL.

<p><strong>Below is a list of your email opt-out preferences:</strong></p>

<p>
  {% for result in optout-groups %}
    {{result.optout-name}}<br />
  {% endfor %}
</p>

<p>
  <a href="{{subscription-page}}" target="_blank">Manage your email communication preferences</a>.
</p>

💡 Tip

Keep export names computer friendly so they can be referenced reliably in Liquid markup. Use lowercase names without spaces, such as subscription-page, optout-groups, and optout-name.

Testing the portal display

Use impersonation to test how the widget appears for records with different opt-out states.

  1. Open the portal.

  2. Select Impersonate.

  3. Search for a test record with one or more message group opt-outs.

  4. Confirm that the widget lists the expected message groups.

  5. Select the preference-management link and confirm that it opens the unsubscribe management page.

  6. Test a record without message group opt-outs and confirm that the widget does not appear.

The portal impersonation option used to test the email preferences widget.

The email preferences widget shown in an Applicant Status Portal example.

Still looking for what you need?