CRM migration
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
Source
Twenty CRM
Destination
Compatibility
6 of 10
objects map 1:1 between Crank CRM and Twenty CRM.
Complexity
BStandard
Timeline
2-4 weeks
Overview
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.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
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
Twenty CRM
Company
1:1Crank 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
Twenty CRM
People
1:1Crank 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
Twenty CRM
Custom Object: Demo Session
lossyCrank 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
Twenty CRM
Task
1:1Crank 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
Twenty CRM
User
1:1Each 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)
Twenty CRM
Opportunity
1:manyIf 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)
Twenty CRM
Opportunity
1:1Crank 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)
Twenty CRM
Custom Fields on standard and custom objects
lossyWhere 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
Twenty CRM
Content (Twenty file storage)
1:1Demo 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)
Twenty CRM
Custom Select field on People
lossyIf 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.
| Crank CRM | Twenty CRM | Compatibility | |
|---|---|---|---|
| Organization | Company1:1 | Fully supported | |
| Contact | People1:1 | Fully supported | |
| Demo Session | Custom Object: Demo Sessionlossy | Fully supported | |
| Usage Log | Task1:1 | Fully supported | |
| Owner/User Assignment | User1:1 | Mapping required | |
| Pipeline (CRM module) | Opportunity1:many | Fully supported | |
| Deal (CRM module) | Opportunity1:1 | Fully supported | |
| Custom Fields (CRM module) | Custom Fields on standard and custom objectslossy | Fully supported | |
| Attachment and Recording | Content (Twenty file storage)1:1 | Fully supported | |
| Tag (contact classification) | Custom Select field on Peoplelossy | Fully supported |
Gotchas + challenges
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 gotchas
No public bulk export API endpoint
Modular pricing means data scope is unknown until scoping
Recording storage is external to the CRM
Twenty CRM gotchas
Import order is enforced and critical
Export limited to 20,000 records and visible columns only
Soft-deleted records count toward uniqueness and trigger restores
API rate limits cap at 200 req/min on Organization tier
No native email sequences — follow-up cadences require external tools
Pair-specific challenges
Migration approach
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.
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.
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.
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.
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.
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
Crank CRM
Source
Strengths
Weaknesses
Twenty CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 2 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Crank CRM and Twenty CRM.
Object compatibility
2 of 8 objects need a mapping; the rest are 1:1.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
8-object category — typical timelines run 2–7 days end-to-end.
API constraints
Crank CRM: Not publicly documented.
Data volume sensitivity
Crank CRM doesn't expose a bulk API — REST + parallelization used for high-volume runs.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during Crank CRM to Twenty CRM migration scoping. Not seeing yours? Book a call.
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 consultationAdjacent paths
Other ways to leave Crank CRM
Other ways to arrive at Twenty CRM
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.