CRM migration

Migrate from AgileCase to Microsoft Dynamics 365 Sales

Field-level mapping, validation, and rollback between AgileCase and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .

AgileCase logo

AgileCase

Source

Microsoft Dynamics 365 Sales

Destination

Microsoft Dynamics 365 Sales  logo

Compatibility

92%

11 of 12

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

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

AgileCase stores everything as Case objects — contacts, companies, cases, tasks, and custom fields sit inside one flexible case-centric model. Dynamics 365 Sales separates leads, contacts, accounts, and opportunities across distinct entities using Microsoft Dataverse. FlitStack AI extracts your AgileCase schema, maps Case records to Dynamics contacts and opportunities, and preserves custom field definitions as Dataverse columns with their original data types intact. AgileCase file attachments re-upload to Dynamics 365 SharePoint or Dataverse file columns. AgileCase workflow definitions (case plans, custom scripts, email templates) do not have a direct Dynamics equivalent — those are surfaced in an export package for your Power Automate rebuild. The migration uses AgileCase's REST API to read records, transforms data through a staging layer, and loads into Dynamics via Dataverse bulk operations or API calls, sequenced so foreign-key relationships resolve correctly. A delta-pickup window runs during cutover to capture records modified while the migration processes.

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

AgileCase logo

AgileCase

What's pushing teams away

  • User limits of 15 on Professional and 30 on Business force growing firms to migrate when they exceed these thresholds, often mid-workflow.
  • Limited automation and report counts on Professional tier become restrictive as case volume increases, pushing teams toward platforms with fewer structural caps.
  • Enterprise pricing requires custom quotes with no public range, making budget planning difficult and prompting firms to evaluate alternatives with transparent pricing.
  • Workflow automation logic and custom reports do not transfer between platforms, creating significant rebuild effort that makes switching costly and slow.

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 AgileCase objects map to Microsoft Dynamics 365 Sales

Each row shows how a AgileCase 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.

AgileCase

Contact (inside Case)

maps to

Microsoft Dynamics 365 Sales

Contact

1:1
Fully supported

AgileCase stores contacts inside cases. FlitStack extracts all unique contacts, deduplicates by email address, and loads them as Dynamics 365 Contact records. A primary CaseId reference is preserved as a custom field on the contact for traceability. FlitStack also merges duplicate contacts identified by phone number, and flags email-less contacts for Lead routing.

AgileCase

Contact (email-less)

maps to

Microsoft Dynamics 365 Sales

Lead

1:many
Fully supported

AgileCase contacts without an email address cannot map to Dynamics 365 Contact (which requires Email as a required-like field for duplicate detection). These records route to the Dynamics Lead entity instead, with a flag noting their original AgileCase source. The Lead retains the contact's name, phone, and address fields, and the source flag enables reporting on the origin of these records.

AgileCase

Company (inside Case)

maps to

Microsoft Dynamics 365 Sales

Account

1:1
Fully supported

AgileCase companies extract to Dynamics 365 Account records. The primary contact link from the case becomes Account's primary contact lookup. Parent-child company hierarchies in AgileCase map to Account.ParentId in Dynamics. FlitStack also validates that each parent company exists before linking, and any orphaned child companies are queued for manual resolution. The account record retains the original AgileCase company ID in Source_ID__c for reconciliation.

AgileCase

Case

maps to

Microsoft Dynamics 365 Sales

Opportunity

1:1
Fully supported

AgileCase Case objects map to Dynamics 365 Opportunity records — each case becomes one opportunity. Case name becomes Opportunity.Name; case amount maps to Opportunity.Amount; case closed date maps to Opportunity.CloseDate. FlitStack also copies the case description into the Opportunity Description field and maps any custom case fields to corresponding Dataverse columns on the Opportunity. If the case includes a reference to a primary contact, FlitStack resolves the ContactId lookup before loading the opportunity.

AgileCase

Case Status

maps to

Microsoft Dynamics 365 Sales

Opportunity Stage

1:1
Fully supported

AgileCase case-status pick-list values (e.g., Open, In Progress, Resolved, Escalated) map to Dynamics Opportunity Stage values per pipeline. We create a Dataverse option-set for case status and map each value explicitly — no default mapping is assumed. If a case status value does not match an existing stage in the target pipeline, FlitStack creates a new stage entry in the Dataverse option-set and flags it for review, ensuring no status is lost during migration.

AgileCase

Case Priority

maps to

Microsoft Dynamics 365 Sales

Custom Field (Priority__c)

1:1
Fully supported

AgileCase priority levels (Low, Medium, High, Critical) have no native Dynamics equivalent on Opportunity. We create a custom option-set field Priority__c on the Opportunity entity and map values one-by-one. The custom field is added to the Opportunity form layout and included in Power BI reports for filtering by priority. During migration, any unmapped priority values are logged and resolved by your Dynamics admin before go-live.

AgileCase

Case Assignee / Owner

maps to

Microsoft Dynamics 365 Sales

