CRM migration

Migrate from WORKetc to Twenty CRM

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

WORKetc logo

WORKetc

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

85%

11 of 13

objects map 1:1 between WORKetc and Twenty CRM.

Complexity

BStandard

Timeline

2-4 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

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.

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

WORKetc logo

WORKetc

What's pushing teams away

  • Teams outgrow the platform as they scale — one reviewer noted the product worked initially but they quickly outgrew it.
  • Email integration limitations frustrate users who rely on direct synchronization with third-party email services.
  • Bugs and difficulty customizing the platform appear in negative reviews, particularly around early use periods.
  • The $78+ flat rate becomes expensive per-user as headcount grows beyond the included seats on Starter.
  • Some users report that the interface feels less polished than newer CRM competitors entering the market.

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

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

maps to

Twenty CRM

Person

1:1
Fully supported

WORKetc 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

maps to

Twenty CRM

Company

1:1
Fully supported

WORKetc 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

maps to

Twenty CRM

Person (as Lead-equivalent)

1:1
Fully supported

WORKetc 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

maps to

Twenty CRM

Opportunity

1:1
Fully supported

WORKetc 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

maps to

Twenty CRM

Custom Object (Project)

1:1
Fully supported

WORKetc 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

maps to

Twenty CRM

Custom Object (Support Ticket)

1:1
Fully supported

WORKetc 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

maps to

Twenty CRM

Custom Object (Invoice)

1:1
Fully supported

WORKetc 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

maps to

Twenty CRM

Custom Fields

lossy
Mapping required

WORKetc 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)

maps to

Twenty CRM

Workspace Members

1:1
Fully supported

WORKetc 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

maps to

Twenty CRM

Person with Custom Property

lossy
Fully supported

WORKetc 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

maps to

Twenty CRM

Attachments

1:1
Mapping required

WORKetc 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

maps to

Twenty CRM

Custom Object (Knowledge Article)

1:1
Mapping required

WORKetc 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

maps to

Twenty CRM

Not Migrated

1:1
Not supported

WORKetc 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.

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.

WORKetc logo

WORKetc gotchas

High

API access is tier-gated and uses legacy SOAP protocol

Medium

Project Types and Stages store weighted progress non-obviously

Medium

Contractor portal users are a separate identity class

Low

Stale pricing data on aggregator sites

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

  • WORKetc Starter tier has no API access

    The Open API module is not included in WORKetc's Starter tier ($78/month, 2 users). Teams on Starter cannot export data programmatically and must rely on CSV exports from the UI. CSV exports may not include all fields, relationship IDs, or custom field data in a format suitable for direct import into Twenty. We verify the customer's WORKetc tier during scoping and adjust the extraction strategy accordingly. Starter-tier customers should plan for additional time to extract data manually and may need to export objects separately.

  • Project Types and Stages weighted progress has no Twenty equivalent

    WORKetc's Project Types and Stages feature assigns custom percentage weights to each stage. A project could have 'Do Work' at 90% and 'Review' at 10%, meaning a two-task project reaches 90% after the first task and jumps to 100% after the second. Twenty CRM has no weighted stage concept; progress is either task-based (percentage of tasks completed) or duration-based. We export the full stage configuration including weights and document the non-linear mapping. If the customer relies on stage percentages for billing milestones or client reporting, we flag this during scoping so the migration plan accounts for the loss of that specific data point.

  • Contractor Portal users require identity reclassification

    WORKetc distinguishes between full Users and Contractor Portal users with different permission scopes. Contractor records may not have standard email addresses or login credentials. When migrating to Twenty CRM, which has no contractor portal concept, we map contractor users to Person records with a custom Contractor property rather than Workspace Member records. The customer must define which contractors need ongoing portal access and plan for an alternative solution (external sharing, document links, or guest access) post-migration.

  • SOAP serialization required for WORKetc API extraction

    WORKetc's API is primarily SOAP-based with REST/JSON wrappers added later. Migration scripts must handle SOAP serialization including WSDL introspection to discover available methods, SOAP envelope construction, and XML response parsing. We use WORKetc's SOAP endpoints with WSDL introspection to discover available methods, and fall back to CSV exports from the UI where API access is unavailable. Teams with large data volumes should expect SOAP extraction to be slower than REST-based alternatives.

  • Twenty requires fields to exist before CSV import

    Per Twenty's migration documentation, the CSV import creates records but not fields. All custom fields, custom objects, and workspace members must be provisioned in Twenty Settings before any data import begins. We create the destination schema first (Custom Objects, custom fields on standard objects, workspace members) and validate the setup in a staging environment before production import. This sequencing adds preparation time but prevents import failures from missing field definitions.

Migration approach

Six steps for a successful WORKetc to Twenty CRM data migration

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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

Context on both ends of the pair

WORKetc logo

WORKetc

Source

Strengths

  • Flat-rate pricing bundles CRM, project management, and billing in one subscription.
  • Configurable Project Types and Stages give weighted progress tracking for complex service engagements.
  • Customer portal and contractor portal provide self-service access for external stakeholders.
  • Strong Capterra ratings (4.6/5) with 94% positive sentiment and praised customer support.
  • Two-way Google Calendar and Contact Sync keeps Google Workspace users' data current.

Weaknesses

  • SOAP-first API is dated; REST/JSON support exists but documentation is thin and developer-focused.
  • API access itself is gated behind paid tiers — Starter excludes Open API entirely.
  • Project Types and Stages progress system is non-standard and requires mapping work in migrations.
  • Small review sample (85 reviews on Capterra) limits confidence in long-term reliability signals.
  • Alternatives like Zoho CRM, Odoo, and Bitrix24 offer more integrations and larger ecosystem communities.
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 WORKetc 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

    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

    B

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

Estimator

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

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

Can't find your answer?

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 consultation

Migrations under 10,000 records with WORKetc Team or Foundations tier (API access available) land between two and four weeks. Migrations on Starter tier (CSV-only export) or with complex Project Types and Stages configurations move to six to ten weeks because CSV extraction requires manual UI navigation per object type and Project stage weights must be documented rather than auto-migrated. Twenty's own migration documentation recommends planning time for manual workflow rebuild, which we account for in the timeline as a post-migration admin task.

Adjacent paths

Related migrations to explore

Ready when you are

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