Skip to main content

HubSpot

How Long Does It Take to Build a HubSpot Workflow?


Our measured average across roughly 300 workflow builds is 2 hours 8 minutes. Why that average is the wrong number to quote, and what to use instead.

Julia HanneyBy Julia HanneyUpdated August 18, 20269 min read
A time tracking report showing the distribution of hours logged across a set of HubSpot workflow build tasks.

Key Takeaways

  • Our measured average across roughly 300 workflow builds is 2 hours 8 minutes, but the distribution runs from about 3 minutes to 10 hours.
  • Quote the type of workflow, not the average of all workflows; averages are for capacity planning, not for client quotes.
  • Branch count, data dependencies and cross-object logic drive build time far more than the number of steps.
  • The scoping question that changes a quote is not how many workflows a client has, but how many they still need. The answer is regularly around 12 when the portal contains 90.
  • AI-generated estimates in our own testing ran roughly twice the hours actually tracked, so treat them as a first draft that a practitioner corrects line by line.

Nobody publishes this number, which is odd, because every agency quoting HubSpot work needs it and almost every one of them is guessing.

Across roughly 300 workflow builds recorded in our own time tracking, drawn from a delivery history of more than 11,000 completed tasks, the average build time is 2 hours 8 minutes. That covers configuration and testing on real client portals, not a demo account, and it includes the ordinary friction of building against data somebody else designed.

The average is the least useful thing in this post. What matters is the distribution around it and the rules for turning it into a quote.

The spread, which is the actual finding

The same data set contains a workflow that took about three minutes: a form submission triggering an email five minutes later, single step, no branching, no dependencies. It also contains a workflow that took ten hours, with twelve logic branches and territory-based routing.

That is a range of two orders of magnitude sitting behind a two hour average. Any agency that quotes "about two hours for a workflow" as a blanket rate is going to lose money on a third of the work and be uncompetitive on the rest.

A more useful way to hold the distribution:

Workflow shapeTypical build time
Single trigger, single action, no branchingMinutes
Linear nurture with delays and a couple of sends1 to 3 hours
Multi-branch logic with property dependencies3 to 6 hours
Cross-object routing, territory or ownership logic, many branches6 to 10 hours

Those bands are a reading of our own distribution rather than an industry benchmark, and your own data will differ. The point is that the shape of the workflow predicts the time far better than the count of workflows does.

The estimating rule we actually use

Take the measured average for the specific type of workflow being requested, then either double it or round up to the three to four hour range for anything with real branching.

That sounds like padding. It is not, and the distinction matters if you are going to defend the number to a client. The measured average is time logged against the build task. It does not include:

  • The conversation that establishes what the workflow is supposed to do, which is frequently longer than the build.
  • Enrollment and suppression design, which never appears in a client's requirements and routinely takes as long as the branching.
  • Testing with real records, as opposed to confirming the canvas looks right.
  • The revision after the client sees it behave on live data.
  • Documentation, which is what makes the workflow supportable by somebody who did not build it.

Double the build number and you have roughly covered the work that surrounds the build. That is the rule, and it holds up across enough engagements that we have stopped arguing about it internally.

What actually drives the time

Branch count, first and by a distance. Each if/then branch is a decision that has to be specified, built, tested and documented, and branches interact. HubSpot evaluates branches in the order they are stacked and stops at the first match, so a five branch workflow is not five times a one branch workflow, it is five branches plus the ordering logic between them.

Data dependencies. A workflow that reads only properties set inside HubSpot is a build. A workflow that reads a property set by an integration is a build plus an investigation, because you have to establish what actually writes that property, how reliably, and how fast. That investigation is where the estimate goes wrong, and getting the delay assumption wrong is one of the most common reasons a workflow reaches a fraction of the contacts it enrolled.

Cross-object actions. Setting a property on an associated company or creating a deal from a contact workflow adds association logic, and association logic adds edge cases.

Enrollment and suppression design. Who enrols, whether existing records enrol, whether re-enrollment is on, and which suppression lists apply. Clients never specify this and it is half the correctness of the finished thing.

Portal condition. Building on a clean portal and building on a portal with 648 custom properties and eleven overlapping lists are different jobs. The second one is archaeology first and configuration second.

The scoping question that changes the quote

When an agency asks us to price a workflow rebuild, the brief almost always arrives as a count. "They have ninety workflows, how much to rebuild them."

That is the wrong question, and answering it produces a quote nobody wants to accept. The question that moves the number is: how many workflows do they actually still need?

The answer is regularly around a dozen. Portals accumulate automation the way garages accumulate paint tins. Workflows are built for campaigns that ended, duplicated to test a variation and never cleaned up, switched off but never deleted, and inherited from two agencies ago. In one portal we audited there were 462 workflows, 200 of them logging errors, across 71 distinct error types. Rebuilding all 462 would have been indefensible. Establishing which ones still had a job was the actual first deliverable.

So the sequence we quote is: inventory and triage first, priced as its own small piece of work, then a build estimate against the surviving list. It gets the agency a defensible number and it usually gets the client a cheaper project than the one they asked for.

Building your own benchmark from your own data

You do not need our number. You need yours, and if you track time at task level you already have it.

The method:

  1. Pick a workflow type you have delivered repeatedly. Lead nurture, lifecycle stage automation, internal notification routing, whatever you actually sell.
  2. Pull every time entry tagged to that task type, not the task-level totals. If your project tool rolls subtask time into the parent in the interface but not through the API, task totals will quietly lie to you. Sum raw time entries.
  3. Take the average and look at the distribution. If the spread is wide, split the category. "Workflow" is too coarse a bucket to estimate from.
  4. Quote the average plus a margin, and say so plainly to the client. "We have built this specific thing dozens of times, our average is X, so I am quoting X plus a margin for your portal's condition" is a far stronger sentence in a sales conversation than any round number.
  5. Feed the actuals back so the catalogue improves with every delivery.

