CRM migration
Field-level mapping, validation, and rollback between Aderant Milana and Freshsales. We move data and schema; workflows are rebuilt natively in Freshsales.
Aderant Milana
Source
Freshsales
Destination
Compatibility
14 of 14
objects map 1:1 between Aderant Milana and Freshsales.
Complexity
BStandard
Timeline
48–72 hours
Overview
Aderant Milana is a legal-specific docketing and matter-management platform with a case-centric data model. Freshsales is a general SMB CRM with standard Lead, Contact, Account, and Opportunity objects. The core migration challenge is that Milana's matter/case hierarchy, attorney associations, and docketing fields have no native equivalents in Freshsales — they require custom fields, user lookups, and relationship restructuring. We map Milana matters to Freshsales Accounts, case contacts to Account Contacts, and attorneys to Freshsales Users. Docketing fields (court, judge, statute, deadline type) become custom fields on the Account object. Milana's parent-child matter hierarchy maps via Freshsales' Parent Account field. Attorney-matter relationships require either a primary user assignment per matter or a custom contact-role field for non-primary attorneys. Milana workflows, document attachments, court e-filing integrations, and billing timers do not migrate — these must be rebuilt in Freshsales or handled manually post-migration. The migration runs via Milana's API pulling matters, attorneys, and contacts, then transforms and bulk-loads into Freshsales using Freshsales' REST API with batch operations. A 24–48 hour delta window captures in-flight changes during the 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.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a Aderant Milana object lands in Freshsales, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Aderant Milana
Matter / Case
Freshsales
Account
1:1Milana matters map directly to Freshsales Accounts. The primary responsible attorney becomes the Account Owner, while secondary attorneys are stored as Account Contacts with a custom Contact_Role__c field. Milana’s matter type (litigation, corporate, IP) is preserved as a custom pick‑list field on the Account for practice‑area reporting. The Milana matter number is kept as a custom external ID (Account_Id__c) for reference in Freshsales reports.
Aderant Milana
Parent Matter
Freshsales
Parent Account
1:1Milana supports nested matter hierarchies (parent matter with sub‑matters). The hierarchy maps via Freshsales' Parent Account field on the Account object. Sub‑matters land as child Accounts linked to their parent. We validate that parent matters migrate before children to resolve foreign keys correctly.
Aderant Milana
Case Contact
Freshsales
Account Contact
1:1Every contact on a Milana matter becomes an Account Contact in Freshsales. The contact's primary role on the matter (client, opposing counsel, third party) is preserved as a custom contact role field. Freshsales allows multiple contacts per Account — we map all roles, not just the primary.
Aderant Milana
Attorney / Responsible Attorney
Freshsales
User
1:1Milana attorneys map to Freshsales Users by email match. Attorney bar number and firm association become custom fields on the User record. Non‑primary attorneys assigned to a matter are stored as a custom Account Contact role (Attorney) rather than the Account Owner, since Freshsales supports one owner per Account.
Aderant Milana
Internal Team Member / Staff
Freshsales
Account Contact
1:1Internal staff on a matter (paralegals, billing contacts, secretaries) become Account Contacts with a custom Internal_Staff_Role__c field. The Staff role label from Milana is preserved as the field value so the firm can segment internal versus external contacts. These internal contacts are linked to the corresponding Account, allowing attorneys to view support staff involvement on a case and enabling reporting on staff hours or billing allocations across the firm.
Aderant Milana
Court Rule / Deadline Rule
Freshsales
Custom Field on Account
1:1Milana's court rule definition (the specific rule that triggered a deadline) has no Freshsales equivalent — we map it as a custom text field (Court_Rule__c) on the Account. Rule text and applicable jurisdiction are preserved for reference but do not drive automation in Freshsales.
Aderant Milana
Deadline / Docket Entry
Freshsales
Custom Field on Account + Task
1:1Milana deadlines and docket entries are stored as custom date fields (Deadline_Date__c, Deadline_Type__c) on the Account. Active deadlines within 90 days are also surfaced as Freshsales Tasks so attorneys see upcoming deadlines in their task list. Historical deadlines migrate as read‑only custom fields.
Aderant Milana
Docketing Information
Freshsales
Custom Field on Account
1:1All remaining docketing metadata — court, judge, opposing counsel, statute of limitations, practice area — map to Freshsales custom fields on the Account object. Each Milana docketing field becomes a named custom field with the same label so attorneys recognize the data immediately.
Aderant Milana
Case Activity / Log Entry
Freshsales
Task
1:1Milana case activities and log entries migrate as Freshsales Tasks. Activity type (phone call, email, filing, meeting) maps to the Task Type pick‑list, and the original activity date becomes the Task due date. Attorney assignments are preserved as task owners, and each task is linked to the relevant Account so attorneys can view the activity history. Timestamps and descriptions are transferred with original values, preserving all details.
Aderant Milana
Task / Calendar Event
Freshsales
Task / Event
1:1Milana calendar events and reminders migrate as Freshsales Tasks or Events depending on duration. All‑day events and docketing reminders map to Tasks; attorney meetings map to Events with start and end times preserved. Owner is set to the responsible attorney.
Aderant Milana
Matter Note / Document Note
Freshsales
Note
1:1Matter‑level notes and document annotations in Milana migrate as Freshsales Notes attached to the corresponding Account record. Notes retain the author (mapped to a Freshsales user) and original create timestamp. Rich‑text formatting is preserved as plain text if conversion is required.
Aderant Milana
Custom Matter Fields
Freshsales
Custom Field on Account
1:1Any custom fields defined by the firm on Milana matter records map to Freshsales custom fields on the Account object. We preserve the Milana field label, data type, and pick‑list values. Value‑by‑value mapping is applied for pick‑list fields. Fields referencing other matters require lookup resolution to Freshsales record IDs.
Aderant Milana
Billable Product / Rate
Freshsales
Product
1:1Products and billing rates tracked against a matter in Milana map to Freshsales Products with pricing. These link to the Account for reporting. We preserve unit price, billing code, and description so the firm's product catalog carries over intact.
Aderant Milana
Milana User / Login
Freshsales
User
1:1Milana user accounts map to Freshsales Users by email address. If an email is not found in Freshsales, the user is flagged before migration and the firm provisions the user first or assigns their records to a fallback owner. We provide a user‑mapping report that lists Milana users and Freshsales User IDs. Permissions and profiles must be set in Freshsales after migration, as they are destination‑side configuration.
| Aderant Milana | Freshsales | Compatibility | |
|---|---|---|---|
| Matter / Case | Account1:1 | Fully supported | |
| Parent Matter | Parent Account1:1 | Fully supported | |
| Case Contact | Account Contact1:1 | Fully supported | |
| Attorney / Responsible Attorney | User1:1 | Fully supported | |
| Internal Team Member / Staff | Account Contact1:1 | Fully supported | |
| Court Rule / Deadline Rule | Custom Field on Account1:1 | Fully supported | |
| Deadline / Docket Entry | Custom Field on Account + Task1:1 | Fully supported | |
| Docketing Information | Custom Field on Account1:1 | Fully supported | |
| Case Activity / Log Entry | Task1:1 | Fully supported | |
| Task / Calendar Event | Task / Event1:1 | Fully supported | |
| Matter Note / Document Note | Note1:1 | Fully supported | |
| Custom Matter Fields | Custom Field on Account1:1 | Fully supported | |
| Billable Product / Rate | Product1:1 | Fully supported | |
| Milana User / Login | User1: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.
Aderant Milana gotchas
CompuLaw legacy data requires pre-migration transformation
Court rules jurisdiction mapping must be validated per-matter
Document repositories require path remapping
User and calendar ownership requires explicit re-assignment
Freshsales gotchas
Freddy AI is Pro-tier only despite heavy marketing
Post-migration emails and sequences are disabled
Bot session credits are a one-time 500-session allocation
Phone credits charged per minute with no cap
File storage limits scale with plan tier
Pair-specific challenges
Migration approach
Audit Milana schema and map legal fields to Freshsales custom field design
We read the Milana API schema to enumerate all matter fields, custom fields, attorney records, contact roles, and matter hierarchies. We then map each Milana field to a Freshsales equivalent — standard Account fields for direct matches, custom fields (created in your Freshsales UI first) for legal‑specific data. We produce a field mapping spreadsheet for your review before any data moves.
Provision Freshsales users and resolve attorney-to-user mappings
Milana attorneys and staff are matched to Freshsales Users by email address. We run a pre‑flight check against Freshsales to identify which Milana users have matching accounts and which do not. Unmatched users are flagged — your team provisions their Freshsales accounts first, or we assign their migrated records to a designated fallback user. No data loads without a resolved owner.
Migrate parent matters first, then child matters, then contacts and activities
We sequence the migration to respect Freshsales foreign‑key constraints. Parent matters load as Accounts first, then child matters load with their ParentId resolved. We validate each child record’s parent reference before insertion, quarantining any that point to non‑existent parents. Contacts and case activities are loaded after Accounts are stable, ensuring that relationship fields can be resolved. This ordering prevents orphaned records, maintains the matter hierarchy integrity, and allows activity logs to attach to the correct Account without foreign‑key violations.
Run a sample migration with field-level diff for attorney-matter roles and deadlines
A representative slice — typically 100–500 records spanning matters, attorneys, contacts, and activities — migrates first. We generate a field‑level diff that shows each Milana field name, its migrated value, and the corresponding Freshsales custom field side‑by‑side. The diff highlights pick‑list value mismatches, missing parent references, and any truncated text. You can review the report, request field‑level adjustments, and confirm that attorney‑matter role mapping, deadline field translation, and parent‑child hierarchy resolution look correct before we commit to the full data load.
Execute full migration and capture delta changes during the cutover window
The full dataset migrates against your live Freshsales instance using the Freshsales REST API with upsert operations keyed on the external ID fields we created (e.g., Account_Id__c). During the cutover window (typically 24–48 hours), FlitStack maintains scoped read‑only API access to Milana to capture any new or modified matters, contacts, or activities after the initial export. An audit log records every record created, updated, or skipped, together with the mapping decisions and any error messages. If reconciliation discovers unexpected discrepancies, a one‑click rollback reverts the Freshsales instance to its pre‑migration snapshot, ensuring you can start over without data loss.
Platform deep dives
Aderant Milana
Source
Strengths
Weaknesses
Freshsales
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 Aderant Milana and Freshsales.
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
Aderant Milana: Not publicly documented — Aderant's API Terms reserve the right to enforce usage limits at their discretion, with no published numeric thresholds. Confirmed during vendor scoping..
Data volume sensitivity
Aderant Milana 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 Aderant Milana to Freshsales migration scoping. Not seeing yours? Book a call.
Walk through your Aderant Milana to Freshsales migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Aderant Milana
Other ways to arrive at Freshsales
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.