Before sending marketing emails, configure subscription types to give contacts control over what emails they receive. This maintains GDPR/PECR compliance and reduces unsubscribe rates.
Creating subscription types
Subscription types let contacts choose which emails they want to receive: newsletter, product updates, event invitations, promotional offers.
Navigate to Settings > Marketing > Email > Subscriptions. You'll see "Subscription Types."
HubSpot includes one default type: "Marketing Information." Rename this or create additional types that match your email categories.
Click "Create subscription type." Name it clearly:
- Blog updates
- Product announcements
- Event invitations
- Educational content
- Special offers
For each subscription type, provide a description that contacts see on the subscription preferences page: "Receive our weekly blog digest with growth tactics and case studies."
Decide whether each subscription type should be "Active" (contacts receive by default) or "Inactive" (contacts must opt-in). For GDPR compliance, most subscription types should be inactive by default unless contacts explicitly opted in.
Legal compliance considerations
Different regions have different email marketing laws:
GDPR (EU/UK): Requires explicit opt-in for marketing emails. You cannot assume consent. Contacts must actively check a box or click a link indicating they want to receive emails. Pre-checked boxes don't count.
PECR (UK): Similar to GDPR for email. Requires opt-in unless there's a "soft opt-in" exception (existing customer relationship).
CAN-SPAM (US): Requires opt-out mechanism (unsubscribe link) but doesn't require opt-in. You can send marketing emails to business contacts without prior consent as long as you provide an unsubscribe option.
Configure HubSpot to respect these laws. If your audience is primarily EU/UK, set subscription types to "Inactive" by default and only add contacts to them when they explicitly opt in (checkbox on form, double opt-in confirmation, etc.).
Managing preferences
HubSpot automatically generates a subscription preferences page where contacts can manage their subscriptions.
Navigate to Settings > Marketing > Email > Subscriptions. At the bottom, you'll see "Subscription preferences page URL." This link goes in every marketing email footer automatically.
Customise the preferences page: Click "Edit page" to add your branding, adjust copy, and change layout.
Contacts who click "Manage preferences" in your email footer see this page. They can:
- Unsubscribe from specific subscription types (but stay subscribed to others)
- Unsubscribe from all marketing emails
- Update their email address
- Update their communication preferences
This granular control reduces hard unsubscribes (opting out of everything) because contacts can simply mute the email types they don't want while staying subscribed to content they value.
Unsubscribe management
When someone unsubscribes, HubSpot marks them as "unsubscribed from marketing emails." You cannot send marketing emails to unsubscribed contacts without manually re-subscribing them (which you should only do if they explicitly request it).
Sales emails (one-to-one emails sent by sales reps) are not affected by marketing unsubscribes. Sales can still email unsubscribed contacts. But bulk sales emails (sequences sent to multiple contacts) respect marketing unsubscribe status.
View unsubscribed contacts: Create an active list with filter "Unsubscribed from all email" is True. This shows everyone who's opted out. Don't market to this list.
Re-subscribing contacts: Only do this if they explicitly request it (e.g., "I unsubscribed by mistake, please re-add me"). Navigate to their contact record > Communications tab > Unsubscribed from all email > Edit > Set to False. They're now re-subscribed.
Now build the active lists (segments) that power your campaigns.
Segmentation criteria and logic
Effective segments combine demographic and behavioral criteria:
Demographic: Who they are (job title, company size, industry, location)Behavioral: What they've done (pages viewed, emails opened, forms submitted, content downloaded)
Example segments for B2B:
Engaged leads not yet MQL:
- Lifecycle stage is Lead
- Lead score is between 20 and 50
- Last marketing email click date is within last 30 days
- Use case: Nurture campaign to push them toward MQL threshold
Disengaged MQLs:
- Lifecycle stage is MQL
- Last marketing email open date is more than 60 days ago
- Last page view date is more than 60 days ago
- Use case: Re-engagement campaign or move to nurture track
UK enterprise prospects:
- Lifecycle stage is any of: Lead, MQL, SQL
- Country is United Kingdom
- Number of employees is greater than 500
- Use case: Targeted ABM campaign for enterprise segment
Recent demo requests:
- Form submission: Demo Request form (or any form with "demo" in name)
- Form submission date is within last 7 days
- Use case: Sales alert workflow to ensure immediate follow-up
Building complex segments
Use "AND" and "OR" logic to refine segments.
"AND" logic: Contacts must meet all criteria. Example: "Lifecycle stage is MQL AND Industry is Technology AND Lead score is greater than 60."
"OR" logic: Contacts must meet at least one criterion. Example: "Form submitted any of: eBook download, Webinar registration, Demo request."
Combine AND/OR logic with filter groups. In HubSpot list builder, each row of filters uses AND logic. Multiple filter groups use OR logic between groups.
Example: "Engaged Tech MQLs or Engaged Finance MQLs"
- Filter group 1: Lifecycle stage is MQL AND Industry is Technology AND Last email open is within 30 days
- Filter group 2: Lifecycle stage is MQL AND Industry is Finance AND Last email open is within 30 days
Contacts in either group join the list.
Testing your segments
After creating a segment, verify it contains the right contacts.
Check total count: Does the number make sense? If you expect 500 MQLs and your segment has 50, your filters might be too restrictive. If it has 5,000, your filters might be too broad.
Spot-check members: Click into the list and open 10 random contacts. Verify they actually meet your criteria. If you see contacts who shouldn't be there, your filters are misconfigured.
Export and review: Export the list to CSV. Review in a spreadsheet. Sort by different properties to understand composition. Are all industries represented? Are all regions present? Does lead score distribution look right?
Adjust filters until the segment contains exactly who you need.
Segment-based automation triggers
Once segments exist, use them to trigger automated campaigns.
Example workflow: "Nurture Disengaged MQLs"
- Enrollment trigger: Contact is member of list "Disengaged MQLs"
- Wait 1 day
- Send email: "We've missed you - here's what's new"
- Wait 5 days
- If email opened: Send email with case study
- If email not opened: Remove from workflow (they're not engaging)
This workflow automatically nurtures contacts in your "Disengaged MQLs" segment, adapting based on their engagement.
Create workflows in Automation > Workflows, using "Contact is member of list" as enrollment triggers. More on workflows in Chapter 3.
Views organise your workspace for efficient daily work.
Setting up filtered views
Navigate to Contacts > Contacts. The default view shows all contacts. This isn't useful for most roles.
Create role-specific views:
For SDRs:
- View: "My new leads" - Filters: Contact owner is [current user], Lifecycle stage is Lead, Lead status is New
- View: "My MQLs to contact" - Filters: Contact owner is [current user], Lifecycle stage is MQL, Last contacted is more than 3 days ago
For marketing managers:
- View: "Unassigned MQLs" - Filters: Lifecycle stage is MQL, Contact owner is unknown
- View: "High-value prospects" - Filters: Lifecycle stage is any of (MQL, SQL, Opportunity), Annual revenue is greater than £500k
For customer success:
- View: "My active customers" - Filters: Contact owner is [current user], Lifecycle stage is Customer, Contract end date is after Today
- View: "At-risk customers" - Filters: Lifecycle stage is Customer, Last engagement date is more than 90 days ago
Click "Add view" > "Create new view." Name it clearly. Add filters. Toggle "Share this view with all users" if you want others to see it. Save.
Saving custom views
After creating views, they appear in the view dropdown. Team members select relevant views based on their role and current task.
Create views for common scenarios:
- Leads to assign
- Contacts with missing information (phone number unknown, company unknown)
- Recent form submitters (last 24 hours)
- Bounced email addresses
Views don't replace active lists. Views are for interface navigation; active lists are for segmentation and targeting.
Sharing views with team
When creating a view, toggle "Share this view with all users" to make it available team-wide.
Best practice: Create a set of standard views for each role:
- SDRs get views focused on new leads and outreach tasks
- AEs get views focused on opportunities and follow-ups
- Marketing gets views focused on campaign performance and MQL flow
Document which views each role should use. Include this in onboarding for new team members.
Views for different team roles
Sales roles:
- My leads (owned by me, lifecycle stage is Lead)
- My open opportunities (owned by me, lifecycle stage is Opportunity)
- Stale leads (owned by me, last contacted more than 14 days ago, no activity)
Marketing roles:
- Recent MQLs (lifecycle stage is MQL, created date within last 7 days)
- Email bounces (email hard bounced or invalid)
- Unsubscribed contacts (unsubscribed from all email is True)
Management roles:
- Unassigned records (contact owner is unknown across all lifecycle stages)
- High-value accounts (annual revenue greater than threshold)
- Overdue follow-ups (last contacted more than X days ago, open deal exists)
Each view answers a specific question or supports a specific workflow. Don't create views just for the sake of having them - create views that your team will actually use daily.