CRM migration

Migrate from Lead Docket to Twenty CRM

Field-level mapping, validation, and rollback between Lead Docket and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.

Lead Docket logo

Lead Docket

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

100%

11 of 11

objects map 1:1 between Lead Docket and Twenty CRM.

Complexity

BStandard

Timeline

5–10 business days

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Lead Docket structures its data around a flat lead model tied to legal case-type configurations, with 11 default lead statuses and optional paid automations for status-change routing. Twenty CRM uses a normalized People-Companies-Opportunities object model with custom picklist fields, custom objects, and a built-in workflow engine. We map Lead Docket leads to Twenty People, Lead Docket companies to Twenty Companies, and Lead Docket custom intake fields to Twenty custom fields created under Settings → Data Model before import. Lead Docket's API is write-only — it pushes leads to external systems but cannot read back custom field definitions or historical field values — so we extract data via CSV export and supplement with API calls for standard fields, then reconstruct custom field schemas from Lead Docket's field documentation. The 11 default lead statuses require value-by-value mapping to a Twenty custom picklist (Case_Status__c). Automations, attorney rotation, and case-type routing have no equivalent in Twenty's schema and are surfaced in a rebuild checklist for your admin. We sequence the migration as: Companies first, then People, then Opportunities, matching Twenty's import-order constraint. Delta-pickup covers in-flight leads modified in Lead Docket during the cutover window.

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

Lead Docket logo

Lead Docket

What's pushing teams away

  • Reporting is weak—reviews across G2 and Capterra cite poor reporting accuracy and limited analytics as a persistent pain point for data-driven firms.
  • The platform's API is severely limited: integrations and external calls can only create new leads, not update existing records, which breaks live sync setups.
  • Messaging and communication features have reliability issues according to verified reviews, with users reporting dropped texts or notification failures.
  • The Filevine integration has known quirks—reviewers note minor but recurring issues when syncing lead data to Filevine case files.
  • Some users report billing surprises, particularly around the paid add-on model for automations, which are not included in base subscriptions.

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 Lead Docket objects map to Twenty CRM

Each row shows how a Lead Docket 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.

Lead Docket

Lead

maps to

Twenty CRM

People

1:1
Fully supported

Lead Docket's lead records map directly to Twenty's People object. Standard contact fields (name, email, phone, address) align 1:1. The 11 default lead statuses do not have a native Twenty equivalent and migrate as a custom picklist field on People. Leads with no associated company map as People with no companyId relation.

Lead Docket

Lead (with company association)

maps to

Twenty CRM

People + Companies

1:1
Fully supported

When a Lead Docket lead has a linked company, the company data extracts into a Twenty Companies record first, then the People record references it via companyId. The import order (Companies → People) follows Twenty's foreign-key constraint — the Company record must exist before the People record that references it.

Lead Docket

Company

maps to

Twenty CRM

Companies

1:1
Fully supported

Lead Docket company records map 1:1 to Twenty Companies. Company name, domain, address fields, industry, and employee count migrate directly. Parent-child company hierarchies in Lead Docket map to Twenty's ParentId field on the Companies object, preserving organizational structures. Any associated phone numbers, websites, and revenue data also transfer directly to the corresponding Twenty Companies fields.

Lead Docket

Lead Status (11 default values)

maps to

Twenty CRM

Custom picklist field on People

1:1
Fully supported

Lead Docket's 11 default lead statuses (New, Working, Qualified, Consultation Scheduled, etc.) require value-by-value mapping to a Twenty custom picklist field (Case_Status__c). Status change timestamps from Lead Docket migrate as a separate custom datetime field (Status_Changed_At__c) if available via export.

Lead Docket

Case Type

maps to

Twenty CRM

Custom picklist field (Case_Type__c) on People

1:1
Fully supported

Lead Docket's Case Type concept has no direct equivalent in Twenty. We represent it as a custom picklist field (Case_Type__c) on People, mapping each Lead Docket case type value to the corresponding picklist option. Teams using case-type-specific custom fields flatten those into Twenty custom fields applied universally to the People object.

Lead Docket

Lead Docket Custom Fields (per case type)

maps to

Twenty CRM

Twenty Custom Fields (on People)

1:1
Fully supported

Lead Docket's custom fields scoped to specific case types or intake form locations (Above Incident Details, Contact Information, etc.) cannot replicate their visibility rules in Twenty. We create flat custom fields on the People object under Settings → Data Model before import. Field order and visibility are not preserved — the admin recreates display logic in Twenty's view configuration post-migration.

Lead Docket

Attorney Rotation rule

maps to

Twenty CRM

Custom object (Attorney_Rotation__c) or manual assignment

