<img height="1" width="1" style="display:none;" alt="" src="https://px.ads.linkedin.com/collect/?pid=108825&amp;fmt=gif">
Skip to content
English
  • There are no suggestions because the search field is empty.

How to Track All Communication Channel Opt-Ins in HubSpot Using a Custom CRM Card

Give your team a colour-coded summary of every contact's channel opt-ins, so reps see who they can contact without digging through subscription logs.

Is your sales team about to call a contact who's opted out of phone communication - and nobody spotted it? HubSpot's native Communication Subscriptions panel shows whether a contact is subscribed to at least one email type, but if they've opted out of some subscriptions and stayed opted in to others, it still shows a green “Subscribed” status. You only see the full picture by clicking through to the detail view - and it doesn't cover custom channels like SMS or phone at all.

That gap causes real problems for sales and success teams working across channels. This hack builds a custom CRM card that shows every channel's opt-in status at a glance, colour-coded red and green, right on the contact record - using a multi-checkbox property and a couple of workflows. 

Top tip: keep the property locked down. Set the custom property's edit access to Super Admin only, so reps can't manually override a value and put it out of sync with the real subscription record.

 

Step 1: Create your subscription types

In your HubSpot account, click the settings icon in the top navigation bar, then go to Marketing > Email > Subscription Types tab.

Create each subscription type that matches your communication strategy - Marketing Emails, Product Updates, Event Invites, SMS Notifications, and so on.

A subscription type for sales calling in HubSpot

Best practices for creating subscription types:

  • Be specific, not generic - “Event Invitations” is more useful than “General Emails.”
  • Think cross-team. Marketing, sales, and customer success should all have input, so nobody's use case gets missed later.
  • Group by channel where it helps - SMS Product Alerts, Call Follow-Ups - so the channel is obvious from the name.
  • Align subscription types with your GDPR or other compliance obligations. Specific types make it easier for a contact to give meaningful consent.
  • Keep the list manageable. Too many niche types makes both consent and reporting harder to maintain.
  • Document the strategy in a simple internal reference - what each type is for and who owns it - so it stays consistent as the team changes.

Step 2: Create your custom contact property

Create a custom “Communication preferences” multi-checkbox property with two options per subscription type: an opt-in and an opt-out. Colour-code them red and green so the status reads instantly.

A multi-check box colour-coded CRM property showing opt-in status

Set the property's edit access to Super Admin only. That keeps it aligned with the native subscription data - reps see it, but can't accidentally change it.

Step 3: Build the automation

Create a contact-based workflow that triggers when a contact's subscription preferences update. Use it to keep the custom property in sync:

  • Check each subscription type the contact is opted into.
  • Add or remove the matching opt-in/opt-out value on the property.
  • Use “append to property” actions rather than overwriting the whole property, so other current selections aren't wiped out.

You may need several branches or if/then logic depending on how many subscription types you're tracking. Name the workflow and its actions clearly - “Update Communication Summary - Marketing Subscription Opt-Out,” for example - so future admins can follow what's happening without digging through it.


A workflow which is triggered upon communication preference update and the relevant property updated

Step 4. Add the custom CRM card to the contact record

Surface the property in a custom CRM card on the contact record, so status is visible without extra clicks. We'd recommend:

  • Naming it something clear, like “Subscription Summary” or “Comms Preferences.”
  • Placing it on the Overview tab, or wherever reps spend most of their time.
  • Including related properties alongside it, such as Marketing Contact Status, legal basis for processing, and Do Not Call.

A custom CRM card showing communication preferences

The result is a complete, glanceable view of whether - and how - a contact can be reached, sitting on every record your team already works from.

FAQs

Does this work if I'm only on HubSpot's free CRM tools?

No - custom subscription types and custom CRM cards both require a paid tier (Marketing Hub Starter and above for subscription types, and a CRM card app or operations tooling for the card itself). Free accounts can only apply default subscription types manually. Confirm current tier requirements before publishing.

What happens if a contact updates their preferences directly through HubSpot's own subscription page?

The workflow in Step 3 picks up any change to the native subscription property, whether the contact updated it themselves or a rep changed it manually, and updates the custom card automatically. There's no separate sync step needed.

Why not just use HubSpot's native Communication Subscriptions panel instead of building this?

The native panel only shows a single subscribed/unsubscribed status and doesn't cover custom channels like SMS or phone. This card is built specifically to show every channel at once, colour-coded, without needing to click through to the detail view.

What's the most common mistake teams make when setting this up?

Using “set property value” actions instead of “append to property” in the workflow, which overwrites the whole multi-checkbox field and wipes out other channels' current status. Always append rather than overwrite.

Can reps edit the Communication Preferences property directly if something looks wrong?

No - it should be locked to Super Admin access only. If a value looks wrong, the fix is to check the underlying subscription type or the workflow logic, not to hand-edit the property, or it will drift out of sync with the real subscription data.