Opportunity OwnerId

1:1
Fully supported

AgileCase case owner resolves by email match against Dynamics 365 system users. Unmatched owners are flagged with a custom field AgileCase_Original_Owner__c for manual assignment before go-live. The matching logic also checks for duplicate email addresses and selects the most recently active user account. If no match is found, the opportunity is placed in a dedicated queue for your admin to assign an owner manually, ensuring no records are left without an owner after cutover.

AgileCase

Custom Fields

maps to

Microsoft Dynamics 365 Sales

Dataverse Custom Columns

1:1
Mapping required

Every AgileCase custom field maps to a Dataverse column of the equivalent data type — text, number, date, pick-list, boolean. Dynamics 365 Sales Professional enforces a per-entity column limit; we validate field count against the license tier before migration. If the custom field count exceeds the allowed limit, FlitStack flags the excess fields and recommends either consolidating fields into a JSON blob or upgrading to Sales Enterprise before proceeding.

AgileCase

File Attachments

maps to

Microsoft Dynamics 365 Sales

SharePoint / Dataverse Files

1:1
Fully supported

AgileCase file attachments on cases download to local storage, then re-upload to Dynamics 365 SharePoint document locations or Dataverse file columns, linked back to the Opportunity record by the original case ID. FlitStack also validates file size against the 115 MB Dataverse limit and splits any oversized attachments into smaller chunks before uploading. File metadata such as original creation date and author are preserved in the SharePoint column properties.

AgileCase

Email / Call / Meeting Log

maps to

Microsoft Dynamics 365 Sales

Task / Email (Activity)

1:1
Fully supported

AgileCase activity logs (calls, emails, meetings) attached to a case map to Dynamics 365 Task and Email records with the Opportunity as the regarding object. Original activity type, timestamp, and notes are preserved. FlitStack also maps the original contact associated with the activity to the RegardingObjectId field, ensuring that the related contact is linked in Dynamics. If an activity type has no direct equivalent, it is stored as a generic Task with a custom type field.

AgileCase

Case Plan / Workflow Definition

maps to

Microsoft Dynamics 365 Sales

Power Automate (no equivalent)

1:1
Fully supported

AgileCase workflow rules and case-plan scripts cannot import into Dynamics 365. FlitStack exports the workflow definitions as a structured JSON package so your Dynamics admin can reference them when rebuilding in Power Automate. The JSON includes trigger conditions, action steps, field update logic, and any custom script snippets. FlitStack also provides a mapping guide that links each AgileCase case-plan step to equivalent Power Automate connectors, helping you replicate the automation flow efficiently.

AgileCase

Audit Trail

maps to

Microsoft Dynamics 365 Sales

Custom Date Fields

1:1
Fully supported

AgileCase stores up to 180 days of audit history on Professional plans and 3 years on Business plans. Original create and update timestamps migrate as custom datetime fields on each Dynamics record — CreatedDate in Dynamics is set at migration time.

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.

AgileCase logo

AgileCase gotchas

Medium

Audit trail retention is tier-dependent

High

Post-termination 30-day export window in DPA

Medium

Blob storage document extraction requires flattening

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

  • AgileCase workflow definitions have no import path into Dynamics 365 Power Automate

    AgileCase stores workflow rules as JSON case-plan definitions with custom scripts — these configurations are proprietary to the AgileCase engine and have no equivalent structure in Microsoft Dataverse or Power Automate. FlitStack exports your AgileCase workflow definitions as a structured JSON package so your Dynamics admin can reference the logic when rebuilding automations in Power Automate. This export does not auto-deploy — it serves as a rebuild specification. Expect to invest 2–4 weeks rebuilding critical workflows depending on automation complexity.

  • Dataverse API rate limits require batched migration with throttling-aware retry logic

    Dynamics 365 Sales sits on Microsoft Dataverse, which enforces 6,000 API requests per user per 5-minute window and 100,000 total requests per 24-hour period. AgileCase API has its own throttling. When both are in play simultaneously, FlitStack throttles reads against AgileCase and batches writes to Dataverse using bulk-operation mode where possible, with exponential backoff on 429 responses. Large migrations exceeding 50,000 records may require multi-day migration windows or off-peak scheduling to stay within Dataverse quotas without extending timeline.

  • Dynamics 365 Sales Professional caps custom tables at 15 — Enterprise required for complex AgileCase schemas

    AgileCase custom fields on cases can grow to 50+ attributes depending on configuration. Dynamics 365 Sales Professional enforces a limit of 15 custom tables (entities). If your AgileCase setup includes multiple custom objects beyond the base Case object, you may need Sales Enterprise licensing to create all required custom tables in Dataverse. FlitStack audits your AgileCase schema before migration and flags whether Professional or Enterprise licensing is required based on custom table and column counts.

  • Case-status pick-list values require explicit Dataverse option-set mapping

    AgileCase lets administrators define arbitrary case-status values with no enforced pipeline model. Dynamics 365 Opportunity Stage is a pick-list scoped to Sales Processes — each stage must be a defined value in the organization's option-set metadata. FlitStack generates a value-mapping table for every AgileCase status value and creates the corresponding Dataverse option-set entries before records load. If your AgileCase setup has status values that don't map cleanly to standard pipeline stages, we create a custom pipeline and Sales Process in Dynamics to accommodate them.