1:1
Fully supported

Lead Docket's attorney rotation feature — which distributes inbound leads across attorneys based on a round-robin or weighted rule — has no equivalent in Twenty. We surface this in the migration plan as a rebuild item: either create a custom object in Twenty to track attorney assignments, or document the rotation logic for manual recreation in Twenty's task assignment system.

Lead Docket

Lead Docket Automations (paid add-on)

maps to

Twenty CRM

Twenty Workflow (Pro plan)

1:1
Fully supported

Lead Docket Automations (up to 50 status changes per lead) trigger on lead qualification events, sending forms, posting to Filevine, or routing to Vinesign. Twenty's workflow builder handles basic conditional routing but lacks native sequencing. We export the automation definitions as a rebuild reference document for your Twenty admin.

Lead Docket

Lead (with Opportunity/Deal context)

maps to

Twenty CRM

Opportunities

1:1
Fully supported

If Lead Docket stores deal or case-value data alongside leads (e.g., estimated case value, referral source linked to a revenue figure), that data migrates as Twenty Opportunities. The Lead's owner maps to the Opportunity's assignee relation via email match against Twenty workspace members.

Lead Docket

Integration endpoints (Filevine, Vinesign, custom webhooks)

maps to

Twenty CRM

No equivalent — rebuild required

1:1
Fully supported

Lead Docket integrations post lead data to external systems via an endpoint URL in real time. Twenty has no native integration endpoint receiver. Integration connections must be rebuilt as Twenty webhooks (outbound) or by reconfiguring the third-party system to point at Twenty's API.

Lead Docket

Lead Docket User / Owner

maps to

Twenty CRM

Workspace Member (People relation)

1:1
Fully supported

Lead Docket users and lead owners resolve by email match against Twenty workspace members. If a Lead Docket user has no matching email in Twenty, their records assign to a fallback owner specified by the client. Unmatched owners are flagged before migration so the team can invite them to Twenty first.

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.

Lead Docket logo

Lead Docket gotchas

High

API write-only limitation blocks record updates

High

Automations are excluded from all export methods

Medium

Filevine integration has documented one-way sync issues

Medium

50-automation-change cap per lead

Low

Custom fields require manual recreation and type mapping

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

  • Lead Docket API is write-only — custom field data cannot be pulled via API

    Lead Docket's API is designed as an integration endpoint, not a data export interface. The platform accepts inbound lead pushes via an endpoint URL but cannot return existing records, read custom field schemas, or update records via API. Custom field definitions must be reconstructed from Lead Docket's field documentation (Manage > Custom Fields), and field values extracted via the CSV export feature supplemented by API calls for standard fields. This limitation means FlitStack cannot perform a fully automated delta run from Lead Docket's API — a CSV export window is required to capture the current state before migration, and any records created between the export and the cutover must be re-exported manually.

  • Lead Docket case-type-specific custom fields lose visibility scope in Twenty

    Lead Docket's custom fields can be scoped to specific case types and placed at defined locations in the intake form (Above Incident Details, Contact Information, Incident Details, Other, or Practice Area-specific). Twenty CRM applies custom fields universally to an object with no case-type-dependent visibility model. When Lead Docket's custom fields are created as flat Twenty custom fields on the People object, the visibility rules (which fields appear for which case type) are lost. FlitStack documents each custom field's original case-type scope in the migration plan so the admin can recreate visibility logic using Twenty's view and filter configuration after migration.

  • Attorney rotation and case-type routing have no Twenty equivalent

    Lead Docket's attorney rotation feature automatically distributes inbound leads to attorneys based on round-robin or weighted rules tied to case type. This built-in routing logic has no equivalent in Twenty CRM — Twenty's task assignment is manual or rule-based without a native attorney-distribution engine. Migrated records that were previously routed via attorney rotation will land in Twenty without an assignee. FlitStack surfaces this as a rebuild item: either create a custom Attorney_Rotation__c object in Twenty to track assignment rules, or document the rotation logic for manual task creation.

  • Twenty CSV import has a 10,000-record-per-file limit — large volumes need API migration

    Twenty's CSV import UI handles up to 10,000 records per file. Lead Docket setups with more than 10,000 total records (across leads, companies, and activities) require either splitting exports into multiple CSV files or using Twenty's API import endpoint for large-scale migrations. FlitStack uses the API import path for volumes exceeding the CSV limit, which also requires the Organization plan or API access enabled on the Pro plan. The import order constraint (Companies before People before Opportunities) applies to both CSV and API import methods.

  • Automations and paid automation sequences do not migrate and cannot be auto-converted

    Lead Docket Automations (a paid add-on) trigger up to 50 status changes per lead, send lead forms, post to Filevine, and route leads to Vinesign when qualification conditions are met. Twenty's workflow builder handles conditional task creation and field updates but lacks native sequencing, multi-step email cadences, and Filevine/Vinesign integration endpoints. FlitStack exports automation definitions as a rebuild reference document for the Twenty admin. The Filevine integration endpoint (Lead Docket posts lead data to Filevine via webhook) must be reconfigured to point at Twenty's API or rebuilt using Twenty webhooks.

