When Customising Dynamics 365 Becomes a Liability

Customising Dynamics 365 can feel like the fastest path to meeting stakeholder needs, but it often leads to long-term complicationsโ€”difficult upgrades, support issues, and reduced system agility. Over time, a cleaner, more maintainable approach delivers more value. This post shares practical strategies for avoiding unnecessary customisations, focusing instead on standard features, business-aligned decision-making, and sustainable system design..

Dawn Thiart

8/23/20251 min read

๐Ÿ”ง ๐—ช๐—ต๐—ฒ๐—ป ๐—–๐˜‚๐˜€๐˜๐—ผ๐—บ๐—ถ๐˜€๐—ถ๐—ป๐—ด ๐——๐˜†๐—ป๐—ฎ๐—บ๐—ถ๐—ฐ๐˜€ ๐Ÿฏ๐Ÿฒ๐Ÿฑ ๐—•๐—ฒ๐—ฐ๐—ผ๐—บ๐—ฒ๐˜€ ๐—ฎ ๐—Ÿ๐—ถ๐—ฎ๐—ฏ๐—ถ๐—น๐—ถ๐˜๐˜†

Itโ€™s always tempting to customise Dynamics 365. A stakeholder wants a new plugin to replicate an old spreadsheet calculation, a custom workflow to skip standard approval logic, or a completely new form just for their teamโ€”even though the standard one already works.

But over time, Iโ€™ve learned that every shortcut adds weightโ€”and eventually, that weight slows everything down.

Hereโ€™s why I stopped reaching for custom solutions by default:

  • ๐—จ๐—ฝ๐—ด๐—ฟ๐—ฎ๐—ฑ๐—ฒ๐˜€ ๐—ด๐—ฒ๐˜ ๐—บ๐—ฒ๐˜€๐˜€๐˜†. Even small updates become a risk when too much custom logic is in place.

  • ๐—ฆ๐˜‚๐—ฝ๐—ฝ๐—ผ๐—ฟ๐˜ ๐—ฏ๐—ฒ๐—ฐ๐—ผ๐—บ๐—ฒ๐˜€ ๐—ฟ๐—ฒ๐—ฎ๐—ฐ๐˜๐—ถ๐˜ƒ๐—ฒ. When no one remembers why something was built a certain way, youโ€™re stuck playing detective.

  • ๐—–๐—ต๐—ฎ๐—ป๐—ด๐—ฒ ๐—ฏ๐—ฒ๐—ฐ๐—ผ๐—บ๐—ฒ๐˜€ ๐—ต๐—ฎ๐—ฟ๐—ฑ๐—ฒ๐—ฟ. The more tailored the system, the harder it is to adjust when the business shifts.

  • Microsoft often already ๐˜€๐—ผ๐—น๐˜ƒ๐—ฒ๐—ฑ ๐˜๐—ต๐—ฒ ๐—ฝ๐—ฟ๐—ผ๐—ฏ๐—น๐—ฒ๐—บ. Standard features are deeper than most people realise.

