The question that decides it

Not "can the platform do this" — it usually can, somehow. It is "is this process one the platform's model was designed for?" Fighting the model is what makes extensions expensive, and the cost arrives as maintenance rather than as a quote.

Every business reaches a point where the platform does not do what it needs. The choice at that point shapes the next five years of cost.

Three options, not two

OptionSuitsFails when
Configure within the platformRequirement is close to the standard modelConfiguration becomes a maze
Extend the platformRequirement fits the model but needs custom logicYou are working around the model
Build alongside, integratedThe process is genuinely yours and centralYou rebuild what the platform already does

The middle option is where most teams should land, and the third is where teams go too early — usually because configuration was never properly attempted.

Signals for each

Extend when

  • The platform's data model fits
  • Users live in the platform already
  • The requirement is a variation, not a departure
  • The platform handles the hard parts
  • Time to value matters

Build alongside when

  • The process is your differentiator
  • The data model genuinely does not fit
  • You keep hitting platform limits
  • Users are outside the platform
  • Performance requirements exceed it

"Our process is unique" is true far less often than it is claimed. Most processes described as unique are a standard process with local vocabulary and a few genuine differences. Separating the real differences from the habits is the most valuable hour in this decision — and it usually shrinks the scope considerably.

The cost comparison people get wrong

CostExtensionCustom build
Initial developmentLowerHigher
Authentication, permissions, auditInheritedYou build it
Hosting and operationsPlatform's problemYours
Platform upgrade compatibilityOngoing effortNot applicable
Working around the modelCompounds over timeNot applicable
Freedom to change directionConstrainedFull

Authentication, permissions, audit logging and operations are substantial engineering that extensions get for free. Underestimating them is the most common reason custom builds overrun.

The hybrid that usually wins

  1. The platform stays the system of record for standard entities — customers, orders, tickets.
  2. Your differentiated process runs in your own service, where it can evolve freely.
  3. A clean integration boundary between them, with one system owning each field.
  4. Users work in the platform where possible, with your capability surfaced inside it.
  5. The boundary is documented, so either side can be replaced without archaeology.

Keep the boundary clean from day one, whichever way you go. The teams who can extract a component in a defined project are the ones who drew a line early. The teams facing a rewrite are the ones whose custom logic grew tendrils into every corner of the platform configuration.

Deciding in a week

  1. Write the process down as it actually runs, not as documented.
  2. Mark each step as standard, local variation, or genuinely differentiated.
  3. Attempt the standard steps in configuration. Actually try it.
  4. Scope extension work for the variations.
  5. Consider a separate build only for the differentiated steps, if any survive step two.
  6. Cost all three over five years, including maintenance.

The warning sign that you chose wrong

If your team's conversations are consistently about how to make the platform accept something rather than about the business problem, the extension has outgrown its fit. That is a signal to extract the offending piece — not to add another workaround on top of the existing ones.

Facing this decision? Describe the process and where the platform resists it — we build both and will say which serves you. See our Salesforce and Zoho services, and over-customisation warning signs.

Frequently asked questions

To build, usually. To live with, not always. An extension fighting the platform's model costs more over five years than a focused custom application would have — the effort shows up as maintenance rather than as an invoice, which is why it goes unnoticed.
Yes, and it is often the right sequence. Prove the process inside the platform, then extract the part that outgrew it. What makes this work is keeping the boundary clean from the start so extraction is a project rather than an excavation.
Then you delete your extension, which is a good outcome. This risk argues for building close to the platform rather than far from it — deep custom work is what becomes stranded when the vendor ships the same thing.