CRM migration
Field-level mapping, validation, and rollback between Lexis Affinity and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
Lexis Affinity
Source
Twenty CRM
Destination
Compatibility
12 of 12
objects map 1:1 between Lexis Affinity and Twenty CRM.
Complexity
BStandard
Timeline
48–72 hours
Overview
Lexis Affinity is a legal practice management platform built around matters, clients, and trust accounting — the CRM layer is secondary to its billing and document workflow engine. Twenty CRM is a general-purpose open-source CRM with a clean relational model: People linked to Companies, with Opportunities as the deal-tracking layer. FlitStack AI extracts Lexis Affinity contacts, organizations, matters, and time/billing entries via API and CSV export, then maps them into Twenty CRM's object graph. The primary translation challenge is that Lexis Affinity's matter-centric structure (where a matter links clients, documents, billing, and activities together) has no direct equivalent in Twenty CRM's opportunity-based model — matters become Opportunities with notes carrying the matter context, and trust accounting records become custom fields since Twenty has no native trust accounting object. Workflows, document management rules, and billing automation do not migrate and must be rebuilt in Twenty or a complementary tool. FlitStack sequences the import: Companies first (the one-side of relationships), then People with companyId lookups, then Opportunities, then custom objects and notes. A 24–48 hour delta-pickup window captures any records modified during cutover so the final state is complete at go-live.
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 Lexis Affinity object lands in Twenty CRM, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Lexis Affinity
Contact / Client
Twenty CRM
People
1:1Lexis Affinity contacts (individuals associated with matters) map directly to Twenty CRM's People object. Email is the unique identifier used for deduplication and owner resolution. Phone, job title, and address fields map field-by-field. Original create dates are preserved in a custom datetime field since Twenty's CreatedDate is set at migration time.
Lexis Affinity
Organization
Twenty CRM
Company
1:1Lexis Affinity organizations map to Twenty CRM's Companies object. Company name, domain/website, industry, and employee count translate directly in a one-to-one field mapping. The domain field serves as a unique key for deduplication when importing People records with companyId lookups. FlitStack validates domain uniqueness across the existing Twenty workspace before committing the company batch to prevent duplicate organization records.
Lexis Affinity
Matter
Twenty CRM
Opportunity
1:1Lexis Affinity matters are the core legal work unit — they link clients, documents, billing, and activities. In Twenty CRM, matters become Opportunities with the matter name as the Opportunity name. Matter status (open, closed, pending) maps to Opportunity stage. Matter-specific fields (practice area, court, judge) become custom fields on the Opportunity record. Notes on the Opportunity carry the matter description and key facts.
Lexis Affinity
Matter Participant
Twenty CRM
People (Opportunity relation)
1:1Matter participants (attorneys, paralegals, opposing counsel) associated with a matter in Lexis Affinity are imported as People records and linked to the corresponding Opportunity via Twenty's opportunity relations. The participant role is stored as a custom field on the relation.
Lexis Affinity
Time Entry
Twenty CRM
Task
1:1Lexis Affinity time entries (billable hours logged against a matter) become Tasks in Twenty CRM. The task description includes the time entry narrative. Billable amount maps to a custom currency field. Time entry date is preserved as the task due date or completion date. Non-billable entries map to standard Tasks without the billable flag.
Lexis Affinity
Document / File Attachment
Twenty CRM
Note (with attachment)
1:1Documents attached to Lexis Affinity matters are downloaded and re-uploaded as Note attachments in Twenty CRM, linked to the corresponding People, Company, or Opportunity record. File size limits apply (Twenty's default upload limit). Inline images are extracted and rehosted. Document naming conventions from Lexis Affinity are preserved in the Note title.
Lexis Affinity
Trust Accounting Record
Twenty CRM
Custom fields (on People / Company)
1:1Lexis Affinity's trust accounting module (client trust accounts, controlled money registers, interest calculation) has no native equivalent in Twenty CRM. Trust balance, trust account number, and interest-earned fields are created as custom fields on the People or Company record. Firms should plan to handle trust accounting reconciliation in a separate tool or spreadsheet post-migration.
Lexis Affinity
Custom Field (Matter-level)
Twenty CRM
Custom Field (Opportunity)
1:1Lexis Affinity allows custom data forms on matters (practice area codes, court identifiers, statutory provisions). Each custom matter field requires a corresponding custom field created in Twenty CRM under Settings → Data Model before the Opportunity import runs. Custom field creation is sequenced ahead of the migration so the schema is ready before data lands.
Lexis Affinity
Workflow / Sequence
Twenty CRM
Not migrated
1:1Lexis Affinity workflows, conflict check sequences, and matter initiation automations do not migrate. Twenty CRM's workflow builder can replicate some routing logic, but legal-specific automation must be rebuilt. FlitStack exports workflow definitions as a reference document for the firm's Twenty admin.
Lexis Affinity
Billing / Invoice
Twenty CRM
Not migrated (custom object candidate)
1:1Lexis Affinity generates invoices tied to time entries and matter billing rules. Twenty CRM has no native billing or invoicing module. Invoices can be rebuilt as a custom object with line items referencing Opportunities and People, or handled entirely in a separate billing tool such as LawPay, Clio Billing, or QuickBooks. FlitStack flags all invoice records for manual handling, preserves the billing data in a staging CSV, and provides a detailed mapping reference document so the firm's admin can reconstruct invoice history in their chosen billing platform post-migration.
Lexis Affinity
Activity (Email / Call / Meeting)
Twenty CRM
Task / Note
1:1Lexis Affinity records activities (calls, emails, meetings) against matters. These become Tasks in Twenty CRM linked to the corresponding People or Opportunity. Original timestamps and owners are preserved. Meeting records with duration map to Tasks with a completion date.
Lexis Affinity
Owner / User
Twenty CRM
Workspace Member
1:1Lexis Affinity user accounts are matched to Twenty CRM workspace members by email address. Before migration, Twenty workspace members must be invited and active — user references in records require an existing Twenty user. Unmatched owners are flagged and assigned to a fallback member.
| Lexis Affinity | Twenty CRM | Compatibility | |
|---|---|---|---|
| Contact / Client | People1:1 | Fully supported | |
| Organization | Company1:1 | Fully supported | |
| Matter | Opportunity1:1 | Fully supported | |
| Matter Participant | People (Opportunity relation)1:1 | Fully supported | |
| Time Entry | Task1:1 | Fully supported | |
| Document / File Attachment | Note (with attachment)1:1 | Fully supported | |
| Trust Accounting Record | Custom fields (on People / Company)1:1 | Fully supported | |
| Custom Field (Matter-level) | Custom Field (Opportunity)1:1 | Fully supported | |
| Workflow / Sequence | Not migrated1:1 | Fully supported | |
| Billing / Invoice | Not migrated (custom object candidate)1:1 | Fully supported | |
| Activity (Email / Call / Meeting) | Task / Note1:1 | Fully supported | |
| Owner / User | Workspace Member1: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.
Lexis Affinity gotchas
Records and Safe Custody module creates migration lock-in
DataForm custom field schemas are per-firm and must be reverse-engineered
Trust account sub-account types map differently to destination ledgers
Workflow automations do not export and must be rebuilt manually
Twenty CRM gotchas
Import order is enforced and critical
Export limited to 20,000 records and visible columns only
Soft-deleted records count toward uniqueness and trigger restores
API rate limits cap at 200 req/min on Organization tier
No native email sequences — follow-up cadences require external tools
Pair-specific challenges
Migration approach
Audit Lexis Affinity matter schema and custom fields
FlitStack pulls the full Lexis Affinity object schema via API: contacts, organizations, matters, time entries, notes, and custom DataForm fields. We catalog every custom field on matters and identify which have pick-list values requiring value mapping in Twenty. We also identify trust accounting records, billing entries, and document attachment points. The audit output is a data inventory with record counts per object and a custom field manifest for Twenty's Data Model setup.
Create custom fields in Twenty CRM Data Model
Before any import, FlitStack creates all required custom fields in Twenty under Settings → Data Model. This includes practice area, court, matter number, billable hours, trust balance, and source system ID fields on the appropriate objects (Opportunity, People, Company). Custom select fields are populated with the pick-list values from Lexis Affinity. Fields must be active and visible in the workspace before the import files are uploaded.
Invite Twenty workspace members and resolve owner mappings
Twenty requires all workspace members to be invited and active before user references in records can resolve. FlitStack matches Lexis Affinity user accounts (by email) to Twenty workspace members. Any Lexis Affinity user without a corresponding Twenty account is flagged and assigned to a fallback member, or the firm pre-invites the missing users before migration day. This step prevents orphaned records with null owners.
Sequence and transform export files for Twenty's import order
Lexis Affinity exports are re-sequenced to match Twenty's required import order: Companies first (with domain as unique key), then People (with companyId linking to existing Companies), then Opportunities (with personId linking to People), then custom objects. Foreign keys are rewritten to reference Twenty's unique identifiers. Time entries are transformed into Tasks with billable amount and rate fields. Notes and file attachments are batched for the appropriate parent record.
Run sample migration with field-level diff
FlitStack runs a representative sample migration — typically 100–500 records spanning contacts, companies, opportunities, and activities. We generate a field-level diff between the Lexis Affinity source and the Twenty destination so the firm's admin can verify custom field mapping, stage value mapping, owner resolution, and trust balance preservation before the full run commits. Any mapping errors are corrected in the transformation scripts before the final migration.
Execute full migration with delta-pickup cutover
The full migration runs against the production Twenty workspace. A 24–48 hour delta-pickup window captures any records created or modified in Lexis Affinity during the cutover period so the final state reflects the most current data. FlitStack generates an audit log of every record created, updated, or linked, and one-click rollback is available if reconciliation reveals data integrity issues. Post-migration, the firm rebuilds workflows and trust accounting in a complementary tool.
Platform deep dives
Lexis Affinity
Source
Strengths
Weaknesses
Twenty CRM
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 Lexis Affinity and Twenty CRM.
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
Lexis Affinity: Not publicly documented for the practice management module; enterprise customers should confirm limits during onboarding.
Data volume sensitivity
Lexis Affinity 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 Lexis Affinity to Twenty CRM migration scoping. Not seeing yours? Book a call.
Walk through your Lexis Affinity to Twenty CRM migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Lexis Affinity
Other ways to arrive at Twenty CRM
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.