CRM migration

Migrate from Clio to Twenty CRM

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

Clio logo

Clio

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

100%

12 of 12

objects map 1:1 between Clio and Twenty CRM.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Clio and Twenty CRM occupy different positions in the legal-tech stack: Clio combines practice management with CRM in a matter-centric model, while Twenty ships as a pure CRM optimized for flexible pipeline management. When firms migrate, the core challenge is reshaping Clio's legal-specific objects — Matters, Bills, Time Entries, and custom fields — into Twenty's standard People, Companies, and Opportunities schema. We extract Clio data via the REST API with pagination and rate-limit throttling, transform billing rates and matter stages into Twenty custom fields, and load via CSV with relationship resolution using email for people and domain for companies. Workflows, automation rules, document management links, and accounting balances do not migrate — those require manual rebuild in Twenty's Settings → Workflows panel. The migration runs in two passes: a sample migration against a representative slice (50–200 records) for field-level validation, then a full cutover with 24–48 hour delta pickup to capture any in-flight changes. Owner resolution happens via email match against Twenty workspace members before records are written.

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

Clio logo

Clio

What's pushing teams away

  • Clio's built-in accounting module lacks payroll functionality, forcing firms to maintain a separate payroll system and reconcile across two platforms.
  • Clio Draft document automation is reported as harder to use than competitive built-in document generation, prompting some firms to keep third-party document tools.
  • The breadth of features creates a steeper onboarding curve; firms with simple needs report paying for functionality they do not use.
  • Some firms grow out of Clio as they scale and require more advanced reporting, matter-level financial analytics, or deeper enterprise integrations that the platform limits.

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

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

Clio

Contact

maps to

Twenty CRM

People

1:1
Fully supported

Clio contacts map directly to Twenty People. The contact's primary Firm association resolves to a Twenty Company via domain match or explicit companyId assignment during import. Email, phone, address, and job title fields migrate as standard Twenty People fields. Original create and update timestamps are preserved as custom datetime fields for audit continuity.

Clio

Firm

maps to

Twenty CRM

Company

1:1
Fully supported

Clio firms map to Twenty Companies. Firm name becomes the Company displayName. Website, industry, and address fields translate directly. Parent-child firm hierarchies in Clio map to the Company.parentId relationship in Twenty. Multi-office firms generate multiple Company records linked by the parent relationship.

Clio

Matter

maps to

Twenty CRM

Opportunity

1:1
Fully supported

Clio matters are the primary record type and require the most transformation. The matter becomes a Twenty Opportunity with the matter name as Opportunity.name, the matter's status mapped to a custom picklist field (Matter_Status__c), and the responsible attorney resolved to a Twenty workspace member via email match. Matter type (Practice Area) migrates as a custom select field.

Clio

Matter Stage / Status

maps to

Twenty CRM

Custom field on Opportunity

1:1
Fully supported

Clio matter statuses (Open, Pending, Closed, Archived) have no direct Twenty equivalent — Twenty Opportunities use a kanban stage model instead. We map each Clio matter status to a corresponding Twenty Opportunity custom field (Matter_Status__c) and, where applicable, to Twenty's built-in stage picklist (New, Qualification, Proposal, Negotiation, Closed Won, Closed Lost). Status value mapping is documented in the migration plan before execution.

Clio

Bill / Invoice

maps to

Twenty CRM

Custom field on Opportunity

1:1
Fully supported

Clio's billing module — bills, invoices, trust balances, and accounts receivable — has no equivalent in Twenty's CRM model. We extract the outstanding balance and last bill date as custom Number and Date fields on the Opportunity record (Outstanding_Balance__c, Last_Bill_Date__c). Full invoice history and trust accounting records must be maintained in a dedicated accounting tool post-migration.

Clio

Time Entry

maps to

Twenty CRM

Task

1:1
Fully supported

Clio time entries map to Twenty Tasks with the time entry's description as Task.title, the duration in hours stored as a custom number field (Hours__c), and the billing rate stored as Billable_Rate__c. The Task is linked to the corresponding Opportunity (the Matter). Entries are created as completed tasks in Twenty with the original entry date preserved as the Task due date.

Clio

Activity (call, email, note)

maps to

Twenty CRM

Note / Task

1:1
Fully supported

Clio activities — calls, emails, and notes — map to Twenty Notes attached to the corresponding People or Opportunity record. Activity type is preserved in a custom select field (Activity_Type__c) on the Note. Original activity timestamps are retained; the activity author resolves to a Twenty workspace member by email match.

Clio

Document / File

maps to

Twenty CRM

Note attachment / external reference

1:1
Fully supported

