CRM migration
Field-level mapping, validation, and rollback between Swivl Tech and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .
Swivl Tech
Source
Microsoft Dynamics 365 Sales
Destination
Compatibility
10 of 10
objects map 1:1 between Swivl Tech and Microsoft Dynamics 365 Sales .
Complexity
BStandard
Timeline
48–72 hours
Overview
Swivl Tech targets small-to-midsize field service businesses with a job-first data model: customers, properties, work orders, line items, and GPS-tracked technician schedules live alongside CRM basics. Dynamics 365 Sales runs on Dataverse with an Account/Contact/Lead/Opportunity hierarchy, resource scheduling via the Universal Resource Scheduling (URS) solution, and Power Automate for workflow automation. The two platforms share standard CRM objects at the Contact and Account level, but Swivl's work-order and service-ticket model requires transformation into either Cases, custom Opportunity products, or a bespoke service-management table in Dataverse. We extract Swivl data via their REST API (work orders, customers, contacts, invoices, line items, custom fields) and bulk-load into Dynamics 365 via Dataverse Web API or Azure Data Factory. Custom fields use the new_ prefix convention in Dynamics and require explicit creation before import. Owner resolution happens by email match against Dynamics users. Activity history (notes, emails, calls logged in Swivl) migrates as Dataverse Activitypointer records. Workflows, scheduling rules, AI estimator configurations, and GPS tracking data do not transfer — those require Dynamics-side rebuilds using Field Service or Power Automate. We run a sample migration with field-level diff before committing the full dataset, then execute a 24–48 hour delta pickup to capture any changes made during cutover.
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
Swivl Tech platform overview
Scorecard, SWOT, gotchas, and pricing for Swivl Tech.
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 Swivl Tech 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.
Swivl Tech
Customer (Contact/Company)
Microsoft Dynamics 365 Sales
Contact + Account
1:1Swivl stores both individual customers and business entities in a single Customer object with an is_company flag. We split these: individuals map to Contact records; businesses map to Account records with the primary contact linked via AccountId. Company name and billing address land in Account; individual contact details land in Contact.
Swivl Tech
Property
Microsoft Dynamics 365 Sales
Account (Location) or Custom Table
1:1Swivl's Property object tracks service locations tied to customers. Dynamics 365 Sales has no native Property equivalent. We create a new_Property custom table in Dataverse with a lookup to Account, storing address, property type, and access notes. Property-to-customer associations migrate as relationship records.
Swivl Tech
Work Order
Microsoft Dynamics 365 Sales
Incident (Case) or Custom new_WorkOrder Table
1:1Swivl's Work Order is the core record — it holds line items, technician assignments, status, timestamps, and cost. Dynamics 365 Sales uses Case for service incidents. We recommend creating a new_WorkOrder custom table on Dataverse mapped 1:1 from Swivl, preserving job status, scheduled date, assigned technician, and all line items. If your team uses Cases for service management, we can alternatively split work orders into Cases with custom product-line fields for line items.
Swivl Tech
Work Order Line Item
Microsoft Dynamics 365 Sales
Opportunity Product or Custom Product Line Table
1:1Swivl line items (parts, labor, flat fees) map to Opportunity Product records if routing to Opportunity, or to a new_WOLineItem custom table if using the custom Work Order approach. Each line item gets its own record with product reference, quantity, unit price, and cost. Tax handling requires a custom field since Dynamics stores tax on invoice-level configurations.
Swivl Tech
Invoice
Microsoft Dynamics 365 Sales
Invoice (Dynamics) or Custom new_Invoice Table
1:1Paid Swivl invoices migrate as Dynamics Invoice records when using the Business Central attachment model. Without Business Central, we create a new_Invoice custom table storing invoice number, date, amount, status, and linked customer reference. Open invoices at migration time require your team to decide whether to carry them as open records or treat them as historical.
Swivl Tech
Contact (technician)
Microsoft Dynamics 365 Sales
Bookable Resource (Field Service) or User
1:1Swivl technicians are users in the system. In Dynamics 365 Sales Core, technicians become User records. If you attach Field Service Premium, they become Bookable Resource records with skill profiles. We map technician email to OwnerId in Dynamics and preserve their Swivl role (dispatch role, certifications) as new_TechnicianRole custom fields on the User record.
Swivl Tech
Custom Fields (Swivl Properties)
Microsoft Dynamics 365 Sales
Custom Fields (new_ prefixed on Dataverse tables)
1:1Any Swivl custom properties on Customer, Property, Work Order, or Line Item objects require corresponding new_ fields in Dataverse. We inspect the Swivl API schema during discovery, create each field in the Dynamics solution with appropriate type (text, number, picklist, date), and then map values during the import. Picklist values in Swivl require manual value-mapping against Dynamics picklist options.
Swivl Tech
Activity (Notes, Emails, Calls)
Microsoft Dynamics 365 Sales
ActivityPointer (Note, Email, PhoneCall)
1:1Swivl notes, logged calls, and email records linked to customers or work orders migrate as Dynamics ActivityPointer records with the regarding object pointing to the mapped Account or Contact. Original timestamps and created-by user resolve via email match to Dynamics users. Attachments stored as Swivl file references re-upload to Dynamics Notes or SharePoint.
Swivl Tech
Lead (if used in Swivl)
Microsoft Dynamics 365 Sales
Lead
1:1Swivl leads convert to Dynamics Lead with direct field mapping. Lead status, source, and custom scoring fields map to new_ prefixed custom fields. Upon conversion in Dynamics, the Lead creates both Account/Contact and Opportunity records per your business process configuration.
Swivl Tech
User / Owner
Microsoft Dynamics 365 Sales
SystemUser
1:1Swivl user records map to Dynamics SystemUser by email address match. We flag any Swivl owner without a corresponding Dynamics user before migration and assign their records to a fallback owner. User active/inactive status, role, and team membership do not transfer — your Dynamics admin recreates these in the Security settings post-migration.
| Swivl Tech | Microsoft Dynamics 365 Sales | Compatibility | |
|---|---|---|---|
| Customer (Contact/Company) | Contact + Account1:1 | Fully supported | |
| Property | Account (Location) or Custom Table1:1 | Fully supported | |
| Work Order | Incident (Case) or Custom new_WorkOrder Table1:1 | Fully supported | |
| Work Order Line Item | Opportunity Product or Custom Product Line Table1:1 | Fully supported | |
| Invoice | Invoice (Dynamics) or Custom new_Invoice Table1:1 | Fully supported | |
| Contact (technician) | Bookable Resource (Field Service) or User1:1 | Fully supported | |
| Custom Fields (Swivl Properties) | Custom Fields (new_ prefixed on Dataverse tables)1:1 | Fully supported | |
| Activity (Notes, Emails, Calls) | ActivityPointer (Note, Email, PhoneCall)1:1 | Fully supported | |
| Lead (if used in Swivl) | Lead1:1 | Fully supported | |
| User / Owner | SystemUser1: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.
Swivl Tech gotchas
No documented REST API for automated data extraction
Attachment files are not accessible via export
Swivl brand name overlaps with unrelated products
AI estimator outputs are not a standard CRM object
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
Discover Swivl schema and Dynamics environment setup
FlitStack AI begins by querying Swivl's REST API to enumerate all objects, custom properties, picklist values, and relationship structures. We simultaneously audit your target Dynamics 365 environment — existing tables, security roles, user roster, and any provisioned Field Service or Business Central modules. We cross-reference Swivl's custom fields against Dataverse's new_ naming requirements and deliver a data readiness report that flags any custom fields missing from your Dynamics solution. We require your Dynamics admin to provision these fields before migration proceeds.
Design work order model and custom table schema
Swivl work orders are the most complex record to map. We design a new_WorkOrder custom table in Dataverse that mirrors Swivl's work order structure — including status, scheduled and completed timestamps, technician owner, and line items. We create the new_WOLineItem child table with a 1:N relationship to Work Order. For each table we produce a field creation manifest with exact new_ field names, types, and picklist options. We also map Swivl's Property object to a new_Property custom table linked to Account. This design is documented in a schema plan your admin executes before the migration run.
Resolve owners and users by email match
We export the full Swivl user roster (technicians, admins, customer-facing users) and match each by email against Dynamics 365 SystemUser records. Matched users map directly to OwnerId on their respective records. Unmatched users are listed in a pre-flight exceptions report with the option to pre-invite them to Dynamics or assign to a fallback owner. Owner resolution runs before any data import so every record lands with a valid owner — no orphaned records.
Run sample migration with field-level diff
We extract a representative slice from Swivl — typically 200–500 records covering customers, properties, work orders with line items, invoices, and activity history — and load into Dynamics against the provisioned custom tables. We generate a field-level diff report comparing source values against destination values for every mapped field. You review the diff to verify work order status mapping, line item totals, owner assignment, and custom field population. We iterate on the mapping until you sign off on the sample before triggering the full migration.
Execute full migration with delta-pickup cutover
The full dataset migrates in dependency order: Accounts and Contacts first, then custom Property records, then Work Orders with line items, then Invoices, then ActivityPointer records. We run delta-pickup for 24–48 hours after the initial load to capture any records modified in Swivl during the migration window. An audit log records every create and update operation. If reconciliation fails — record counts don't match, or field-level spot checks reveal data integrity issues — one-click rollback reverts all changes and we re-run after correcting the mapping. We deliver a post-migration reconciliation report with record counts by object, owner assignment summary, and any unmapped fields that were skipped.
Platform deep dives
Swivl Tech
Source
Strengths
Weaknesses
Microsoft Dynamics 365 Sales
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 2 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 Swivl Tech and Microsoft Dynamics 365 Sales .
Object compatibility
2 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
Swivl Tech: Not publicly documented.
Data volume sensitivity
Swivl Tech 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 Swivl Tech to Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.
Walk through your Swivl Tech 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 Swivl Tech
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.