You have reached the end of configuration when the workaround has become the process. In practice that shows up as six things: a workflow that branches more than about ten times, a report the builder cannot produce, a third party tool holding a core process together, a custom object that is really a spreadsheet, a field nobody can explain, and a rule that lives in someone's head. Any two of those at once and you are past the point where more configuration helps.

Most partners will not tell you this, and it is not because they are dishonest. It is because most partners only do one side. A configuration shop sees a configuration answer. A dev shop sees a build. You get advice shaped by the tools in the room.

We do both, which is the only reason we can afford to say that most of the time, the right answer is to stay in the platform.

The six signals

1. The workflow that branches eleven times

A branch or two is logic. Eleven is a program written in a tool that was not designed for programs, and it has the properties of bad code with none of the safety. Nobody can read it, nobody can test it, and nobody will touch it after the person who built it leaves.

A custom code action inside the workflow is often the fix, and it is not really leaving the platform. It is twenty lines that replace forty branches and can be read in a minute.

2. The report that cannot exist

Somebody asks a reasonable question. How long does a deal sit in each stage, on average, by source, excluding the ones that came back from closed lost. And the report builder cannot answer it, not because you built it wrong but because the question needs data that is not stored, usually a history rather than a current state.

The tell is the spreadsheet. If a person exports every month and does the same manipulation by hand, that manipulation is the missing system.

3. The third party tool holding a core process together

One connector is fine. The point of concern is when a business-critical process depends on a chain of them, each with its own failure mode, none of which alerts anybody when it stops.

The question is not whether it works. It is what happens at 2am on the last day of the quarter when the middle link silently stops firing.

4. The custom object that is really a spreadsheet

Custom objects are excellent when the thing genuinely is an object in your business: a contract, a property, a shipment, a subscription. They go wrong when they are used as a place to park columns, with no relationships and no lifecycle. That is a spreadsheet paying rent.

5. The field nobody can explain

Open your properties list. Count how many nobody can define. Then count how many are written to by more than one automation.

Fields written by several processes at once are where reporting goes to die, because the last writer wins and nobody knows who that was. This is the single most common thing we find in a portal audit and it is almost never on the list of problems the client came to us with.

6. The rule that lives in someone's head

"Deals over this size go to Sarah, unless it is that industry, unless they came from the partner channel." Ask three people and get three answers.

That is not a system, it is a person. It works until they take a holiday.

What the custom layer actually costs

Here is the part that gets left out of the pitch, because it is the part that is not fun to say.

Code has an owner, forever. Not a project cost, a standing one. APIs change, limits change, someone has to be responsible. Budget for it in advance or you will discover it during an outage.

It fails differently. A misconfigured workflow does something visibly wrong. A failing integration often does nothing at all, quietly, for weeks. That means monitoring and proper error handling, which is real work that produces no visible feature.

It concentrates knowledge. Configuration can be understood by an ops person. Code needs a developer. If your only developer is a contractor who is finished in March, you have swapped a platform limitation for a people risk, and the second one is worse.

It is harder to change. Configuration bends when the business changes. Code has to be modified by whoever can modify code. For a process that shifts every quarter, that is a genuine tax.

When to stay in the platform

Four cases, and they cover more ground than most people expect.

The process is still changing. Do not encode something in code that will be different in six weeks. Configure it, let it settle, build it when it stops moving.

It runs occasionally. A monthly manual step that takes ten minutes does not need a build. Ten minutes a month is two hours a year. Weigh that honestly against a system to maintain.

The native feature is coming. HubSpot ships constantly. Building something they will release natively next quarter is the most expensive kind of correct decision.

Nobody would own it. If there is no plausible owner in twelve months, the honest answer is not to build it. An unowned system is a liability with a nice interface.

Two calls, worked through

The one that stays in the platform. A services business wants a deal to advance automatically when a contract is signed, and has been told it needs a custom integration. It does not. The signature tool already writes back to the CRM. The actual problem is that three people each built a pipeline and nobody agreed which stage means signed. That is a design problem wearing a limitation costume, and the fix is a morning of deciding, not a build. Rule out your own setup before you rule out the platform, because most of the time it is your setup.

The one that does not. A business bills on recurring contracts with mid-term variations, and needs to report contract value as at any date in the past. A custom object holds the contract fine. But reporting what a value was three months ago needs history nothing is storing, and no amount of configuration produces a number that was never recorded. That is genuinely the end of the road, and the honest version of that conversation includes the part where somebody owns that code next year.

Same pattern both times. The question is never whether the platform can do it. It is whether the thing you are missing is a decision, a field, or a system, and those have very different price tags.

How to make the call

Three questions, in order.

Is this a limitation or a design problem? Most "HubSpot cannot do this" is actually "our setup cannot do this". Rule the second one out first, because it is cheaper and it is usually the answer.

How often does it run and what does it cost when it fails? High frequency and high consequence justifies a build. Low and low does not, no matter how annoying it is.

Who owns it in a year? If you cannot name them, do not build it yet.

Answer all three and the decision is usually obvious. The businesses that get this wrong are almost never the ones who asked the questions and got them wrong. They are the ones who never asked, and drifted into a custom layer one workaround at a time.

Not sure whether your portal is misconfigured or genuinely out of road?

That is the question we answer most often, and the answer is configuration more often than a dev shop would tell you.

We are Neighbourhood. We build the AI and the revenue system it runs on. AI and RevOps engineering for Australian teams . Diamond HubSpot Partner, 17 HubSpot Impact Awards.

Give us a shout and tell us what's broken.