CRM migration

Migrate from Lexis Affinity to Twenty CRM

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 logo

Lexis Affinity

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

100%

12 of 12

objects map 1:1 between Lexis Affinity and Twenty CRM.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

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.

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

Lexis Affinity logo

Lexis Affinity

What's pushing teams away

  • High barriers to exit — particularly the Records/Safe Custody module creates significant data lock-in and migration complexity for departing firms.
  • Hourly consulting fees charged by LexisNexis for even minor data model questions or configuration requests, creating cost uncertainty during evaluation.
  • Perpetual license or long-term commitment expectations from LexisNexis make firms feel locked into the platform before fully evaluating fit.
  • Complex multi-module architecture means firms often pay for features they do not use, with pricing not transparent at the module level.
  • Steep learning curve and bespoke training requirements create friction during onboarding and slow time-to-value.

Choosing

Twenty CRM logo

Twenty CRM

What's pulling them in

  • Top open-source CRM on GitHub with 40.6K stars, giving teams full source code access and infrastructure ownership without per-feature licensing surprises.
  • Free self-hosting under AGPL-3.0 means unlimited users and custom objects for the cost of cloud infrastructure alone, typically $20–100/month.
  • Pricing page explicitly mocks competitors for charging add-on fees for API access, webhooks, and workflows — transparency that resonates with RevOps teams burned by Salesforce.
  • Unlimited custom objects and fields with no price impact, letting teams shape the data model to their business rather than forcing business into rigid schemas.
  • Modern TypeScript/React/PostgreSQL stack means developer-led teams can extend, self-host, or integrate without fighting legacy architecture.

Object mapping

How Lexis Affinity objects map to Twenty CRM

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

maps to

Twenty CRM

People

1:1
Fully supported

Lexis 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

maps to

Twenty CRM

Company

1:1
Fully supported

Lexis 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

maps to

Twenty CRM

Opportunity

1:1
Fully supported

Lexis 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

maps to

Twenty CRM

People (Opportunity relation)

1:1
Fully supported

Matter 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

maps to

Twenty CRM

Task

1:1
Fully supported

Lexis 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

maps to

Twenty CRM

Note (with attachment)

1:1
Fully supported

Documents 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

maps to

Twenty CRM

Custom fields (on People / Company)

1:1
Fully supported

Lexis 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)

maps to

Twenty CRM

Custom Field (Opportunity)

1:1
Fully supported

Lexis 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

maps to

Twenty CRM

Not migrated

1:1
Fully supported

Lexis 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

maps to

Twenty CRM

Not migrated (custom object candidate)

1:1
Fully supported

Lexis 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)

maps to

Twenty CRM

Task / Note

1:1
Fully supported

Lexis 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

maps to

Twenty CRM

Workspace Member

1:1
Fully supported

Lexis 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.

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.

Lexis Affinity logo

Lexis Affinity gotchas

High

Records and Safe Custody module creates migration lock-in

High

DataForm custom field schemas are per-firm and must be reverse-engineered

Medium

Trust account sub-account types map differently to destination ledgers

Medium

Workflow automations do not export and must be rebuilt manually

Twenty CRM logo

Twenty CRM gotchas

High

Import order is enforced and critical

High

Export limited to 20,000 records and visible columns only

Medium

Soft-deleted records count toward uniqueness and trigger restores

Medium

API rate limits cap at 200 req/min on Organization tier

Low

No native email sequences — follow-up cadences require external tools

