CRM migration
Field-level mapping, validation, and rollback between Q Dispatch and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .
Q Dispatch
Source
Microsoft Dynamics 365 Sales
Destination
Compatibility
10 of 11
objects map 1:1 between Q Dispatch and Microsoft Dynamics 365 Sales .
Complexity
BStandard
Timeline
48–72 hours
Overview
Q Dispatch organizes service operations around work orders, job assignments, technician schedules, and customer locations. It stores a flat job record with nested line items, service types, and real-time status updates. Microsoft Dynamics 365 Sales (built on Dataverse) models customer relationships around Accounts, Contacts, Leads, and Opportunities — a fundamentally different entity graph that separates customer identity from service event. The migration must therefore decompose Q Dispatch job records into multiple Dynamics 365 Sales tables: customer companies become Accounts, service contacts become Contacts, individual work orders become Opportunities (or custom Service_Order__c tables in Sales Enterprise), and technician assignments become OwnerId lookups or custom Technician__c lookups. Activity history (service visits, route completions, notes) migrates as Tasks and Notes attached to the parent Opportunity or Account. One key difference: Q Dispatch has no native lead/conversion concept — every Q Dispatch record is a customer. Dynamics 365 Sales requires a decision on whether to import all Q Dispatch companies as Accounts directly or to route those without open opportunities as historical Accounts only. Scheduling and routing data (dispatch board assignments, time windows, geographic zones) has no direct Dynamics 365 Sales equivalent and requires a custom route_data__c JSON blob or a separate scheduling table for post-migration reference. FlitStack AI handles this via its scoped read API access, a pre-migration field map review, and a 24–48 hour delta pickup window for any in-flight jobs during cutover. Workflows, dispatch rules, and automation logic in Q Dispatch do not migrate — we export the configuration as JSON for your Dynamics 365 admin to rebuild in Power Automate or Dynamics workflows.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Source platform
Q Dispatch platform overview
Scorecard, SWOT, gotchas, and pricing for Q Dispatch.
Destination platform
Microsoft Dynamics 365 Sales platform overview
Scorecard, SWOT, gotchas, and pricing for Microsoft Dynamics 365 Sales .
Data migration guide
The complete Microsoft Dynamics 365 Sales migration guide
Data model, import mechanisms, field mapping strategy, pitfalls, and cutover — by the engineers running it.
Destination checklist
Microsoft Dynamics 365 Sales migration checklist
Pre- and post-cutover tasks for moving onto Microsoft Dynamics 365 Sales .
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a Q Dispatch object lands in Microsoft Dynamics 365 Sales , including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Q Dispatch
Customer (Company)
Microsoft Dynamics 365 Sales
Account
1:1Q Dispatch company records map directly to Dynamics 365 Sales Accounts. Company name becomes Account Name; physical address fields map to Address composite fields in Dataverse. Multi-location Q Dispatch customers (branch offices) map to one Account with multiple Address1/Address2 lines or child Account records via Parent Account relationship.
Q Dispatch
Service Contact
Microsoft Dynamics 365 Sales
Contact
1:1Q Dispatch service contacts (site contacts, billing contacts) map to Dynamics 365 Sales Contacts. The Contact's AccountId links to the parent Account record migrated from the Q Dispatch Customer. Email, phone, and role fields migrate as standard Contact fields; contact type labels from Q Dispatch (e.g., site manager, billing contact) migrate as a custom Contact_Type__c pick-list.
Q Dispatch
Work Order / Job
Microsoft Dynamics 365 Sales
Opportunity / Custom Service_Order__c table
1:1Q Dispatch work orders are the primary migration object. In Dynamics 365 Sales Enterprise, they map to a custom Service_Order__c table keyed to Account and Contact lookups. In Sales Professional (15-table limit), active open work orders map to Opportunities with a Work_Order_ID__c custom field. Historical closed jobs migrate as historical Opportunities with a Closed_Date__c and Status = 'Won' or 'Lost' for reporting continuity.
Q Dispatch
Work Order Line Item / Service Line
Microsoft Dynamics 365 Sales
Opportunity Product (msdyn_opportunityproduct) or Custom Line Item
many:1Each Q Dispatch work order may have multiple line items (parts, labor, travel). These merge into Opportunity Product records in Dynamics 365 Sales if a product catalog exists. If no product catalog is present, service lines migrate as a custom Service_Line__c table with a lookup to Service_Order__c, storing description, quantity, and unit_price fields directly.
Q Dispatch
Technician / Dispatch Resource
Microsoft Dynamics 365 Sales
SystemUser (Owner) or Custom Technician__c table
1:1Q Dispatch technicians map by email match to Dynamics 365 Sales SystemUser records, which resolve the OwnerId on Accounts, Contacts, and Opportunities. If a Q Dispatch technician has no matching Dynamics user, they are flagged for admin resolution before migration. For teams that maintain a technician roster distinct from CRM users, a custom Technician__c table is created in Dynamics 365 Sales Enterprise.
Q Dispatch
Schedule / Dispatch Assignment
Microsoft Dynamics 365 Sales
Custom Schedule_Block__c or Activity (Task/Event)
1:1Q Dispatch dispatch board assignments (technician, time window, job location) have no native Dynamics 365 Sales equivalent. We store dispatch schedule data as custom fields on the Service_Order__c record: Scheduled_Technician__c (lookup), Schedule_Date__c (date), Time_Window_Start__c, Time_Window_End__c, and Route_Sequence__c (integer). Office staff reviewing post-migration data can build Power Apps dispatch boards referencing this data.
Q Dispatch
Job Status / Dispatch Status
Microsoft Dynamics 365 Sales
Custom Work_Order_Status__c pick-list
1:1Q Dispatch job statuses (Unassigned, Scheduled, En Route, In Progress, Completed, Cancelled) have no direct Dynamics 365 Sales equivalent. We create a custom Work_Order_Status__c pick-list on the Service_Order__c table with value-by-value mapping to Q Dispatch status strings. Probability and forecast category are derived from status values — completed jobs receive 'Won' stage; cancelled jobs receive 'Lost'.
Q Dispatch
Service Notes / Job Comments
Microsoft Dynamics 365 Sales
Note (annotation) / Custom Service_Note__c
1:1Technician notes and dispatch comments from Q Dispatch migrate as Dynamics 365 Sales Notes attached to the parent Service_Order__c or Opportunity. Rich-text formatting in Q Dispatch notes is preserved as HTML in the Note 'notetext' field. Long-form job narratives requiring structured fields migrate to a custom Service_Note__c table in Dynamics 365 Sales Enterprise.
Q Dispatch
Invoice / Billing Record
Microsoft Dynamics 365 Sales
Custom Invoice__c table or Dynamics 365 Sales Invoice (if Business Central is present)
1:1Q Dispatch invoices do not map to Dynamics 365 Sales standard objects without Business Central. We preserve invoice data as a custom Invoice__c table (Sales Enterprise) or as a JSON blob in a long-text field on the Service_Order__c record. For teams migrating to Business Central post-Dynamics 365 Sales, invoice records are staged for a second-phase import into the Business Central Sales Invoice table.
Q Dispatch
Route / Geographic Zone
Microsoft Dynamics 365 Sales
Custom Route_Zone__c pick-list on Service_Order__c
1:1Q Dispatch route assignments and geographic service zones map to a custom Route_Zone__c pick-list on the Service_Order__c record. Zone names from Q Dispatch are preserved as pick-list values; latitude/longitude coordinates, if stored, migrate to custom Lat__c and Long__c decimal fields for post-migration Power BI territory mapping.
Q Dispatch
Q Dispatch Source System ID
Microsoft Dynamics 365 Sales
Source_System_ID__c (custom field on all migrated tables)
1:1Every migrated record receives a Source_System_ID__c custom field storing the Q Dispatch internal record ID. This field enables delta-run de-duplication (if the same record is updated in Q Dispatch during cutover), cross-referencing for audit trails, and one-click rollback targeting specific records without a full re-import.
| Q Dispatch | Microsoft Dynamics 365 Sales | Compatibility | |
|---|---|---|---|
| Customer (Company) | Account1:1 | Fully supported | |
| Service Contact | Contact1:1 | Fully supported | |
| Work Order / Job | Opportunity / Custom Service_Order__c table1:1 | Fully supported | |
| Work Order Line Item / Service Line | Opportunity Product (msdyn_opportunityproduct) or Custom Line Itemmany:1 | Fully supported | |
| Technician / Dispatch Resource | SystemUser (Owner) or Custom Technician__c table1:1 | Fully supported | |
| Schedule / Dispatch Assignment | Custom Schedule_Block__c or Activity (Task/Event)1:1 | Fully supported | |
| Job Status / Dispatch Status | Custom Work_Order_Status__c pick-list1:1 | Fully supported | |
| Service Notes / Job Comments | Note (annotation) / Custom Service_Note__c1:1 | Fully supported | |
| Invoice / Billing Record | Custom Invoice__c table or Dynamics 365 Sales Invoice (if Business Central is present)1:1 | Fully supported | |
| Route / Geographic Zone | Custom Route_Zone__c pick-list on Service_Order__c1:1 | Fully supported | |
| Q Dispatch Source System ID | Source_System_ID__c (custom field on all migrated tables)1:1 | Fully supported |
Gotchas + challenges
Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.
Q Dispatch gotchas
Export mechanism is not API-first
Custom field schemas do not transfer
Invoice and payment data may require reconciliation
No free tier or trial documented
Microsoft Dynamics 365 Sales gotchas
Professional tier 15-table custom table limit blocks migrations
October 2024 pricing increase applies at renewal for all customers
Custom fields must be created in the UI before API writes
Power Platform request limits apply to bulk migrations
Activity records orphaned to inactive owners fail silently
Pair-specific challenges
Migration approach
Audit Q Dispatch data model and destination schema requirements
FlitStack AI reads the Q Dispatch API to enumerate all standard and custom objects, fields, and record counts. We cross-reference this against the Dynamics 365 Sales target environment to identify custom table requirements (Service_Order__c, Service_Line__c, Technician__c, Invoice__c), flag the Sales Professional 15-table ceiling risk, and produce a field-level mapping document for your admin review before any data moves. This phase also resolves the lead-vs-account routing decision for Q Dispatch customers without closed work orders.
Resolve technician and contact owners by email
Q Dispatch technician IDs and contact IDs are resolved against Dynamics 365 Sales SystemUser and Contact records by email match. Unmatched users are flagged in a pre-flight report — your Dynamics 365 admin either invites them to the tenant first or assigns a fallback owner before migration commits. No Service_Order__c record lands without a resolved OwnerId, ensuring Dynamics 365 Sales reporting and security roles function immediately at go-live.
Migrate parent entities first (Accounts, Contacts, Technicians)
Dynamics 365 Sales foreign-key constraints require Account records before Contact records (via AccountId), and SystemUser records before Service_Order__c records (via OwnerId). We sequence the migration so Q Dispatch Customers → Accounts, then Service Contacts → Contacts, then Technicians → SystemUser/Techician__c, before any child records are loaded. This ordering is enforced automatically by FlitStack AI's dependency graph before each batch commits.
Run a sample migration with field-level diff
A representative slice (typically 200–500 records spanning multiple work order statuses, service types, and technician assignments) migrates first. FlitStack AI generates a field-level diff comparing source values against destination field contents — your team verifies that Work_Order_Status__c pick-list mapping, Route_Zone__c values, and OwnerId resolution are correct before the full run proceeds. Any mapping corrections are applied to the migration configuration before the next phase.
Execute full migration with delta-pickup window
The full record set commits to Dynamics 365 Sales. A delta-pickup window (typically 24 hours, extendable to 48–72 for high-volume setups) captures any Q Dispatch records modified or created during the cutover window — a common scenario when dispatchers continue scheduling jobs while the migration runs. All operations are logged in the FlitStack AI audit log. If reconciliation detects record count discrepancies or missing fields, one-click rollback reverts the Dynamics 365 Sales environment to its pre-migration state while preserving the source data for re-run.
Deliver post-migration validation and rebuild reference package
FlitStack AI delivers a reconciliation report comparing record counts and field totals between Q Dispatch and Dynamics 365 Sales by entity type. The rebuild reference package exports Q Dispatch workflow definitions, dispatch rules, and automation logic as JSON — your Dynamics 365 admin uses this to rebuild automation in Power Automate or Dynamics 365 Sales workflows. The FlitStack team is available for a 30-day post-migration support window to address any field mapping corrections or delta-gap fills.
Platform deep dives
Q Dispatch
Source
Strengths
Weaknesses
Microsoft Dynamics 365 Sales
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 1 of 8 objects need a manual workaround.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Q Dispatch and Microsoft Dynamics 365 Sales .
Object compatibility
1 of 8 objects need a manual workaround.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
8-object category — typical timelines run 2–7 days end-to-end.
API constraints
Q Dispatch: Not publicly documented.
Data volume sensitivity
Q Dispatch doesn't expose a bulk API — REST + parallelization used for high-volume runs.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during Q Dispatch to Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.
Walk through your Q Dispatch to Microsoft Dynamics 365 Sales migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Q Dispatch
Other ways to arrive at Microsoft Dynamics 365 Sales
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.