CRM migration

Migrate from Checkbox to Twenty CRM

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

Checkbox logo

Checkbox

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

100%

10 of 10

objects map 1:1 between Checkbox and Twenty CRM.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Checkbox stores form submissions, respondent profiles, and workflow run logs rather than traditional CRM contacts and deals. When migrating to Twenty CRM, FlitStack AI treats each Checkbox form submission as a potential People or Company record in Twenty, mapping respondent properties (name, email, phone, custom fields) to Twenty's People object and any organizational data to Companies. Workflow history (run timestamps, step completions, outcomes) surfaces as custom activity fields or Notes attached to the relevant People record in Twenty. Because Checkbox has no native opportunity or deal object, any deal-like data stored in custom fields or form responses maps to Twenty's Opportunities object with manual stage configuration required post-migration. FlitStack runs the migration via Twenty's REST and GraphQL APIs at 100–200 requests per minute depending on your Organization tier, using a sample-first approach with field-level diff before committing the full run. This approach minimizes risk by validating data integrity on a representative subset before the full dataset is transferred, ensuring that field mappings, custom field translations, and relationship linkages hold across all records.

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

Checkbox logo

Checkbox

What's pushing teams away

  • Advanced customization for complex, multi-branch workflows requires deeper technical understanding, leading some teams to outgrow the no-code builder and seek more flexible alternatives.
  • As legal teams scale workflows across jurisdictions or business units, the platform's simplicity can become a constraint when trying to express nuanced conditional logic.
  • Some users report that while the platform is intuitive for basic automations, more tailored use cases require additional support or developer involvement.
  • Pricing is opaque and requires direct sales engagement for enterprise tiers, which creates friction for teams evaluating migration or trying to budget accurately.

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

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

Checkbox

Checkbox Form Submission

maps to

Twenty CRM

People

1:1
Fully supported

Each Checkbox form submission from a named respondent maps to a Twenty People record. The respondent's first name, last name, and email from the form response become the corresponding Twenty fields. If Checkbox captures company information in the form, it maps to the People.companyId relation requiring a Company record to exist first.

Checkbox

Checkbox Respondent (Email-Only Contact)

maps to

Twenty CRM

People

1:1
Fully supported

When a Checkbox form collects only an email address without full name, FlitStack creates a minimal People record with the email field populated and firstName/lastName left blank for manual completion. The original submission timestamp is preserved in a custom datetime field.

Checkbox

Checkbox Form Company Field

maps to

Twenty CRM

Companies

1:1
Fully supported

Any company name or organization field captured in a Checkbox form submission maps to a Twenty Companies record. The company domain is parsed from the respondent email address and populated in Companies.domain for automatic linking. Duplicate company names are deduplicated during migration.

Checkbox

Checkbox Custom Form Field (Text)

maps to

Twenty CRM

People Custom Field

1:1
Fully supported

Checkbox custom fields on forms — text, number, date, or select types — require pre-creation as custom fields in Twenty Settings → Data Model before import. FlitStack delivers a field-creation guide specifying the field name, type, and pick-list values from the Checkbox form definition.

Checkbox

Checkbox Workflow Run Log

maps to

Twenty CRM

Notes

1:1
Fully supported

Each Checkbox workflow run generates a log entry with timestamps, triggered steps, and outcomes. FlitStack maps these as Notes attached to the relevant People or Company record, with the workflow name as the Note title and the run outcome as the body text. Original run timestamps are preserved in the Note body.

Checkbox

Checkbox File Attachment (Form Upload)

maps to

Twenty CRM

Notes

1:1
Fully supported

Files uploaded via Checkbox form responses are downloaded by FlitStack and re-uploaded to Twenty as Notes with file attachments. The Note body captures the original file name and upload timestamp from Checkbox. Files exceeding Twenty's attachment size limits are flagged for manual handling.

Checkbox

Checkbox Deal-Like Data (Custom Field)