Clio documents and file attachments cannot be imported into Twenty natively — Twenty does not include a document management module. We preserve the document name, original URL path in Clio, and a link reference as a custom field on the related Opportunity (Document_Reference__c). Firms must re-upload documents to their preferred storage and update links post-migration.

Clio

Custom Field (Matter)

maps to

Twenty CRM

Custom field on Opportunity

1:1
Fully supported

Clio custom fields on Matters require pre-creation in Twenty's Settings → Data Model before import runs. We extract the full custom field schema from Clio's API (field name, type, picklist values) and generate the corresponding Twenty field definition. Multi-select picklists in Clio become multi-select fields in Twenty; date fields remain date fields; text fields map directly.

Clio

User / Attorney

maps to

Twenty CRM

Workspace Member

1:1
Fully supported

Clio users and attorneys resolve to Twenty workspace members by email address. Before migration, all active Clio users must have Twenty workspace invitations sent and accepted so their email appears in the Members list. Unmatched users are flagged and assigned to a fallback Twenty user; all original user assignments are preserved in a Source_Owner__c custom field for audit purposes.

Clio

Billing Rate

maps to

Twenty CRM

Custom Number field on Opportunity

1:1
Fully supported

Clio's rate hierarchy — custom rate, matter rate, client rate, user default rate — is a legal billing construct with no Twenty equivalent. We calculate the effective rate at time of each time entry and store it as Billable_Rate__c (a custom currency field) on the related Opportunity. Rate tier information is preserved as additional custom fields (Rate_Type__c, Rate_Source__c) for billing reconstruction.

Clio

Intake / Lead Source

maps to

Twenty CRM

Custom field on People

1:1
Fully supported

Clio intake sources and lead origin information attached to contacts or matters migrates as a custom select field (Lead_Source__c) on the Twenty People record. Where Clio tracks referral source as a matter attribute, the field is duplicated on both the related People and Opportunity records for full attribution visibility.

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.

Clio logo

Clio gotchas

High

API rate limit of 50 req/min per OAuth application

High

Trust accounting data requires separate ledger treatment

Medium

Rate hierarchy complexity causes billing mismatches

Medium

Client portal does not transfer between platforms

Low

Flat-rate and contingency matter billing requires explicit 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

  • Clio API rate limits throttle bulk extraction to 50 req/min during peak hours

    Clio's API enforces a 50 requests per minute rate limit on a per-OAuth-application basis — meaning the total throughput across all records and objects is shared. For a firm with 50,000 matters, 30,000 contacts, and 200,000 time entries, reaching full extraction at 50 req/min requires approximately 93 hours of continuous API polling. We handle this with exponential backoff on 429 responses, off-peak scheduling to exploit higher limits, and pagination-aware request batching. The migration plan estimates extraction time based on Clio's rate limit documentation before committing to a timeline.

  • Twenty requires custom fields to exist before CSV import — fields are not auto-created

    Twenty's CSV import mechanism reads existing field definitions from Settings → Data Model but does not auto-create fields during import. Every custom field from Clio (billing rates, practice areas, matter types, custom attributes on contacts and matters) must be pre-created in Twenty before the import run executes. We extract the complete custom field schema from Clio's API, generate a field creation manifest for Twenty's Data Model UI, and deliver it as a pre-migration setup checklist. If a field is missed during setup, the import skips those values silently — which is a data loss risk if not caught in the sample migration phase.

  • Clio billing and accounting data has no migration path to Twenty's CRM schema

    Clio's billing module — trust account balances, accounts receivable, invoice history, billing rates, and flat-rate matter configurations — is a specialized legal accounting construct. Twenty CRM has no accounting, trust accounting, or billing module. We can preserve the outstanding balance and last bill date as custom fields on the Opportunity, and store effective billing rates per time entry, but the full financial history (invoices, payments, trust transactions, client retainers) cannot migrate. Firms must maintain Clio for billing purposes, implement a separate accounting tool, or accept that financial history reconstruction is a manual post-migration task.

  • Twenty's 20,000-record export ceiling requires batched processing for large firms

    Twenty's CSV export function is capped at 20,000 records per operation. Firms migrating from Clio to Twenty that have accumulated large datasets (e.g., 80,000 historical time entries, 30,000 matter activities) must split exports into batches using date filters or pagination offsets. If a firm attempts a single bulk export beyond this limit, Twenty returns an error rather than a partial file. We implement batched export logic with date-window segmentation to handle large datasets, and validate record counts before each import batch to ensure no records are silently dropped.

  • Clio workflows and intake automation must be manually rebuilt in Twenty's workflow builder

    Clio Manage's workflow automation engine (matter triggers, task assignment rules, intake sequences, client communication automations) does not export in a format compatible with Twenty's workflow builder. The migration plan includes a workflow audit step where we document every active Clio workflow by name, trigger condition, and action sequence — this document serves as a rebuild specification for Twenty's Settings → Workflows panel. The rebuild effort varies widely: simple task assignment rules take an hour; multi-step intake sequences with branching logic may require a full day of configuration per workflow.

