CRM migration

Migrate from Captorra to Twenty CRM

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

Captorra logo

Captorra

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

100%

12 of 12

objects map 1:1 between Captorra and Twenty CRM.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Captorra is a legal-intake and case-management CRM built around leads, intake matters, and law-firm workflows. Its data model separates leads for new inquiries from case matters once intake converts, stores staff assignments as user references, and relies heavily on custom intake form fields to capture practice-area specifics. Twenty CRM is a general-purpose open-source CRM that ships standard People, Companies, and Opportunities objects — it has no native legal-matter object, so Captorra's case management and intake-specific fields must land as Twenty custom objects and custom fields. The migration carries everything Captorra stores natively — leads, contacts, companies, activities, notes, and custom intake data — into Twenty's schema. The harder problems are transforming Captorra's case matters into a custom object (with its own status pick-list), mapping staff assignments by email match to Twenty Workspace Members, handling legal-specific field types like statute of limitations as custom number fields, and preserving case-priority value maps across the transformation. FlitStack AI sequences the migration so foreign keys resolve correctly — users invited first, then Companies, then People, then custom matter objects — and delivers a delta-pickup window (24–48 hours) to capture any Captorra records modified during cutover.

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

Captorra logo

Captorra

What's pushing teams away

  • Pricing is not publicly disclosed, requiring direct sales conversations, which creates friction for smaller firms evaluating fit before committing.
  • The API is limited to inbound lead posting with no documented export endpoints, making it difficult to extract full case and contact data for migration to other platforms.
  • The limited public documentation and small review dataset make independent technical evaluation challenging compared to vendors with richer community resources.
  • Customized intake forms and workflow configurations are difficult to replicate when moving to a different platform, creating significant switching costs for established firms.

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

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

Captorra

Lead

maps to

Twenty CRM

People

1:1
Fully supported

Captorra leads (inbound inquiries) map directly to Twenty People records. Email, name, phone, and source fields transfer as-is. Staff assignment fields are resolved by email match to Twenty Workspace Members — Captorra user records must exist in Twenty before the migration runs.

Captorra

Contact / Client

maps to

Twenty CRM

People

1:1
Fully supported

Captorra client contacts map to Twenty People. A Captorra contact's associated Company link becomes a relation to the Twenty Companies record using the domain or company name as the unique key. Multiple contacts per company are handled by creating one People record per contact with the same CompanyId lookup.

Captorra

Company

maps to

Twenty CRM

Company

1:1
Fully supported

Captorra company records map 1:1 to Twenty Companies. Name, domain (Website), industry, employee count, and address fields migrate directly. Company phone and annual revenue map to the corresponding Twenty Company fields. Parent-company hierarchies in Captorra map to the Twenty Company relation field.

Captorra

Intake Matter / Case

maps to

Twenty CRM

Custom Object: CaseMatter

1:1
Fully supported

Captorra's Intake Matter and Case Management objects have no native equivalent in Twenty. We create a custom object named CaseMatter in Settings → Data Model, add all Captorra case fields as custom fields (case type, statute of limitations, practice area, case number), and map status values to a custom select field. The CaseMatter object links to the associated People record (client) and Company record (firm/defendant) via relation fields.

Captorra

Staff / User

maps to

Twenty CRM

WorkspaceMember

1:1
Fully supported

Captorra staff records (attorneys, intake specialists) do not become separate CRM objects in Twenty — they are Twenty Workspace Members. We resolve each Captorra staff reference by matching the staff email to an invited Workspace Member in Twenty. Unmatched staff references are flagged before migration; the firm must invite those users first.

Captorra

Referral Source

maps to

Twenty CRM

Custom Field on People: Referral_Source__c

1:1
Fully supported

Captorra referral source pick-list values (e.g., Google Ads, Client Referral, Partner) map to a custom select field (Referral_Source__c) on the Twenty People object. Every distinct Captorra value gets a corresponding option in the Twenty field settings under Settings → Data Model before the import.

Captorra

Case Status

maps to

Twenty CRM

Custom Field on CaseMatter: Status__c

1:1
Fully supported

Captorra case status values (New, In Progress, Pending, Closed Won, Closed Lost) map to a custom select field (Status__c) on the CaseMatter custom object. The value list is created in Twenty before migration. Probability and forecast category do not apply to legal case status — those are Opportunity fields in Twenty, not case fields.