We maintain this as a costed task catalogue with a time estimate per item, built from thousands of individual time entries. It is unglamorous infrastructure and it is the single thing that most improved our quoting accuracy.

What a workflow quote should itemise

An estimate that says "workflow build: 4 hours" is a number a client can argue with and you cannot defend. An itemised one is a conversation about scope rather than about your rate.

The lines we expect to see on a workflow quote:

LineWhy it is separate
Requirements and logic definitionOften the largest line, and the one the client can shorten by turning up prepared
Enrollment and suppression designInvisible in the brief, decisive for correctness
BuildThe part everyone thinks is the whole job
Test with real recordsDistinct from building, and the first thing cut under pressure
Documentation and handoverWhat makes it supportable by someone else later
Revision allowanceA named allowance, so the first change request is not a renegotiation

Two benefits from itemising. The client can see which lines their own behaviour controls, which changes the conversation from price to participation. And when the scope grows, you can point at the line that grew rather than arguing about a single number that moved.

We also put scope changes on their own line rather than inflating the original estimate. Clients read the top-level number; a quiet increase inside it reads as a price rise, and a separate line reads as a decision they made.

Portal condition moves the number more than complexity does

The variable that most often blows an estimate is not the workflow. It is the portal it has to live in.

On a clean portal you build against properties that mean what they say. On an inherited portal you first have to establish which of four similarly named properties is populated, which integration writes it, whether the list you are enrolling from is active or static, and whether the three workflows already touching these records will fight yours. That investigation is real time, it happens before any building starts, and it is not visible in the request.

Signals that a build will take longer than the type suggests:

  • Several properties with near-identical names. Somebody has already solved this problem twice.
  • A high count of inactive workflows. It means nobody deletes anything, so you cannot assume the ones you can see are the ones that matter.
  • Integrations writing to the properties you need. External writers set the pace, and you inherit their latency as your delay assumption.
  • No documentation and no original builder available. Everything has to be established by inspection.

The right commercial response is not a bigger number with no explanation. It is a small, separately quoted discovery step, delivered first, that turns the unknown into a fixed scope. Partners accept that far more readily than a padded build estimate, because it gives them something to tell their client.

Where AI estimates fall down

Since everyone is now generating estimates with a model, the honest counterweight belongs here.

We ran an AI-generated project plan against tracked reality on a real engagement. The plan totalled 26.5 hours. The work took 12.09. On review, specific lines were badly wrong in ways a practitioner spots instantly: a HubSpot data import estimated at three hours, when an import is about ten minutes of work plus half an hour for error handling; project administration estimated at an hour and a half against five minutes actually spent.

The practitioner's summary was that the estimates were blown out, and that matches our broader experience. AI is genuinely good at producing the task breakdown, at surfacing steps a human forgets, and at writing the risk list. It is not good at the numbers, because it has no access to your time data and no calibration against your team.

The workable division of labour: let the model produce the structure, then have someone who has done the work price each line from the catalogue. And when the model does produce hours, do not pad them upward to feel safe. Correct them.

The bottom line

Two hours eight minutes is our measured average across roughly 300 builds, and it is a capacity planning number, not a quoting number. Quote the type of workflow, double the measured build time to cover the work surrounding it, and spend your scoping effort on how many workflows the client still needs rather than how many they have.

If your agency is selling HubSpot automation and estimating it from instinct, that gap closes with delivery data rather than with a better feeling. Our agency automation team builds workflows under partner brands every week and prices them from a costed catalogue, and our guide to HubSpot workflow automation for agencies covers the build discipline behind the numbers.

Sources

  1. HubSpot: Choose your workflow actions (opens in new tab)
  2. HubSpot: Use branches in workflows (opens in new tab)
  3. HubSpot: Manage workflow enrollment settings (opens in new tab)

Frequently Asked Questions

How long does it take to build a HubSpot workflow?

In our delivery data across roughly 300 workflow builds, the average is 2 hours 8 minutes including configuration and testing. Simple single-step automations take minutes. Multi-branch workflows with cross-object logic and territory routing have taken up to ten hours in the same data set.

Why is the average build time a bad number to quote a client?

Because the distribution is wide and skewed. Averaging a three minute automation with a ten hour routing build produces a number that matches neither. Quote from the average for the specific type of workflow requested, then add margin for testing and revisions.

What makes a HubSpot workflow take longer to build?

Branch count is the strongest driver, followed by data dependencies where the workflow reads a property another system sets, cross-object actions, and enrollment and suppression design. The last of these is invisible in a requirements list and routinely doubles the work.

How many workflows does a client portal actually need?

Far fewer than it usually has. Portals arrive with dozens of overlapping and inactive workflows accumulated over years. When we scope a rebuild, the count of workflows genuinely still required is often around a dozen, against ninety in the portal.

Are AI-generated time estimates reliable for HubSpot work?

Not on their own. In one internal comparison an AI-generated plan totalled 26.5 hours against 12.09 hours actually tracked. Specific lines were badly wrong, including a data import estimated at three hours that takes closer to thirty minutes. Use AI for the breakdown, not the numbers.

Agency Automation

Your Agency Runs on Hours. Stop Spending Them on Busywork.

We automate 230+ hours of agency process a month (intake, reporting, delivery ops) so your team ships client work instead.