- Knowledge Base
- Reporting & Data
- Reports
- Understand communication subscription events in the custom report builder
Understand communication subscription events in the custom report builder
Last updated: May 26, 2026
Available with any of the following subscriptions, except where noted:
-
Marketing Hub Professional, Enterprise
HubSpot tracks two communication subscription events that you can use in the custom report builder to analyze how contacts' subscription and consent preferences change over time.
Each event records a point-in-time change, so a contact who unsubscribes via a preference page and is later unsubscribed via a workflow will have two separate events—one for each action.
Use case: Subscriber Attrition Root-Cause Analysis & Channel Fatigue Audit
The Problem
During a quarterly performance review, an organization sees a sharp rise in database attrition and opt-outs but lacks the attribution data to pinpoint why.
The team cannot tell whether churn is due to poor audience-content fit, workflow issues, or channel fatigue from high-touch mediums like SMS. This limited visibility blocks targeted retention efforts and system fixes, putting long-term revenue and lead generation at risk.
The Solution
Using point-in-time event tracking, a Marketing Operations Manager can build a custom report to diagnose the precise technical or strategic origin of audience loss.
Rather than relying on static, overwritten contact records, this report captures the historical trajectory of opt-outs, providing an auditable timeline of how and why preferences changed.
Create reports from Communication subscription templates
The report templates available include:
- Communication subscription activity by month
- Communication consent activity over the past 6 months
- Communication subscription activity by source over past year
- Communication subscription activity over the past 6 months
To create reports from these templates:
- In your HubSpot account, navigate to Reporting > Reports.
- In the top right, click Create. Then, select Create report.
- In the left sidebar menu, click Template report library. Then, click Next.
- In the left sidebar menu, click on the Data sources dropdown menu, and select Communication subscriptions.
- Select one of the available templates, and continue customizing the settings of your report. Settings may vary by report.
- Once you have finished customizing the report, click Save report. The report will now be available to view in your report library.
Understand event types and source values
Below, learn more about what each event type and source value property represents:
Event 1: Communication subscription status updated
This event fires when a contact's subscription status changes for a specific subscription type (e.g., "Marketing Information").
| Property | What it represents |
| Subscription type (hs_subscription) | The category of content the contact subscribed to or unsubscribed from (e.g., newsletter, product updates). |
| Subscription status (hs_subscription_status) | The contact's subscription status: Subscribed (OPT_IN), Unsubscribed (OPT_OUT), or Not specified (NOT_OPTED). |
| Source (hs_source) | Where the subscription update came from. See Source values table below. |
| Brand (hs_business_unit_id) | The brand associated with this subscription at the time of the update. |
| Email address (hs_subscriber_email_address) | The email address associated with the subscription update. |
| Phone number (hs_subscriber_phone_number) | The phone number associated with the subscription update. |
| User (hs_user) | The HubSpot user who changed the subscription status (if applicable). |
| Workflow (hs_workflow_id) | The workflow that triggered this event (if the source is Workflow). |
| Email name (hs_email_id) | The specific email that led to the subscription update (if applicable). |
| Form (hs_form_id) | The form associated with the subscription update (if applicable). |
| Import (hs_import_id) | The import that updated the contact's subscription status (if applicable). |
Event 2: Communication channel consent updated
This event fires when a contact's consent to receive communication on a particular channel (email, SMS, or WhatsApp) is updated.
| Property | What it represents |
| Subscription type (hs_subscription) | The communication channel: Email, WhatsApp, or SMS. |
| Subscription status (hs_subscription_status) | The contact's consent status. Currently only Unsubscribed (OPT_OUT) is tracked. |
| Source (hs_source) | Where the consent update came from. See Source values table below. |
| Brand (hs_business_unit_id) | The brand this consent status applies to. |
| Email address (hs_subscriber_email_address) | The email address associated with the consent update. |
| Phone number (hs_subscriber_phone_number) | The phone number associated with the consent update. |
| User (hs_user) | The HubSpot user who changed the consent (if applicable). |
| Workflow (hs_workflow_id) | The workflow that triggered this event (if the source is Workflow). |
| Email name (hs_email_id) | The specific email that led to the consent update (if applicable). |
| Form (hs_form_id) | The form associated with the consent update (if applicable). |
| Import (hs_import_id) | The import that updated the contact's consent status (if applicable). |
Event source values
Both events share the same Source property values. Here's what each means:
| Value |
Label |
Description |
| BULK_UPDATE |
Bulk subscription update |
A bulk action was used to update subscription status for multiple contacts at once. |
| WORKFLOW |
Workflow |
A HubSpot workflow action changed the subscription or consent status. |
| EXTERNAL_API |
External API |
An update was made through the HubSpot API by an external integration. |
| LIST_UNSUBSCRIBE |
List unsubscribe |
The contact unsubscribed via a list-level unsubscribe header in an email. |
| PREFERENCE_PAGE |
Preference page |
The contact updated their preferences via the email subscription preferences page. |
| ONE_CLICK_UNSUBSCRIBE |
One click unsubscribe |
The contact used the one-click unsubscribe mechanism in the email header. |
| FORM_SUBMISSION |
Form submission |
The subscription change occurred as a result of a form submission. |
| CONTACT_RECORD |
Contact record |
A HubSpot user manually updated the subscription from the contact record in the CRM. |
| LEGACY |
Legacy systems |
The update came from a legacy HubSpot system. |
| DATA_SYNC |
Data sync |
The update was applied through a data sync integration (like Salesforce). |
| IMPORT |
Import |
The subscription status was changed via a file import. |
| HUBSPOT_MIGRATION |
HubSpot-initiated migration |
The update occurred as part of a HubSpot-initiated data migration. |
| SPAM_REPORT |
Spam report |
The contact reported an email as spam, which triggered an automatic unsubscribe. |
| CONVERSATION |
Conversation |
The update was made through a HubSpot conversations/inbox action. |
| UNRECOGNIZED |
Source not supported |
The source of the update couldn't be identified or isn't a supported source type. |
Important considerations
Before building reports with communication events, review these key technical behaviors and structural distinctions:
- Immutable historical logging: Each change to a subscription status or channel consent generates a unique, independent event. HubSpot never updates or overwrites existing events. If a contact modifies their preferences multiple times or through different operational sources, each distinct action produces its own event record, preserving a flawless historical audit trail.
- Contact-centric architecture: these tracking events are contact-centric and are tied directly to the individual contact record.
- Subscription types vs. Channels: when configuring your custom reports, note the distinction between these two primary properties:
- Subscription type (status event): represents specific content categories your organization distributes (e.g., "Marketing Information," "Product Updates").
- Channel (consent event): Represents the communication medium itself (e.g., Email, SMS, WhatsApp).