CRM migration

Migrate from Actionstep to Microsoft Dynamics 365 Sales

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 logo

Actionstep

Source

Microsoft Dynamics 365 Sales

Destination

Microsoft Dynamics 365 Sales  logo

Compatibility

100%

13 of 13

objects map 1:1 between Actionstep and Microsoft Dynamics 365 Sales .

Complexity

BStandard

Timeline

2–5 days

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

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.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

Actionstep logo

Actionstep

What's pushing teams away

  • The workflow creation process is described as very complicated, with a steep learning curve that frustrates firms expecting more approachable automation tooling.
  • The CRM features are not well suited to legal practice needs, forcing firms to patch in external CRM tools rather than relying on Actionstep's native capabilities.
  • Reporting is described as not user friendly, with firms noting the standard accounting reports are limited and require significant effort to extract meaningful firm insights.
  • The configuration depth that makes Actionstep powerful also creates a higher training burden, with some reviewers feeling the product demands too much time investment relative to alternatives.
  • Integration complexity with non-native tools means firms investing heavily in custom integrations face significant rework when migrating away from Actionstep.

Choosing

Microsoft Dynamics 365 Sales  logo

Microsoft Dynamics 365 Sales

What's pulling them in

  • Deep Microsoft 365, Teams, and Outlook integration makes Microsoft Dynamics 365 Sales a natural fit for Microsoft-first organizations already invested in that ecosystem
  • Sales Enterprise and Premium tiers offer unlimited custom tables and advanced AI-driven forecasting and predictive analytics not available in lower tiers
  • Professional tier pricing at $65 per user per month offers a lower entry cost than Salesforce for SMB teams with straightforward CRM needs
  • Flexible customization options allow businesses to build bespoke apps, tailor forms and views, and integrate with other Dynamics 365 modules
  • Microsoft Copilot AI tools are embedded directly into the sales workflow on Enterprise and Premium, automating routine tasks and providing deal intelligence

Object mapping

How Actionstep objects map to Microsoft Dynamics 365 Sales

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

maps to

Microsoft Dynamics 365 Sales

Account

1:1
Fully supported

Actionstep 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

maps to

Microsoft Dynamics 365 Sales

Opportunity

1:1
Fully supported

Where 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)

maps to

Microsoft Dynamics 365 Sales

Contact

1:1
Fully supported

Actionstep 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

maps to

Microsoft Dynamics 365 Sales

Contact (custom field)

1:1
Fully supported

Actionstep 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

maps to

Microsoft Dynamics 365 Sales

Account custom field / Custom table

1:1
Fully supported

Actionstep 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

maps to

Microsoft Dynamics 365 Sales

Custom Activity / Note / Custom entity

1:1
Fully supported

Actionstep 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

maps to

Microsoft Dynamics 365 Sales

SharePoint / Note attachment

1:1
Fully supported

Actionstep 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

maps to

Microsoft Dynamics 365 Sales

Account custom currency fields

1:1
Fully supported

Actionstep 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

maps to

Microsoft Dynamics 365 Sales

Task / custom Step entity

1:1
Fully supported

Actionstep 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

maps to

Microsoft Dynamics 365 Sales

Account custom picklist / Record Type

1:1
Fully supported

Actionstep 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

maps to

Microsoft Dynamics 365 Sales

Account custom picklist / Opportunity Stage

1:1
Fully supported

Actionstep 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

maps to

Microsoft Dynamics 365 Sales

Opportunity Amount / Account custom currency field

1:1
Fully supported

Actionstep 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

maps to

Microsoft Dynamics 365 Sales

Contact (owner resolution)

1:1
Fully supported

Actionstep 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.

Gotchas + challenges

What specifically takes care here

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 logo

Actionstep gotchas

Medium

API is case-sensitive and requires exact casing

High

No system account access — API is user-centric

Medium

Rate limiting introduced April 2024 limits bulk export speed

High