Captorra

Intake Form Custom Fields

maps to

Twenty CRM

Custom Fields on People or CaseMatter

1:1
Fully supported

Captorra's per-form custom fields (e.g., practice area dropdown, accident type, insurance carrier) become Twenty custom fields created under Settings → Data Model on the appropriate object (People for client-contact fields, CaseMatter for case-specific fields). Field type is preserved — text stays text, select stays select, date stays date. Select fields require option lists pre-created in Twenty.

Captorra

Note / Document

maps to

Twenty CRM

Note

1:1
Fully supported

Captorra notes and document references attached to leads, contacts, or matters migrate as Twenty Notes. The note body, author (resolved by email to Workspace Member), and associated People or CaseMatter record link are preserved. Inline file attachments are re-uploaded to Twenty's file storage.

Captorra

Activity Log (calls, emails, tasks)

maps to

Twenty CRM

Task

1:1
Fully supported

Captorra activity logs (calls logged, emails tracked, follow-up tasks) map to Twenty Tasks. Task subject, due date, completion status, and the related People or CaseMatter record link transfer. Original activity timestamps are preserved on the Task record for audit continuity.

Captorra

Attachment / File

maps to

Twenty CRM

Twenty Files (attached to record)

1:1
Fully supported

Captorra file attachments on leads, contacts, or matters are downloaded and re-uploaded to Twenty's file storage linked to the corresponding People or CaseMatter record. File size limits from Twenty's storage configuration apply — files over the default limit are flagged for manual handling.

Captorra

Intake Workflow Template

maps to

Twenty CRM

Not applicable

1:1
Fully supported

Captorra intake workflow templates (automated lead routing, stage-gating, email triggers) do not have a counterpart in Twenty's schema. We export Captorra workflow definitions as a JSON reference document so the firm's admin can rebuild them in Settings → Workflows. The data (leads, matters, assignments) migrates — the automation logic does not.

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.

Captorra logo

Captorra gotchas

High

Inbound-only API with no export endpoint

Medium

Custom field schema varies per organization

Medium

No public pricing or trial available

Medium

Intake form configurations do not auto-transfer

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

  • Intake matter objects have no direct Twenty CRM equivalent and require a custom object

    Captorra's case management model is built around Intake Matters with legal-specific fields (case type, statute of limitations, practice area, opposing party, insurance carrier). Twenty ships no native legal-matter object — all of this data must land in a custom object named CaseMatter (created in Settings → Data Model) with custom fields for each Captorra field. The custom object must exist before any CSV import runs, and every pick-list field in Captorra needs a corresponding option list pre-created in Twenty. This is the most labor-intensive part of a Captorra migration and the most common source of import errors if schema setup is incomplete before the data run.

  • Workspace Members must be invited to Twenty before importing any record that references a staff assignment

    Twenty's import documentation is explicit: if your data includes user references (assignee, attorney, intake specialist), those Workspace Members must exist in Twenty before the import — otherwise the relation cannot be mapped. Captorra stores staff assignments on leads, contacts, and matters as user IDs. FlitStack AI resolves these by email match against Twenty Workspace Members. If a Captorra staff member has not accepted their Twenty invitation, their email will not resolve, and the assigned_to field will land blank. We flag all unresolved staff references before migration runs, but the firm must ensure every Captorra user who owns records is a confirmed Twenty Workspace Member.

  • Captorra workflow templates and intake automation sequences do not migrate to Twenty

    Captorra intake workflow templates (automated lead routing, stage-gating, follow-up triggers) are platform-specific automation logic. Twenty's workflow builder (Settings → Workflows) can replicate the same business outcomes but cannot import the Captorra template definitions. We export the Captorra workflow definitions as a JSON reference document so the firm's admin or Twenty implementer can rebuild them. The underlying data — leads, contacts, case records, staff assignments — migrates completely. The automation logic does not. This is a manual-rebuild item that should be scoped separately from the data migration.

  • Captorra referral source and custom intake field pick-list values require manual pre-creation in Twenty

    Captorra intake forms allow firms to define custom select fields with firm-specific option values (e.g., referral source list unique to the firm, practice area taxonomy, insurance carrier list). When these values migrate to Twenty, the corresponding custom select fields in Settings → Data Model must have those exact option values defined before the CSV import runs. If the option list is incomplete, any record with a value not in the Twenty field's option list will either reject on import or land with a blank value. We provide a field-option manifest as part of the migration plan so the Twenty admin can create the full option list in advance.

  • Twenty API rate limits cap at 200 calls per minute on Organization tier — large imports use CSV bulk path

    For migrations exceeding 10,000 records with complex relational data (matters linked to people, people linked to companies), API-based import at 200 requests/minute creates a bottleneck. FlitStack AI routes Captorra-to-Twenty migrations through the CSV bulk import path (Command Menu → Import records) for the primary data load, using the REST API only for delta-pickup and post-migration validation queries. The CSV import follows Twenty's documented import order: Companies first, then People, then custom objects — violating this order causes foreign-key failures on the relation fields.

