CRM migration

Migrate from Crank CRM to Twenty CRM

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

Crank CRM logo

Crank CRM

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

60%

6 of 10

objects map 1:1 between Crank CRM and Twenty CRM.

Complexity

BStandard

Timeline

2-4 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Crank CRM to Twenty CRM is primarily a screen-sharing and demo-relationship migration rather than a traditional CRM record migration, because Crank CRM's core value lies in demo session capture and optional CRM modules. Crank CRM exposes only per-record and session-level API endpoints with no documented bulk export, which extends migration timelines for accounts with high demo volumes. We conduct a schema audit upfront to determine which CRM modules are active, since the pay-as-you-use model means Pipelines, Deals, and custom fields cannot be assumed. We map Crank Organizations to Twenty Companies, preserve Demo Sessions as a custom object with session metadata (viewer count, duration, recording URL), and migrate Contact records with their demo interaction history. Owner assignments map to Twenty Users by email match. Workflows, Sequences, and Automations do not migrate; we deliver a written inventory for the admin to rebuild in Twenty's Settings Data Model section.

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

Crank CRM logo

Crank CRM

What's pushing teams away

  • Per-feature pricing can grow unexpectedly as teams enable more modules, removing the cost predictability of flat per-seat plans.
  • Limited enterprise-grade features — workflow automation, custom objects, and BI reporting are thinner than at established CRMs like HubSpot or Pipedrive.
  • Small vendor footprint (Oxford-based, founded 2021) means a thinner partner ecosystem, fewer third-party integrations, and smaller review presence on G2/Capterra.
  • Marketing automation and email-campaign features are present but lighter than dedicated marketing CRMs, pushing growth-stage marketers toward Mailchimp, ActiveCampaign, or HubSpot.
  • Reporting and analytics depth is limited compared to established mid-market CRMs, constraining firms that need pipeline forecasting and revenue dashboards.

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

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

Crank CRM

Organization

maps to

Twenty CRM

Company

1:1
Fully supported

Crank CRM Organizations are extracted from demo session context and mapped to Twenty Companies. The organization's name becomes the Company name field, and any associated demo session count or metadata is preserved as custom fields on the Company record. If the organization has no name (only a domain), we use the domain as the Company name and store the original domain in a custom field.

Crank CRM

Contact

maps to

Twenty CRM

People

1:1
Fully supported

Crank CRM Contacts captured during demo sessions map directly to Twenty People. Email, name, phone, and role fields migrate by matching on email as the dedupe key. Any demo session association is preserved by linking the People record to the corresponding Demo Session custom record via a lookup relationship. If CRM modules are inactive on the source, only screen-sharing contact captures exist; we migrate those with the session link intact.

Crank CRM

Demo Session

maps to

Twenty CRM

Custom Object: Demo Session

lossy
Fully supported

Crank CRM Demo Sessions are the primary data entity. We create a custom object in Twenty called Demo Session with fields for session start/end timestamps, viewer count, duration in seconds, recording availability (boolean), recording URL, and sharing method. Demo Sessions link to the associated Company (organization) and People (contact) via lookup fields. The session start timestamp preserves activity ordering.

Crank CRM

Usage Log

maps to

Twenty CRM

Task

1:1
Fully supported

Crank CRM usage logs per session are extracted and mapped to Twenty Tasks. Task subject carries the session type (screen share, recording, email campaign), Activity Date carries the original timestamp, and task body carries the usage summary. Tasks are linked to the associated Demo Session custom record and the related People record. High-volume usage log migrations require chunking across multiple Task API calls due to Twenty's API rate limits.

Crank CRM

Owner/User Assignment

maps to

Twenty CRM

User

1:1
Mapping required

Each Crank CRM demo session is tied to an account owner. We extract distinct owner references by email and match against Twenty User records. Owners without a matching Twenty User go to a reconciliation queue for the customer's admin to provision before Demo Session import resumes. Owner references on demo sessions are stored as a custom field on the Demo Session custom object pointing to the Twenty User.

Crank CRM

Pipeline (CRM module)

maps to

Twenty CRM

Opportunity

1:many
Fully supported

