Copilot said:

Dynamics 365 Field Service: Scheduling Inspections Every 5, 10 or Even 20 Years – Yes, It’s Possible

One of the strengths of Dynamics 365 Field Service Agreements is the ability to automatically generate recurring Work Orders for preventive maintenance, inspections, and service activities. Organizations commonly use agreements for monthly, quarterly, or annual visits. Microsoft even highlights agreements as the standard mechanism for recurring inspections and maintenance schedules. [learn.microsoft.com]

But what happens when your business requirements don’t fit the traditional recurrence patterns?

The Challenge

During a recent Field Service implementation, business users needed to schedule regulatory inspections and diagnostics on customer assets at very long intervals:

  • Every 5 years
  • Every 10 years
  • Every 20 years

Examples include:

  • Safety inspections
  • Infrastructure certifications
  • Industrial equipment diagnostics
  • Compliance-driven audits

At first glance, Customer Agreements seem like the perfect fit. However, consultants quickly run into two challenges:

1. The scheduling logic starts from a deadline date

The business wanted future Work Orders to be calculated relative to a certification or expiration deadline rather than a simple recurring maintenance schedule.

2. The recurrence UI appears limited

The Agreement Booking Recurrence dialog is designed around familiar patterns such as:

  • Daily
  • Weekly
  • Monthly
  • Yearly

There is no obvious “every 10 years” or “every 20 years” option in the user interface.

As a result, many consultants assume that these scenarios require custom development or Power Automate automation.


The Investigation

While researching the issue, we reviewed Microsoft documentation on Agreements and several community implementations. Microsoft documents that agreements rely on recurrence definitions and allow recurrence patterns to be stored behind the scenes as recurrence settings.

We also found community examples showing how yearly recurrence patterns can be generated programmatically by populating the recurrence settings directly.

However, the key question remained:

Can standard Field Service Agreements support 5-year, 10-year, or 20-year interventions without customization?


Resolution: Think in Months, Not Years

Following investigation and feedback from the Product Group, the answer is yes.

Although the recurrence dialog doesn’t make this obvious, the underlying recurrence engine supports large monthly intervals.

Workaround

Instead of choosing a yearly recurrence:

  1. Set the recurrence pattern to Monthly
  2. Configure Occur every X months

Examples:

RequirementMonthly Interval
Every 5 years60 months
Every 10 years120 months
Every 20 years240 months

Example: Inspection Every 10 Years

Configure the Agreement Booking Setup recurrence as follows:

  • Pattern: Monthly
  • Occurs Every: 120 Months
  • Start Date: Inspection baseline date
  • End Date: As required by the agreement lifecycle

The recurrence engine will create booking dates every 120 months, effectively resulting in a 10-year inspection cycle.

Similarly:

  • 60 months = 5 years
  • 240 months = 20 years

No custom code required.


Why This Works

Behind the scenes, the Field Service Agreement recurrence engine stores recurrence information independently from the simplified user interface. Microsoft documentation also notes that recurrence definitions contain frequency values that can be imported and configured beyond the visible wizard options.

The UI may not explicitly advertise multi-decade schedules, but the recurrence engine is capable of handling them when expressed as monthly intervals.


Things to Consider

Before implementing very long-running agreements, consider the following:

Agreement Duration

Ensure the Agreement End Date is sufficiently far in the future to cover the required cycles.

Work Order Generation Horizon

Verify the Generate Work Order Days in Advance configuration aligns with your operational planning horizon.

Asset Lifecycle Changes

Over a 10- or 20-year period:

  • Assets may be replaced
  • Ownership may change
  • Regulatory requirements may evolve

Some organizations therefore prefer combining Agreements with review processes before automatically generating future Work Orders.

Reporting and Visibility

Because interventions are generated so far apart, consider adding:

  • Compliance dashboards
  • Upcoming inspection views
  • Power BI alerts
  • Review workflows

This helps ensure long-term inspections don’t become invisible until the due date approaches.


When Customization Might Still Be Needed

The monthly workaround solves the recurrence challenge, but customization may still be required when:

  • The next inspection date is calculated from a certification result.
  • Inspection intervals vary dynamically based on risk levels.
  • Regulatory deadlines are recalculated after each inspection.
  • Complex compliance rules determine the next service date.

In those cases, Power Automate or custom scheduling logic may still be appropriate.


Conclusion

If you’re implementing Dynamics 365 Field Service and need to schedule inspections every 5, 10, or even 20 years, don’t assume customization is required.

A simple but not-so-obvious configuration can achieve the requirement:

✅ Set recurrence to Monthly
✅ Use 60, 120 or 240 months as the interval
✅ Leverage the standard Agreement framework

It’s a great example of how the underlying Field Service platform is often more flexible than the user interface suggests—and sometimes the solution is simply thinking in months instead of years.

Power Platform CI/CD

One of the biggest challenges in Dataverse development is avoiding collisions between developers working on the same solution. This asset provides a practical approach to developer isolation by focusing on the components that change most frequently—Tables, Columns, Forms, and Views. The result is a more scalable ALM setup, fewer merge conflicts, and a smoother development experience for Power Platform teams.

Kudos to Bohdan Cherchyk!

cherchyk/PowerPlatformCiCd

Looking for FastTrack Architecture Insights content aligned on Dynamics 365 across Customer Engagement and Finance & Operations Apps?