Now, I treat customisation as a last resort:

  • Start with ๐˜€๐˜๐—ฎ๐—ป๐—ฑ๐—ฎ๐—ฟ๐—ฑ ๐˜๐—ฎ๐—ฏ๐—น๐—ฒ๐˜€ ๐—ฎ๐—ป๐—ฑ ๐—ป๐—ฎ๐˜๐—ถ๐˜ƒ๐—ฒ ๐—ณ๐—ฒ๐—ฎ๐˜๐˜‚๐—ฟ๐—ฒ๐˜€โ€”theyโ€™re there for a reason.

  • Say yes to ๐—ฝ๐—ฟ๐—ผ๐—ฐ๐—ฒ๐˜€๐˜€ ๐—ถ๐—บ๐—ฝ๐—ฟ๐—ผ๐˜ƒ๐—ฒ๐—บ๐—ฒ๐—ป๐˜, not to replicating legacy logic.

  • Only build when thereโ€™s ๐—ฟ๐—ฒ๐—ฎ๐—น ๐—ฏ๐˜‚๐˜€๐—ถ๐—ป๐—ฒ๐˜€๐˜€ ๐˜ƒ๐—ฎ๐—น๐˜‚๐—ฒโ€”otherwise, simplify.

  • ๐—–๐—ต๐—ฎ๐—น๐—น๐—ฒ๐—ป๐—ด๐—ฒ ๐—ฎ๐˜€๐˜€๐˜‚๐—บ๐—ฝ๐˜๐—ถ๐—ผ๐—ป๐˜€โ€”just because it was done a certain way before doesnโ€™t mean it should be again.

  • Use ๐—ฃ๐—ผ๐˜„๐—ฒ๐—ฟ ๐—”๐˜‚๐˜๐—ผ๐—บ๐—ฎ๐˜๐—ฒ ๐—ฎ๐—ป๐—ฑ ๐—ฃ๐—ผ๐˜„๐—ฒ๐—ฟ ๐—”๐—ฝ๐—ฝ๐˜€ ๐—ณ๐—ผ๐—ฟ ๐—ฒ๐—ฑ๐—ด๐—ฒ ๐—ฐ๐—ฎ๐˜€๐—ฒ๐˜€ before jumping into plugins or custom code.

  • ๐—Ÿ๐—ฒ๐˜ƒ๐—ฒ๐—ฟ๐—ฎ๐—ด๐—ฒ ๐— ๐—ถ๐—ฐ๐—ฟ๐—ผ๐˜€๐—ผ๐—ณ๐˜โ€™๐˜€ ๐—ฟ๐—ผ๐—ฎ๐—ฑ๐—บ๐—ฎ๐—ฝโ€”sometimes a requested feature is already coming. โ€ข Set a ๐—ฐ๐—น๐—ฒ๐—ฎ๐—ฟ ๐—ฟ๐—ฒ๐˜ƒ๐—ถ๐—ฒ๐˜„ ๐—ฝ๐—ฟ๐—ผ๐—ฐ๐—ฒ๐˜€๐˜€ ๐—ณ๐—ผ๐—ฟ ๐—ฐ๐˜‚๐˜€๐˜๐—ผ๐—บ ๐—ฟ๐—ฒ๐—พ๐˜‚๐—ฒ๐˜€๐˜๐˜€โ€”make teams justify the need.

  • ๐—ฃ๐—ฟ๐—ถ๐—ผ๐—ฟ๐—ถ๐˜๐—ถ๐˜€๐—ฒ ๐˜€๐˜‚๐—ฝ๐—ฝ๐—ผ๐—ฟ๐˜๐—ฎ๐—ฏ๐—ถ๐—น๐—ถ๐˜๐˜†โ€”if itโ€™s going to be hard to maintain, think twice.

  • Keep the ๐—ฒ๐—ป๐—ฑ-๐˜‚๐˜€๐—ฒ๐—ฟ ๐—ฒ๐˜…๐—ฝ๐—ฒ๐—ฟ๐—ถ๐—ฒ๐—ป๐—ฐ๐—ฒ ๐—ณ๐—ฟ๐—ผ๐—ป๐˜ ๐—ฎ๐—ป๐—ฑ ๐—ฐ๐—ฒ๐—ป๐˜๐—ฟ๐—ฒโ€”consistency beats novelty.

  • Maintain a ๐—ฐ๐˜‚๐˜€๐˜๐—ผ๐—บ๐—ถ๐˜€๐—ฎ๐˜๐—ถ๐—ผ๐—ป ๐—ฟ๐—ฒ๐—ด๐—ถ๐˜€๐˜๐—ฒ๐—ฟโ€”know whatโ€™s been built, why, and who owns it.

  • Build with ๐—ฟ๐—ฒ๐˜‚๐˜€๐—ฎ๐—ฏ๐—ถ๐—น๐—ถ๐˜๐˜† ๐—ถ๐—ป ๐—บ๐—ถ๐—ป๐—ฑโ€”if it canโ€™t be reused elsewhere, reconsider.

  • Donโ€™t customise what you can solve ๐˜๐—ต๐—ฟ๐—ผ๐˜‚๐—ด๐—ต ๐˜๐—ฟ๐—ฎ๐—ถ๐—ป๐—ถ๐—ป๐—ด ๐—ผ๐—ฟ ๐—ฝ๐—ฟ๐—ผ๐—ฐ๐—ฒ๐˜€๐˜€ ๐—ฐ๐—ต๐—ฎ๐—ป๐—ด๐—ฒ.

Dynamics works best when itโ€™s kept clean, understood, and aligned with how Microsoft continues to evolve the platform. Less custom means more flexibilityโ€”and thatโ€™s where the long-term wins are.