I inherited a HubSpot portal with hundreds of workflows. Where do I start?
Short answer
Not with a delete. Start with an inventory: every workflow and its status, every property two workflows both write to, every list nothing uses any more.
Then the data those workflows read, then the lifecycle and pipeline rules they argue over. Suspend and date what looks dead instead of removing it, because a disabled workflow can hold the only copy of a calculation. Most of the inventory needs a custom coded action, so Data Hub Professional.
Read the whole answerShow less
What a spec looks like
The nine sections, and the files
Every spec follows the same nine sections, so a team reads one and knows how to read all of them.
- Outcome, when to use it and when not to
- Prerequisites: properties, lists, tiers, with the JSON to create them
- Enrollment and re-enrollment, then every step with its parameters
- Known pitfalls, a test plan, variants, and the YAML build spec
PDF, Markdown, properties JSON, workflow JSON, custom code where used. Test plan and known pitfalls in every spec.
Each spec states its minimum tier. The 12 free ones open in full, the others show their public preview.
The 39 specs, in build order
Inventory: what exists and who touched it
Lists every workflow and its status, reports enrollment and errors weekly, and starts a written trail of who changed what.
What each spec doesHide
Conflicts: two workflows writing the same property
Finds shared triggers, then puts a referee on the three fields that get overwritten most: lifecycle stage, deal stage and probability.
What each spec doesHide
Show the 2 other specs in this groupShow fewer
The data underneath: duplicates, gaps, orphans
Cleans what the automation reads, because a workflow branching on a blank field is not a broken workflow, it is a broken record.
What each spec doesHide
Show the 5 other specs in this groupShow fewer
What is still running without an owner
Stale lists, dead integrations, sequences nobody stopped, tasks piling up on a deactivated user, leads sitting unassigned since the handover.
What each spec doesHide
Show the 3 other specs in this groupShow fewer
Lifecycle and pipelines, rebuilt in one place
One workflow owns each transition, with the timestamps and the stuck-record alerts that make the pipeline readable again.
What each spec doesHide
Show the 3 other specs in this groupShow fewer
Governance, so the next person does not inherit this
A completeness score to measure the cleanup, a scheduled sweep, a periodic review with a named owner, and a lock on the records that should stop moving.
What each spec doesHide
The 3 things that break this, and how the specs stop them
Never delete an inherited workflow. Suspend it and date it
A disabled workflow is not dead weight, it is evidence.
It can hold the only surviving logic behind a field your reports still read, a seasonal campaign that runs every March, or a one-time migration somebody may need to explain. Nothing in HubSpot tells you which. The inventory spec is deliberately written to surface disabled workflows without judging intent, and the list hygiene spec carries the same warning: archiving a list that an active workflow uses in its enrollment or suppression criteria changes that workflow's behaviour without a single error anywhere. Turn it off, rename it with the date you suspended it and your initials, wait a full quarter, then decide.
How the specs stop itShow less
No enrollment in 90 days does not mean nobody needs it
The obvious first cut on a portal with four hundred workflows is the ones that have not enrolled a record since spring.
It is also the cut that breaks a renewal notice nobody thinks about until the contract lapses. Annual reviews, quarter-end snapshots and holiday campaigns all look identical to abandonment on a ninety day window. Worse, a workflow's lastUpdated timestamp moves when an unrelated bulk action touches it, so recency proves nothing either way. Read the enrollment history over twelve months, not three, and check whether the workflow writes a property that appears in a report or a list before you touch it.
How the specs stop itShow less
Two workflows can trigger each other into a loop
The classic pair on an inherited portal: one workflow sets company lifecycle stage from the deal, another corrects contact lifecycle stage when it moves backwards, and each one's write satisfies the other's enrollment trigger.
Both run forever, both look successful in history, and the field flickers between two values all afternoon. Any workflow that edits the same property it enrolls on has this shape, and re-enrollment settings are what decide whether it exits on the second pass. The conflict detection spec finds shared triggers across the portal, but it compares entry conditions only, so a pair that loops through different triggers still has to be traced by hand.
How the specs stop itShow less
What this bundle builds
Somebody left. You got the portal. Four hundred workflows, no documentation, a properties list with three fields that look like they do the same thing, and a sales team already asking why leads stopped arriving on Tuesdays.
This bundle is the audit, in the order an audit actually runs. Five specs take inventory: every workflow and its status in one monthly report, a weekly enrollment and error digest, an owner change log, a timeline note on every critical property edit, and a flag that keeps test records out of the numbers. Six find the conflicts, starting with the report that compares enrollment triggers across the whole portal and ending with referees on the three fields that get overwritten most often. Nine clean the data those workflows read, because most of what looks like broken automation is a branch evaluating a blank field. Seven surface what is still running with nobody behind it: stale lists, failing integration syncs, sequences that never stopped, leads owned by a user who left in March. Seven rebuild the lifecycle and pipeline layer in one place. Five close the gate.
Sales or Marketing Hub Professional for the cleanup, the lifecycle work and the pipeline work. Data Hub Professional for the inventory and detection reports, which is where the custom coded actions live.
Read the restShow less
How the pieces fit together
Inventory before anything else, and resist the urge to fix what the first report shows you. The disabled workflow list, the shared trigger report and the stale list report all take a scheduled run to produce their first useful output, so build all three, then read them together a week later.
Conflicts second, because a data cleanup that runs while two workflows are still fighting over lifecycle stage gets overwritten by Friday. Decide which system owns each contested property, write it down, then build the referee. The lifecycle specs and the company sync spec share that one field, so they are built as a set or not at all.
Data third. The normalization pass is the only spec here that enrolls history rather than new records, so export the source list before you run it, since removing records as a progress indicator also destroys your targeting.
Governance last, when you know which gaps this portal actually has. The completeness score is the number you report upward.
What you get
- 39 specs, from a 15 minute unsubscribe guard to an 80 minute automation health digest, around 23 hours of build in total
- Each spec as PDF and Markdown, with enrollment criteria, step list, diagram, test plan and the pitfalls written out
- Properties JSON: 59 property definitions across contacts, deals and companies, including the status flags that stop these workflows re-triggering on their own writes
- Workflow JSON in Automation API format, switched off on import, so nothing runs before you have read it
- Custom coded actions: 12, all in the inventory and detection specs, with the API fields to confirm against the live developer docs marked inline
- Tier stated per spec: 17 Sales Hub Professional, 15 Data Hub Professional, 5 Marketing Hub Professional, 1 Data Hub Enterprise, 1 Sales Hub Enterprise
- Static lists, review queues and their named owners specified, not left as an exercise
- Test plans that cover the negative path: the blank field, the record owned by a deactivated user, the workflow that enrolls nothing
- One click install for Full and Agency buyers
Who it is for, and who should skip it
For the consultant walking into a portal on day one with a fixed number of billable days, and for the admin who took over when the last one left. The first three reports give you something to show in a meeting before you have changed anything.
Be honest about the ceiling. On a portal with several thousand contacts, multiple teams and years of custom objects, this is the instrumentation for an audit, not the audit itself. It finds shared triggers and dead lists. It cannot tell you that finance depends on a field the CRM calls something else. That conversation is human, it takes days, and no spec replaces it. If the portal is small and duplicates are the real problem, take the cleanup bundle instead.
Questions admins ask
How do I audit a HubSpot portal I just inherited?
Inventory first, in writing, before a single change. You want the list of every workflow with its enabled status, the pairs that share an enrollment trigger, the lists nothing references, and the integrations whose sync is failing quietly. That is four scheduled reports and about three hours of build. Only then does it make sense to decide what to suspend, because until you have that inventory every decision is a guess about somebody else's intent.
Can I see which HubSpot workflows are not being used?
Not from the interface in any useful way. The workflow list sorts by status and last updated, which tells you almost nothing on a portal this size. Reading the Automation API through a custom coded action gets you the real picture: status, trigger and enrollment counts across every flow in one report. That is a Data Hub Professional action, and the API response shape has moved before, so the spec marks the fields to confirm against the live developer docs before you rely on them.
How many workflows is too many in one HubSpot portal?
Count is the wrong measure. Four hundred single-purpose workflows with clear names are easier to work with than forty that each do six things. What actually hurts is overlap: two workflows writing the same property, three sending a version of the same notification, a suppression list referenced by one and archived by another. Measure conflicts, not volume, which is why the second component in this bundle exists.
Should I rebuild the automation from scratch instead?
Rarely, and never on the first pass. A rebuild assumes you understand every rule that exists, and on an inherited portal you do not yet. The cheaper route is to freeze new automation, clean the data the current workflows read, put one owner on each contested property, and rebuild only the lifecycle and pipeline layer where conflicts concentrate. Seven specs here cover that layer. If a full rebuild still looks right after those, you will at least know what you are replacing.
Do I need Data Hub Professional to audit a portal?
For the inventory half, yes. Nothing native lists other workflows, reads their status or compares their triggers, so sixteen of these specs sit at Data Hub tier, twelve of them on a custom coded action, and one automation health report needs Enterprise. The other twenty three run on Sales or Marketing Hub Professional, and those are the data cleanup, lifecycle and pipeline specs. A practical order on a portal without Data Hub: build the inventory by hand once, then spend the licence question on the conflict report rather than on the cleanup.
Read 12 complete specs before you pay.
One per category, same format as the paid ones. Email only, no card.
We email the link, then a short note when specs change. Nothing else.
Here it is. Download the pack now (.zip) The link is in your inbox too.
Browse the library