All articles

Enterprise Systems8 min read

ERP Customization vs Configuration: What Breaks Upgrades and What Does Not

Configuration uses the settings a vendor provides; customization adds or changes code. The difference decides how painful every future upgrade will be. This guide sets out four levels of change, their upgrade risk and a governance process for change requests.

Written byUsama AsifPublished

ERP configuration means using the settings, rules and tools the vendor provides, such as tax codes, approval limits and custom fields. ERP customization means adding or changing code. Configuration usually survives upgrades; extensions built on supported interfaces usually survive with retesting; changes to the vendor's core code are what break upgrades and lock you onto old versions.

The distinction matters most after go-live. Every change made during implementation has to be carried through every future upgrade, by someone, at a cost. This guide sets out four levels of change, how each behaves at upgrade time and how to govern change requests so the system stays maintainable.

If you are implementing a packaged ERP, our ERP implementation services cover configuration, extensions and governance. If the required customizations are piling up, it may be time to compare with custom ERP software.

What is the difference between ERP configuration and customization?

Configuration changes how the product behaves using options the vendor supports; customization changes what the product is by adding code. In practice there are four levels, not two.

LevelWhat it isExamplesUpgrade risk
1. ConfigurationSettings and master data the vendor supportsTax codes, payment terms, approval limits, numbering, user rolesLow: carried forward by the vendor
2. Low-code personalisationIn-product tools for fields, layouts and simple rulesExtra fields, page layouts, report designers, workflow buildersLow to medium: usually retained, sometimes needs review
3. ExtensionNew code using the vendor's supported extension modelNew modules, integrations, event-driven logic, custom reportsMedium: must be retested and sometimes updated each upgrade
4. Core modificationChanging the vendor's own source code or database directlyEditing standard posting logic, altering standard tablesHigh: conflicts on every upgrade; can block upgrading entirely

How do vendors handle extensions?

Most modern ERP vendors push customization into a supported extension model and discourage core changes. Two examples, checked on the vendors' own documentation in October 2026:

  • Microsoft Dynamics 365 Business Central. Microsoft's developer documentation describes extensions written in the AL language as the programming model for adding functionality: you create new objects and extend existing ones, such as adding fields to the item table with a table extension, rather than editing the base objects. Extensions are compiled into app packages and deployed to the environment. Our comparison of Business Central vs custom ERP covers when this model is enough.
  • Odoo. Odoo customization is commonly done through custom modules. Odoo's upgrade documentation states that a database containing custom modules cannot be upgraded until a version of those modules is available for the target version, and it treats upgrading custom code as the customer's job. Our guide on when Odoo customization should become a rebuild explores the tipping point.

The lesson holds across vendors: extensions keep upgrades possible, but they still have to be maintained against every new release. They are not free after go-live.

Which changes break upgrades?

Core modifications break upgrades most often; extensions break them when they depend on behaviour the vendor changes. Common causes:

  • Editing standard code or tables. Every vendor update to the same object conflicts with your change.
  • Extensions that depend on undocumented behaviour. If an extension relies on a field or process the vendor did not commit to, a release can quietly change it.
  • Direct database writes. Integrations that write straight into tables bypass validation and break when the schema changes.
  • Copies of standard reports or pages. A modified copy does not receive the vendor's fixes to the original.
  • Customizations nobody documented. If no one knows a change exists, no one retests it.

Should you customize or change your process?

Change the process when the package's way is reasonable and your way is habit; customize when your way is how you win or how you stay compliant. A simple rule helps.

QuestionIf yesIf no
Does this process differentiate us with customers?Consider extensionAdopt the standard process
Is it required by a regulator, contract or auditor?Configure or extend to meet itAdopt the standard process
Can configuration or low-code tools achieve it?Use them firstGo to the next question
Can a supported extension achieve it?Extend, with tests and documentationDo not modify core; reconsider the package
Will we need this in five years?Build it properlyUse a workaround or report

When many requirements fall to the bottom rows, the package may not fit. That is the point where a bespoke or hybrid approach becomes worth costing.

How should change requests be governed?

Govern every change request through one route, with a business owner, a level classification and an upgrade impact note. Without this, customization accumulates one reasonable request at a time.

Change request checklist

  • Business owner named and problem stated in business terms
  • Standard process and configuration options checked first
  • Level classified (configuration, personalisation, extension, core modification)
  • Core modifications refused unless the steering group signs off the upgrade cost
  • Upgrade impact noted: which objects are touched, what must be retested
  • Automated or scripted tests added for extensions
  • Documentation updated in a register of all customizations
  • Approval recorded, with priority and target release

Approval chains for change requests work like any other business approval; our approval workflow design guide covers thresholds and delegation.

Keep a customization register

A register lists every configuration choice that matters, every extension and every integration, with an owner and test notes. Before each upgrade, the team works through the register. It is also the first document a new implementation partner should ask for. Include it as a deliverable when you write your ERP RFP.

Illustrative scenario

A distributor asks for a change so warehouse staff cannot ship orders for customers over their credit limit. The team checks configuration first and finds a standard credit hold setting that covers most of the need. The remaining requirement, an override with manager approval logged against the order, is built as a small extension using supported events, documented in the register and given test scripts. No standard code is touched, and the next upgrade needs only a retest.