Migration approach

Six steps for a successful Captorra to Twenty CRM data migration

  1. Audit Captorra data and design Twenty custom object schema

    FlitStack AI pulls a full export from Captorra — Leads, Contacts, Companies, Intake Matters, Activities, and all custom intake form field definitions. We identify every custom field, pick-list value, and staff user record, then deliver a Twenty schema setup plan: a list of custom objects to create under Settings → Data Model, custom fields to add per object, and option lists to pre-populate for every select field. The firm creates this schema in Twenty (or FlitStack creates it via API) before any data import runs.

  2. Invite all Captorra staff to Twenty by email

    Every Captorra user referenced in lead assignments, matter attorney fields, or activity ownership must have a matching Workspace Member in Twenty before import. FlitStack AI generates the invite list from Captorra user records and cross-references it against the existing Twenty member list. The firm sends invitations to any missing users and waits for acceptance before proceeding. This step eliminates blank assignee fields in the migrated data.

  3. Resolve and sequence the import order: Companies → People → CaseMatter

    Twenty requires the 'one' side of relationships to exist before importing the 'many' side. FlitStack AI sequences the migration as: (1) Companies, (2) People (linked to Companies via domain), (3) CaseMatter custom object (linked to People via email and Company via domain). Staff assignments are resolved via email-to-Workspace-Member lookup during each phase. Any circular references or missing parent records are flagged and corrected before the import batch runs.

  4. Run a sample migration with field-level diff

    A representative slice — typically 200–500 records spanning leads, contacts, companies, and a sample of case matter records — migrates first. FlitStack AI generates a field-level diff comparing source Captorra values against the Twenty destination fields, showing every resolved value, every transformed field, and every unresolved reference (blank assignee, missing pick-list match). The firm reviews the diff before the full run commits. This is the validation gate for case-status value maps, referral source option lists, and attorney assignment resolution.

  5. Execute full migration with delta-pickup window

    The full dataset loads into Twenty via the CSV bulk import path. A delta-pickup window (24–48 hours after the initial load) captures any Captorra records modified during the cutover period. FlitStack AI maintains a source_system_ID__c field on every migrated record for de-duplication against the delta run. An audit log records every operation, and one-click rollback is available if post-migration reconciliation identifies data integrity issues.

Platform deep dives

Context on both ends of the pair

Captorra logo

Captorra

Source

Strengths

  • Combines intake, case management, analytics, and referral tracking in a single legal-specific platform.
  • Customizable intake forms support firm-specific workflows and client intake processes.
  • Captorra Ready tier offers a lower-cost entry point for small law firms, unlike many enterprise-only legal CRM competitors.
  • Microsoft platform integration provides familiarity for firms already embedded in the Microsoft ecosystem.
  • Includes built-in ROI tracking and business analytics for consumer law practice performance monitoring.

Weaknesses

  • No publicly documented export API limits data portability and complicates migration tooling.
  • Pricing is opaque and requires direct vendor contact, creating barriers for evaluation and budgeting.
  • Limited public documentation makes technical evaluation, integration planning, and migration scoping difficult.
  • Small review dataset and limited community presence make independent peer validation harder to find.
  • Heavily customized per-firm configurations create significant switching costs and migration complexity.
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 Captorra 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

    Captorra: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most Captorra-to-Twenty migrations complete in 48–72 hours of clock time for setups under 25,000 records with under 30 custom fields. Firms with 100,000+ records, a large custom matter object, or 50+ custom intake fields extend to 5–7 days. The longest planning step is setting up the CaseMatter custom object and pre-populating its option lists in Settings → Data Model — that must happen before the CSV import runs.

Adjacent paths

Related migrations to explore

Ready when you are

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