CRM migration
Field-level mapping, validation, and rollback between Actionstep and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .
Actionstep
Source
Microsoft Dynamics 365 Sales
Destination
Compatibility
13 of 13
objects map 1:1 between Actionstep and Microsoft Dynamics 365 Sales .
Complexity
BStandard
Timeline
2–5 days
Overview
Actionstep is a legal practice management platform built around Matters (the legal file or case), Participants (attorneys, clients, opposing counsel, and other parties with assigned roles), and Data Collections (custom data sets defined per matter type). It also carries time entries, billing records, trust accounting balances, document references, and step-based task workflows. Dynamics 365 Sales is a CRM built on Microsoft Dataverse, organizing work around Accounts (organizations), Contacts (people), Leads, and Opportunities. The two platforms share Microsoft roots but diverge sharply in data architecture: Actionstep's matter-centric model has no direct equivalent in Dynamics 365 Sales, where client relationships are modeled through Account-Contact hierarchies and opportunity pipelines. FlitStack AI extracts Actionstep data via its REST API (paged at 200 records per request, rate-limited since April 2024) and maps Matters to Account records, with the most recent or highest-value Matter per client generating a corresponding Opportunity for revenue tracking. Participants map to Contacts with a custom Actionstep_ParticipantRole__c field preserving their original role label (Attorney, Client, Paralegal, etc.). Actionstep custom data collection fields — the flexible schema elements law firms define per matter type — migrate as custom fields on the Account or a custom Actionstep_DataCollection__c table in Dataverse, depending on the field count and license tier. Time entries, document references, and billing totals land as custom fields or Notes, enabling firms to retain financial and document history even without native trust accounting in Dynamics 365 Sales. Workflows, step sequences, and automation rules do not migrate and must be rebuilt in Power Automate; we export Actionstep workflow definitions as a reference document for your Dynamics admin. The migration runs against Dynamics 365's Web API with upsert logic keyed on Actionstep IDs stored in a Source_ID__c field, ensuring field-level diff validation before the full run commits.
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
Actionstep platform overview
Scorecard, SWOT, gotchas, and pricing for Actionstep.
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 Actionstep 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.
Actionstep
Matter
Microsoft Dynamics 365 Sales
Account
1:1Actionstep Matters map to Dynamics 365 Accounts as the primary firm or client record. The Account name is sourced from the Matter's client organization field. For solo-client matters, the Matter name becomes the Account name with a custom Actionstep_MatterName__c field for reference. The most recent Matter per Account can optionally generate a linked Opportunity for revenue-status tracking.
Actionstep
Matter
Microsoft Dynamics 365 Sales
Opportunity
1:1Where the firm tracks billing or revenue at the matter level, Matter records generate corresponding Opportunity entries in Dynamics 365 Sales. The Opportunity Name uses the Matter name + matter number. Estimated billing amount from Actionstep maps to Opportunity Amount. Closed-won/lost status is derived from Matter status flags (open, closed-billed, written-off). This is an optional mapping activated when the firm wants pipeline visibility for legal work.
Actionstep
Participant (Person record)
Microsoft Dynamics 365 Sales
Contact
1:1Actionstep person records linked to a Matter via a participant association map directly to Dynamics 365 Contacts. The Contact is associated to the corresponding Account (Matter client). Role labels (Attorney, Client, Paralegal, etc.) are preserved in a custom Actionstep_ParticipantRole__c field on the Contact record. Where a person participates across multiple matters, a single Contact record is created with multiple role entries surfaced via custom related records.
Actionstep
Participant Role
Microsoft Dynamics 365 Sales
Contact (custom field)
1:1Actionstep stores participant role labels on the link between a Matter and a person. Dynamics 365 has no native role-label field on the Account-Contact relationship. We create an Actionstep_ParticipantRole__c custom pick-list field on Contact and populate it with the source role value. For multi-role scenarios (one person with multiple roles in one matter), we create separate Contact records or a junction table — the mapping plan presents the options before migration runs.
Actionstep
Data Collection field
Microsoft Dynamics 365 Sales
Account custom field / Custom table
1:1Actionstep Data Collections are schema-per-matter-type: a Family Law matter might have 'Custody Arrangement' and 'Opposing Counsel' fields, while a Corporate matter has 'Entity Type' and 'Jurisdiction'. These map to Account custom fields named with an Actionstep_ prefix (e.g., Actionstep_CustodyArrangement__c). Where the firm has 50+ data collection fields across multiple matter types, we create a custom Actionstep_DataCollection__c table in Dataverse keyed by Account, with one row per matter and columns per data collection field.
Actionstep
Time Entry
Microsoft Dynamics 365 Sales
Custom Activity / Note / Custom entity
1:1Actionstep time entries (date, attorney name, hours, billing rate, description) are billable activity records. In Dynamics 365, these become either custom Activity records attached to the Account or Opportunity, or entries in a custom Actionstep_TimeEntry__c entity that preserves hours, date, rate, and narrative. Billing totals per matter roll up to Opportunity Amount if opportunity mapping is activated. Trust accounting transactions are handled separately — see Trust Accounting below.
Actionstep
Document reference
Microsoft Dynamics 365 Sales
SharePoint / Note attachment
1:1Actionstep document references (file name, URL, upload date, associated participant) are retrieved from the API. Documents are re-uploaded to the Account's SharePoint document library (native Dynamics 365 SharePoint integration) with a folder structure mirroring the matter hierarchy. Where the firm uses a dedicated document management system, URLs are preserved in an Actionstep_DocumentUrl__c field on a custom Actionstep_Document__c table for reference.
Actionstep
Trust Accounting balance
Microsoft Dynamics 365 Sales
Account custom currency fields
1:1Actionstep trust account balances are financial records with no equivalent in Dynamics 365 Sales. We create custom currency fields on the Account — Actionstep_TrustBalance__c for current balance, Actionstep_TrustIn__c and Actionstep_TrustOut__c for total inflows and outflows — and populate them from the Actionstep trust account ledger entries. This preserves the financial snapshot for reconciliation without requiring a full legal accounting module.
Actionstep
Matter Step / Task
Microsoft Dynamics 365 Sales
Task / custom Step entity
1:1Actionstep Steps are ordered tasks within a Matter with due dates, assignees, and status. In Dynamics 365, Steps become Tasks attached to the Account or Opportunity with the Step name as Subject, due date as ScheduledEnd, and status as StateCode. For complex multi-step sequences, we create a custom Actionstep_Step__c table preserving the step order, assigned participant, and completion timestamp.
Actionstep
Matter Type classification
Microsoft Dynamics 365 Sales
Account custom picklist / Record Type
1:1Actionstep Matter Types (Family Law, Corporate, Litigation, Real Estate, etc.) are mapped to a custom Actionstep_MatterType__c pick-list field on Account. Firms using Dynamics 365 Record Types for business-unit segmentation can alternatively map Matter Types to Account Record Types, with each Record Type associated with a distinct page layout and sales process. This approach is chosen during the pre-migration schema planning call.
Actionstep
Matter status flags
Microsoft Dynamics 365 Sales
Account custom picklist / Opportunity Stage
1:1Actionstep matter status values (Open, On Hold, Closed Billed, Written Off, Archived) are mapped to a custom Actionstep_MatterStatus__c pick-list on Account. If Opportunity mapping is active, Closed Billed maps to Opportunity Stage = Closed Won and Written Off maps to Closed Lost, enabling pipeline reporting continuity.
Actionstep
Matter billing total
Microsoft Dynamics 365 Sales
Opportunity Amount / Account custom currency field
1:1Actionstep does not store a billing total directly on the Matter — total billed amount is the sum of time entries and disbursements. We calculate this total during the extraction phase and write it to Opportunity Amount (if Opportunity mapping is active) or to a custom Actionstep_TotalBilled__c currency field on Account. This preserves billing history without requiring the firm to run an Actionstep report post-migration.
Actionstep
Actionstep user / attorney
Microsoft Dynamics 365 Sales
Contact (owner resolution)
1:1Actionstep user accounts (attorneys, paralegals, admins) are resolved against Dynamics 365 users by email match. A matched user becomes the OwnerId on migrated records (Account, Opportunity, Task). Unmatched users — those without a Dynamics 365 license at migration time — are flagged and either invited to Dynamics 365 before cutover or assigned to a fallback owner specified by the firm. All Actionstep user IDs are preserved in Actionstep_CreatedByUserId__c for audit traceability.
| Actionstep | Microsoft Dynamics 365 Sales | Compatibility | |
|---|---|---|---|
| Matter | Account1:1 | Fully supported | |
| Matter | Opportunity1:1 | Fully supported | |
| Participant (Person record) | Contact1:1 | Fully supported | |
| Participant Role | Contact (custom field)1:1 | Fully supported | |
| Data Collection field | Account custom field / Custom table1:1 | Fully supported | |
| Time Entry | Custom Activity / Note / Custom entity1:1 | Fully supported | |
| Document reference | SharePoint / Note attachment1:1 | Fully supported | |
| Trust Accounting balance | Account custom currency fields1:1 | Fully supported | |
| Matter Step / Task | Task / custom Step entity1:1 | Fully supported | |
| Matter Type classification | Account custom picklist / Record Type1:1 | Fully supported | |
| Matter status flags | Account custom picklist / Opportunity Stage1:1 | Fully supported | |
| Matter billing total | Opportunity Amount / Account custom currency field1:1 | Fully supported | |
| Actionstep user / attorney | Contact (owner resolution)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.
Actionstep gotchas
API is case-sensitive and requires exact casing
No system account access — API is user-centric
Rate limiting introduced April 2024 limits bulk export speed
Trust accounting transactions require special migration handling
Workflow automations are not API-exportable
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 discovery and schema planning
FlitStack AI begins every Actionstep migration with a structured discovery phase. We connect to the Actionstep REST API in sandbox mode and enumerate all Matter Types, Participant Role labels, Data Collection field definitions, and Time Entry structures across your tenant. Simultaneously, we inventory your Dynamics 365 Sales environment — license tier (Professional or Enterprise), existing custom fields, SharePoint document library configuration, and user accounts. This produces a Data Migration Plan document that specifies: which Actionstep matter types map to which Account Record Types (if applicable), how Data Collection fields are decomposed across Account custom fields or a custom table, how participant roles are stored in Contact, and which Actionstep users map to Dynamics 365 users by email. No data is written during discovery.
Custom field and entity provisioning in Dynamics 365
Before any data extraction begins, FlitStack AI provisions the required custom fields and tables in your Dynamics 365 Sales environment. This includes Actionstep_ParticipantRole__c on Contact, Actionstep_MatterType__c and Actionstep_MatterStatus__c on Account, the custom Actionstep_TimeEntry__c entity (if time entries are in scope), and the custom Actionstep_Document__c table (if document URL references are retained). We also create the custom currency fields for trust accounting balances and any custom pick-list values needed for matter type and status value mapping. Custom field provisioning is validated by a Dynamics 365 admin before extraction starts, ensuring the schema is ready to receive data without post-migration field additions.
API extraction with throttling and de-duplication
We extract Actionstep data via the REST API with pagination at 200 records per request, using exponential backoff to respect the rate limits introduced in April 2024. Extraction runs in this priority order: (1) Account-level records — Matters with their status, type, dates, and billing totals; (2) Contact-level records — Participants deduplicated by email, with role labels; (3) Time Entries and trust accounting snapshots; (4) Document references and SharePoint URLs; (5) Matter Steps and task histories. Each record receives a Source_System_ID__c field containing the Actionstep ID, enabling upsert logic during the load phase. Records modified after the extraction start timestamp are flagged for the delta-pickup window.
Sample migration with field-level diff
A representative sample — typically 100–300 records spanning 3–5 matter types, 5–10 participant roles, and time entry records — migrates to Dynamics 365 Sales before the full run. FlitStack AI generates a field-level diff comparing source values against destination field values, surfacing discrepancies in: date format transformations (Actionstep stores ISO-8601 dates; Dynamics requires Dataverse datetime format), pick-list value mismatches between source role labels and the custom pick-list created in Dynamics, billing total calculation accuracy (verifying the sum of time entries against the written Opportunity Amount), and owner resolution failures (unmatched Actionstep user emails). You review the diff, approve corrections, and FlitStack AI updates the field mapping configuration before the full run is scheduled.
Full migration run with delta-pickup and rollback readiness
The full migration writes all Matters → Accounts, Participants → Contacts, Time Entries → custom entities, and Document references → SharePoint or custom table records. Dynamics 365 Web API handles upserts keyed on Source_System_ID__c, so records already validated in the sample run are committed efficiently. A delta-pickup window (24–48 hours) captures any Actionstep records modified during the cutover period — typically new Participants added to open Matters or time entries logged in the final days before go-live. The audit log records every operation (create, update, skip, error) with source ID, destination ID, and field-level before/after values. One-click rollback reverts all migrated records if reconciliation uncovers a data integrity issue. Your team retains read-only access to Actionstep throughout the window for reference.
Platform deep dives
Actionstep
Source
Strengths
Weaknesses
Microsoft Dynamics 365 Sales
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. All 8 core objects map 1:1 between Actionstep and Microsoft Dynamics 365 Sales .
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Actionstep and Microsoft Dynamics 365 Sales .
Object compatibility
All 8 core objects map 1:1 between Actionstep 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
Actionstep: Rate limiting introduced April 2024 — limits not publicly documented per endpoint; page size capped at 200 records per request.
Data volume sensitivity
Actionstep 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 Actionstep to Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.
Walk through your Actionstep 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 Actionstep
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.