Trust accounting transactions require special migration handling

High

Workflow automations are not API-exportable

Microsoft Dynamics 365 Sales  logo

Microsoft Dynamics 365 Sales gotchas

High

Professional tier 15-table custom table limit blocks migrations

High

October 2024 pricing increase applies at renewal for all customers

Medium

Custom fields must be created in the UI before API writes

Medium

Power Platform request limits apply to bulk migrations

Medium

Activity records orphaned to inactive owners fail silently

Pair-specific challenges

  • Actionstep Data Collections have no native equivalent in Dynamics 365 — custom table limits apply

    Actionstep Data Collections are the schema-per-matter-type building blocks that let law firms capture fields specific to Family Law (custody arrangements, opposing counsel), Corporate (jurisdiction, entity type), or Litigation (court, judge, case number) in the same matter record. Dynamics 365 Sales Professional caps custom tables at 15, which can be exhausted by a firm with 5 matter types averaging 3–4 data collection fields each. We audit the full field inventory during pre-migration discovery and present two options: (a) use Account custom fields with an Actionstep_ prefix for simpler setups, or (b) create a custom Actionstep_DataCollection__c table with a lookup to Account for firms hitting the table ceiling. Firms must confirm their Dynamics 365 license tier before we finalize the mapping plan.

  • Participant roles require custom fields — Dynamics 365 has no role-label field on Account-Contact relationships

    Actionstep stores participant role labels (Attorney, Client, Paralegal, Witness, etc.) as a property on the link between a Matter and a person. A single person can appear in multiple matters with different roles each time. Dynamics 365 Contact has no native role field on its relationship to Account — the standard Contact Role entity is designed for opportunity-level relationships (decider, evaluator), not for attorney-client matter-participant tracking. FlitStack AI creates an Actionstep_ParticipantRole__c custom pick-list field on Contact and stores the role value per matter-participant association. For firms where one person has multiple roles across matters, we create separate Contact records per role or use a custom junction table, and present both options in the pre-migration mapping plan before records are written.

  • Trust accounting balances have no native destination in Dynamics 365 Sales

    Actionstep maintains a full trust accounting ledger per matter: client trust balances, receipts, disbursements, and reconciliation status. Dynamics 365 Sales has no trust accounting module — it is a CRM, not a legal accounting platform. Migrating the trust ledger in its native form is not possible without a third-party legal accounting integration. FlitStack AI migrates a snapshot of the current trust balance (Actionstep_TrustBalance__c, Actionstep_TrustIn__c, Actionstep_TrustOut__c) as currency fields on the Account record, preserving the balance for post-migration reconciliation. The firm should plan to maintain trust accounting continuity in Actionstep (read-only) or a dedicated trust accounting tool (Clio Trust Accounting, CosmoLaw, or equivalent) after cutover, with Dynamics 365 Sales used for client relationship and matter-reference data only.

  • Actionstep API rate limits require staged extraction for large matter bases

    Actionstep introduced rate limiting across all public API endpoints in April 2024. The API pages at 200 records per request, and large law firm databases — particularly firms with 50,000+ Matters and multi-year participant histories — can exhaust rate limit allocations within a single extraction window. FlitStack AI manages extraction scheduling across multiple API sessions with exponential backoff, prioritizing Matters, Participants, and Time Entries in sequence. Firms with datasets exceeding 100,000 total records should expect the extraction phase to run across 2–3 days rather than a single session. We surface estimated extraction duration and API session count in the pre-migration scoping document before the project begins.

  • Dynamics 365 Sales Professional's 15-table cap can force custom entity redesign mid-migration

    Dynamics 365 Sales Professional licensing imposes a hard limit of 15 custom tables (entities) per environment. Firms running Enterprise licensing face no ceiling. For migrations where Actionstep Data Collections produce more than 15 distinct logical tables — for example, matter-specific data collections, document metadata, trust ledger entries, and step history all as separate entities — the mapping must consolidate into fewer tables using polymorphic lookup fields or JSON-encoded payload fields on the Account record. FlitStack AI performs a custom table inventory count during discovery and raises the design constraint with the firm before field mapping begins, avoiding a mid-migration scope change that would delay the project.

