gtmjosh

Consent, marketing opt-out, and sales DNC architecture

· 5 min read· Salesforce · HubSpot· Platform behavior verified August 20, 2026

Model consent, marketing opt-out, sales DNC, and lifecycle as separate dimensions, so an opted-out marketing contact who is a paying customer doesn't go dark on the channels that should stay open.

On this page

A marketing opt-out who is also the primary contact on an active customer's renewal should keep hearing from Customer Success. A sales Do Not Call request should stop sales outreach without touching the person's lifecycle stage. If your CRM stores one Do Not Contact flag that suppresses every channel and every team the moment either condition is true, both of those statements become false the same day, and one of them is usually a lost renewal.

This page is about architecture, not law. It describes how to model consent, opt-out, and DNC as CRM data so the right channel gets suppressed and the right channel stays open. It does not offer legal guidance on what consent law requires in your jurisdiction; get that from your legal or compliance function.

Four dimensions, not one flag

DimensionScopeTypically owned by
Marketing consentWhether marketing communications are permitted at allMarketing
Marketing opt-outAn explicit request to stop marketing communications on a given channelMarketing
Sales DNCAn explicit request to stop sales outbound specificallySales
Transactional / CS eligibilityWhether service, billing, and account-management communication can continueCustomer Success, independent of the marketing dimensions

These are separate fields (or separate objects) with separate scopes. None of them is a synonym for lifecycle stage or disqualification. A person can be Sales-ready in lifecycle terms and simultaneously have an active marketing opt-out; the opt-out doesn't disqualify them, and disqualification doesn't imply an opt-out.

The rule that keeps a renewal from going dark

An opted-out marketing contact who is an active customer's contact remains reachable on transactional and CS channels. Marketing opt-out scopes to marketing sends. It does not scope to service communication, billing notices, or a Customer Success renewal conversation, unless the person has separately and explicitly opted out of those channels too.

This only holds if the CRM enforces it at the channel level instead of a single suppression flag. A Do Not Contact = true field that every send process checks regardless of channel collapses the distinction the moment someone sets it, because nothing in the data says which channel they meant to suppress.

Enforce suppression at the point of use, not just at the field

A consent field that exists but isn't checked at send time isn't enforcement. Build the suppression check into every point where an outbound message actually leaves:

Enforcement pointWhat it checks
Send-time checkThe specific channel being used against the specific dimension that governs it
Sequence/cadence eligibilityWhether a record should ever enter a given sequence, checked before enrollment and re-checked on each send
List exportWhether an exported list already excludes suppressed records, so a manual send from an exported CSV doesn't bypass the CRM-level check

A field that's accurate in the CRM but unchecked at export time still produces a suppression failure. The record was correct; the channel wasn't protected.

Sales DNC is not a lifecycle stage

A common mistake: treating a DNC request as equivalent to disqualification, because both result in "stop reaching out." They're different facts. Disqualification is a judgment about fit or intent. DNC is a channel preference a person explicitly stated, independent of whether they're still a good fit. Someone can request DNC while remaining marketing-engaged, genuinely interested, and a reasonable candidate for a different channel (email instead of calls, for example) or for re-engagement through content rather than outbound calling.

Recording a DNC request as a disqualification reason destroys that distinction and can silently remove someone from lifecycle reporting who is, in every other dimension, still an active prospect.

GTM Lab: two cases that must resolve differently

GTM Lab, a fictional B2B software company, has two records that test this architecture.

Case one: Priya Shah, marketing opt-out and active customer contact. Priya (introduced in the 1a lifecycle guides) is now the primary contact on Acme Manufacturing's active customer relationship, with an expansion Opportunity open. She submits a marketing opt-out through an email footer link. A single Do Not Contact flag would suppress her entirely, including the renewal and expansion communication Customer Success needs to send. Modeled as four separate dimensions, only her marketing-consent state changes. Her transactional/CS eligibility stays independent and unaffected, so the renewal conversation continues on schedule.

Case two: Leah Fenwick, sales DNC at target account Beacon Robotics. Leah requests that sales stop calling her, but stays subscribed to GTM Lab's marketing newsletter and continues engaging with content. Recorded as sales-dnc, sales outbound stops for her specifically. Her lifecycle stage doesn't change, she isn't disqualified, and marketing continues nurturing her through the channel she never objected to.

Both cases resolve correctly only because the architecture kept the dimensions separate before either request arrived. This is a worked example; the specific field names are GTM Lab's operating choice.

Salesforce and HubSpot: what changes, what doesn't

Salesforce doesn't ship one universal consent field; most orgs build custom fields or use a consent-management package, and Marketing Cloud/Account Engagement integrations bring their own subscription and preference models that need explicit mapping back to Sales-side DNC fields. Decide the field-level architecture (which object, how many fields, how they relate to Lead/Contact conversion) before configuring it; the platform won't decide the dimension model for you.

HubSpot has marketing contact status and subscription types that govern marketing sends specifically, which is a useful native separation between "marketing eligible" and "everything else." Sales DNC and transactional/CS eligibility still need their own explicit properties; don't assume marketing subscription status is checked anywhere outside marketing send tooling.

  • Marketing consent, marketing opt-out, sales DNC, and transactional/CS eligibility exist as separate, independently readable states.
  • None of the four dimensions is treated as a lifecycle stage or a disqualification reason.
  • An opted-out marketing contact who is an active customer's contact stays reachable on transactional/CS channels.
  • A sales DNC request suppresses sales outbound specifically, without changing lifecycle stage or marketing eligibility.
  • Suppression is enforced at send time, at sequence-eligibility check, and at list export, not only stored as a field.
  • Every suppression state records how and when it was set, for audit and for the person's own record of their preference.

Where this connects

Departure and stale-account handling in handling job changes, departures, and stale customer accounts follows the same separation principle: a fact about one dimension shouldn't rewrite another. The 1a lifecycle governance page covers why person lifecycle, consent, employment, fit, and ownership need to stay independent more broadly.

Get the next guide

New guides and the occasional note on GTM tooling. Don't worry, I won't drop you into a three-month nurture.