CRM migration

Migrate from Clarra to Twenty CRM

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

Clarra logo

Clarra

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

100%

10 of 10

objects map 1:1 between Clarra and Twenty CRM.

Complexity

BStandard

Timeline

2–5 days

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Clarra is a cloud-based contract and client management SaaS built for law firms, production companies, and enterprise legal teams. Its data model centers on Clients, Matters, Contracts, Calendar Events, and Documents, with custom objects for industry-specific configurations. Clarra's API access is tiered by plan — lower tiers restrict export scope — and the platform does not expose workflow definitions via API. Twenty CRM is an open-source CRM (AGPL-3.0) with standard objects: People, Companies, Opportunities, Notes, Tasks, and Calendar Events. It supports unlimited custom objects on all tiers and exposes a GraphQL API with per-plan rate limits (100/minute on Pro, 200/minute on Organization). Twenty imports data via CSV upload or GraphQL mutations, with a 20,000-record export limit per CSV. We connect to Clarra's REST API (or CSV export where API access is restricted by plan tier), extract all standard and custom objects including their relationships and timestamps, then generate a mapping document that routes Clarra Clients → Twenty People, Matters → Twenty Companies, Contracts → Twenty Opportunities, Calendar Events → Twenty Tasks, and preserves Clarra custom objects as Twenty custom objects. Workflow automations, document templates, and sharing rules are documented for manual rebuild in Twenty's workflow engine and Settings → Data Model. The migration runs via CSV import (for volumes under 20,000 records per object) or GraphQL bulk mutation for larger datasets, followed by a delta-pickup window and field-level diff.

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

Clarra logo

Clarra

What's pushing teams away

  • Limited public pricing transparency makes it difficult to predict costs as the firm scales, prompting firms to evaluate alternatives before committing.
  • Small company footprint (1-10 employees) raises concerns about long-term support and product roadmap stability for firms with large matter volumes.
  • Absence of a documented public rate limit or bulk API endpoint makes high-volume data operations (e.g., importing large document sets) unpredictable without direct vendor confirmation.
  • Competitors like Clio and Smokeball have deeper market penetration and more third-party integrations, which attracts firms with complex existing toolchains.

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

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

Clarra

Client

maps to

Twenty CRM

People

1:1
Fully supported

Clarra Clients map directly to Twenty People in a 1:1 relationship. Primary email, phone, address, and name fields transfer without transformation. When a Clarra Client has multiple associated contacts, each contact becomes a separate Twenty People record, and all are linked to the same Company record via companyId to preserve the original relationship structure.

Clarra

Matter

maps to

Twenty CRM

Company

1:1
Fully supported

Clarra Matters function as the case or project container in the system, and they map directly to Twenty Companies. Standard fields including industry, employee count, address, and annual revenue transfer as native Company fields. When Clarra Matters have parent-child hierarchies, those relationships convert via Twenty's Company relation field, preserving the organizational structure across the migration.

Clarra

Contract

maps to

Twenty CRM

Opportunity

1:1
Fully supported

Clarra Contracts are transformed into Twenty Opportunities. The Contract amount field maps directly to Opportunity.amount, while contract status values (Draft, Active, Under Review, Expired) are mapped via explicit value mapping to Twenty Opportunity stage values. Contract end date becomes the closeDate in Twenty, with a custom status field preserving the original Clarra status for reference after migration.

Clarra

Calendar Event

maps to

Twenty CRM

Task

1:1
Fully supported

Clarra Calendar Events are evaluated for their time characteristics. Events specified with a due date but lacking explicit start/end times convert to Twenty Tasks with Type set to Reminder. Events containing both start and end times map to Twenty CalendarEvent records. Throughout this process, all original creation timestamps and assignee relationships are captured as custom datetime fields to maintain complete historical context within Twenty.

Clarra

Document / File

maps to

Twenty CRM

File Attachment (on People/Company/Opportunity)

1:1
Fully supported

Documents and files attached to Clarra Matters and Contracts are downloaded from Clarra and re-uploaded to Twenty as native file attachments on the appropriate record type. People, Company, and Opportunity records each accept file attachments. Since Twenty lacks native version history, Clarra version information is preserved as a custom text field labeled DocumentHistory__c, storing version metadata including version number, uploader, and date in JSON format for audit purposes.

Clarra

Custom Object (e.g., Rights, Licensing, IP, Royalty)

maps to

Twenty CRM

Custom Object

1:1
Fully supported

Clarra custom objects map 1:1 to Twenty custom objects. The Twenty custom object must be created in Settings → Data Model before migration. Any N:1 relationships to standard objects require a 'relation' field pointing to the existing Company or People record.

