Blog

Dirty Data Secrets: Your HubSpot Workflows Are a Black Box (with Christian Baun)

Written by Jonas | June 23, 2026

Most HubSpot portals have more automation than anyone fully understands. Workflows get created by consultants, by in-house admins, by agencies, and over two, three, sometimes five years, nobody ever maps the full picture. Until something breaks, or someone new arrives and has to figure it out.

In this episode of Dirty Data Secrets, Jonas De Mets (Co-Founder of Koalify) sat down with Christian Baun, 8-year HubSpot power user, former lifecycle marketing lead at GitLab, and co-founder of Howly, to dig into one of the most overlooked sources of CRM chaos: workflow debt and the absence of visibility.

🎥 Watch the full episode here:

 

The Workflow Debt Problem Nobody Talks About

Every HubSpot portal starts clean. A handful of workflows, sensibly named, doing exactly what they were designed to do.

Then a consultant comes in and adds a few more. An in-house admin builds something for a campaign. A lifecycle stage change triggers a new automation. A list-based enrolment feeds into an email sequence that nobody has touched in three years.

Christian has seen this pattern across hundreds of portals.

"You would see this technical debt or this workflow debt that had been accumulated over two, three, four, and sometimes even five years."

The result is a portal where the same contact might be receiving emails from three separate nurture flows simultaneously. Where updating a property in one workflow inadvertently triggers enrolments in two others. Where the question "what happens when this contact does X?" has no reliable answer, because nobody can see all the connections.

This is the problem Howly was built to solve.

 

What Workflow Visibility Actually Looks Like

When a new admin or HubSpot partner connects a portal to Howly for the first time, the immediate experience is either an aha moment or, as Christian puts it, an "oh shit" moment.

Every workflow becomes a node on a canvas. Every connection between workflows, through properties, through lists, through enrolment triggers, gets drawn as a line. Toggle on "All Connections" and the full picture appears: which workflows are writing to the same properties, which are enrolling contacts in others, which are silently competing with each other to define what a contact's lifecycle stage should be.

"You can actually click directly on the HubSpot button and it takes you straight to that workflow. So you can go ahead and make your changes, and everything you're doing live in HubSpot is being reflected in real time with Howly."

For an admin auditing a portal with 200 or 300 workflows, that bird's-eye view is the difference between two months of manual mapping and 90 minutes of structured review.

 

 

 

Why Race Conditions Break Customer Experience

The practical consequence of invisible workflow connections is race conditions: multiple automations acting on the same contact at the same time, each one correct in isolation, each one unaware of the others.

Christian's example is a contact who simultaneously qualifies as a marketing qualified lead, has a lead status of "New", and has just downloaded a piece of content. Three separate workflows each pick them up. Three separate email sequences begin.

The result is a prospect receiving overlapping, sometimes contradictory communications, and no single team member who knows it's happening.

"How do you make sure that Jonas doesn't enrol in three or four separate workflows at once, to make sure that he, as the prospect or the lead, receives the best possible experience?"

This is the question workflow visibility answers. Not just which workflows exist, but which ones are competing for the same contact, and which one should actually win.

 

Re-enrolment: When It Makes Sense and When It Doesn't

Re-enrolment settings are one of the most consequential, and most frequently misunderstood, options in HubSpot workflow configuration.

Christian's principle is straightforward. For marketing and sales nurture workflows, re-enrolment is usually the wrong choice. A contact who re-enrols in a seven-email sequence starts at email one again. If they've already received emails four and five, that's a poor experience. If those emails use personalisation based on data that has since changed, it's potentially an embarrassing one.

Operational workflows are a different story. An unsubscribe flow, for example, might legitimately need to trigger again if a contact resubscribes and then unsubscribes a second time.

"When it comes to re-enrolment, it's important to be really careful. For operational workflows, I would say that's where re-enrolment makes more sense than your marketing and sales workflows."

The same logic applies to merging. When a record enrolled in a workflow gets merged into another record, the resulting contact is unenrolled from the workflow it was in, and may or may not re-enrol depending on whether it still meets the criteria. Jonas recommends not enabling re-enrolment as a consequence of merging in most cases, particularly for any workflow that sends external communication. The risk of a contact receiving the same sequence twice outweighs the benefit of ensuring completion.

For workflows where completion genuinely matters, there is a practical workaround: use a custom property to flag whether a contact is currently enrolled in a critical workflow, and use that property as an exclusion criterion in your Koalify merge rules. That way, records that are mid-workflow are protected from being merged until they've completed it.

Koalify has a dedicated article on protecting enrolled contacts from being merged, worth reading if this is a concern in your portal.

 

 

Lists vs Lifecycle Stage: Clearing Up an Old Debate

For years, the prevailing HubSpot best practice was to enrol contacts in workflows through lists. Build a segment, use it as the enrolment trigger, manage re-enrolment through list membership.

