Reference · built on requestConnectorField service & CMMS

Microsoft Dynamics 365 Field Service

Work orders, bookings, customer assets, and agreements from Dynamics 365 Field Service through the Dataverse Web API.

About

Dynamics 365 Field Service keeps its records in Microsoft Dataverse. A work order (msdyn_workorder) holds the service account, work order type, promised window, and territory, and carries incident, product, service, and service task lines. Bookings (bookableresourcebooking) tie a work order to a resource with start, end, estimated and actual arrival, and travel durations. Customer assets, agreements with their booking and invoice setups, and resource requirements sit beside them. Every table is reachable through the Dataverse Web API, an OData v4 endpoint under /api/data/v9.2/, and webhook steps can post a RemoteExecutionContext when a message such as Create or Update runs.

Fibric reads those tables, listens to registered webhook steps, and proposes work order updates, bookings, and agreement changes. A dispatcher approves each proposal before the PATCH or POST is sent.

This is a reference listing. It documents what Fibric would read from Microsoft Dynamics 365 Field Service and what it could propose, based on the vendor's published interfaces. Fibric builds it under a managed deployment when you request it; selecting it here installs nothing.

Inputs

  • msdyn_workorder rows with msdyn_systemstatus (Unscheduled, Scheduled, In Progress, Completed, Posted, Canceled), promised windows, service account, territory, and work order type
  • bookableresourcebooking rows tied to a work order, with estimated and actual arrival times, travel durations, booking method, crew, and work location
  • msdyn_workorderincident, msdyn_workorderproduct, msdyn_workorderservice, and msdyn_workorderservicetask lines beneath each work order
  • msdyn_customerasset rows with parent and top-level asset, msdyn_deviceid for connected devices, and linked inspection instances
  • msdyn_agreement rows with status (Estimate, Active, Expired, Canceled), dates, booking setups, and invoice setups
  • Webhook posts of a RemoteExecutionContext for a chosen table and message, tagged with x-ms-dynamics-entity-name and x-ms-dynamics-request-name
  • Remaining service protection headroom from the x-ms-ratelimit-burst-remaining-xrm-requests header

Proposed actions

  • Target capability: propose a work order update through PATCH /msdyn_workorders(id), including status, promised window, or owner
  • Target capability: propose a bookableresourcebooking create or update that sets the resource, start and end, and estimated arrival time
  • Target capability: propose a work order service task, product, or incident line for approval
  • Target capability: propose an agreement status change through msdyn_FieldServiceAgreementSystemStatusAction

Proposed actions are target capabilities. Every action runs propose-first and needs a validated deployment and the appropriate permissions.

What you can build

  • Chase work orders stuck in Unscheduled

    Work orders with msdyn_systemstatus Unscheduled past their msdyn_timefrompromised are listed with territory and type. The operator proposes a booking or an escalation for the dispatcher to approve.

    With Work Order Aging

  • Warn the customer when arrival slips

    The booking's msdyn_estimatedarrivaltime moves past the promised window. The operator drafts the notice, proposes the send, and records it on the work order.

    With ETA Notice

  • Act on device alerts against a customer asset

    IoT alerts linked to a work order and its customer asset are read with the asset hierarchy. The operator proposes a work order incident and a booking for approval.

    With Predictive Maintenance

  • Keep agreements from lapsing

    Agreements with msdyn_enddate approaching and status Active are listed with their booking setups. The operator drafts the renewal outreach and proposes it for approval.

    With Contract Lapse

Requirements

  • A Dynamics 365 Field Service environment on Dataverse and an Entra ID app registration with a client secret or certificate
  • An application user in that environment bound to the registration, with a security role scoped to the Field Service tables in use
  • Webhook steps registered for msdyn_workorder and bookableresourcebooking messages when push is preferred over polling
  • A webhook endpoint that returns a 2xx status within 60 seconds
Authentication
Microsoft Entra ID OAuth 2.0: the connector runs as a Dataverse application user tied to an app registration, authenticating with a client secret or an uploaded certificate and the <environment-url>/.default scope.

Limits

  • Dataverse throttles each user per web server: 6,000 requests, 1,200 seconds of execution, and 52 concurrent requests per sliding 5 minutes, then 429 with Retry-After
  • Webhook payloads above 256 KB lose ParentContext, InputParameters, and entity images; the x-ms-dynamics-msg-size-exceeded header flags it
  • A webhook is retried once, only after a 502, 503, or 504; a failed synchronous step rolls back the operation, not the request sent
  • Schedule board, schedule assistant, and optimization are Field Service features; this listing reads their bookings and proposes records, it does not run them

Access and pricing

Reference listing. Fibric builds the connector under a managed deployment when you request it. Your quote covers the build, capabilities, usage, and support.

Request Microsoft Dynamics 365 Field Service ↗

Questions and answers

Which API reads Field Service data?
The Dataverse Web API, an OData v4 endpoint under your environment's /api/data/v9.2/ path. Field Service tables such as msdyn_workorder, bookableresourcebooking, msdyn_customerasset, and msdyn_agreement are queried and updated there with GET, POST, PATCH, and DELETE, and named operations run as Web API actions.
How is a booking's arrival tracked?
bookableresourcebooking carries msdyn_estimatedarrivaltime and msdyn_actualarrivaltime, plus msdyn_estimatedtravelduration and msdyn_actualtravelduration, which is computed from the booking start and the actual arrival. Timestamps and journals hang off the booking as msdyn_bookingtimestamp and msdyn_bookingjournal rows.
Can it connect without a Dynamics 365 user license?
Yes. The connector runs as a Dataverse application user tied to an Entra ID app registration and authenticates with a client secret or certificate. Microsoft documents that an application user does not consume a paid license; its rights come from the custom security role you assign.
Ask about Microsoft Dynamics 365 Field Service

Ask about the capabilities and requirements in this listing.

For project-specific requirements, contact Fibric.