How do you test customizations before an upgrade?

Test every extension and integration in a copy of production running the new version, before the upgrade reaches live users. A repeatable routine:

  1. Read the release notes and mark any area that touches objects listed in your customization register.
  2. Refresh a sandbox from production data and apply the new version there first.
  3. Recompile or reinstall extensions and fix any errors the platform reports.
  4. Run automated tests for each extension, then the scripted business scenarios: order to cash, purchase to pay, period close.
  5. Test integrations end to end, including banks, e-commerce and payroll, with real file formats.
  6. Have key users sign off the scenarios they own.
  7. Schedule the live upgrade with a rollback plan and a short hypercare period.

The effort of this routine is the real cost of customization. A system with a few well-documented extensions can be retested in days; one with many undocumented changes can take far longer and tends to fall behind on versions.

What should the implementation contract say about customization?

The contract should make customization visible and owned. Points worth writing in:

ClauseWhy it matters
Deliverable: customization register kept up to dateYou can upgrade or change partner without archaeology
Ownership of extension source code and documentationYou are not locked to one partner
Standard-first rule: configuration before codeLimits unnecessary custom work
Upgrade support: who retests and fixes extensions, on what termsAvoids surprises at the first major release
Out-of-scope requests reviewed and agreed before work startsCost and delivery changes are transparent
Test scripts handed over with each extensionRetesting does not depend on memory

What about custom ERP: is there still a difference?

In a custom ERP the same discipline applies, but you own the upgrade cycle. There is no vendor release to break your changes; instead, you decide when frameworks, libraries and modules are updated. Configuration still matters: approval limits, tax codes and roles should be settings that administrators change, not code that developers change. A well-built custom system is designed so routine business changes are configuration, and only genuinely new capability is development.

When is heavy customization the wrong path?

Heavy customization is the wrong path when it recreates a bespoke system inside a package. Signs:

  • Most of your core workflow lives in extensions rather than standard features
  • Upgrades are postponed because retesting customizations is too costly
  • Only one consultant understands the changes
  • Licence fees are paid for features you have replaced with custom code

At that point, compare the cost of continued customization with a cleaner route: re-implementing closer to standard, or moving the distinctive workflow to purpose-built modules integrated with the package.

How to start

List every customization you have or plan, classify each by the four levels, and note who owns it. If you are selecting a new ERP, write the classification into your requirements so vendors must say which needs are configuration and which need code. Our software requirements brief template helps structure this. Timeline Digital builds 2 to 3 key modules as a free pilot before the full project starts, which is a practical way to test whether your distinctive workflow belongs in an extension or a purpose-built module. Discuss the project with us.

Frequently asked questions

What is the difference between ERP customization and configuration?

Configuration uses settings and tools the vendor supports, such as tax codes, approval limits, user roles and custom fields. Customization adds or changes code, either as an extension using the vendor model or as a modification of the vendor core. Configuration is normally carried forward through upgrades; customization must be maintained and retested by whoever owns it.

Does ERP customization always break upgrades?

No. Extensions built on the vendor supported model usually survive upgrades, though they must be retested and sometimes updated. Modifications to the vendor core code or direct database changes are what typically break upgrades. Undocumented changes are also risky because nobody knows to retest them before the new release goes live.

How do you customize Business Central?

Microsoft documentation describes extensions written in the AL language as the way to add functionality to Dynamics 365 Business Central. Developers create new objects or extend existing ones, for example adding fields to a standard table with a table extension, and deploy the result as an app package. In-client tools also allow some page design changes without code.

Who upgrades Odoo custom modules?

Odoo upgrade documentation states that a database with custom modules cannot be upgraded until versions of those modules exist for the target Odoo version, and treats upgrading custom code as the customer responsibility. In practice that means your developer or implementation partner must port and test each custom module for every major upgrade.

How can we limit ERP customization?

Route every change request through one process with a business owner, check standard features and configuration first, classify the change level, refuse core modifications unless the upgrade cost is accepted, add tests for extensions and record everything in a customization register. Reviewing the register before each upgrade keeps the system maintainable over time.

When does customization mean we chose the wrong ERP?

When most of your core workflow runs in custom code, upgrades are postponed because retesting is too expensive, and only one consultant understands the changes. At that point compare continued customization with re-implementing closer to standard or moving the distinctive workflow into purpose-built modules integrated with the package.

Topics in this article

  • ERP Customization
  • ERP Configuration
  • ERP Upgrades
  • ERP Implementation
  • Change Management
  • Enterprise Systems

Start a conversation

Tell us how your business works.

Describe what is slowing your team down. We will help you work out what to build, and how a free pilot lets you judge our work before the full project.

Prefer WhatsApp? Start a chat

What happens next

  1. You send a short brief

    The problem, the people involved and any target date. A senior engineer replies within 4 business hours.

  2. We understand your workflow

    A first call about how your business works today. An NDA can be signed before you share details.

  3. You test a free pilot

    You choose 2 to 3 key modules and we build them first, so you judge real software before the full project.