CRM migration
Field-level mapping, validation, and rollback between Dispatch Pro and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .
Dispatch Pro
Source
Microsoft Dynamics 365 Sales
Destination
Compatibility
12 of 12
objects map 1:1 between Dispatch Pro and Microsoft Dynamics 365 Sales .
Complexity
BStandard
Timeline
2–4 weeks
Overview
Teams move from Dispatch Pro to Dynamics 365 Sales when they want unified CRM + field service reporting under a single Microsoft tenant, native Power BI analytics, and tighter integration with Microsoft 365 apps. The migration carries everything Dispatch Pro stores natively — jobs, customers, contacts, service addresses, technicians, and activities — into Dynamics 365 Sales entities (Account, Contact, Opportunity) and custom Dataverse tables. The harder problems are mapping Dispatch Pro Business Units and Zones into Dynamics 365 Teams or Business Units so regional accountability survives the cutover, preserving job priority tiers that have no native Dynamics 365 equivalent, and handling technician skill data that Dispatch Pro uses for auto-matching but that Dynamics 365 stores only as a reference custom field. We extract Dispatch Pro data via its REST API, map it through our field-level transformation layer, and load it into Dataverse using the Web API. A delta-pickup window runs during cutover to capture any jobs modified or newly created while the team continues working in Dispatch Pro. Once loaded, your Dynamics 365 admin maps Business Units to Teams, configures the Opportunity form with the custom job fields, and rebuilds any Dispatch Pro scheduling workflows in Dynamics 365 Field Service.
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
Dispatch Pro platform overview
Scorecard, SWOT, gotchas, and pricing for Dispatch Pro.
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 Dispatch Pro 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.
Dispatch Pro
Customer (Job Customer)
Microsoft Dynamics 365 Sales
Account
1:1Dispatch Pro customers (business entities receiving service) map directly to Dynamics 365 Account records. The customer name, primary address, phone, and website transfer as Account.Name, Address fields, Telephone1, and WebsiteURL. Dispatch Pro customers without a company name default to a placeholder AccountName so the record is valid in Dynamics.
Dispatch Pro
Customer Contact
Microsoft Dynamics 365 Sales
Contact
1:1Named contacts on a Dispatch Pro customer map to Dynamics 365 Contact records linked via AccountId. Dispatch Pro stores the contact name, email, phone, and role (e.g., Site Manager). These transfer to Contact.FirstName, EmailAddress1, Telephone1, and JobTitle. A customer with no named contacts generates at least one Contact record with the customer's business name as a fallback.
Dispatch Pro
Job
Microsoft Dynamics 365 Sales
Opportunity
1:1Each Dispatch Pro Job becomes a Dynamics 365 Opportunity. The Job Name maps to Opportunity.Name; the scheduled start and end windows map to estimatedclosedate or custom datetime fields. Job status (Scheduled, In Progress, Completed, Cancelled) maps via a value-mapping table to Opportunity.StatusCode. Job Priority (Low through Critical) requires a custom Opportunity.Priority__c pick-list field because Dynamics 365 has no native priority field on the Opportunity entity.
Dispatch Pro
Job Type / Service Category
Microsoft Dynamics 365 Sales
Custom Field (new_servicetype) + Product
1:1Dispatch Pro job types (e.g., Repair, Maintenance, Installation) have no direct Dynamics 365 equivalent. We map them to a custom text or pick-list field on the Opportunity (new_servicetype__c). If the job type implies a specific product catalog item, we also create an OpportunityProduct line so Dynamics 365 can track the service line alongside the opportunity amount.
Dispatch Pro
Technician
Microsoft Dynamics 365 Sales
SystemUser
1:1Dispatch Pro technician records resolve by email match to existing Dynamics 365 SystemUser accounts. Each technician's user record in Dynamics 365 is the OwnerId on the migrated Opportunities. Unmatched technicians are flagged before migration — teams either pre-create their Dynamics 365 user accounts or a fallback technician owner handles orphaned records until assignment is corrected post-migration.
Dispatch Pro
Business Unit
Microsoft Dynamics 365 Sales
Team / BusinessUnit
1:1Dispatch Pro Business Units represent regional or departmental cost centers that control dispatch access and reporting. Dynamics 365 has both Teams (lightweight, record-sharing) and Business Units (full hierarchy, security role inheritance). We recommend mapping each Dispatch Pro Business Unit to a Dynamics 365 Team initially, associating migrated Opportunities with the appropriate team so regional accountability survives the cutover without triggering Dynamics 365's full Business Unit hierarchy rebuild.
Dispatch Pro
Zone
Microsoft Dynamics 365 Sales
Custom Field (new_zone__c)
1:1Dispatch Pro Zones define geographic service areas for routing optimization. Since Dynamics 365 has no native zone entity, we create a custom text field (new_zone__c) on the Opportunity and populate it from Dispatch Pro. Zone-to-territory routing logic that Dispatch Pro handles automatically must be rebuilt as Power Automate flows or Dynamics 365 territory management post-migration.
Dispatch Pro
Job Activity Log
Microsoft Dynamics 365 Sales
Annotation / Task / Appointment
1:1Dispatch Pro's job timeline events (check-in, check-out, status changes, technician notes, signature captures) migrate as Dynamics 365 Annotations on the related Opportunity. Structured events with a date and assignee (e.g., a scheduled follow-up call after job completion) create Task or Appointment records. Original timestamps are preserved in the annotation body so audit continuity is maintained.
Dispatch Pro
Job Photo / Attachment
Microsoft Dynamics 365 Sales
SharePoint / Dataverse Attachment
1:1Dispatch Pro stores job photos and signed forms in ServiceTitan's blob storage. Dynamics 365 can attach files to Opportunity records via Dataverse annotations or SharePoint document management. We export the files, upload them to the target SharePoint site or Dataverse file field, and link each file to its parent Opportunity record. The original file names and upload timestamps are preserved for traceability.
Dispatch Pro
Custom Job Properties
Microsoft Dynamics 365 Sales
Custom Dataverse Columns
1:1Dispatch Pro custom job properties (e.g., equipment model, refrigerant type, permit number) map to custom Dataverse columns on the Opportunity table. Each custom property becomes a new_ColumnName__c column with a type determined by the source data (text, number, pick-list, date). If a custom property uses a pick-list in Dispatch Pro, we create a matching pick-list in Dataverse and run a value-mapping pass during data load so the enumerated values are consistent across records.
Dispatch Pro
Service Address (separate from Customer)
Microsoft Dynamics 365 Sales
Account (Address fields + new_servicelocation__c)
1:1Dispatch Pro stores service locations separately from the billing customer. The service address maps to the Account's Address1 fields (Address Line, City, State, Postal Code, Country). If a service location differs from the billing address, we create a separate Account record flagged as a service location (new_isservicelocation__c = true) so both billing and on-site addresses are preserved without duplication.
Dispatch Pro
Job Quote / Estimate
Microsoft Dynamics 365 Sales
Quote
1:1Dispatch Pro job estimates transfer as Dynamics 365 Quote records linked to the migrated Opportunity. The quote amount, line items, and status (Draft, Sent, Accepted, Lost) map to Quote columns. If the Dispatch Pro estimate was converted to an invoice, we also create a corresponding SalesOrder or Invoice record in Dynamics 365 to preserve the full billing history.
| Dispatch Pro | Microsoft Dynamics 365 Sales | Compatibility | |
|---|---|---|---|
| Customer (Job Customer) | Account1:1 | Fully supported | |
| Customer Contact | Contact1:1 | Fully supported | |
| Job | Opportunity1:1 | Fully supported | |
| Job Type / Service Category | Custom Field (new_servicetype) + Product1:1 | Fully supported | |
| Technician | SystemUser1:1 | Fully supported | |
| Business Unit | Team / BusinessUnit1:1 | Fully supported | |
| Zone | Custom Field (new_zone__c)1:1 | Fully supported | |
| Job Activity Log | Annotation / Task / Appointment1:1 | Fully supported | |
| Job Photo / Attachment | SharePoint / Dataverse Attachment1:1 | Fully supported | |
| Custom Job Properties | Custom Dataverse Columns1:1 | Fully supported | |
| Service Address (separate from Customer) | Account (Address fields + new_servicelocation__c)1:1 | Fully supported | |
| Job Quote / Estimate | Quote1: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.
Dispatch Pro gotchas
Dispatch Pro is a ServiceTitan-only licensed module
Optimization behavior may not carry over after migration
Slow support response during migration cutover
Eight priority levels may not map 1:1 to destination CRM
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 Dispatch Pro schema and extract all objects via REST API
We connect to the Dispatch Pro REST API using scoped read credentials and pull a full export of all relevant objects: Customers, Contacts, Jobs, Job Activities, Technicians, Business Units, Zones, and custom job properties. We validate the record count against your provided inventory and flag any objects that are empty or restricted by API rate limits. The output is a flattened staging dataset in CSV/JSON format that serves as the migration source of truth. We also export a list of all active custom job properties and their data types so Dataverse columns can be pre-created before data load begins.
Define Dynamics 365 target schema and pre-create custom columns
Before any data lands in Dynamics 365, we work with your Dynamics 365 admin (or handle it directly) to create the custom columns on the Opportunity, Account, Contact, and SystemUser tables: new_jobtype__c, new_priority__c, new_zone__c, new_businessunit__c, new_estimatedduration__c, new_taxamount__c, new_originalcreatedate__c, new_workordernumber__c, new_paymentstatus__c, new_technicianlicense__c, new_skilltags__c, and new_tradelicenses__c. We also create the Dynamics 365 Teams that map to each Dispatch Pro Business Unit. Pick-list fields get their exact values from Dispatch Pro via a value-mapping table. This schema setup is the longest planning step in the migration and must be complete before the sample migration runs.
Migrate Accounts and Contacts before Opportunities
Dynamics 365 requires AccountId on Contact and CustomerId (Account) on Opportunity as foreign keys before child records can be created. We sequence the migration so Accounts migrate first (with their service-location addresses handled as secondary Account records where applicable), then Contacts with ParentAccountId resolved against the migrated Accounts, then Technicians resolved to SystemUser records by email match. Any technician without a matching Dynamics 365 user is flagged and assigned to a placeholder owner until your admin creates the SystemUser records. Opportunities (Jobs) load last with full foreign-key resolution on AccountId, ContactId, and OwnerId.
Run sample migration with field-level diff on 200–500 jobs
A representative slice of 200–500 records spanning multiple Business Units, job types, and technicians migrates into Dynamics 365 first. We generate a field-level diff report comparing the Dispatch Pro source values against the Dynamics 365 destination fields for every record in the sample. You verify that job priority mapped to new_priority__c correctly, that Business Unit values populated new_businessunit__c, that technician emails resolved to the correct SystemUser records, and that opportunity amounts match job total prices. No records are committed to the full migration until you sign off on the sample diff.
Execute full migration with delta-pickup and cutover window
After sample sign-off, the full migration loads all records into Dynamics 365. A delta-pickup window — typically 24–48 hours — runs alongside your team's continued use of Dispatch Pro. Any jobs created or modified in Dispatch Pro during the cutover are captured and applied to Dynamics 365 before the final reconciliation. Job photos and attachments are uploaded to SharePoint or Dataverse and linked to their parent Opportunity records. We generate a reconciliation report showing record counts by object, any records that failed validation, and the delta-apply summary. One-click rollback is available if the reconciliation shows critical discrepancies before you switch users to Dynamics 365.
Platform deep dives
Dispatch Pro
Source
Strengths
Weaknesses
Microsoft Dynamics 365 Sales
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. All 8 core objects map 1:1 between Dispatch Pro and Microsoft Dynamics 365 Sales .
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Dispatch Pro and Microsoft Dynamics 365 Sales .
Object compatibility
All 8 core objects map 1:1 between Dispatch Pro and Microsoft Dynamics 365 Sales .
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
Dispatch Pro: Not publicly documented in available research.
Data volume sensitivity
Dispatch Pro 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 Dispatch Pro to Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.
Walk through your Dispatch Pro 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 Dispatch Pro
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.