CRM migration
Field-level mapping, validation, and rollback between Time Matters(r) and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .
Time Matters(r)
Source
Microsoft Dynamics 365 Sales
Destination
Compatibility
8 of 10
objects map 1:1 between Time Matters(r) and Microsoft Dynamics 365 Sales .
Complexity
BStandard
Timeline
5–10 business days
Overview
Time Matters stores practice-management data in a local or network database with no native API — migration requires CSV exports generated through File > Export > Custom Export, where record types map to separate export templates (Contacts, Matters, Events, Tasks, Notes, Time). Dynamics 365 Sales stores all CRM data on the cloud-native Dataverse platform, using Account as the primary organizational entity with a primary Contact lookup and a separate junction table for additional contact-account relationships. FlitStack AI extracts all standard record types via CSV templates, audits for incomplete foreign keys and orphaned billable hours, creates custom columns in Dataverse to receive Time Matters custom fields, and sequences the load so Account resolves before Contact, Contact resolves before Opportunity, and Activity resolves last with valid parent-entity lookups. The delta-pickup window captures any Matter or Contact created in Time Matters during the cutover window. We surface Time Matters merge templates as reference files for rebuild in Power Automate — they cannot be migrated directly because the field-syntax encoding is Time Matters proprietary.
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
Time Matters(r) platform overview
Scorecard, SWOT, gotchas, and pricing for Time Matters(r).
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 Time Matters(r) 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.
Time Matters(r)
Contact
Microsoft Dynamics 365 Sales
Contact
1:1Time Matters contacts map 1:1 to Dynamics 365 Contacts. The Name, Email, Phone, Address, and Company fields map directly. Time Matters stores company as a text field on the contact record — we resolve it to an Account lookup by domain match or firm-name similarity before loading so the Contact.AccountId foreign key resolves correctly.
Time Matters(r)
Matter
Microsoft Dynamics 365 Sales
Opportunity
1:1Time Matters Matters are legal cases. Dynamics 365 has no native Matter entity, so Matters map to Opportunities. The Matter name becomes the Opportunity Name; estimated billing and billable hours map to product line items on the Opportunity. Custom fields on the Matter form become Dataverse custom columns on the Opportunity table. Pipeline stages map to the default Dynamics 365 Sales Process unless a custom Business Process Flow is configured.
Time Matters(r)
Matter (many-to-many contacts)
Microsoft Dynamics 365 Sales
AccountContactRelationship / OpportunityContactRole
many:1Time Matters supports N:N contact-matter associations natively. Dynamics 365 flattens this: the primary Contact gets the OpportunityContactRole on the Opportunity; additional contacts link to the parent Account via AccountContactRelationship. We identify the primary contact by the Matter's primary-contact flag or most-recent-modification rule, create the OpportunityContactRole, and surface the secondary contacts for AccountContactRelationship population in the migration plan.
Time Matters(r)
Event (call/meeting/task)
Microsoft Dynamics 365 Sales
Task / PhoneCall / Appointment
1:manyTime Matters uses a single Events record type for calls, meetings, tasks, and notes — the record type is indicated by an internal type field in the export. We split each Events record into the appropriate Dynamics 365 activity entity (PhoneCall for calls, Appointment for meetings, Task for generic events) using the type field as the routing key. The original timestamp and assigned attorney owner are preserved on each new activity record.
Time Matters(r)
Note
Microsoft Dynamics 365 Sales
Annotation
1:1Time Matters notes with free-form text and optional document attachments map to Dynamics 365 Annotations (the Dataverse note entity). Rich-text formatting in Time Matters notes is preserved as plain text if no HTML encoding is present. Document attachments on notes are re-uploaded to SharePoint and linked via the RegardingId on the Annotation record.
Time Matters(r)
Time Entry (billable hours)
Microsoft Dynamics 365 Sales
Opportunity Product Line Item
1:1Time Matters time entries track billable hours, billing rate, and attorney name per Matter. We map each time entry to a product line item on the parent Opportunity, using the billing rate as the unit price and hours as quantity. The attorney name becomes a custom field on the product line item. Time entries that cannot be cleanly mapped to a product structure are preserved as Notes on the Opportunity with a Time_Entry__c prefix.
Time Matters(r)
Document / Attachment
Microsoft Dynamics 365 Sales
SharePoint Document Location
1:1Time Matters documents attached to Matters or Contacts are re-hosted in SharePoint Online and linked back to the parent record via the RegardingId on the SharePoint Document Location entity. The original file name and upload timestamp are preserved as metadata. Inline images embedded in Time Matters notes are downloaded and attached to the corresponding Annotation record.
Time Matters(r)
Document Template (merge)
Microsoft Dynamics 365 Sales
Reference File Export
1:1Time Matters merge templates encode field names and merge syntax in a proprietary format. Dynamics 365 does not have a template inbox that accepts this encoding. We export merge templates as reference PDF or Word files so your Dynamics 365 admin can rebuild them in Power Automate with Dataverse field references — the logic is preserved for rebuild but cannot be imported automatically.
Time Matters(r)
System ID / Record Reference
Microsoft Dynamics 365 Sales
Custom Field (Source_System_ID__c)
1:1Time Matters assigns internal numeric IDs to each record. We store these on a Source_System_ID__c custom column on every target entity so delta runs can de-duplicate records that may have been created in both systems during the cutover window, and so FlitStack's audit log references the original Time Matters record on every operation.
Time Matters(r)
Custom Field (any non-standard)
Microsoft Dynamics 365 Sales
Dataverse Custom Column
1:1Time Matters allows unlimited custom fields defined per-form with no centralized schema catalog. We scan all export CSV headers across every export template to collect every unique custom field name, infer the data type from the first non-null value in each column, and create a corresponding Dataverse column (new_fieldname) in a FlitStack migration solution before the data load runs. Custom pick-list fields require a value-mapping table to map Time Matters codes to Dataverse option-set integer values.
| Time Matters(r) | Microsoft Dynamics 365 Sales | Compatibility | |
|---|---|---|---|
| Contact | Contact1:1 | Fully supported | |
| Matter | Opportunity1:1 | Fully supported | |
| Matter (many-to-many contacts) | AccountContactRelationship / OpportunityContactRolemany:1 | Fully supported | |
| Event (call/meeting/task) | Task / PhoneCall / Appointment1:many | Fully supported | |
| Note | Annotation1:1 | Fully supported | |
| Time Entry (billable hours) | Opportunity Product Line Item1:1 | Fully supported | |
| Document / Attachment | SharePoint Document Location1:1 | Fully supported | |
| Document Template (merge) | Reference File Export1:1 | Fully supported | |
| System ID / Record Reference | Custom Field (Source_System_ID__c)1:1 | Fully supported | |
| Custom Field (any non-standard) | Dataverse Custom Column1: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.
Time Matters(r) gotchas
No API forces file-only migration with manual export wizard steps
Archived records excluded by default — explicit 'Both' selection required
Include field names checkbox is easy to miss, leaving CSVs headerless
Binary documents and attachments not included in any standard export
Merge template library requires separate file-share export, not in export wizard
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
Extract all Time Matters data via CSV export templates
FlitStack engineers configure and run the Custom Export wizard for all six record types — Contacts, Matters, Events, Tasks, Notes, and Time Entries — using separate templates per record type. We capture the export template configurations alongside the CSV files so the template setup is preserved as part of the migration documentation. Each template is reviewed for completeness before the files are handed off for transformation.
Audit CSV exports and build transformation logic
We parse every CSV header to identify all custom field names, infer data types, and build the Dataverse column-creation manifest. The transformation layer handles date-format standardization (MM/DD/YYYY in Time Matters exports must map to Dataverse-compatible ISO 8601), null-value handling for optional fields, and the contact-matter many-to-many flattening. Owner resolution by email match runs against the Dynamics 365 user list; unresolved owners are flagged for team assignment before the load begins.
Stand up Dynamics 365 schema before data lands
Before any data moves, we create a FlitStack migration solution in Dynamics 365 containing every custom column identified in the Time Matters export headers, all mapped to the correct Dataverse table and data type. We also configure the necessary Activity settings in System Settings so contacts and opportunities accept the incoming activity records, and set up the security roles that mirror Time Matters attorney and staff access levels. The schema must be complete before the Bulk API load can reference the custom columns.
Run a sample migration with field-level diff
A representative slice — typically 200–500 records spanning contacts, matters, activities, and time entries — migrates first. We generate a field-level diff between the source CSV and the loaded Dynamics 365 record so you can verify that custom field values populated correctly, the primary contact-matter link resolved to OpportunityContactRole, and the activity Regarding lookups point to the correct parent record. Owner resolution and date-preservation are validated at this stage before the full run commits.
Execute full migration with delta-pickup window
The full data set loads in sequenced phases: Accounts and Contacts first to resolve foreign keys, then Matters as Opportunities with product line items for billable hours, then Activities with valid RegardingId lookups, then Notes and file attachments. After the bulk load completes, a 24–48 hour delta-pickup window captures any Matter or Contact created or modified in Time Matters during the cutover. FlitStack's audit log records every insert and update operation, and one-click rollback is available if the final reconciliation check identifies missing records or broken relationships.
Platform deep dives
Time Matters(r)
Source
Strengths
Weaknesses
Microsoft Dynamics 365 Sales
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. All 8 core objects map 1:1 between Time Matters(r) and Microsoft Dynamics 365 Sales .
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Time Matters(r) and Microsoft Dynamics 365 Sales .
Object compatibility
All 8 core objects map 1:1 between Time Matters(r) 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
Time Matters(r): Not applicable.
Data volume sensitivity
Time Matters(r) 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 Time Matters(r) to Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.
Walk through your Time Matters(r) 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 Time Matters(r)
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.