Pair-specific challenges

  • Trust accounting records have no native destination equivalent

    Lexis Affinity's trust accounting module — client trust accounts, controlled money registers, and interest calculation — is a core financial construct in legal practice management with no equivalent in Twenty CRM's object model. Twenty has no native trust accounting object, ledger, or financial transaction record. FlitStack migrates trust balance and account identifiers as custom fields on the People or Company record for reference, but reconciliation and ongoing trust accounting must be handled in a separate tool post-migration. Firms should plan for this gap before cutover and decide whether to run a parallel trust accounting system or export trust records for manual reconciliation. This is a pair-specific gotcha: the gap exists for any migration FROM a legal practice management platform TO a general-purpose CRM.

  • Import order enforcement in Twenty CRM causes foreign-key failures if violated

    Twenty CRM's CSV import requires a strict sequencing rule: Companies must be imported before People, and People must exist before Opportunities that reference them. Lexis Affinity exports matter data in flat CSV structures with matter IDs as foreign keys, but those IDs only resolve correctly if the referenced Company and People records already exist in Twenty. FlitStack re-sequences the export files to match Twenty's required import order and resolves circular references (e.g., a person at a company where both are new) before any file is uploaded. Violating this order produces import errors and orphaned records in Twenty that cannot be linked retroactively.

  • Custom matter fields require pre-creation in Twenty's Data Model

    Lexis Affinity's DataForms allow firms to define custom fields on matters (practice area codes, court identifiers, statutory provision fields, client-specific metadata). Twenty CRM requires custom fields to be created under Settings → Data Model BEFORE any CSV import runs — the import process creates records, not fields. FlitStack audits the Lexis Affinity matter schema before migration and creates all required custom fields on the Opportunity object in Twenty, with the correct field types (select, text, currency, date) before the first data file is uploaded. Skipping this step causes import failures on any record containing a custom field value.

  • Deleted records count toward uniqueness checks in Twenty's import

    Twenty CRM's uniqueness validation applies to soft-deleted records visible under Command Menu → See deleted records. If a People record with a given email was deleted in Twenty during a prior test import, re-importing a record with the same email will restore the soft-deleted record rather than create a new one. FlitStack checks for soft-deleted records in the target Twenty workspace before the migration run and either clears them or maps the incoming record to the existing soft-deleted ID. This prevents duplicate records and ensures the restored record carries the migrated data rather than the old placeholder.

  • Lexis Affinity document folder hierarchy does not translate to Twenty

    Lexis Affinity organizes documents in matter folders with sub-folders, automated naming conventions, and EzeScan integration for metadata tagging. Twenty CRM attaches files to records as Notes with a single-level attachment. The folder structure, automated naming, and EzeScan metadata do not migrate. FlitStack downloads all matter documents, maps them to their parent People or Opportunity record, and attaches them as Notes with the original filename preserved. Firms lose the folder hierarchy and should plan a document reorganization or use Twenty's view filtering to approximate the old structure.

Migration approach

Six steps for a successful Lexis Affinity to Twenty CRM data migration

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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

Context on both ends of the pair

Lexis Affinity logo

Lexis Affinity

Source

Strengths

  • Comprehensive trust accounting with IOLTA, controlled money, and investment sub-account support for regulatory compliance.
  • Deep bank reconciliation integration with major commercial bank portals for automated GL matching.
  • Records Management and Safe Custody modules purpose-built for legal document retention and escrow obligations.
  • Built-in conflict checking that runs against the full client and contact database before new Matter creation.
  • LexisNexis research content linkable directly from a Matter record for legal research workflows.

Weaknesses

  • High exit barriers due to Records/Safe Custody module — extracting historical documents and vault data requires specialist consulting.
  • Pricing is opaque and requires direct sales engagement with no public per-module breakdown.
  • API access is not widely documented for practice management data — migration work relies on data export rather than programmatic extraction.
  • Workflows and automations are not exportable and must be manually rebuilt on the destination platform.
  • Hourly consulting fees for configuration questions create cost uncertainty during both migration and ongoing use.
Twenty CRM logo

Twenty CRM

Destination

Strengths

  • AGPL-3.0 open-source license with full source code on GitHub — no vendor lock-in, no sunset risk.
  • Unlimited users and unlimited custom objects on self-hosted, with no feature gating based on headcount.
  • REST and GraphQL APIs available on all paid tiers, not locked behind an enterprise add-on fee.
  • MCP server and webhooks shipped as standard features, not premium upgrades.
  • Modern PostgreSQL-backed data model that developer teams can query, extend, and self-host.

Weaknesses

  • Recent v1.0 release means limited production hardening compared to CRMs with multi-year operational track records.
  • No native email sequencing or sales engagement tools — follow-up cadences require a separate platform.
  • No native two-way email sync or inbox integration, requiring third-party connectors for full activity logging.
  • Self-hosting 'free' pricing hides real infrastructure and DevOps costs that stack up over time.
  • Workflow automation is functional but lacks the complexity needed for sophisticated multi-step sales motions.

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 Lexis Affinity and Twenty CRM.

  • 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

    Lexis Affinity: Not publicly documented for the practice management module; enterprise customers should confirm limits during onboarding.

  • Data volume sensitivity

    B

    Lexis Affinity doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your Lexis Affinity to Twenty CRM 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 Lexis Affinity to Twenty CRM data migrations

Answers to the questions buyers ask most during Lexis Affinity to Twenty CRM migration scoping. Not seeing yours? Book a call.

Can't find your answer?

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 consultation

Most Lexis Affinity-to-Twenty CRM migrations complete in 48–72 hours of clock time for under 50,000 records across contacts, companies, matters, and time entries. Larger setups with 500,000+ records or extensive custom matter fields extend to 5–7 days. The longest planning step is auditing Lexis Affinity's custom DataForm fields and creating matching custom fields in Twenty's Data Model before import files can run. Sequencing the import so Companies load before People and People before Opportunities is the second time-intensive step.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Lexis Affinity.
Land in Twenty CRM, 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