Clarra

Workflow Automation

maps to

Twenty CRM

Workflow (manual rebuild required)

1:1
Fully supported

Clarra workflow rules—including deadline alerts, assignment routing, email triggers, and milestone notifications—reside as platform configuration and are not exposed through Clarra's public API, making automated export impossible. To address this, FlitStack documents every active workflow in detail, capturing its trigger conditions, action steps, and filter logic. Your Twenty administrator then uses this documentation to manually rebuild equivalent automations using Twenty's Settings → Workflows interface.

Clarra

User / Team Member

maps to

Twenty CRM

WorkspaceMember

1:1
Fully supported

Clarra user accounts are matched to Twenty WorkspaceMembers using email address as the primary key. During the matching process, any Clarra users without a corresponding email in Twenty are flagged in a User Resolution Report for manual handling. Team-level access controls, role hierarchies, and permission structures defined in Clarra cannot be mapped automatically and must be reconfigured manually through Twenty's Settings → Members interface after migration completes.

Clarra

Tag / Label

maps to

Twenty CRM

Tag (multi-select on People/Company/Opportunity)

1:1
Fully supported

Clarra tags and labels transfer directly to Twenty's built-in tag field, which is available on People, Company, and Opportunity record types. Since Clarra tags are free-form text entries with no enforced vocabulary or predefined list, they transfer verbatim without any transformation or deduplication. Your team should review the consolidated tag list after migration to identify duplicates or inconsistencies that may have accumulated in Clarra over time.

Clarra

Billing / Rate Information

maps to

Twenty CRM

Custom Fields on Opportunity

1:1
Fully supported

Clarra's billing rates, billing codes, cost-center assignments, and other financial metadata attached to Contracts lack native equivalents in Twenty's Opportunity object. These fields are migrated as custom fields on the Opportunity record, with names like BillingRate__c and CostCenter__c created in Twenty's Settings → Data Model. For Contracts containing multi-currency amounts, the original currency code is preserved in a companion custom select field (ContractCurrency__c) alongside the numeric amount value.

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.

Clarra logo

Clarra gotchas

High

No publicly documented API rate limits

Low

Report configurations do not migrate

Medium

Custom field schema varies by firm

Medium

Document binary storage handled separately from metadata

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

  • Clarra API access is plan-gated — migration scope may be restricted on lower tiers

    Clarra's REST API is not available on all plan tiers. On lower tiers, API endpoints for custom objects, Documents, and Calendar Events may return 403 errors or empty responses. If API access is restricted, FlitStack falls back to CSV export, but Clarra's CSV export is capped at 20,000 records per file. For large datasets on restricted plans, records must be exported in chunks filtered by date range or object subset. We audit API scope during discovery and document which objects require CSV fallback before the migration plan is finalized.

  • Workflow automations cannot be exported from Clarra — must be rebuilt manually in Twenty

    Clarra workflow rules (deadline alerts, assignment routing, email notifications, milestone triggers) are stored as platform configuration and are not exposed via Clarra's public API. There is no export endpoint for workflow definitions. FlitStack documents every active Clarra workflow — its trigger conditions, action steps, and filter logic — so your Twenty admin can rebuild them in Settings → Workflows. This documentation step adds 1–3 days to the migration timeline and must be done before go-live to avoid losing automated processes. Workflow rebuild is outside the data migration scope and is quoted separately.

  • Clarra multi-currency Contract amounts require custom field handling in Twenty

    Clarra supports multiple currencies on Contract financial fields, storing the currency code alongside the amount (e.g., USD 50,000 or EUR 42,000). Twenty Opportunity.amount is a plain number field with no native multi-currency designation. During migration, FlitStack creates a custom select field (ContractCurrency__c) on the Opportunity object and stores the Clarra currency code alongside each amount. Exchange rates are not converted — amounts land in Twenty in their original currency, and your team handles currency reporting outside the CRM or via a custom aggregation view.

  • CSV export limit of 20,000 records per file requires chunked exports for large datasets

    Clarra's CSV export returns a maximum of 20,000 records per file. For objects with more than 20,000 records, FlitStack runs multiple filtered exports using date-range or record-ID chunking to cover the full dataset. Chunked exports increase the risk of missing records created or modified between export runs — mitigated by the delta-pickup window. API-based migration avoids this limit but requires Clarra's paid API access tier to be active. We confirm the active plan tier during discovery and select the appropriate export mechanism.

  • Clarrafter document version history does not migrate natively — preserved as a custom text field

    Clarra stores document version history on files linked to Matters and Contracts (version numbers, upload timestamps, modified-by users). Twenty does not have a native version history model for file attachments. During migration, FlitStack re-uploads the current version of each document to Twenty and creates a custom text field (DocumentHistory__c) that stores a serialized summary of the Clarra version log (version, uploader, date) as a JSON-encoded string. Full version history reconstruction requires a separate document management integration post-migration.