Christian's view is that this approach is increasingly outdated. Not wrong in every case, but the wrong default for modern HubSpot setups.

"I still see companies on HubSpot today treating HubSpot like a Rolodex or like a spreadsheet of contacts."

The more reliable source of truth for where a contact sits in the funnel is lifecycle stage and lead status. A contact who goes from content download to demo request to sales-qualified lead to customer should have that entire journey reflected in their lifecycle stage history, not scattered across static list memberships that say nothing about intent or progression.

The practical payoff is attribution. When lifecycle stage is the source of truth, you can trace exactly how a contact moved through the funnel and which touchpoints contributed to the conversion. List-based marketing makes that almost impossible.

That said, lists still have a legitimate role. For event-based follow-up, webinar registrants who attended versus those who didn't for example, a static segment is the right tool because you need to know exactly who is in it at a fixed point in time. And for certain operational use cases, like Jonas's example of re-validating contacts every 30 days, list membership is still the only reliable way to trigger re-enrolment on a time-based condition.

The question is not "lists or lifecycle stage?" but "which is the right tool for what I'm actually trying to do?"

 

Building Workflows With Confidence: The Planning Layer

One of the most practical features Christian demonstrated is Howly's planning module: the ability to draft a workflow before it goes live and see, in advance, which existing workflows it will interact with.

In a portal with hundreds of active automations, building something new without this visibility is guesswork. Update a property in a new workflow and you might inadvertently trigger enrolments in three others. Set a lifecycle stage change as an action and you could interfere with deal assignment logic that has been running correctly for two years.

"This allows you to preemptively make sure that you can do this confidently, that nothing will get messed up if you were to turn this on."

For teams going into an AI-first approach to HubSpot, where HubSpot's Breeze Assistant or an external model is generating workflows, this layer becomes even more important. AI can build a technically valid workflow in seconds. Whether that workflow interacts safely with what already exists is a question only visibility can answer.

 

The Business Case: 15 Hours to 90 Minutes

The customer outcome Christian cited was not a rounding error.

A team of three, working across enterprise portals with 400 to 600 workflows each, was spending 15 hours per engagement untangling workflow structure before they could begin any actual work. With Howly, that same process, mapping connections, documenting issues, producing a client-ready report, takes 90 minutes.

"They draw out the map themselves, drag and drop the notes, do their documentation, their screenshots, their reporting. And from there they know exactly where to get started."

The time saving is real. But the more significant shift is what it unlocks. When an admin can see the full picture of a portal in 90 minutes instead of 15 hours, they can have a different conversation with their client, showing them the actual state of their automation, building confidence in the plan, and getting to meaningful work faster.

"Automation without visibility is just pure guesswork."

That line applies whether you're cleaning up years of workflow debt, planning something new, or trying to understand why a contact is receiving emails they shouldn't be.

 

 

 

Frequently Asked Questions

What is workflow debt in HubSpot?

Workflow debt is the accumulated complexity that builds up in a HubSpot portal over time as workflows are created by different people, consultants, in-house admins, agencies, without a shared map of how they connect. The result is a system where multiple workflows can act on the same contact simultaneously, where property updates in one workflow trigger unintended enrolments in others, and where nobody has a complete picture of what the automation is actually doing.

When should you enable re-enrolment in HubSpot workflows?

Re-enrolment makes sense for operational workflows where the same trigger can legitimately recur, an unsubscribe workflow for example, or a time-based re-validation process. It generally does not make sense for marketing or sales nurture workflows, where re-enrolment would send a contact back to the beginning of a sequence they may have already partially completed.

How does merging contacts in HubSpot affect workflow enrolment?

When a contact enrolled in a workflow is merged into another record, they are unenrolled from that workflow. Whether the resulting merged contact re-enrols depends on whether they still meet the workflow's enrolment criteria and whether re-enrolment is enabled. In most cases, particularly for workflows that send external communication, it is better not to enable re-enrolment on merge. For critical workflows where completion matters, use a custom property to flag enrolled contacts and exclude them from merges until the workflow is complete.

Should you use lists or lifecycle stage for workflow enrolment in HubSpot?

Lifecycle stage and lead status are generally the better source of truth for where a contact sits in the funnel, and should be the primary enrolment trigger for marketing and sales workflows. Lists are still appropriate for event-based segments where you need a fixed point-in-time snapshot, and for certain operational workflows where time-based re-enrolment is required.

What does Howly do for HubSpot admins?

Howly is a workflow visibility and governance layer for HubSpot. It surfaces every workflow in a portal as a node on a canvas, draws connections between workflows based on shared properties, enrolment triggers, and list memberships, and provides a health audit that flags issues like duplicate actions and inactive workflows. It also includes a planning module that lets admins draft new workflows and see their downstream effects before going live.