TL;DR
Most HubSpot portals accumulate workflows like technical debt. Old nurture streams with outdated enrollment criteria, internal notifications for employees who left two years ago, duplicate automations doing the same thing with different names. Before you build another workflow, audit the existing ones against these seven checkpoints: enrollment triggers, suppression logic, re-enrollment settings, goal criteria, branch hygiene, delay risks, and notification bloat.
01 · Are You Enrolling the Right People?
The enrollment trigger is the most consequential decision in any workflow. Get it wrong and every downstream action fires on the wrong audience.
What to Check
- Is the trigger event-based ("when a form is submitted") or filter-based ("when a property value is true")? Event triggers only catch new actions after the workflow is turned on. Filter triggers can backfill existing contacts.
- Is the trigger too broad? A trigger like "lifecycle stage is known" will enroll every contact in your database. Always test enrollment criteria against your actual contact count before turning a workflow on.
- Are you using the right trigger type for your goal? If you need the workflow to fire every time someone submits a specific form, use an event trigger. If you need it to fire when a property changes to a specific value and stays there, use a filter trigger.
- Are date refinements applied where needed? Event triggers can be refined by date range, but that refinement doesn't carry over to re-enrollment - contacts will re-enroll on any future event regardless of the date filter.
Before building a new workflow, search your existing ones for similar enrollment triggers. Duplicate enrollment on the same criteria is the fastest way to create email fatigue and data conflicts.
02 · Who Should Never Enter This Workflow?
Every workflow should have a suppression list or unenrollment trigger. If yours doesn't, any contact who meets the enrollment criteria will enter - including contacts you never intended to automate.
What to Check
- Is there a suppression list? At minimum, suppress: internal employees, competitors, existing customers (unless the workflow is specifically for customers), and contacts who have unsubscribed from the relevant email type.
- Is the suppression list an active list or static? Active lists update dynamically. If you're using a static list for suppression, new contacts matching suppression criteria won't be excluded until someone manually adds them.
- Are you using the "Remove from specific workflows" option? If a contact enters Workflow A and then qualifies for Workflow B, should they be removed from A? This is especially important for competing nurture streams.
- Is the "No longer meets enrollment criteria" setting intentional? When enabled, contacts are removed if the triggering condition stops being true. This can cause unexpected unenrollment mid-workflow if a property value changes during a delay.
03 · Should This Workflow Fire More Than Once?
By default, HubSpot workflows only enroll contacts once. Re-enrollment is off. But many workflows need to fire repeatedly - and the re-enrollment settings have nuances that trip up even experienced admins.
What to Check
- Is re-enrollment on or off, and is that intentional? A lead nurture sequence usually runs once. An internal notification workflow (e.g., alert when a high-value form is submitted) needs re-enrollment on.
- Which triggers are enabled for re-enrollment? Not all enrollment triggers support re-enrollment. Custom properties with selection-type values can't always be used as re-enrollment triggers. HubSpot will show a warning, but only if you check.
- Are you aware that date/number refinements don't apply to re-enrollment? If your trigger says "form submitted between Jan 1 and Feb 1," re-enrollment will fire on any future submission regardless of date.
- Can a contact re-enroll while already enrolled? No. Re-enrollment only happens after the contact has fully exited the workflow. If a contact is mid-workflow and meets re-enrollment criteria, nothing happens until they exit.
04 · When Is This Workflow "Done"?
A workflow goal defines the success condition. When a contact meets the goal, they're automatically unenrolled. Most workflows don't have one, which means contacts complete every action in the sequence regardless of whether the objective has already been achieved.
What to Check
- Does this workflow have a goal? If the purpose is "get the contact to book a meeting," the goal should be "has a meeting associated." Contacts who book early should exit without receiving the remaining emails.
- Is the goal measurable with a HubSpot property or event? Goals can use any filter criteria available to enrollment triggers. If you can't express the success condition as a property/event filter, the goal might need rethinking.
- Is the goal set on the right object? In contact-based workflows, goals evaluate contact properties. If your success condition is deal-related (e.g., deal moves to a certain stage), you'll need to use an associated deal filter.
05 · Are Your If/Then Branches Still Accurate?
Branches route contacts based on conditions. Those conditions reference properties, list memberships, or event data. When the underlying data changes - a property gets renamed, a list gets deleted, a form gets archived - branches break silently.
What to Check
- Do any branches reference deleted lists, archived forms, or renamed properties? HubSpot won't always surface these as errors. A branch referencing a deleted list will simply evaluate as "not a member" for every contact, sending everyone down the wrong path.
- Is there a "none met" branch, and does it do something useful? Every if/then branch should have a defined path for contacts who don't match any condition. An empty "none met" branch means those contacts stall or exit without any action.
- Are branch conditions mutually exclusive? If Branch A checks "job title contains VP" and Branch B checks "job title contains VP of Marketing," the VP of Marketing will match Branch A first and never reach Branch B. Order matters.
- Are there too many branches? A workflow with 8+ branches is usually a sign that the workflow is trying to do too much. Consider splitting into multiple focused workflows connected by enrollment triggers.
06 · What Happens While Contacts Wait?
Delays are the most underestimated source of workflow problems. A contact sitting in a 3-day delay can have their properties change, their lifecycle stage advance, or their subscription status update - and the workflow won't know until the delay ends.
What to Check
- Are delays appropriate for the workflow's purpose? A delay before an internal notification is almost always wrong - sales should know about an MQL immediately, not three days later.
- Could a contact's situation change during the delay? If a contact enters a nurture workflow and books a meeting during a 5-day delay, they'll still receive the next nurture email when the delay expires unless you have goal criteria or unenrollment triggers catching that change.
- Are you using "execute actions only during business hours"? This reschedules actions that fall outside your specified window. It can create unexpected bunching - if multiple contacts hit the same action boundary, they all fire at 9:00 AM Monday.
- Are your delays interacting with re-enrollment? A re-enrolled contact starts the workflow from the beginning, including all delays. If delays are long, the contact could be mid-workflow for weeks on their second pass.
07 · Are You Creating Noise Instead of Signal?
Internal notifications are the most over-built action in HubSpot workflows. Every new workflow gets an email notification to the sales team, the marketing team, the manager, and sometimes the CEO. After a year, reps are ignoring all of them.
What to Check
- Who receives notifications from this workflow, and do they still need them? Audit every "send internal email" and "send Slack notification" action. If the recipient has left the company or changed roles, the notification is waste.
- Is the notification actionable? A notification that says "A new MQL has been created" with no context is useless. It should include the contact's name, company, score, last engagement, and a direct link to the CRM record.
- Are multiple workflows sending similar notifications? If three workflows all notify the same rep about the same contact action, consolidate into a single workflow with branches.
- Could this notification be a task instead? If the expected action is "call this person," a task with a due date is more actionable than an email notification that gets buried in an inbox.
The goal of a workflow audit isn't to delete things. It's to ensure that every active workflow has a clear purpose, correct targeting, and appropriate exit logic. If you can't explain what a workflow does in one sentence, it probably shouldn't exist.
Frequently Asked Questions
How often should I audit HubSpot workflows?
Quarterly is the recommended cadence. Check enrollment counts, error rates, and goal completion rates. Any workflow with zero enrollments in the past 90 days is a candidate for archiving. Major CRM changes (new properties, pipeline restructuring, team changes) should trigger an immediate audit of affected workflows.
What's the difference between a suppression list and an unenrollment trigger?
A suppression list prevents contacts from entering the workflow in the first place. An unenrollment trigger removes contacts who are already enrolled when they meet a specified condition. Use suppression for contacts who should never enter (competitors, employees). Use unenrollment triggers for contacts whose situation changes mid-workflow (they become a customer, they unsubscribe).
Why won't my workflow re-enroll contacts?
Three common causes: re-enrollment is turned off in workflow settings, the enrollment trigger type doesn't support re-enrollment (custom selection properties often don't), or the contact is still actively enrolled and hasn't exited yet. Check all three before troubleshooting further.
How many workflows should a HubSpot portal have?
There's no magic number. What matters is that each workflow has a defined purpose, correct targeting, and no overlap with other workflows. A portal with 30 well-structured workflows outperforms one with 200 that nobody maintains.
Should I use workflow goals?
Yes, whenever the workflow has a measurable success condition. If the workflow exists to get a contact to take a specific action (book a meeting, submit a form, reach a score threshold), set that as the goal. Contacts who achieve the goal exit early, which prevents unnecessary emails and actions.
When was the last time you audited your workflows?
We run workflow audits for agencies and nonprofits - identifying conflicts, consolidating duplicates, and building the governance layer that keeps automation clean.
Book an Audit →