If Crank CRM Pipelines and Stages are active (only present when CRM modules are enabled), we map each Pipeline to a Twenty Opportunity with a custom pipeline name field. Stage names map to Opportunity status values. We preserve stage order and probability percentages as custom fields on the Opportunity record. If CRM modules are inactive, this object is skipped and no Opportunity records exist.

Crank CRM

Deal (CRM module)

maps to

Twenty CRM

Opportunity

1:1
Fully supported

Crank CRM Deals attached to Pipelines map to Twenty Opportunities with the associated Pipeline name stored as a custom field. Deal amount, close date, and stage are preserved as Opportunity amount, close date, and status. Deal-to-Company and Deal-to-Contact associations are resolved as Opportunity-to-Company and Opportunity-to-People lookups during migration.

Crank CRM

Custom Fields (CRM module)

maps to

Twenty CRM

Custom Fields on standard and custom objects

lossy
Fully supported

Where CRM modules are active and custom fields exist on Contacts or Organizations, we detect these during the schema audit phase and create equivalent custom fields in Twenty's Data Model settings. Field types are mapped: text to text, number to number, date to date, checkbox to boolean, and picklist to select. Custom fields on inactive CRM modules are skipped.

Crank CRM

Attachment and Recording

maps to

Twenty CRM

Content (Twenty file storage)

1:1
Fully supported

Demo recordings are extracted from CrankWheel's infrastructure via the recording URL in the session record. We download each recording file and upload it to Twenty's file storage linked to the Demo Session custom record. If the recording URL has expired or the file was deleted on CrankWheel's side, we note the broken link in a custom field rather than causing migration failure. Shared files from sessions are uploaded and linked to the associated Company or People record.

Crank CRM

Tag (contact classification)

maps to

Twenty CRM

Custom Select field on People

lossy
Fully supported

If Crank CRM applies tags or labels to Contacts, these are migrated as a custom select field on the Twenty People object. The customer chooses whether to use single-select (one tag per contact) or a text field storing all tags as a comma-separated value. This decision is made during scoping based on tag usage patterns in the source account.

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.

Crank CRM logo

Crank CRM gotchas

High

No public bulk export API endpoint

Medium

Modular pricing means data scope is unknown until scoping

Medium

Recording storage is external to the CRM

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

  • No bulk export API on Crank CRM means sequential iteration for every record type

    Crank CRM's API exposes only per-record and session-level endpoints. There is no bulk export or batch read endpoint documented or available. We must iterate through demo sessions, contacts, organizations, and usage logs sequentially, which extends migration timelines proportionally to record volume. Accounts with over 10,000 demo sessions should plan for four to eight weeks of migration time. We advise customers to confirm estimated demo session count during scoping so we can plan API iteration windows and avoid hitting rate limits during business hours.

  • CRM module activation status is unknown until the API schema audit

    Crank CRM customers activate CRM features à la carte. We cannot assume Pipelines, Deals, custom fields, or any CRM-standard objects exist until we query the API and enumerate which objects and fields are present. We conduct a schema audit via the API before migration begins. If CRM modules are not active, we migrate only screen-sharing and contact data. Customers who believe they have CRM data but have not activated those modules will find that data does not exist to migrate.

  • Recording URLs may expire before migration completes

    Demo recordings are stored on CrankWheel's infrastructure and linked via URL reference in the session record. We extract recording files at export time, but if the source account's CrankWheel subscription has lapsed or recordings were manually deleted, URLs may return 404. We download recordings during the active migration window and re-upload to Twenty's file storage. If a URL is already expired at migration start, we note the broken link in a custom field on the Demo Session record and continue rather than failing the migration. We recommend running the migration before cancelling any Crank CRM subscription.

  • Twenty CRM's custom object schema must be designed and deployed before demo session import

    Twenty CRM does not have a native Demo Session object. We must create the custom object schema (fields, lookups, relationships to People and Company) in Twenty's Settings Data Model before any demo session records can be imported. This requires a Twenty workspace to be provisioned and the migration user to have access. Schema deployment is done in a staging pass before record import begins. If the customer does not yet have a Twenty instance, provisioning is a prerequisite step that adds time to the project timeline.

