CRM migration
Field-level mapping, validation, and rollback between Aderant Milana and Salesforce Sales Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Sales Cloud.
Aderant Milana
Source
Salesforce Sales Cloud
Destination
Compatibility
12 of 12
objects map 1:1 between Aderant Milana and Salesforce Sales Cloud.
Complexity
BStandard
Timeline
3–6 weeks
Overview
Aderant Milana organizes law firm data around Matters, Parties, Court Rules, Docketing Constraints, Time Entries, and Billing Records. Salesforce Sales Cloud models business relationships through Accounts, Contacts, Leads, Opportunities, and custom objects — with record types gating page layouts and pick-list values per business unit. The two platforms share no native object equivalence, which means every Milana entity maps to a Salesforce construct or a custom field that your admin pre-creates. We extract Milana data via its API (authenticated against the Aderant cloud tenant), map each entity to Salesforce's standard or custom objects, resolve attorney and staff users by email against Salesforce user accounts, and load via the Salesforce Bulk API with dependency ordering enforced (Accounts before Contacts, Contacts before Opportunities). Court deadline constraints that Milana stores as structured rules are preserved as text in Milana_Deadline_Rule__c fields — Salesforce Flow triggers the admin must configure separately to enforce the logic post-migration. Docketing entries migrate as Salesforce Tasks with custom Type values so calendar views surface the firm's active deadlines. Workflows, document-generation templates, and billing guidelines in Milana do not migrate and must be rebuilt as Salesforce Flows, document-generation apps, or billing integrations.
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 Salesforce Sales Cloud, 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
Salesforce Sales Cloud
Opportunity (or custom Matter__c object)
1:1Milana Matters have no direct Salesforce equivalent. The migration plan offers two paths: map Matters to Opportunities using the Matter name as Opportunity Name with Amount = billing value, or create a custom Matter__c object in Salesforce keyed by Matter ID. The custom object path is preferred for firms with complex multi-party matters that do not map cleanly to an Opportunity sales-cycle model.
Aderant Milana
Matter.Due_Date
Salesforce Sales Cloud
Task.DueDate / Custom Milana_Deadline__c
1:1Milana due dates are structured calendar entries tied to Court Rules. These map to Salesforce Tasks with a custom Milana_Deadline__c checkbox field set to TRUE so that a custom list view can isolate docketing entries from general CRM tasks. Original court rule reference preserved in Task.Description for audit continuity.
Aderant Milana
Party (Attorney)
Salesforce Sales Cloud
Contact + User
1:1Milana Party records with Party Type = Attorney map to Salesforce Contacts for non-user records and to Salesforce Users for billable attorneys. The attorney Bar Number field maps to Bar_Number__c on Contact. Email address is the match key for User resolution. Unmatched attorneys become Contacts only; the firm decides whether to provision Salesforce licenses.
Aderant Milana
Party (Client)
Salesforce Sales Cloud
Account + Contact
1:1Milana Party records with Party Type = Client map to a Salesforce Account representing the client organization, with a primary Contact record for the relationship owner. Corporate clients map to Account with Industry set via value-mapping; individual clients map to Account (as Person Account if Salesforce Person Accounts are enabled) with Contact as the named attorney relationship.
Aderant Milana
Party (Opposing Counsel / Witness)
Salesforce Sales Cloud
Contact
1:1Opposing counsel and witness records in Milana map to Salesforce Contacts with a custom Party_Role__c pick-list field storing the Milana Party Type value. This preserves the role distinction that Salesforce's standard Contact model does not natively capture. The migration plan flags these contacts for manual review of address and contact information accuracy before the full run.
Aderant Milana
Court Rule
Salesforce Sales Cloud
Custom Court_Rule__c object
1:1Milana Court Rules (look-forward periods, skip rules, absolute deadlines) have no Salesforce standard equivalent. A custom Court_Rule__c object is created with fields for Rule_Code__c, Look_Forward_Days__c, Skip_Rule_Text__c, and a lookup to the Matter__c object. The rule enforcement logic (automated escalation, email alerts) must be rebuilt in Salesforce Flow post-migration.
Aderant Milana
Docketing Constraint
Salesforce Sales Cloud
Milana_Constraint__c on Matter__c / custom object
1:1Milana Docketing Constraints define filing restrictions (e.g., 'No filings within 30 days of trial date'). These migrate as custom text or pick-list fields on the Matter__c object. Complex multi-constraint rules with conditional logic are preserved as a concatenated text block in Constraint_Logic__c for manual Salesforce admin review and Flow conversion.
Aderant Milana
Time Entry
Salesforce Sales Cloud
Custom Time_Entry__c object / Event
1:1Milana Time Entries (hours, rates, LEDES codes, billable/non-billable flag) map to a custom Time_Entry__c object with a lookup to the Matter__c and Contact records. The Event object is used for attorney calendar reconstruction only. LEDES billing codes are stored as a custom pick-list field (LEDES_Code__c) mapped value-by-value from Milana's billing code table.
Aderant Milana
Expense Record
Salesforce Sales Cloud
Custom Expense__c object
1:1Milana expense records migrate as a custom Expense__c object linked to the Matter__c record via a lookup relationship, with fields for Expense_Type__c (pick-list), Amount__c (currency), Date__c, and Reimbursed__c (checkbox). Native Salesforce expense management would require a third-party AppExchange product; FlitStack migrates the historical expense data only and does not configure expense approval workflows or reimbursement automation post-load.
Aderant Milana
Attachment / Filing Document
Salesforce Sales Cloud
ContentDocument / Salesforce Files
1:1Milana document attachments and court-filing artifacts are downloaded from Aderant's cloud storage and re-uploaded to Salesforce Files attached to the relevant Matter__c record via ContentDocumentLink. File size limits apply (Salesforce default 25MB per file; larger documents require Salesforce CRM Content Advanced). Inline images in Milana notes are extracted and re-hosted.
Aderant Milana
Milana User / Owner
Salesforce Sales Cloud
User
1:1Milana user accounts (attorneys, paralegals, admins) resolve by email match to Salesforce User records. Unmatched users are flagged before migration. The firm must provision Salesforce licenses for Milana users who need CRM write access; read-only migration does not consume Salesforce licenses.
Aderant Milana
Custom Milana Field (any entity)
Salesforce Sales Cloud
Custom Salesforce Field (matching object)
1:1Any Milana custom field defined outside Aderant's standard schema maps to a Salesforce custom field on the corresponding Salesforce object. Field type is mapped per Salesforce's supported types: text, number, pick-list, date, datetime, checkbox, currency. Milana multi-select fields become Salesforce multi-select pick-lists. Unsupported types default to text.
| Aderant Milana | Salesforce Sales Cloud | Compatibility | |
|---|---|---|---|
| Matter | Opportunity (or custom Matter__c object)1:1 | Fully supported | |
| Matter.Due_Date | Task.DueDate / Custom Milana_Deadline__c1:1 | Fully supported | |
| Party (Attorney) | Contact + User1:1 | Fully supported | |
| Party (Client) | Account + Contact1:1 | Fully supported | |
| Party (Opposing Counsel / Witness) | Contact1:1 | Fully supported | |
| Court Rule | Custom Court_Rule__c object1:1 | Fully supported | |
| Docketing Constraint | Milana_Constraint__c on Matter__c / custom object1:1 | Fully supported | |
| Time Entry | Custom Time_Entry__c object / Event1:1 | Fully supported | |
| Expense Record | Custom Expense__c object1:1 | Fully supported | |
| Attachment / Filing Document | ContentDocument / Salesforce Files1:1 | Fully supported | |
| Milana User / Owner | User1:1 | Fully supported | |
| Custom Milana Field (any entity) | Custom Salesforce Field (matching object)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.
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
Salesforce Sales Cloud gotchas
Workflow Rules and Process Builder are retired
Bulk API batch quota exhaustion during large imports
Storage overage billing is non-obvious
Account-Contact many-to-many relationship mapping
Territory and team member import ordering dependencies
Pair-specific challenges
Migration approach
Audit Milana schema and export entity inventory
FlitStack connects to the Aderant Milana cloud API under scoped read access and inventories all Matters, Parties, Docketing Entries, Time Entries, Expenses, Court Rules, and custom fields. We generate a Milana Entity Summary document listing each entity type, record count, custom field count, and attachment volume. This inventory drives the Salesforce custom object and custom field design plan that your Salesforce admin deploys before migration data arrives.
Design Salesforce custom schema and pre-create all custom objects
Based on the Milana Entity Summary, FlitStack delivers a Salesforce Schema Design Plan listing every custom object (Matter__c, Court_Rule__c, Time_Entry__c, Expense__c), custom field (with __c suffix, field type, and pick-list values), and page layout assignment. Your Salesforce admin creates these via Setup or SFDX deployment before the migration window. We provide the field-level detail so no custom field is misconfigured (wrong type, wrong length, missing from field set).
Resolve Milana users to Salesforce User accounts by email
FlitStack matches Milana user records to Salesforce Users by email address. Unmatched users are flagged in a User Resolution Report with their Milana role (Attorney, Paralegal, Admin) so your team either invites them to Salesforce first or assigns their records to a fallback user. No migrated record lands in Salesforce without a resolved OwnerId, preventing orphaned matters and docketing entries.
Run a sample migration with field-level diff on 50–200 Matter records
A representative slice of Milana data — typically 50–200 matters spanning different practice areas, Party role types, and docketing entry volumes — migrates to Salesforce in test mode. FlitStack generates a field-level diff comparing source Milana field values to the destination Salesforce field values, covering Matter status, Party role mapping, docketing entry type, and time entry LEDES codes. You review the diff and approve or adjust the mapping before the full run commits.
Execute full migration with delta-pickup window and audit log
The full migration runs against Salesforce using the Bulk API, sequenced by foreign-key dependency (Accounts first, then Contacts, then Matter__c with attorney lookups resolved, then docketing Tasks, then Time Entries and Expenses). A delta-pickup window of 24–48 hours after the main run captures any Milana records modified during cutover. FlitStack produces an audit log of every record created, updated, or skipped with reason codes. One-click rollback reverts the Salesforce org to its pre-migration state if reconciliation reveals data integrity issues.
Platform deep dives
Aderant Milana
Source
Strengths
Weaknesses
Salesforce Sales Cloud
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 1 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 Salesforce Sales Cloud.
Object compatibility
1 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 Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.
Walk through your Aderant Milana to Salesforce Sales Cloud 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 Salesforce Sales Cloud
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.