Migration approach

Six steps for a successful Clarra to Twenty CRM data migration

  1. Discover Clarra API scope and export feasibility

    FlitStack connects to Clarra using your API credentials (or receives CSV exports if API access is restricted by plan tier). We audit the full schema — standard objects, custom objects, relationships, and Calendar Events — and identify any API 403 errors or CSV export truncation points caused by the 20,000-record file limit. This step produces a Clarra Data Inventory document listing every object, record count, and the recommended extraction mechanism (API or CSV chunk), plus a list of active workflow rules for documentation.

  2. Map data model and create Twenty schema

    We generate a field-level mapping document that pairs every Clarra field (Client, Matter, Contract, Task, CalendarEvent, and custom objects) with its Twenty equivalent. For fields with no native Twenty counterpart — multi-currency codes, Clarra IDs, original timestamps — we create custom fields in Twenty's Settings → Data Model before any data lands. Custom objects are created in Settings → Data Model → Custom Objects with the same field structure as Clarra, including relation fields pointing to existing standard objects.

  3. Resolve user assignments and invite team to Twenty

    Clarra users are matched to Twenty WorkspaceMembers by email address. FlitStack generates a User Resolution Report listing matched users, unmatched users, and any role/permission context from Clarra that requires manual reconfiguration in Twenty Settings → Members. Your team must accept Twenty invitations and create WorkspaceMember accounts before we can map assigneeId and ownerId fields. This step runs in parallel with schema setup.

  4. Run sample migration with field-level diff

    We run a representative slice of migration — typically 100–500 records spanning Clients, Matters, Contracts, Tasks, and a sample custom object — and generate a field-level diff report. You verify that Clarra field values landed correctly in Twenty, that custom field values (currency codes, original timestamps, source IDs) are populated, and that relationship links (People → Company, Contract → People) resolved correctly. Sample migration runs until field-level diff passes your sign-off criteria.

  5. Execute full migration with delta-pickup window

    Full migration loads all records into Twenty via CSV import (Command Menu → Import records) for volumes under 20,000 per object, or via Twenty's GraphQL API for larger datasets. We sequence imports in dependency order: Companies first (the 'one' side of relationships), then People (linked via companyId), then Opportunities (linked to Companies and People), then Tasks and CalendarEvents. A 24–48 hour delta-pickup window captures any records created or modified in Clarra during the cutover period. Audit log records every operation; one-click rollback is available if reconciliation fails.

  6. Validate record counts and deliver workflow documentation

    FlitStack compares record counts between Clarra and Twenty for every object, checks a random sample of 50+ records field-by-field, and confirms that relationship links (People → Company, Contract → assignee) resolved correctly. We deliver the Workflow Documentation Package — a structured list of every active Clarra workflow with its trigger, conditions, and actions — for your Twenty admin to rebuild in Settings → Workflows. The migration is complete once validation passes and documentation is delivered.

Platform deep dives

Context on both ends of the pair

Clarra logo

Clarra

Source

Strengths

  • Free unlimited-user tier reduces upfront cost for small and mid-size law firms evaluating the platform.
  • Zapier integration provides no-code connectivity to 6,000+ external applications out of the box.
  • REST API with sandbox environment enables custom integrations and programmatic data operations for technical teams.
  • Multi-format export (CSV, XLSX, DOCX, PDF) gives flexibility in how data is extracted and reviewed before migration.

Weaknesses

  • Small company size and limited public funding history may concern firms requiring enterprise-grade vendor stability assurances.
  • No publicly documented rate limits for the API make it difficult to plan large-scale import or export operations upfront.
  • Limited public information about pricing tiers and feature-gating between plans creates friction during the buying and migration evaluation process.
  • Niche focus on entertainment and production company clients may limit appeal and out-of-the-box workflows for general litigation or corporate law firms.
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 Clarra 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

    Clarra: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most Clarra-to-Twenty migrations complete in 2–5 days of active migration work for under 5,000 total records. Complex migrations with 20,000–100,000 records, multiple custom objects, and Clarra workflows to document extend to 5–10 days. The longest step is workflow documentation — reviewing every active Clarra workflow and translating its logic into Twenty's workflow engine format — which adds 1–3 days and is done before data lands in Twenty.

Adjacent paths

Related migrations to explore

Ready when you are

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