CRM migration
Field-level mapping, validation, and rollback between SortScape and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .
SortScape
Source
Microsoft Dynamics 365 Sales
Destination
Compatibility
12 of 12
objects map 1:1 between SortScape and Microsoft Dynamics 365 Sales .
Complexity
BStandard
Timeline
48–72 hours
Overview
SortScape is a scheduling and field-service platform built for landscaping and garden-maintenance businesses — it stores clients, properties, visits, and route-optimization data in a flat CSV-exportable schema optimized for crew dispatch, not CRM relationship tracking. Dynamics 365 Sales runs on Microsoft Dataverse with a normalized entity model: Accounts represent companies, Contacts represent people, Leads represent early-stage prospects, and Opportunities represent in-flight deals with stage, amount, and probability. FlitStack AI extracts SortScape's client records and visit history via CSV export, transforms each row into the corresponding Dynamics 365 table (Account, Contact, Opportunity), creates custom fields for SortScape-specific properties such as block number, lot number, and property-access notes, and loads data through the Dataverse bulk-import API with owner resolution by email match against existing Dynamics 365 users. SortScape's routing and scheduling data does not map to any native Dynamics 365 entity — those records are exported as reference CSVs for re-entry or Power Automate rebuild. FlitStack sequences the migration: clients → accounts, properties → account custom fields or related contacts, visits → Opportunity records with historical close dates, then runs a field-level diff against a Dynamics 365 sandbox before committing the full load with a 24–48 hour delta-pickup window.
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
SortScape platform overview
Scorecard, SWOT, gotchas, and pricing for SortScape.
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 SortScape 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.
SortScape
Client
Microsoft Dynamics 365 Sales
Account
1:1SortScape Client records map 1:1 to Dynamics 365 Accounts. The client's business name becomes Account.Name; client phone and email become telephone1 and emailaddress1 on the account. If the client is an individual homeowner rather than a business, the record maps to Contact with the Account as a household or individual account type.
SortScape
Client Contact
Microsoft Dynamics 365 Sales
Contact
1:1SortScape stores a primary contact name and phone on each client record. These map to Contact.FirstName, Contact.LastName, Contact.Phone, and Contact.Email. When SortScape has multiple contacts per client, each becomes a separate Dynamics 365 Contact linked to the same Account via the AccountId lookup.
SortScape
Property / Site
Microsoft Dynamics 365 Sales
Account (custom fields) + Contact
1:1SortScape properties represent physical sites (addresses, block/lot numbers, access notes). Each property is stored as a separate SortScape record with a link to the client. In Dynamics 365, the property address becomes a second Account record of type 'Property Site' or is stored as a custom field block on the primary Account. Access notes and special instructions migrate as custom text fields on the Account.
SortScape
Visit / Job
Microsoft Dynamics 365 Sales
Opportunity
1:1SortScape visit records represent scheduled jobs at a property. FlitStack maps each completed visit to a Dynamics 365 Opportunity with the client Account as the parent, the visit date as CloseDate, and the service fee as Amount. Open visits become Opportunities with a status of 'Open' and a pipeline column matching the SortScape service type.
SortScape
Visit Status
Microsoft Dynamics 365 Sales
Opportunity Stage
1:1SortScape visit statuses (Scheduled, In Progress, Completed, Cancelled) map to Dynamics 365 Opportunity Stage values. 'Completed' maps to 'Closed Won', 'Cancelled' maps to 'Closed Lost', and open statuses map to the appropriate stage in the configured Sales Process. The mapping is configurable per the client's current pipeline stages.
SortScape
Service Type / Job Category
Microsoft Dynamics 365 Sales
Opportunity 'Description' or custom field
1:1SortScape service types (e.g., Lawn Mowing, Garden Maintenance, Tree Trimming) are mapped to a custom Opportunity field called Service_Type__c so that Dynamics 365 reports can filter pipeline by service category. If no custom field is desired, the service type is stored in the Opportunity Description field.
SortScape
Client Create Date
Microsoft Dynamics 365 Sales
Account 'Original_Create_Date__c' (custom datetime)
1:1SortScape records the client creation date. Dynamics 365's CreatedDate is set at migration time, which breaks historical reporting continuity. FlitStack preserves the original SortScape create date as a custom datetime field on Account so that age-of-client reports remain accurate post-migration.
SortScape
SortScape Owner / Team Member
Microsoft Dynamics 365 Sales
Contact (Owner) or User
1:1SortScape team members are the people who perform visits. These map to Dynamics 365 Users if they are CRM users, or to Contacts if they are subcontractors or external staff. FlitStack resolves each SortScape team member by email against the destination Dynamics 365 user list — unmatched team members are flagged for manual assignment before the full migration runs.
SortScape
Property Photos / Attachments
Microsoft Dynamics 365 Sales
SharePoint Document Location + Note
1:1SortScape property photos and site images are downloaded from the SortScape export and re-uploaded to the corresponding Dynamics 365 Account's SharePoint document location. If SharePoint is not configured, notes with base64-encoded image references are created on the Account record. This preserves the visual record but is not a native Dynamics 365 photo field.
SortScape
Xero Invoice Reference
Microsoft Dynamics 365 Sales
Custom field on Opportunity
1:1SortScape integrations with Xero mean some clients have linked invoice IDs in SortScape. FlitStack migrates these as a custom text field Xero_Invoice_Ref__c on the Opportunity for reconciliation continuity. The Xero connection itself must be rebuilt in Dynamics 365 via the Xero connector or Power Automate.
SortScape
Routing / Route Optimization Data
Microsoft Dynamics 365 Sales
Reference CSV Export
1:1SortScape's route-optimization output — optimized visit order, crew assignments, and travel-time estimates — has no equivalent in Dynamics 365 Sales. FlitStack exports this data as a standalone CSV reference file. Rebuild options include Power Automate with a mapping connector or a third-party routing add-in from AppSource.
SortScape
SortScape Custom Fields
Microsoft Dynamics 365 Sales
Dataverse custom columns
1:1SortScape custom fields on Client and Property records are identified during the pre-migration audit. Each custom field is created in Dynamics 365 with the appropriate Dataverse data type before data loading begins. Pick-list fields in SortScape are recreated as Option Sets in Dynamics 365 with the same value labels.
| SortScape | Microsoft Dynamics 365 Sales | Compatibility | |
|---|---|---|---|
| Client | Account1:1 | Fully supported | |
| Client Contact | Contact1:1 | Fully supported | |
| Property / Site | Account (custom fields) + Contact1:1 | Fully supported | |
| Visit / Job | Opportunity1:1 | Fully supported | |
| Visit Status | Opportunity Stage1:1 | Fully supported | |
| Service Type / Job Category | Opportunity 'Description' or custom field1:1 | Fully supported | |
| Client Create Date | Account 'Original_Create_Date__c' (custom datetime)1:1 | Fully supported | |
| SortScape Owner / Team Member | Contact (Owner) or User1:1 | Fully supported | |
| Property Photos / Attachments | SharePoint Document Location + Note1:1 | Fully supported | |
| Xero Invoice Reference | Custom field on Opportunity1:1 | Fully supported | |
| Routing / Route Optimization Data | Reference CSV Export1:1 | Fully supported | |
| SortScape Custom Fields | Dataverse custom columns1: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.
SortScape gotchas
Export is desktop-only and admin-restricted
Route optimization settings do not persist as data
Xero invoice links break on migration
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
Pre-migration SortScape export audit
FlitStack walks through the SortScape UI with your team to identify all exportable fields across Client, Contact, Property, and Visit objects. We confirm which custom fields are visible in the SortScape export settings, document the CSV column structure, and identify any fields that require SortScape admin access to expose before export. We also capture the Xero integration reference IDs and any attached photos or documents that need to be downloaded separately from the SortScape file export.
Create Dynamics 365 custom fields and validate Dataverse table limits
Before any data is loaded, FlitStack creates the custom fields in Dynamics 365 — including Block_Number__c, Lot_Number__c, Property_Access_Notes__c, Service_Type__c, Xero_Contact_ID__c, Original_Create_Date__c, Source_System_ID__c, Source_Visit_ID__c, Actual_Duration_Hours__c, and Property_Size_SqM__c — using the Dataverse maker portal or the Power Platform admin API. We verify that the total custom-table count remains within your Sales Professional license ceiling and flag any consolidation requirements before the bulk data load begins. This step ensures all source fields have a destination target and prevents import failures caused by missing field definitions mid-load.
Resolve SortScape owners and team members against Dynamics 365 users
FlitStack extracts the SortScape team member list and matches each person against the Dynamics 365 user list by email address. Matched team members are assigned as Opportunity owners in the migration. Unmatched team members — such as seasonal contractors not yet provisioned in Dynamics 365 — are flagged with a fallback owner assignment so no Opportunity lands without an owner. This step runs before data loading to ensure no foreign-key errors occur during the bulk import.
Run a sample migration with field-level diff against Dynamics 365 sandbox
FlitStack loads a representative slice — typically 100–500 records spanning clients, properties, contacts, and visit history — into your Dynamics 365 sandbox environment. We generate a field-level diff comparing source CSV values against the loaded Dynamics 365 records, verifying that custom field values are populated, opportunity owners are assigned correctly, and visit-status-to-stage mapping produces the expected StateCode and Status values. You review the diff output and approve before the full migration is scheduled.
Execute full migration with delta-pickup window
The full CSV export is loaded into Dynamics 365 via the Dataverse bulk-import API in dependency order: Accounts first, then Contacts, then Opportunities with the AccountId and OwnerId lookups resolved. A delta-pickup window of 24–48 hours captures any records created or modified in SortScape during the migration run. FlitStack generates an audit log of every record loaded, the transformation applied, and any records that failed validation. One-click rollback reverts the full load if reconciliation fails.
Platform deep dives
SortScape
Source
Strengths
Weaknesses
Microsoft Dynamics 365 Sales
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 1 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across SortScape and Microsoft Dynamics 365 Sales .
Object compatibility
1 of 8 objects need a mapping; the rest are 1:1.
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
SortScape: Not publicly documented.
Data volume sensitivity
SortScape 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 SortScape to Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.
Walk through your SortScape 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 SortScape
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.