CRM migration
Field-level mapping, validation, and rollback between WORKetc and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
WORKetc
Source
Twenty CRM
Destination
Compatibility
11 of 13
objects map 1:1 between WORKetc and Twenty CRM.
Complexity
BStandard
Timeline
2-4 weeks
Overview
Moving from WORKetc to Twenty CRM is a structural migration that moves you from a commercial flat-rate all-in-one to a self-hosted open-source CRM with a modern GraphQL API. WORKetc exports data primarily over SOAP with REST/JSON wrappers, while Twenty accepts imports via CSV and GraphQL mutations. The main migration complexity comes from WORKetc's Project Types and Stages feature, which stores weighted progress percentages per stage that have no direct equivalent in Twenty's task-based progress model. We export the full stage configuration including weights and map to duration-based equivalents. WORKetc's Contractor Portal users are a separate identity class without standard user credentials; we map these to Person records with a custom Contractor property. Workflows, automations, and the customer portal do not migrate; we deliver a written inventory of every workflow rule and automation trigger for your admin to rebuild in Twenty's settings.
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 WORKetc 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.
WORKetc
Contact
Twenty CRM
Person
1:1WORKetc Contact records map directly to Twenty Person records. Standard fields (name, email, phone, address, lifecycle information) map to the corresponding Twenty Person fields. We preserve the WORKetc lifecycle stage or status as a custom text field on the Person record for audit. Owner assignment in WORKetc (the assigned user) maps to the Twenty Person's workspaceMemberId via email-based lookup resolution.
WORKetc
Company
Twenty CRM
Company
1:1WORKetc Company records map to Twenty Company. The company domain becomes the Company Website field and is used as the dedupe key during CSV import. Company is imported before Person so that the Person can reference a valid CompanyId via lookup. Company-level custom fields map to custom fields on the Twenty Company object created in Settings Data Model before import.
WORKetc
Lead
Twenty CRM
Person (as Lead-equivalent)
1:1WORKetc Lead records capture early-stage prospects through to conversion. We map these to Twenty Person records, preserving the lead status, source, and conversion flag as custom fields. If the lead has been converted to a Contact in WORKetc, we ensure the corresponding Person record in Twenty reflects the converted state and maintains the original lead creation date.
WORKetc
Deal
Twenty CRM
Opportunity
1:1WORKetc Deals link to Companies and Contacts with stage, amount, and probability. We map Deals to Twenty Opportunity records, preserving deal amount, stage name, probability (if present), and close date. The Opportunity is linked to the corresponding Company and Person records resolved from the WORKetc deal associations. Pipeline stages are recreated in Twenty's pipeline configuration before import.
WORKetc
Project
Twenty CRM
Custom Object (Project)
1:1WORKetc Projects with Types and Stages carry weighted progress percentages per stage that do not map to standard project management tools. We export the full stage configuration (stage names, custom percentage weights, stage order) and map project progress to a duration-based calculation using the stage weights as a proxy. If the customer uses a simple task-completion ratio (before Types and Stages was enabled), we map directly. Projects become a Twenty Custom Object with related Task records representing milestones.
WORKetc
Ticket
Twenty CRM
Custom Object (Support Ticket)
1:1WORKetc Tickets (Support Cases) link to Customers, Companies, and Projects with status, priority, and conversation threads. We export ticket records with full conversation history and map them to a Twenty Custom Object for support cases. Conversation threads are stored as Note records linked to the ticket record. Status and priority become custom select fields. If Twenty's native Task object is preferred, tickets can map there with status mapped to Task status values.
WORKetc
Invoice
Twenty CRM
Custom Object (Invoice)
1:1WORKetc Invoice records include line items, totals, and payment status linked to Customers and Projects. We export invoice headers and line items as a Twenty Custom Object. Payment history and linked bank transaction records require separate reconciliation and do not typically migrate. The invoice PDF references (file URLs) migrate as text fields; actual PDF binary export depends on the customer's document storage configuration.
WORKetc
Custom Fields
Twenty CRM
Custom Fields
lossyWORKetc Custom Field definitions and values are exported for all objects. Custom field types (dropdown, text, date, number, checkbox) require mapping to equivalent Twenty field types. We pre-create all custom fields in Twenty's Settings Data Model before data import begins. Fields must exist before import because the CSV import creates records, not fields. The customer reviews custom field necessity during scoping; we recommend leaving behind unused custom fields per Twenty's migration guide recommendation.
WORKetc
Users (Full Users)
Twenty CRM
Workspace Members
1:1WORKetc User records (name, email, role, permission level) map to Twenty Workspace Members. We resolve by email match. The customer's admin must invite all team members in Twenty Settings Members before migration begins because OwnerId and assignee references on records require existing workspace members. Roles and permission levels from WORKetc are mapped to Twenty workspace role definitions.
WORKetc
Contractor Portal Users
Twenty CRM
Person with Custom Property
lossyWORKetc Contractor Portal users are a separate identity class with limited access and may lack standard email addresses or user credentials. We map contractor records to Twenty Person records with a custom boolean or text property (e.g., is_contractor__c or contractor_type__c) set to true. These records do not become Workspace Members because Twenty has no contractor portal concept. The customer defines the contractor property name during scoping.
WORKetc
Documents and Files
Twenty CRM
Attachments
1:1WORKetc file management stores documents linked to records. We export file metadata (name, type, size, URL reference, linked object, linked record ID). Actual file binary export depends on whether WORKetc exposes file download endpoints via SOAP API and whether Twenty's document storage is configured. We flag file export feasibility during scoping and migrate metadata with URL references as a fallback.
WORKetc
Knowledge Base
Twenty CRM
Custom Object (Knowledge Article)
1:1WORKetc KB articles and categories are stored separately from CRM records. We export article content, title, category assignments, and author information. Rich formatting and embedded media may require post-migration review. Articles become a Twenty Custom Object with category stored as a custom select field. If Twenty introduces native Knowledge Base support, reclassification is straightforward at that point.
WORKetc
Workflows and Automations
Twenty CRM
Not Migrated
1:1WORKetc workflow rules and automation triggers are not exposed via API. These must be reconstructed manually in Twenty using the exported workflow descriptions as reference. We deliver a written inventory of every active WORKetc workflow with its trigger conditions, actions, and recommended Twenty equivalent. The customer's admin rebuilds them in Twenty's settings UI.
| WORKetc | Twenty CRM | Compatibility | |
|---|---|---|---|
| Contact | Person1:1 | Fully supported | |
| Company | Company1:1 | Fully supported | |
| Lead | Person (as Lead-equivalent)1:1 | Fully supported | |
| Deal | Opportunity1:1 | Fully supported | |
| Project | Custom Object (Project)1:1 | Fully supported | |
| Ticket | Custom Object (Support Ticket)1:1 | Fully supported | |
| Invoice | Custom Object (Invoice)1:1 | Fully supported | |
| Custom Fields | Custom Fieldslossy | Mapping required | |
| Users (Full Users) | Workspace Members1:1 | Fully supported | |
| Contractor Portal Users | Person with Custom Propertylossy | Fully supported | |
| Documents and Files | Attachments1:1 | Mapping required | |
| Knowledge Base | Custom Object (Knowledge Article)1:1 | Mapping required | |
| Workflows and Automations | Not Migrated1:1 | Not 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.
WORKetc gotchas
API access is tier-gated and uses legacy SOAP protocol
Project Types and Stages store weighted progress non-obviously
Contractor portal users are a separate identity class
Stale pricing data on aggregator sites
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
Tier verification and extraction strategy
We verify the customer's WORKetc tier (Starter, Team, or Foundations) during onboarding. Starter tier requires CSV exports from the UI for all objects since API access is excluded. Team and Foundations tiers enable SOAP API access, which we use for structured extraction with WSDL introspection. We export all objects in dependency order: Companies first, then Contacts, Leads, Deals, Projects, Tickets, Invoices, Custom Fields, and Knowledge Base. Each export run produces a row count reconciliation report against the UI record counts.
Twenty workspace preparation
Before any data moves, we prepare the Twenty destination workspace. This includes creating custom objects (Project, Support Ticket, Invoice, Knowledge Article) via Settings Data Model, adding custom fields to standard objects (Company, Person, Opportunity) to receive migrated properties, configuring pipeline stages to match WORKetc deal stages, and inviting all workspace members via Settings Members so that OwnerId references can be resolved during import. Fields must be created before import because CSV import creates records only.
Contractor reclassification and user mapping
We identify all Contractor Portal users in the WORKetc export and reclassify them as Person records with a custom is_contractor__c field set to true. Full User records map to Twenty Workspace Members via email resolution. Any User without a matching workspace member invitation is held in a reconciliation queue for the customer to provision before record import resumes. This step ensures OwnerId and assignee fields on records can reference valid Twenty users.
Project stage weight documentation
We export the full Project Types and Stages configuration from WORKetc including stage names, order, and custom percentage weights. This configuration is documented in the migration artifact rather than imported as data, since Twenty has no weighted stage equivalent. The customer reviews the stage weight map and decides how to represent project progress in Twenty (task count, milestone completion, or a custom field carrying the original percentage). We do not attempt to preserve stage weights as a functional data field in Twenty.
Sandbox migration and data reconciliation
We run a full migration into Twenty using production-like data volume in a staging environment. The customer's operations lead reviews record counts (Companies, Persons, Opportunities, Projects, Tickets), spot-checks 20-30 random records against the WORKetc source, and validates relationship integrity (e.g., Person linked to correct Company, Opportunity linked to correct Person and Company). Any mapping corrections and custom field additions happen in this phase. Sign-off is required before production migration begins.
Production migration and cutover
We run production migration in dependency order: Companies, Persons (with CompanyId resolved), Leads, Opportunities (with PersonId and CompanyId resolved), Custom Objects (Projects, Tickets, Invoices, Knowledge Articles), and Activity history (as Note records). We freeze WORKetc writes during cutover and run a final delta migration of records modified during the migration window. We deliver the Workflow and Automation inventory document to the customer's admin for manual rebuild in Twenty's settings UI. We support a 5-business-day hypercare window for reconciliation issues.
Platform deep dives
WORKetc
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 WORKetc 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
WORKetc: Not publicly documented. WORKetc does not publish per-minute call limits or response headers indicating remaining quota. We confirm acceptable throughput with WORKetc support before running a full historical export..
Data volume sensitivity
WORKetc 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 WORKetc to Twenty CRM migration scoping. Not seeing yours? Book a call.
Walk through your WORKetc 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 WORKetc
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.