Extending your Microsoft Dynamics 365

Dynamics 365 CRM offers a layered approach to customisation and it's crucial to choose the right tool for the job while considering complexity, maintainability, and performance. Generally, it's best to start with a no-code/low-code methodology before resorting to a more traditional coding approach.

Upgrade 2024 - Unlock Potential 600x600
Would you like to speak to one of our Dynamics consultants

No-Code/Low-Code Methodology

When we talk about No-Code/Low-Code, you are spoilt for choice, probably a bit too spoilt, that it can be difficult to settle on which is the right tool for the job! We are always here to help you navigate the plethora of options, but in summary this is what you have at your disposal and where it should ideally be used.

Business Rules
  • Define client-side logic executed in the browser
  • Ideal for Simple validations, Field visibility changes and Setting default values
  • No coding required; easy to configure
  • Helps reduce technical debt
  • Replaces some JavaScript use cases for UI logic

Workflows
  • Automate processes without writing code
  • Triggered by CRUD events (Create, Read, Update, Delete)
  • Can Send emails, Create/update records and Trigger other workflows
  • Best for simple, real-time automation within Dynamics 365 CRM

Power Automate (Flows)
  • Cloud-based automation platform for complex workflows
  • Integrates with Dynamics 365, Office 365, SharePoint, Teams and Third-party apps (e.g., Twitter, Slack, Dropbox)
  • Suitable for Simple notifications and multi-step processes with approvals and data handling
  • Visual designer and templates make it very accessible to non-developers
Business Process Flow (BPF)
  • Guides users through processes visually
  • Ensures consistency and enhances user experience
  • Common use cases include Sales Processes, Case Resolution, Event Planning and Real Estate workflows

Custom Entities (Tables)
  • Allows storage of business-specific data
  • Use when standard tables don’t meet needs (customisation should be considered first)
  • Components available for customisation:
    • Columns (Fields) - Capture additional data; best to repurpose where possible
    • Relationships - Link tables (e.g., one account to many contacts)
    • Forms - Customise layout, tabs, fields; reusable and can be created for different functions
    • Views - Filter and sort data like Excel; personal or public
    • Charts - Visualise key metrics; supports decision-making
    • Icons - Custom icons improve record identification and user experience
Want to learn more about extending Dynamics 365 CRM?

Code-Based Customisation

When it comes to a more traditional approach to customisation there is still a good choice of approaches and options, but each requires a more enhanced skill set to make the most of the tools available, what you have to really turbo charge your Dynamics 365 platform include.

JavaScript (JScript)
  • Client-side scripting executed in the user’s browser
  • Used for Complex form manipulations, Validations and UI enhancements
  • Example: Implementing custom calculations on a form
Shift toward web resources and TypeScript for better maintainability.
 
Plugins (C#)
  • Server-side code executed on the Dynamics 365 server
  • Triggered by events
  • Ideal for Complex logic, Data manipulations and System and external integrations
     
Custom Actions
  • Define reusable server-side logic
  • Can be called from Workflows, Plugins, Other code
  • Encapsulate and standardise complex business operations

Web Resources (HTML, JavaScript, CSS, XML, XSL)
  • Files stored in Dynamics 365 to extend the UI
  • Used for Custom user interfaces, Embedding external content and Complex JavaScript functionality

Solutions
  • Packages of customisations for deployment across environments
  • Help manage and organise CRM customisations
  • Commonly deployed using Azure DevOps Pipelines for automation and consistency across environments

By understanding these customisation options and following best practices, you can effectively extend Dynamics 365 CRM apps to meet your unique business requirements. Remember to prioritise declarative methods and only use code-based customisations when necessary.