maps to

Twenty CRM

Opportunities

1:1
Fully supported

If Checkbox forms capture deal value, deal stage, or expected close dates in custom fields, FlitStack maps these to a Twenty Opportunities record linked to the People or Company from the same submission. The Opportunity name defaults to the form name + respondent email. Pipeline stages require post-migration configuration in Twenty.

Checkbox

Checkbox User / Admin

maps to

Twenty CRM

Workspace Members

1:1
Fully supported

Checkbox workspace users (admins, form editors) are matched to Twenty Workspace Members by email address. FlitStack flags any Checkbox user without a matching Twenty Workspace Member before migration — these records either get assigned to a fallback owner or require a Twenty user invite before migration runs.

Checkbox

Checkbox Form

maps to

Twenty CRM

Custom Object

1:1
Fully supported

If Checkbox forms represent a distinct entity type in your process (e.g., Intake Requests, Support Tickets), FlitStack can map these to a Twenty Custom Object rather than People. The custom object definition (name, plural label, fields) is delivered as a schema plan for pre-creation in Twenty Settings → Data Model.

Checkbox

Checkbox Form Response Metadata

maps to

Twenty CRM

People

1:1
Fully supported

Checkbox captures submission metadata: response ID, submission timestamp, last-edit timestamp, IP address, language. The response ID maps to a Source_Response_ID__c custom field on People for traceability. Original timestamps map to Original_Submission_Date__c. IP and language map to custom text fields if retention is required.

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.

Checkbox logo

Checkbox gotchas

High

Workflow JSON is not portable across platforms

Medium

API capabilities are not publicly documented

Medium

Integration tokens and OAuth connections cannot be migrated

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

  • Checkbox workflows do not migrate — automation logic must be rebuilt in Twenty's workflow builder

    Checkbox's core value proposition is its workflow engine: conditional triggers, step sequences, approval routing, and deadline escalation all live in the workflow definition. None of this transfers to Twenty CRM because Twenty's workflow builder uses a different execution model and trigger syntax. FlitStack AI migrates data only. We deliver a structured export of your Checkbox workflow definitions — step names, conditions, assignments, and timing rules — as a rebuild reference for Twenty's workflow builder. Plan 2–4 weeks of configuration time post-migration for a team familiar with Twenty's UI.

  • Attachment files require download and re-upload — direct URL transfer is not supported

    Checkbox stores uploaded files with download URLs that point to Checkbox's own storage. Twenty CRM does not support importing files via external URLs — all attachments must be downloaded from Checkbox, uploaded to Twenty's storage, and linked to Notes or Tasks manually or via FlitStack's file handler. For large attachment volumes (over 500 files), this step extends the migration timeline and may require temporary cloud storage to stage files before re-upload.

  • Checkbox form submissions without full contact data create partial People records

    Many Checkbox forms collect only an email address or a phone number without a full name or company. These submissions map to People records with sparse data in Twenty — email present but firstName/lastName blank, or phone present without email. FlitStack flags these records in the sample migration diff and applies a configurable rule (e.g., use email prefix as firstName, leave blank for manual completion) before the full run. Reviewing these partial records before cutover is strongly recommended.

  • Twenty requires pre-creation of custom fields before CSV import — fields cannot be created inline during import

    Twenty's CSV import creates records but not fields. If your Checkbox forms use custom fields (text, select, multi-select, date, etc.), those fields must exist in Twenty Settings → Data Model before FlitStack runs the import. FlitStack delivers a custom-field creation guide listing every Checkbox custom field with its type, pick-list values, and required/unique settings. Your Twenty admin (or our team) must pre-create these fields. If fields are missing at import time, those columns are skipped and the data is not migrated.

  • Checkbox user emails must match Twenty Workspace Members for owner assignment

    Twenty's opportunityOwnerId and similar owner fields reference Workspace Members by their email address. If a Checkbox user has no corresponding Workspace Member in Twenty, any record they own in Checkbox cannot be assigned during migration and defaults to the migration operator or a specified fallback owner. FlitStack runs an owner pre-check before migration, listing any Checkbox user without a Twenty match so your team can invite them or decide on an assignment strategy.