Look no further! Catch up on the recommended implementation practices across Customer Engagement and Finance & Operations apps. The content is created and shared by the solution architects from Dynamics 365 engineering team. This is good starting point: https://github.com/rshanthini/Dynamics-365-FastTrack-Architecture-Insights.

Looking for Microsoft Partner Resources?

Then you know that we have the default learning on https://learn.microsoft.com, but did you know that most of the content/documentation is stored on GitHub? As well as some specific Partner related resources….

Recently I was looking for the latest documentation on Customer Insights and I found the following page: https://microsoft.github.io/PartnerResources/skilling/d365-academy/business-applications/customer-data-platform/customer-insights.

Looking at how the url is constructed, you udnerstand that there’s additional content to be found here.

Following this url you can find Microsoft Partner resources around what they call: Academies and Partner Showcases.

Most interesting would be the Academis covering:
– AI & ML
– Azure Data
– Developer Velocity
– Dynamics 365
– Azure Infrastructure
– Modern Analytics
– Partner Onboarding
– Security
– Teams
– Nonprofit Resources

Have a look for your self and hope this helps!

EasyRepro Test Automation or something else… ?

In the “couloir” we already knew since a couple of years that Microsoft was investing in Playwright.

Customer, partners, peers,… looking at test automation for Power Platform or Dynamics 365 CE always wondered why EasyRepro is using Selenium and why there is no Playwright version of EaysRepro.

I suspect that in these odd cases it always boils down onto roadmap challenges. But no worries, the FastTrack team has you covered with a open-sourceproject to start your initial Dynamics 365 Customer Service testing.

Read all about this here: Set up test automation with Playwright – Dynamics 365 | Microsoft Learn

How do I expose my Generative AI models towards other internal consumers?

No worries, this recent blog post from the Azure Integration Services gives you all the possible approaches and examples. Another hidden gem that can save you some time when architecting these types of challenges.

Main questions answered?

  1. How many Azure Open AI (AOAI) APIs should I create?
  2. How do I version AOAI APIs?
  3. How do I support consumers with different content-safety and model requirements?
  4. How do I restrict throughput per Consumer, per deployment?
  5. How do I scale out AOAI services?
  6. How do I log all prompts and responses including streaming, without disruption?
  7. What other value add services should a platform offer consumers?

Find out everything here: https://techcommunity.microsoft.com/t5/azure-integration-services-blog/designing-and-running-a-generative-ai-platform-based-on-azure-ai/ba-p/4223092

My personal note, don’t underestimate the power of Azure API Management. During my recent projects in terms of B2B and/or B2C interactions and having Dataverse/Dynamics 365 in the back, it was already a productivity saver and an essential proposed component of the architecture. With the introduction of new Generative AI services, it can play even a more central internal role.

AAD Kill chain

AAD Kill chain (aadinternals.com) discusses the Azure AD (now Entra ID) and Microsoft 365 kill chain, a collection of reconnaissance techniques and hacking tools for Microsoft cloud services. Here are the key points:

  • Roles and Targets: The kill chain includes roles like outsider, guest, insider, admin, and on-prem admin, each aiming to escalate their access level.
  • Recon Techniques: Outsiders can extract information using public APIs and DNS queries, while guests and users can gather data using Microsoft APIs.
  • Admin Capabilities: Admins have unlimited access to tenant settings, and on-prem admins can exploit Azure AD Connect credentials to gain cloud admin rights.
  • Security Risks: The document highlights various methods attackers use to gain unauthorized access and the potential harm they can cause.

In summary, good reading for the people needing a security update on what is configurable on M365 level!

Microsoft 365 Desired State Configuration 

Recently I came across this open-source initiative. Certainly helps when you’re having those one or multiple tenants conversations with larger customers.

What is Microsoft365DSC? 

Microsoft365DSC is an open-source initiative led by Microsoft engineers and maintained by the community. It allows administrators to define, automate, and monitor the configuration of Microsoft 365 tenants using PowerShell Desired State Configuration (DSC).

Key Features:

  • Automate: Write and apply configurations for various Microsoft 365 workloads (e.g., SharePoint, Teams, Exchange).
  • Export: Extract and replicate configurations across multiple tenants using ReverseDSC.
  • Synchronize: Keep multiple tenants’ configurations synchronized23.
  • Monitor: Detect and act on configuration drifts automatically.

Why It Should Be of Interest:

  • Efficiency: Automates repetitive configuration tasks, saving time and reducing errors.
  • Consistency: Ensures uniform configurations across multiple tenants.
  • Compliance: Helps maintain configurations in line with industry best practices.
  • Troubleshooting: Facilitates troubleshooting by replicating production configurations in test environments.

This tool is a game-changer for Microsoft 365 administrators looking to streamline their configuration management processes!

Reference: microsoft365dsc.com

Azure API Management and Application Insights

Continuing the Application Insights topic, on some engagements we propose to leverage Azure API Management in front of Dataverse Custom API’s or Azure Logic Apps or Azure Functions.

Setting up APIM is not that hard, but getting the next level insight on what’s happening via Application Insights can be a bit more tedious (if you don’t use Application Insights every day of the week which is the case for myself 😊).

So, I recently found this Azure API Management Hands on Lab including a chapter on how to setup and configure the Application Insights integration. Have fun with it!

https://azure.github.io/apim-lab/apim-lab/6-analytics-monitoring/analytics-monitoring-6-2-application-insights.html

Things about Microsoft, Power Platform, Dynamics 365, Azure and AI by Philip Verlinden.