Migration approach

Six steps for a successful Crank CRM to Twenty CRM data migration

  1. Discovery and schema audit

    We query Crank CRM's API to enumerate all active objects and fields across the account. This includes confirming whether CRM modules are active (Pipelines, Deals, custom fields) or whether only screen-sharing and contact data exist. We extract estimated record counts for contacts, organizations, demo sessions, and usage logs. We simultaneously confirm the customer's Twenty workspace exists, the migration user has API access, and the custom Demo Session object schema has been created in Twenty's Data Model settings. The discovery output is a written scope confirming which objects will migrate.

  2. Custom schema deployment in Twenty

    We create the Demo Session custom object in Twenty with fields for session ID, start time, end time, duration in seconds, viewer count, recording available flag, recording URL, and sharing method. We also create lookup fields on Demo Session pointing to Company and People. If CRM modules are active, we create the necessary custom fields on Opportunity and People to carry over Deal data and custom field values from Crank. The schema is validated in Twenty's Data Model settings before any records are imported.

  3. Sequential API extraction with chunking

    We extract records from Crank CRM via sequential API calls because no bulk endpoint exists. We paginate through contacts, organizations, demo sessions, and usage logs using Crank's session-level endpoints. We apply rate-limit handling with exponential backoff. For accounts with high demo volumes, we run extraction in off-peak hours to avoid impacting the customer's active Crank CRM usage. All records are staged in an intermediate JSON format with source IDs preserved for reconciliation.

  4. Data transformation and field mapping

    We transform records into Twenty's schema. Organizations become Companies with demo metadata fields. Contacts become People with email as the dedupe key. Demo Sessions are written to the custom object with lookups resolved to existing Company and People records. Usage logs become Tasks linked to Demo Sessions and People. Owner references are resolved by email match against Twenty Users, with unresolved owners queued for the customer's admin. CRM module data (Deals, Pipelines) is transformed into Twenty Opportunities if present.

  5. Sandbox validation and reconciliation

    We run the full migration into Twenty using a test workspace or a fresh dataset scope before the production cutover. The customer reviews record counts, spot-checks 20-30 demo sessions and contacts against the Crank CRM source, and confirms that the Demo Session custom object links are resolving correctly. Any field mapping corrections, custom field additions, or lookups that failed resolution are fixed in this phase. The customer signs off before production migration begins.

  6. Production cutover and delta sync

    We freeze writes in Crank CRM during the cutover window, run a final delta extraction of any records modified during migration, and complete the production migration in dependency order: Companies, People, Opportunities (if applicable), Demo Sessions, Tasks. Each object phase emits a row-count reconciliation report. We re-upload any recordings that were not yet downloaded during staging. Post-migration, we deliver a written inventory of any Crank CRM Workflows, Sequences, or automations that require manual rebuild in Twenty's Settings Data Model.

Platform deep dives

Context on both ends of the pair

Crank CRM logo

Crank CRM

Source

Strengths

  • Pay-per-feature pricing model starting at $7/user/month.
  • Integrations with Gmail, Google Workspace, Stripe, Google Calendar, Xero, and Evernote Teams.
  • Free trial requires no credit card, lowering evaluation friction.
  • Founded with a small-business focus and UK/European market orientation.
  • Email and chat support included in standard plans.

Weaknesses

  • Lighter automation and workflow tooling than established mid-market CRMs.
  • Thinner integration ecosystem and partner network as a recent (2021-founded) vendor.
  • Reporting and analytics features are limited compared to HubSpot or Pipedrive.
  • Per-feature pricing can scale unpredictably as modules are added.
  • Small G2/Capterra review presence makes peer validation harder.
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 Crank CRM 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

    Crank CRM: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most migrations land between two and four weeks for accounts under 5,000 Contacts and 2,000 Demo Sessions with no active CRM modules. Accounts with CRM modules (Pipelines, Deals, custom fields) or high demo volumes (over 10,000 sessions) extend to four to eight weeks because Crank CRM lacks a bulk export API, requiring sequential iteration through every record. We confirm timeline estimates during scoping based on the API schema audit.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Crank CRM.
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