CRM migration
Field-level mapping, validation, and rollback between The Plaintiff and Salesforce Sales Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Sales Cloud.
The Plaintiff
Source
Salesforce Sales Cloud
Destination
Compatibility
9 of 10
objects map 1:1 between The Plaintiff and Salesforce Sales Cloud.
Complexity
BStandard
Timeline
48–72 hours
Overview
The Plaintiff stores legal data as party-case hierarchies: each party has a role (Plaintiff, Defendant, Witness), each case has a case number, status, court, and disputed amount, and activities track filings, depositions, and court dates. Salesforce Sales Cloud stores similar relational data — Contacts, Cases, and Activities — but the schema mechanics differ in ways that require deliberate mapping. Salesforce's standard Case object carries CaseNumber as an auto-number field that cannot be imported; we preserve the original case identifier as Case_Number__c. Salesforce's native party-to-case model uses Contact Roles on Cases for a single primary contact; multi-party relationships require a custom Party_Case_Junction__c junction object. Party roles (Plaintiff, Defendant) have no built-in Salesforce equivalent — we create a custom Party_Role__c pick-list field on Contact to carry that designation. Court name and jurisdiction become custom fields on Case (Court_Name__c, Jurisdiction__c) since Salesforce has no native court object. We extract data from The Plaintiff via its API (or export file), transform fields into Salesforce's camel-case naming and pick-list value format, resolve owner email addresses to Salesforce users, and load via Bulk API. A 24–48 hour delta-pickup window captures in-flight changes during the cutover. Workflows, email templates, and legal-specific automations do not migrate — FlitStack exports their definitions for your Salesforce admin to rebuild in Flow.
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 The Plaintiff 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.
The Plaintiff
Party
Salesforce Sales Cloud
Contact
1:1Each The Plaintiff party becomes a Salesforce Contact. The Plaintiff stores the party role (Plaintiff, Defendant, Witness) as a structured field; Salesforce has no native equivalent, so we create a custom Party_Role__c pick-list field on Contact to preserve the role designation. Parties without a primary company association require an 'Unassigned Account' placeholder so the AccountId lookup resolves correctly on load.
The Plaintiff
Case
Salesforce Sales Cloud
Case
1:1Direct 1:1 map to Salesforce's standard Case object. Case type, court name, jurisdiction, opposing counsel, and practice area become custom fields on Case (e.g., Court_Name__c, Practice_Area__c, Opposing_Counsel__c) since Salesforce has no native court or jurisdiction object. The primary contact party links via the Case's primary ContactId. Original case_number from The Plaintiff is stored as Case_Number__c, not in Salesforce's auto-numbered CaseNumber field.
The Plaintiff
Party-Case association
Salesforce Sales Cloud
Party_Case_Junction__c (custom junction object)
1:1The Plaintiff supports N:N party-case associations natively — one case can have multiple parties each with a distinct role. Salesforce's standard Contact Roles on Cases supports only one primary contact per role type. We create a custom junction object, Party_Case_Junction__c, with lookup fields to Contact and Case plus a Role__c pick-list matching The Plaintiff's role values. This preserves the full party hierarchy for complex multi-party litigation.
The Plaintiff
Activity / Filing / Deposition
Salesforce Sales Cloud
Task / Event
1:1All The Plaintiff activities — filings, depositions, court dates, client calls — migrate as Salesforce Tasks (for discrete actions) or Events (for time-blocked court appearances). The activity type (Filing, Deposition, Call, etc.) is preserved in a custom Activity_Type__c field since Salesforce Tasks have a standard Type pick-list that may not cover legal-specific activity categories without custom value sets.
The Plaintiff
Opposing Counsel (party type)
Salesforce Sales Cloud
Contact + Role = Opposing Counsel
many:1Opposing counsel in The Plaintiff is typically stored as a free-text party name, not a structured contact. We attempt to match the name against existing Salesforce Contacts by email domain or name. Where no match exists, we create a new Contact record with Party_Role__c set to 'Opposing Counsel' and link it via the Party_Case_Junction__c junction object to the associated case.
The Plaintiff
Court / Jurisdiction
Salesforce Sales Cloud
Case custom fields (Court_Name__c, Jurisdiction__c)
1:1Salesforce has no native court or jurisdiction object. Court name and jurisdiction from The Plaintiff migrate as custom text fields on the Case object — Court_Name__c and Jurisdiction__c — so historical court information is searchable and reportable in Salesforce without requiring a separate court lookup object.
The Plaintiff
User / Owner
Salesforce Sales Cloud
User (OwnerId)
1:1Owner records in The Plaintiff are resolved by email address against Salesforce Users. Unmatched owners are flagged before migration begins — teams either provision Salesforce user accounts or assign records to a designated fallback user. No case or contact lands in Salesforce without a resolved OwnerId.
The Plaintiff
Attachment / File
Salesforce Sales Cloud
ContentDocument / Salesforce Files
1:1Documents attached to The Plaintiff cases — pleadings, correspondence, exhibits — are downloaded and re-uploaded as Salesforce Files linked to the Case record. File size limits follow Salesforce's 25MB per file default; files exceeding this threshold are flagged for manual chunking or alternative storage.
The Plaintiff
Custom fields (any object)
Salesforce Sales Cloud
Custom field (__c) on corresponding object
1:1Any custom properties defined in The Plaintiff migrate as Salesforce custom fields on the equivalent object. Data types are preserved (text stays text, pick-list stays pick-list, date stays date). Pick-list values in The Plaintiff require explicit value-mapping against Salesforce's allowed values for the target field.
The Plaintiff
Case timestamps (created_date, modified_date)
Salesforce Sales Cloud
Custom datetime fields on Case
1:1Salesforce sets CreatedDate and LastModifiedDate at the time of insertion — the original The Plaintiff timestamps are lost by default. We preserve the original create date and last-modified date as Case_Created_In_Source__c and Case_Last_Modified_In_Source__c custom datetime fields so historical aging and audit reporting remain accurate in Salesforce.
| The Plaintiff | Salesforce Sales Cloud | Compatibility | |
|---|---|---|---|
| Party | Contact1:1 | Fully supported | |
| Case | Case1:1 | Fully supported | |
| Party-Case association | Party_Case_Junction__c (custom junction object)1:1 | Fully supported | |
| Activity / Filing / Deposition | Task / Event1:1 | Fully supported | |
| Opposing Counsel (party type) | Contact + Role = Opposing Counselmany:1 | Fully supported | |
| Court / Jurisdiction | Case custom fields (Court_Name__c, Jurisdiction__c)1:1 | Fully supported | |
| User / Owner | User (OwnerId)1:1 | Fully supported | |
| Attachment / File | ContentDocument / Salesforce Files1:1 | Fully supported | |
| Custom fields (any object) | Custom field (__c) on corresponding object1:1 | Fully supported | |
| Case timestamps (created_date, modified_date) | Custom datetime fields on Case1: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.
The Plaintiff gotchas
Admin-only date field editing creates migration mapping gaps
No publicly documented API requires manual export parsing
Custom field schema varies by firm without documentation
Trust account and billing records excluded from standard export
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 The Plaintiff data model and extract a full data export
We connect to The Plaintiff via API (or process a full export file) and inventory all objects — parties, cases, activities, custom fields, and party-case associations. We count records per object, identify pick-list values for case status and party role, flag custom fields that have no Salesforce equivalent, and produce a Data Inventory Report. This report drives the scope quote and the custom field creation checklist for your Salesforce org.
Design Salesforce schema: custom fields, junction object, and pick-list values
Based on the Data Inventory Report, we create a Salesforce schema setup plan: the Party_Role__c and Party_Type__c pick-list fields on Contact, the Case_Number__c, Court_Name__c, Jurisdiction__c, Practice_Area__c, and Amount__c custom fields on Case, the Activity_Type__c field on Task, and the custom Party_Case_Junction__c junction object for multi-party cases. We also provide the Case Status value-mapping table so your admin pre-loads custom statuses before migration. The Salesforce schema must be fully deployed to the target org before data insertion begins.
Transform and load data with foreign-key resolution and owner matching
We extract party, case, and activity records from The Plaintiff, apply field transformations (case_number to Case_Number__c, party_role to Party_Role__c, disputed_amount to Amount__c), resolve all party-company associations against Salesforce Accounts, and match owner email addresses to Salesforce Users. Multi-party case associations are written to the Party_Case_Junction__c junction object. Activities link to their parent Contact or Case record. The load uses Salesforce Bulk API for high-volume record insertion.
Run sample migration with field-level diff and stakeholder review
A representative slice — typically 50–100 records spanning parties, cases, and activities across multiple party-role types — migrates first. We generate a field-level diff comparing source values to the Salesforce record so you can verify party role mapping, case number preservation, case status mapping, and court name accuracy. Stakeholders review the sample before we proceed to the full run. Any mapping corrections are applied before the bulk migration commits.
Execute full migration with delta-pickup window and audit log
The full migration loads all records into Salesforce. A delta-pickup window (typically 24–48 hours) captures any party or case records modified in The Plaintiff during the cutover. An audit log records every insert and update operation with timestamps and operator. One-click rollback is available if the reconciliation check reveals record count or field-value discrepancies. Once the delta is applied and the audit log is clean, The Plaintiff can be decommissioned or archived.
Platform deep dives
The Plaintiff
Source
Strengths
Weaknesses
Salesforce Sales Cloud
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 The Plaintiff and Salesforce Sales Cloud.
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
The Plaintiff: Not publicly documented — no published quotas. The platform is a packaged practice-management suite, not an API-first product..
Data volume sensitivity
The Plaintiff 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 The Plaintiff to Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.
Walk through your The Plaintiff 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 The Plaintiff
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.