Migration approach

Six steps for a successful Clio to Twenty CRM data migration

  1. Audit Clio data volume and custom field schema

    We connect to Clio's REST API using OAuth credentials with read-only scope and enumerate all active objects: Contacts, Firms, Matters, Time Entries, Activities, and custom fields. We record field types, picklist values, and relationship IDs. We also run a record-count query per object and calculate extraction time based on Clio's 50 req/min rate limit. This audit produces a Data Volume Report and a Custom Field Manifest — the latter is used to pre-create fields in Twenty before import. We flag any Clio records without email addresses, as those cannot auto-resolve to Twenty workspace members.

  2. Prepare Twenty workspace and invite team members

    Before any data arrives in Twenty, we create the custom fields identified in the Clio audit (Settings → Data Model), configure the opportunity pipeline stages to reflect the firm's practice areas, and send workspace invitations to all active Clio users. Twenty requires users to exist before owner assignment during import — if a user is not in the Members list, their records cannot be linked to a valid assigneeId. We validate the Members list against Clio's user roster by email and flag any users not yet invited. A Twenty admin completes field creation and user invitations during this window.

  3. Run sample migration with field-level diff

    We extract a representative slice of 100–500 records from Clio — covering at least 5 matters across different practice areas, 10 contacts, 50 time entries, and 20 activities — and import into Twenty. We generate a field-level diff comparing source values against destination values for every mapped field. This diff is reviewed by the firm's admin to verify that billing rate transformations, matter status mappings, and contact-to-company associations are correct. The sample migration also validates that custom field values in Clio's picklists are fully represented in Twenty's custom field options; missing values are added to the Data Model before the full run.

  4. Execute full cutover with delta-pickup window

    With the sample migration validated, we run the full extraction from Clio with exponential-backoff throttling against the API rate limit. Data loads into Twenty via CSV import in dependency order: Companies first (the one side of relationships), then People (with companyId linking), then Opportunities (with assigneeId and companyId), then Tasks and Notes. After the initial load completes, we open a 24–48 hour delta-pickup window during which any records created or modified in Clio are re-extracted and upserted into Twenty. All operations are logged to an audit trail, and a one-click rollback script is available if the reconciliation report shows unexpected record counts or orphaned relationships.

  5. Deliver reconciliation report and rebuild specifications

    After the delta-pickup window closes, we generate a reconciliation report comparing Clio record counts against Twenty record counts per object, and flag any records that failed to import with error codes. We deliver a Workflow Rebuild Specification documenting every Clio automation that requires manual recreation in Twenty's workflow builder, plus a Document Migration Guide explaining how to re-upload Clio documents to a preferred storage system and update the Document_Reference__c links on each Opportunity. The final handoff includes a rollback snapshot of the pre-migration Twenty state.

Platform deep dives

Context on both ends of the pair

Clio logo

Clio

Source

Strengths

  • Comprehensive legal CRM combining client intake, billing, document management, and calendar in a single platform.
  • High market standing with #1 ranking in legal practice management and strong G2/Capterra reviews citing reliability and customer support.
  • Built-in AI features (Clio Draft, Clio Manage AI) for document automation and billing insights without third-party integrations.
  • Flexible billing models supporting hourly, flat-rate, and matter-specific rates with a clear rate hierarchy.
  • Complimentary data migration assistance offered directly by Clio reduces switching friction for new customers.

Weaknesses

  • Accounting module lacks payroll, requiring firms to maintain a separate payroll system and manually reconcile across platforms.
  • Document automation (Clio Draft) is reported as less intuitive than competing built-in document generation tools.
  • Broader feature set increases onboarding complexity for simple solo-firm use cases relative to leaner alternatives.
  • AI features and advanced reporting are tier-gated, with full capabilities reserved for higher-priced plans.
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 Clio 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

    Clio: 50 requests per minute per OAuth application, shared across all users of the application.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most Clio-to-Twenty migrations complete within 5–10 days of clock time. For firms with fewer than 50,000 total records (contacts, matters, time entries, activities), the extraction and import phases run in 48–72 hours. Larger firms with 100,000+ records extend to 5–10 days primarily due to Clio's 50 req/min API rate limit governing extraction throughput. The planning and field-creation phase typically takes 3–5 business days before any data moves. Custom field complexity and the number of billing rate tiers also influence the timeline.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Clio.
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