suppress-global-unsubscribes

Identifies globally unsubscribed contacts via HubSpot API and suppresses their marketing status.

58|16|Updated Mar 26, 2026
One-click install
npx skills add https://github.com/TomGranot/hubspot-admin-skills --skill suppress-global-unsubscribes
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: suppress-global-unsubscribes
Source: https://github.com/TomGranot/hubspot-admin-skills/tree/main/skills/suppress-global-unsubscribes
Command: npx skills add https://github.com/TomGranot/hubspot-admin-skills --skill suppress-global-unsubscribes

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires requests, python-dotenv, and includes scripts (resource) components.

What problem does it solve?

Globally unsubscribed contacts can still be marketed to, creating legal risk and unnecessary billing. This skill identifies those contacts via HubSpot API, analyzes lifecycle distribution, and guides suppression through a dynamic list and manual UI steps.

Core Features & Use Cases

  • API-based discovery and audit of globally unsubscribed contacts.
  • Lifecycle breakdown to surface edge cases and inform suppression strategy.
  • Hybrid suppression workflow via API discovery/audit plus HubSpot UI actions for final non-marketing status.

Quick Start

Run before.py to generate the audit and suppression list, then run after.py to verify results.

Frequently Asked Questions about suppress-global-unsubscribes

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I suppress globally unsubscribed contacts in HubSpot to stay GDPR compliant?

To suppress globally unsubscribed contacts in HubSpot, this skill uses API-based discovery to audit your contacts and guides you through manual UI suppression steps, ensuring GDPR and CAN-SPAM compliance while reducing unnecessary marketing contact billing.

Why am I still being billed for globally unsubscribed contacts in HubSpot?

Globally unsubscribed contacts can still be marketed to and billed in HubSpot if their marketing status is not properly suppressed. This skill identifies those contacts via API and guides suppression through a dynamic list to eliminate unnecessary billing.

What do I need to audit unsubscribed contacts using the HubSpot API?

You need a HubSpot access token with proper API scopes, along with the requests and python-dotenv libraries. The skill performs discovery and lifecycle distribution analysis to surface edge cases before suppression.

Can I automatically suppress marketing status for unsubscribed contacts entirely through the HubSpot API?

No, suppression follows a hybrid workflow. The API handles discovery and audit of globally unsubscribed contacts, but final non-marketing status suppression requires manual UI actions in HubSpot for large lists.

What is the best way to audit lifecycle distribution before suppressing marketing contacts?

The best way to audit lifecycle distribution is running the before.py script, which generates an audit and dynamic suppression list by analyzing lifecycle stages to surface edge cases and inform your suppression strategy.

How do I verify that globally unsubscribed contacts were successfully suppressed in HubSpot?

To verify suppression results, run the after.py script after completing the manual UI suppression steps. This checks that globally unsubscribed contacts have been properly marked as non-marketing to ensure compliance.