Supergood | Microsoft Dynamics 365 Field Service API
Programmatically access Microsoft Dynamics 365 Field Service work orders, scheduling, assets, and inventory with a stable REST API. Supergood builds and operates production-grade, unofficial Dynamics 365 Field Service integrations so your team can automate dispatch, maintenance, and billing workflows without heavy custom engineering.
Plain English: Microsoft Dynamics 365 Field Service is service operations software used by companies with technicians in the field (HVAC, utilities, telecom, medical devices, manufacturing, and more). An unofficial API lets you programmatically pull work orders, bookings (technician assignments), customer assets, service agreements, parts and inventory, IoT alerts, and service reports—and push new records or updates back into Dynamics 365.
For a tech company integrating with Dynamics 365 Field Service, this means you can ingest real-time service data to power dispatch dashboards, automate scheduling from your product, sync parts consumption and invoices to ERP, and enrich your platform with asset histories and technician logs. You can also push new work orders from device alerts, update bookings, attach photos and documents, capture signatures, and keep stakeholder systems (CRM, analytics, IoT, scheduling) in lockstep.
What is Microsoft Dynamics 365 Field Service?
Microsoft Dynamics 365 Field Service (https://dynamics.microsoft.com/en-us/field-service/overview/) is a cloud application that helps organizations deliver on-site service. It orchestrates work orders, scheduling and dispatch, customer assets, preventive maintenance, inventory and purchasing, billing, and mobile-first technician workflows. Many deployments also use Connected Field Service for IoT-driven alerts and automated ticket creation.
Core product areas include:
- Work Orders and Service Tasks (e.g., incident types, tasks, products/services, notes)
- Scheduling & Dispatch (e.g., resource calendars, bookings, crews, skills, territories)
- Customer Assets & Maintenance (e.g., asset hierarchies, warranties, meter readings)
- Service Agreements & Entitlements (e.g., coverage windows, SLAs, billing rules)
- Inventory & Procurement (e.g., warehouses, stock levels, inventory transfers, consumption)
- Mobile & Reporting (e.g., offline work orders, photos, signatures, time entries, service reports)
- IoT & Alerts (e.g., device telemetry, anomaly detection, auto-create work orders)
Common data entities:
- Accounts, Contacts, Users, Teams, and Permissions
- Work Orders, Bookings (technician assignments), Service Tasks, Time Entries
- Work Order Products (parts), Work Order Services (labor), Costing and Billing artifacts
- Customer Assets, Asset Types, Locations, Warranties, Meter Readings
- Incident Types, Service Agreements, Entitlements, SLAs
- Warehouses, Inventory Levels, Transfers, Adjustments
- Attachments, Photos, Documents, Service Reports
- IoT Alerts, Devices, Rules, Linked Work Orders
The Dynamics 365 Field Service Integration Challenge
Field service operations rely on Dynamics 365 daily, but turning portal- and mobile-first workflows into API-driven automation is non-trivial:
- Dataverse complexity: Entities live in Microsoft Dataverse with nuanced relationships, option sets, and security scopes
- Enterprise identity: Azure AD SSO, MFA, conditional access, and role-based permissions complicate headless automation
- Scheduling constraints: Resource scheduling optimization (RSO), skills, territories, travel, and crews must be respected programmatically
- Mobile offline: Techs operate offline with sync windows and conflict resolution—your integration must account for delays and merges
- Entitlements and SLAs: Coverage rules, SLA timers, and approvals require careful sequencing during create/close actions
- Attachments and reports: Photos, documents, and service reports are large and need signed uploads, checksums, and auditability
How Supergood Creates Field Service APIs
Supergood reverse-engineers authenticated browser and mobile app flows to deliver a resilient API endpoint layer for your Dynamics 365 Field Service tenant.
- Handles username/password, Azure AD SSO/OAuth, and MFA (SMS, email, TOTP) securely
- Maintains session continuity with automated refresh, cookie rotation, and change detection
- Normalizes responses so you can integrate once and rely on consistent objects across modules
- Aligns with customer entitlements, security roles, and field-level permissions to ensure compliant access
- Supports large file attachments with signed upload URLs and integrity verification
Use Cases
Work Order and Customer Data Sync
- Mirror work orders, accounts, contacts, and assets into your internal systems
- Keep status, priority, scheduled time windows, and SLAs current for analytics and dispatch
- Normalize addresses, option sets, and timestamps for multi-tenant operations
Scheduling and Dispatch Automation
- Auto-create bookings when certain criteria are met (skills, territory, availability)
- Update technician assignments and time windows from your scheduling product
- Trigger notifications when travel time or conflicts occur
Asset Maintenance and IoT
- Create work orders from IoT alerts and attach telemetry snapshots
- Update asset condition, warranties, and meter readings after service
- Drive preventive maintenance schedules and backlog from device health
Inventory, Billing, and Entitlements
- Push parts consumption and labor to billing and ERP
- Validate entitlements and SLAs before creating or closing work orders
- Reconcile inventory levels across warehouses and technician vans
Technician Mobile Flows
- Upload photos, capture signatures, and generate service reports programmatically
- Post time entries and outcomes to close work orders with complete audit trails
- Keep attachments and notes synced even when techs operate offline
Available Endpoints
Authentication
POST /sessions: Establish a session using credentials. Supergood manages MFA (SMS, email, TOTP) and Azure AD SSO/OAuth where enabled. Returns a short-lived auth token maintained by the platform.
curl --request POST \
--url https://api.supergood.ai/integrations/<integration_id>/sessions \
--header 'Authorization: Basic <Base64 encoded token>' \
--header 'Content-Type: application/json' \
--data '{
"username": "[email protected]",
"password": "<password>",
"mfa": { "type": "totp", "code": "123456" }
}'
Example response
{
"authToken": "eyJhbGciOi...",
"expiresIn": 3600,
"user": {
"id": "u_ba29e7",
"name": "Dispatcher",
"entitlements": ["work_orders", "bookings", "assets", "inventory"]
}
}
POST /sessions/refresh: Refresh an existing token to keep sessions uninterrupted.
Work Orders
GET /work-orders: List work orders with filters and summary details.
Query parameters
- accountId: string
- assetId: string
- status: unscheduled | scheduled | in_progress | closed | canceled
- priority: low | normal | high | urgent
- scheduledFrom, scheduledTo: ISO 8601 timestamps
- updatedFrom, updatedTo: ISO 8601 timestamps
- page, pageSize: integers for pagination
Example response
{
"items": [
{
"workOrderId": "wo_7f2a91",
"number": "WO-2026-00417",
"status": "scheduled",
"priority": "high",
"incidentTypeId": "inc_02f91c",
"accountId": "acc_3c8d20",
"contactId": "ct_89c201",
"assetId": "asset_10291",
"address": {
"line1": "1000 Lakeview Dr",
"city": "Austin",
"region": "TX",
"postalCode": "78701",
"country": "US"
},
"scheduledStart": "2026-01-25T09:00:00-06:00",
"scheduledEnd": "2026-01-25T10:30:00-06:00",
"bookingIds": ["bk_5aa193"],
"slaDue": "2026-01-25T12:00:00-06:00",
"createdAt": "2026-01-23T14:21:00Z",
"updatedAt": "2026-01-24T08:12:33Z"
}
],
"page": 1,
"pageSize": 50,
"total": 1
}
POST /work-orders: Create a new work order with incident type, tasks, and optional parts.
curl --request POST \
--url https://api.supergood.ai/integrations/<integration_id>/work-orders \
--header 'Authorization: Bearer <authToken>' \
--header 'Content-Type: application/json' \
--data '{
"accountId": "acc_3c8d20",
"contactId": "ct_89c201",
"assetId": "asset_10291",
"incidentTypeId": "inc_02f91c",
"description": "RTU-5 not cooling; suspected compressor fault",
"priority": "urgent",
"address": {
"line1": "1000 Lakeview Dr",
"city": "Austin",
"region": "TX",
"postalCode": "78701",
"country": "US"
},
"preferredWindow": {
"start": "2026-01-25T08:00:00-06:00",
"end": "2026-01-25T12:00:00-06:00"
},
"serviceTasks": [
{"title": "Inspect compressor", "sequence": 1},
{"title": "Check refrigerant levels", "sequence": 2}
],
"products": [
{"productId": "prd_r410a", "quantity": 2.0, "unit": "lb"}
],
"attachments": [
{"fileName": "alarm_photo.jpg", "uploadToken": "upl_99aa31"}
]
}'
Example response
{
"workOrderId": "wo_7f2a91",
"number": "WO-2026-00417",
"status": "unscheduled",
"createdAt": "2026-01-24T08:29:10Z"
}
Bookings (Technician Assignments)
POST /work-orders/{workOrderId}/bookings: Create a booking to assign a technician or crew.
curl --request POST \
--url https://api.supergood.ai/integrations/<integration_id>/work-orders/wo_7f2a91/bookings \
--header 'Authorization: Bearer <authToken>' \
--header 'Content-Type: application/json' \
--data '{
"resourceId": "res_41c002",
"start": "2026-01-25T09:00:00-06:00",
"end": "2026-01-25T10:30:00-06:00",
"status": "scheduled",
"crewId": null,
"travelMinutes": 25,
"notes": "Tech has RTU certification"
}'
Example response
{
"bookingId": "bk_5aa193",
"workOrderId": "wo_7f2a91",
"status": "scheduled",
"createdAt": "2026-01-24T08:31:22Z"
}
Work Order Completion
PATCH /work-orders/{workOrderId}/complete: Close a work order with outcomes, time, parts, and attachments.
curl --request PATCH \
--url https://api.supergood.ai/integrations/<integration_id>/work-orders/wo_7f2a91/complete \
--header 'Authorization: Bearer <authToken>' \
--header 'Content-Type: application/json' \
--data '{
"resolutionCode": "repaired",
"outcome": "Replaced compressor contactor; unit cooling normally",
"timeEntries": [
{"resourceId": "res_41c002", "start": "2026-01-25T09:05:00-06:00", "end": "2026-01-25T10:25:00-06:00"}
],
"partsUsed": [
{"productId": "prd_contactor", "quantity": 1, "unitCost": 58.50},
{"productId": "prd_r410a", "quantity": 1.5, "unitCost": 12.00}
],
"servicesPerformed": [
{"description": "Diagnostics", "hours": 1.0, "rate": 125.00}
],
"attachments": [
{"fileName": "after_photo.jpg", "uploadToken": "upl_21bb09"},
{"fileName": "customer_signature.png", "uploadToken": "upl_77cd54"}
],
"warrantyApplied": false,
"nextMaintenanceDate": "2026-06-25",
"billableTotal": 295.25
}'
Example response
{
"workOrderId": "wo_7f2a91",
"status": "closed",
"closedAt": "2026-01-25T10:27:40-06:00",
"billableTotal": 295.25
}
Technical Specifications
- Authentication: Username/password with MFA (SMS, email, TOTP) and Azure AD SSO/OAuth where enabled; supports service accounts or customer-managed credentials
- Response format: JSON with consistent resource schemas and pagination across modules
- Rate limits: Tuned for enterprise throughput while honoring customer entitlements and usage controls
- Session management: Automatic reauth and cookie/session rotation with health checks
- Data freshness: Near real-time retrieval of work orders, bookings, assets, and inventory
- Security: Encrypted transport, scoped tokens, and audit logging; respects Dynamics 365 role-based permissions
- Webhooks: Optional asynchronous delivery for long-running workflows (e.g., scheduling conflicts, approvals, inventory updates)
Performance Characteristics
- Latency: Sub-second responses for list/detail queries under normal load
- Throughput: Designed for high-volume work order sync and dispatch operations
- Reliability: Retry logic, backoff, and idempotency keys minimize duplicate actions
- Adaptation: Continuous monitoring for UI/API changes with rapid adapter updates
Getting Started
- Schedule Integration Assessment
Book a 30-minute session to confirm your modules, licensing, and authentication model.
- Supergood Builds and Validates Your API
We deliver a hardened Dynamics 365 Field Service adapter tailored to your workflows and entitlements.
- Deploy with Monitoring
Go live with continuous monitoring and automatic adjustments as Microsoft evolves the product.
Frequently Asked Questions
Q: Which Dynamics 365 Field Service modules can this integration cover?
Supergood supports workflows across core modules such as Work Orders, Scheduling/Bookings, Customer Assets, Service Agreements/Entitlements, Inventory/Parts, and Connected Field Service (IoT), subject to your licensing and security roles. We scope coverage during integration assessment.
Q: How are MFA and Azure AD SSO handled for automation?
We support username/password + MFA (SMS, email, TOTP) and can operate behind Azure AD SSO/OAuth when enabled. Sessions are refreshed automatically with secure challenge handling and conditional access awareness.
Q: Can you sync parts consumption and billing to our ERP?
Yes. We can normalize work order products (parts), services (labor), time entries, and billable totals to match your ERP schema (e.g., cost centers, GL codes) and deliver updates via webhooks or polling while complying with rate and permission constraints.
Q: Do you support attachments, photos, and signatures from mobile?
Yes. We support downloading artifacts and uploading attachments via signed uploads, with checksum validation and time-limited URLs. Signatures and service reports are handled with audit trails.
Related Integrations
Procore API - Programmatically access construction project data with Supergood
Ready to automate your Dynamics 365 Field Service workflows?
Supergood can have your integration live in days with no ongoing engineering maintenance.