Migration approach

Six steps for a successful Actionstep to Microsoft Dynamics 365 Sales data migration

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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

Context on both ends of the pair

Actionstep logo

Actionstep

Source

Strengths

  • Combines practice management, CRM, document automation, trust accounting, and billing in a single integrated platform.
  • Builder tool enables deep customization of matter types, data collections, and participant role structures per practice area.
  • Enhanced Billing Module supports complex legal billing including trust accounting and multi-currency reporting.
  • Cloud-native with mobile app access, eliminating on-premise server requirements for law firms.
  • Native iManage document management integration provides enterprise-grade document handling for firms requiring advanced DMS.

Weaknesses

  • CRM capabilities are considered underdeveloped and not well suited to legal practice relationship management.
  • Workflow automation creation has a steep learning curve and is frequently described as complicated by users.
  • Reporting lacks user-friendliness, with limited standard accounting reports compared to dedicated legal billing software.
  • The high degree of configurability creates a significant training burden for new users and admins.
  • Workflow automations cannot be exported programmatically, requiring manual reconstruction on the destination platform.
Microsoft Dynamics 365 Sales  logo

Microsoft Dynamics 365 Sales

Destination

Strengths

  • Native integration with Microsoft 365, Teams, Outlook, and SharePoint for unified productivity workflow
  • Unlimited custom tables and complex workflows on Enterprise tier enable deep customization for complex sales processes
  • AI-driven predictive analytics and deal intelligence on Enterprise and Premium tiers help sales teams prioritize pipeline
  • Dataverse unified data layer provides a consistent API and data model across all Dynamics 365 and Power Platform apps
  • Strong security model with Field-Level Security and Record Ownership rules for governance-conscious enterprises

Weaknesses

  • Sales Professional tier caps custom tables at 15, creating a migration ceiling for highly customized SMB environments
  • October 2024 pricing increases of $15 per user across all tiers apply to existing customers upon renewal
  • Implementation typically requires costly certified partners, adding 30–50% to total project cost
  • Updates and platform releases can disrupt customizations and plugins, requiring regression testing after each wave
  • Non-Microsoft integrations require additional configuration or middleware, limiting flexibility for heterogeneous tech stacks

Complexity grading

How hard is this migration?

Standard CRM migration. All 8 core objects map 1:1 between Actionstep and Microsoft Dynamics 365 Sales .

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Actionstep and Microsoft Dynamics 365 Sales .

  • Object compatibility

    A

    All 8 core objects map 1:1 between Actionstep and Microsoft Dynamics 365 Sales .

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    8-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    Actionstep: Rate limiting introduced April 2024 — limits not publicly documented per endpoint; page size capped at 200 records per request.

  • Data volume sensitivity

    B

    Actionstep doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your Actionstep to Microsoft Dynamics 365 Sales migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about Actionstep to Microsoft Dynamics 365 Sales data migrations

Answers to the questions buyers ask most during Actionstep to Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.

Can't find your answer?

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 consultation

Small to mid-size law firm migrations — up to 50,000 total records across Matters, Participants, Time Entries, and Documents — typically complete in 2–5 days of clock time. Firms with more than 100,000 records, 20+ Data Collection fields across multiple matter types, or complex multi-role participant structures extend to 2–4 weeks. The longest phase is pre-migration discovery and schema planning (3–5 business days), because Actionstep's flexible Data Collection model requires per-firm field inventory before field mapping can be finalized. API extraction for large matter bases also runs across multiple sessions due to Actionstep's April 2024 rate limits, adding 1–2 days to the extraction window.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Actionstep.
Land in Microsoft Dynamics 365 Sales , intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day