Migration approach

Six steps for a successful Lead Docket to Twenty CRM data migration

  1. Audit Lead Docket data and extract via CSV plus API

    FlitStack audits the Lead Docket workspace to document all active case types, custom field schemas, lead statuses, and user accounts. Since Lead Docket's API is write-only, we extract standard fields via API calls and supplement with CSV exports from Manage > Export. Custom field definitions are documented from the field configuration UI (Manage > Custom Fields) because they cannot be retrieved via API. We validate record counts against the export to catch any gaps before mapping begins.

  2. Create Twenty custom fields and objects before import

    Twenty requires all custom fields to exist before records are imported — CSV upload creates records but not fields. FlitStack creates the Case_Status__c picklist (mapping all 11 Lead Docket lead status values), Case_Type__c picklist, and any additional custom fields (Incident_Details__c, Referral_Source__c, Source_System_ID__c) under Settings → Data Model. If attorney rotation logic needs a custom object, that schema is created in this step. Workspace members are invited and confirmed so owner resolution can match by email during import.

  3. Migrate in Twenty's required order: Companies → People → Opportunities

    Twenty enforces foreign-key constraints during import: the Company record must exist before a People record can reference it via companyId, and the People record must exist before an Opportunity can reference it via contacts. FlitStack sequences the migration as: (1) Companies from Lead Docket company records, (2) People from Lead Docket leads with companyId linking to the Companies import, (3) Opportunities from any deal or case-value data in Lead Docket. Custom object imports run last. Owner resolution happens at this step — Lead Docket owner emails matched against Twenty workspace members; unmatched owners flagged for admin action.

  4. Run a sample migration with field-level diff before full commit

    A representative slice of 100–500 records spanning multiple case types, lead statuses, and activity types migrates first. FlitStack generates a field-level diff comparing source values in Lead Docket against the resulting Twenty record fields, verifying that Case_Type__c and Case_Status__c picklist values populated correctly, companyId links resolved, and owner assignments matched. The client reviews the diff to confirm mapping correctness before the full migration runs.

  5. Full migration with delta pickup and audit log

    The full record set migrates against Twenty. A delta-pickup window (typically 24–48 hours) captures any leads created or modified in Lead Docket during the cutover period. FlitStack maintains a full audit log of every record operation including the source system ID, destination ID, and mapping applied. If reconciliation identifies mismatches, one-click rollback reverts the Twenty workspace to the pre-migration state so the team can correct and re-run.

Platform deep dives

Context on both ends of the pair

Lead Docket logo

Lead Docket

Source

Strengths

  • Purpose-built for legal intake rather than adapted from a horizontal CRM, with native case type and attorney rotation concepts.
  • Granular lead source attribution shows exactly where each case originated for marketing spend accountability.
  • User-friendly dashboard keeps all leads visible and organized without requiring technical training.
  • Automation engine can trigger status changes, send intake forms, and push leads to Filevine or Vinesign in real time.
  • Supports custom fields on leads and contacts, allowing firms to tailor the data model to their practice areas.

Weaknesses

  • API is write-only: external systems can only create new leads, not update or deduplicate existing records.
  • Reporting is widely cited as weak and inaccurate, limiting data-driven decision-making for firm management.
  • Automations are gated behind a paid add-on, increasing total cost of ownership beyond the base subscription.
  • Integrations are one-directional and unreliable for two-way sync, particularly the Filevine connection which has documented quirks.
  • Messaging features have reliability issues reported by multiple reviewers, including dropped texts and notification failures.
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. 2 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 Lead Docket and Twenty CRM.

  • Object compatibility

    B

    2 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

    Lead Docket: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

Estimate your Lead Docket 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 Lead Docket to Twenty CRM data migrations

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

Can't find your answer?

Walk through your Lead Docket to Twenty CRM migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most Lead Docket to Twenty CRM migrations complete in 5–10 business days for setups under 5,000 records with a well-documented custom field schema. Complex migrations with 5,000–50,000+ records, multiple case types, and attorney rotation logic extend to 3–5 weeks. The longest phase is typically reconstructing custom field values from Lead Docket's documentation since the API cannot export field schemas directly — this step runs in parallel with Twenty workspace configuration.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Lead Docket.
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