Migration approach

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

  1. Extract AgileCase schema and map objects to Dataverse entities

    FlitStack reads AgileCase object definitions via REST API — contacts, companies, cases, custom fields, file attachments, and activity logs. We produce a schema map showing which AgileCase objects translate to which Dataverse entities (Contact, Account, Opportunity) and flag any custom fields that require Dataverse column creation. You receive a schema plan before data moves so your Dynamics admin can pre-create custom fields and option-sets.

  2. Resolve owners by email and validate Dynamics user accounts

    AgileCase case owners are matched to Dynamics 365 system users by email address. Unmatched owners are listed in a pre-migration report — your Dynamics admin either invites them to the environment or assigns a fallback owner before records load. No opportunity lands without a valid OwnerId; contacts without email are flagged for Lead routing instead of Contact. The matching logic also checks for duplicate email entries and resolves to the most recently active user. If a fallback owner is used, the original AgileCase owner is stored in a custom field AgileCase_Original_Owner__c for post-migration review.

  3. Migrate parent entities first — Accounts, then Contacts, then Opportunities

    Dynamics requires Account records before Contact records (AccountId lookup) and Contact records before Opportunity records (ContactId and AccountId lookups). FlitStack sequences the migration so Accounts load first, then Contacts/Leads split by email presence, then Cases → Opportunities with case-status to stage mapping resolved per pipeline. Custom fields are created in Dataverse before the corresponding records load. This sequencing ensures referential integrity, prevents orphaned lookups, and allows validation of parent records before children are loaded. The migration script also validates that each parent record exists before inserting child records, and any missing parent references are reported for remediation before proceeding.

  4. Run a sample migration with field-level diff before the full run

    FlitStack selects a representative subset of records — typically 200–500 rows covering contacts, accounts, cases, and file attachments — and runs a trial migration into a sandbox Dynamics environment. After the trial, a field-level diff report compares source values in AgileCase against the loaded values in Dynamics, highlighting any discrepancies in case status mapping, priority assignment, owner resolution, custom field data types, and attachment links. You review the diff report and approve or request adjustments before FlitStack proceeds with the full production migration. This step reduces the risk of bulk data errors and ensures alignment with your business rules.

  5. Cut over with delta-pickup for in-flight changes during final sync

    The full migration runs against Dynamics 365 Sales. A delta-pickup window of 24–48 hours captures records created or modified in AgileCase during the cutover period. File attachments re-upload to SharePoint or Dataverse Files with case ID embedded in the file name. FlitStack's audit log records every operation; one-click rollback reverts all migrated records if reconciliation fails. After go-live, a 30-day post-migration window is available for data reconciliation.

Platform deep dives

Context on both ends of the pair

AgileCase logo

AgileCase

Source

Strengths

  • Tiered storage: 50GB on Professional, unlimited on Business with fair-use policy.
  • Audit trail tracking with 180-day minimum retention on Professional tier.
  • REST API, CSV, and Excel import options for data onboarding.
  • Workflow management with task sequences, case plans, and custom scripts.
  • Client-facing portal for status sharing and secure document exchange.

Weaknesses

  • User caps (15 Professional, 30 Business) limit scalability for larger legal departments.
  • Automation and report limits on lower tiers require upgrades as usage grows.
  • No public pricing for Enterprise tier, complicating cost comparisons during vendor evaluation.
  • Workflow definitions and automation rules are not portable between platforms, requiring manual rebuild.
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. 1 of 8 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

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

  • Object compatibility

    B

    1 of 8 objects need a mapping; the rest are 1:1.

  • 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

    AgileCase: Not publicly documented.

  • Data volume sensitivity

    A

    AgileCase exposes a bulk API — large-volume migrations stream efficiently.

Estimator

Estimate your AgileCase 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 AgileCase to Microsoft Dynamics 365 Sales data migrations

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

Can't find your answer?

Walk through your AgileCase to Microsoft Dynamics 365 Sales migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most AgileCase to Dynamics 365 migrations complete within 3–5 days of migration clock time for under 30,000 records. Complex setups with 50+ custom fields, case-status value mapping, or SharePoint attachment re-uploads extend to 7–10 days. The pre-migration schema planning phase typically runs 3–5 business days before any data moves. The overall timeline includes a 1–2 day schema extraction and validation step, followed by a 2–3 day test migration of a representative sample, then a final cutover run that loads all records while capturing any in-flight changes. Larger datasets exceeding 100,000 records may require additional sequencing days, and holidays or weekends can affect scheduling.

Adjacent paths

Related migrations to explore

Ready when you are

Move from AgileCase.
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