Migration approach

Six steps for a successful Checkbox to Twenty CRM data migration

  1. Audit Checkbox forms and export respondent data

    FlitStack enumerates every Checkbox form in your workspace, identifies which forms collect contact data (People records), company data (Companies), or deal-like data (Opportunities), and exports all submissions to CSV. We capture submission metadata (response ID, timestamps, IP, language) alongside the form field values. Workflow run logs are exported separately as activity history for mapping to Notes. Attachments are identified and queued for download.

  2. Create Twenty custom fields and workspace structure

    Before data lands in Twenty, your admin (or our team using your Twenty admin credentials) creates the custom fields required for migration. FlitStack delivers a schema setup guide specifying: (a) every custom field name, type, and pick-list values from Checkbox forms; (b) any custom objects needed for form-as-entity mapping; and (c) Twenty Workspace Members for owner resolution. We verify all custom fields exist in Twenty before running the import to avoid skipped columns.

  3. Run sample migration with field-level diff

    A representative slice of Checkbox submissions — typically 200–500 records spanning your most-used forms — migrates to Twenty first. FlitStack generates a field-level diff comparing the source CSV values against the migrated Twenty records, covering standard fields, custom fields, owner assignment, and note attachment. You review the diff in a shared spreadsheet and approve or request corrections before the full migration commits.

  4. Full migration with delta-pickup window

    Approved migration runs against Twenty via REST and GraphQL APIs. A delta-pickup window of 24–48 hours captures any new Checkbox submissions or edits made during the cutover. FlitStack tracks all API operations in an audit log. If reconciliation detects discrepancies, one-click rollback reverts the Twenty workspace to its pre-migration state. After rollback window closes, your team transitions fully to Twenty.

  5. Post-migration verification and rebuild handoff

    FlitStack delivers a migration summary report: record counts by object, custom field coverage, owner resolution rate, and skipped records with reasons. Any partial People records (from Checkbox submissions with missing contact data) are flagged for manual review. We hand off the Checkbox workflow definitions as a structured rebuild reference for Twenty's workflow builder, including step-by-step conditions and assignments from the original Checkbox design.

Platform deep dives

Context on both ends of the pair

Checkbox logo

Checkbox

Source

Strengths

  • No-code workflow builder accessible to non-technical legal operations staff without coding experience
  • Certified compliance posture with SOC 2, ISO 27001, ISO 27017, and ISO 27018 for enterprise legal environments
  • Pre-built integrations with Slack, Salesforce, Ironclad, and email systems commonly used in legal departments
  • AI-augmented features including chatbots and document generation available on higher plans
  • Flexible intake form builder with support for custom fields and multi-step approval routing

Weaknesses

  • Workflow definitions are not exportable and must be manually rebuilt at the destination, as the logic lives in a proprietary JSON structure
  • API documentation and capabilities are not publicly detailed, limiting migration tooling options
  • Pricing requires direct sales contact for enterprise tiers, with no self-serve quote available
  • Customization options become more limited as workflow complexity increases beyond basic branching
  • No bulk data export tool visible in the product UI, making large-volume migrations dependent on API access
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 Checkbox 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

    Checkbox: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most Checkbox to Twenty CRM migrations complete in 48–72 hours of clock time for under 50,000 form submissions. Larger datasets with 500,000+ submissions, multiple custom form fields, or heavy attachment volumes extend to 5–7 days. The longest planning step is creating Twenty custom fields in Settings → Data Model before import — this typically takes 1–3 days depending on form complexity. The actual data transfer via Twenty's REST and GraphQL APIs runs at 100–200 requests per minute.

Adjacent paths

Related migrations to explore

Ready when you are

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