CRM migration

Migrate from Amwork to Twenty CRM

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

Amwork logo

Amwork

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

80%

8 of 10

objects map 1:1 between Amwork and Twenty CRM.

Complexity

CModerate

Timeline

2-4 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Amwork to Twenty CRM is a structural migration away from a bundled workspace model toward an open-source platform with full data ownership. Amwork combines CRM, telephony, and time tracking inside a workspace hierarchy where Tasks and Projects are first-class organizational units. Twenty CRM uses the Company-Person-Opportunity model familiar from Salesforce, with Tasks and Comments attached to records rather than a project container. We resolve that structural difference during scoping, converting Amwork workspace-project hierarchies into standalone Tasks linked to the appropriate Company or Person in Twenty. Time entries log against Tasks in Amwork but have no native equivalent in Twenty; we preserve them as Notes with timestamps or in a custom time-tracking object, flagging the gap for your admin. BPMN automation rules in Amwork do not migrate; we deliver a written inventory of every rule requiring rebuild in Twenty.

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

Amwork logo

Amwork

What's pushing teams away

  • The import process fails when the uploaded spreadsheet does not match Amwork's expected field structure exactly, causing leads and contacts to drop silently during migration.
  • The sidebar lacks an expanded view mode, forcing users to hover repeatedly to see context, which creates friction during high-volume data entry sessions.
  • Drag-and-drop between deal pipeline stages is not supported — moving a record between stages requires opening a menu and selecting the destination, slowing down pipeline management.
  • Support is directed to WhatsApp rather than a built-in chat widget, which frustrates users expecting in-app ticket-based support for critical issues.

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

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

Amwork

Contact

maps to

Twenty CRM

Person

1:1
Fully supported

Amwork Contacts migrate to Twenty Person records. Name, email, phone, address, and lifecycle stage map to Twenty's standard Person fields. Custom contact fields attach as custom fields on the Person object via Twenty's field creation API. We resolve the Contact-to-Company link and create the corresponding Company record first so that the Person-Company relationship is established at insert time.

Amwork

Company

maps to

Twenty CRM

Company

1:1
Fully supported

Amwork Company records map directly to Twenty Company. Company name, domain, industry, address, and linked contact count migrate as-is. The domain field populates Twenty's Website field, which supports CRM enrichment triggers if the Twenty enrichment extension is enabled. Companies are migrated before Persons to satisfy the Person.CompanyId lookup.

Amwork

Deal

maps to

Twenty CRM

Opportunity

1:1
Fully supported

Amwork Deals migrate to Twenty Opportunity records. Deal name, value, stage, expected close date, owner, and associated Company and Contact links transfer directly. The Amwork pipeline stage name maps to Twenty's Opportunity Stage field. We create any missing stage values in Twenty before migration so that Deal stage assignments land without post-migration corrections.

Amwork

Lead

maps to

Twenty CRM

Person

1:1
Fully supported

Amwork Lead records (from the separate Deals and Leads section) migrate to Twenty Person records. Lead status maps to a custom picklist field on Person since Twenty does not have a separate Lead object. We preserve the original Amwork lead score, source, and status as custom fields on the Person record for segmentation and reporting after migration.

Amwork

Project

maps to

Twenty CRM

Tasks (standalone)

1:many
Fully supported

Amwork Projects are top-level workspace containers with no direct Twenty equivalent. We convert each Amwork Project into a set of Tasks in Twenty, linked to the associated Company or Person. Project name and description become a top-level Task or a custom field on the task set. Project members without existing Person records are provisioned as Person records first, then assigned as Task assignees.

Amwork

Task

maps to

Twenty CRM

Task

1:1
Fully supported

Amwork Tasks migrate to Twenty Task records with assignees, due dates, priorities, and checklist sub-items preserved. Parent-child task hierarchies convert to Twenty's task threading model. Tasks that were time-tracked in Amwork carry a link to the corresponding time-entry Note or custom object record. Open and completed status maps directly to Twenty's Task status values.

Amwork

Time Entry

maps to

Twenty CRM

Note or Custom Object

lossy
Fully supported

Amwork time entries have no native equivalent in Twenty's data model. We preserve them as Notes attached to the associated Task, using a timestamped Note body that includes duration, description, and billable flag. Alternatively, if the customer requires billable-hour reporting, we create a custom TimeEntry object in Twenty with duration, date, description, and billable fields, and link it to the associated Task and Person via lookup fields.

Amwork

Custom Fields

maps to

Twenty CRM

Custom Fields

1:1
Mapping required

Amwork custom fields (text, number, date, choice types) attach to Tasks via project-level activation. We map each custom field to a Twenty custom field on the equivalent object (Person, Company, Opportunity, or Task). Field types map to Twenty's supported types: text to TEXT, number to NUMBER, date to DATE, and choice to SELECT. Multi-select choices in Amwork map to Twenty's multi-select field.

Amwork

User

maps to

Twenty CRM

User

1:1
Fully supported

Amwork user records (name, email, role, active status) map to Twenty User accounts. We match by email during migration. Any Amwork user without a matching Twenty User account enters a reconciliation queue for the customer's admin to provision before Person and Opportunity imports resume, since OwnerId references must resolve at insert time.

Amwork

Attachment

maps to

Twenty CRM

Attachment or URL

1:1
Fully supported

File attachments on Amwork Tasks and Deals migrate as URLs pointing to the original hosted file location, or as base64-encoded attachment records if the destination Twenty instance supports file storage. Large attachment batches (over 1,000 files) migrate in chunked batches to respect API throughput limits and avoid timeouts.

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.

Amwork logo

Amwork gotchas

High

Import requires exact CRM field structure match

Medium

Deal stage moves require menu selection, not drag-and-drop

Medium

Time entries attach to tasks, not directly to contacts

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

  • Time entries have no native destination in Twenty CRM

    Amwork's time tracking model logs hours against Tasks and Projects. Twenty CRM does not have a native time-entry object. We preserve time entries as Notes on the associated Task with a timestamped body, or we create a custom TimeEntry object with duration, date, description, and billable fields. If the customer relies on billable-hour reporting, the custom object route is preferred, but it requires the customer to enable custom objects in Twenty and accept that the UI does not include a native time-logging interface. We flag this gap during scoping so the customer can choose a strategy before migration runs.

  • Lead records have no separate destination object

    Amwork maintains a separate Leads section alongside Deals. Twenty CRM does not have a distinct Lead object; all people records live as Person. We migrate Amwork Leads as Persons with a custom lead_status__c field preserving the original Amwork status value. The customer should decide whether to segment by this field post-migration or treat all Persons equally. If the customer requires a separate Lead intake workflow, we document it for rebuild in Twenty's task-based intake model.

  • Amwork workspace hierarchy does not map directly to Twenty

    Amwork organizes data inside Workspaces containing Projects containing Tasks. Twenty uses a flat record model where Company, Person, Opportunity, and Task are peers. We flatten the Amwork workspace hierarchy by converting Projects to task sets attached to the associated Company or Person. If the customer relies on workspace-level reporting or access controls, those do not transfer. We flag any workspace-specific permissions that need to be rebuilt as Twenty workspace or team-based sharing rules.

  • Automation rules are not migratable between platforms

    Amwork BPMN automation rules (workflow sequences, email follow-up triggers, task assignments) are platform-specific configuration that does not export in a portable format. Twenty's automation relies on REST API calls, Zapier, or Make webhooks rather than a visual BPMN builder. We do not migrate automation rules as code. We deliver a written inventory of every active Amwork automation with its trigger, conditions, and actions, plus a recommended webhook or Zapier trigger equivalent for Twenty. The customer's admin rebuilds automations post-migration.

  • No drag-and-drop deal stage moves in either platform

    Amwork requires menu-based stage selection rather than drag-and-drop for moving deals between pipeline stages. Twenty CRM's Opportunities use a stage dropdown or Kanban view without drag-and-drop reordering by default. This limitation is shared between both platforms and is not a migration-specific gotcha, but teams migrating from a CRM with drag-and-drop pipeline management (Pipedrive, HubSpot) should be aware that both Amwork and Twenty require explicit stage selection for deal movement.

Migration approach

Six steps for a successful Amwork to Twenty CRM data migration

  1. Discovery and scope audit

    We audit the source Amwork workspace across user count, deal volume, lead count, project and task hierarchy depth, custom field definitions, time-entry count, and active automation rules. We confirm which Amwork objects are in use and identify any workspace-specific configurations that do not have a direct Twenty equivalent. The discovery output is a written migration scope covering object counts, required custom fields, and a gap analysis listing time-entry strategy, Lead-object handling, and automation rebuild requirements.

  2. Twenty schema design and custom object creation

    We design the destination Twenty schema before any data moves. This includes creating any custom fields on Person, Company, Opportunity, and Task required by the source data. If the customer chooses the custom TimeEntry object route, we create it with duration, date, description, billable, taskId, and personId fields. We configure stage values in Twenty's Opportunity pipeline to match Amwork deal stage names, and we set up any custom picklist values for Lead status and lifecycle stage migrated from Amwork.

  3. Sandbox migration and reconciliation

    We run a full migration into a Twenty sandbox instance (or a staging environment the customer provisions) using production-like data volume. The customer reconciles record counts, spot-checks 25-50 records against the source Amwork data, and validates that Person-Company links, Opportunity-Company links, and Task assignees are correct. Any field mapping corrections, custom field additions, or stage value gaps are addressed here before production migration begins.

  4. Owner and user reconciliation

    We extract every distinct Amwork user referenced on Contacts, Companies, Deals, Tasks, and Projects. We match by email against the Twenty destination User list. Any Amwork user without a matching Twenty account enters a reconciliation queue. The customer's admin provisions missing Twenty Users and confirms active or inactive status before record import resumes, since OwnerId references on Opportunities and Tasks must resolve at insert time.

  5. Production migration in dependency order

    We run production migration in record-dependency order: Companies first (from Amwork Companies), then Persons (from Amwork Contacts and Leads with the lead_status__c custom field set), then Opportunities (with CompanyId and OwnerId resolved), then Tasks (with assignees and parent-child threading), then time-entry Notes or custom TimeEntry records, then attachments. Each phase emits a row-count reconciliation report before the next phase begins. Automation rules are not migrated as code; they are listed in the Phase 1 discovery inventory for the admin to rebuild post-migration.

  6. Cutover, validation, and automation rebuild handoff

    We freeze Amwork writes during cutover, run a final delta migration of any records modified during the migration window, then enable Twenty CRM as the system of record. We deliver the automation rule inventory document and the custom TimeEntry configuration notes to the customer's admin team. We support a one-week hypercare window where we resolve any data quality issues raised during the first days of active use. Workflow and automation rebuild in Twenty is outside standard migration scope and is handled by the customer's admin or a Twenty implementation partner.

Platform deep dives

Context on both ends of the pair

Amwork logo

Amwork

Source

Strengths

  • All-in-one CRM, telephony, and automation under a single subscription
  • Built-in time tracking with Lexoffice accounting integration
  • Customizable sales pipelines and card-based record layouts
  • BPMN automation engine for workflow sequences
  • Workspace builder approach keeps CRM and project tasks in one environment

Weaknesses

  • Import requires exact field matching or records are silently dropped
  • No drag-and-drop for moving deals between pipeline stages
  • No direct time-tracking attachment to contacts or companies
  • Mobile interface is limited compared to desktop feature set
  • Support routed through WhatsApp rather than in-app ticketing
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?

Moderate CRM migration. 4 of 8 objects need a mapping; the rest are 1:1.

C

Overall complexity

Moderate migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Amwork and Twenty CRM.

  • Object compatibility

    C

    4 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

    C

    Amwork: Not publicly documented. We assume typical SaaS tenant limits and tune extraction concurrency against the customer's plan during scoping..

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Straightforward migrations under 5,000 Contacts, 2,000 Deals, and 10,000 Tasks with no custom objects land between two and four weeks. Migrations involving multiple Amwork workspaces, custom object creation for time entries, large task hierarchies, or extensive time-entry history move to six to ten weeks. The discovery and schema design phase runs two weeks regardless of migration size because it requires customer sign-off on the Lead handling strategy and time-entry preservation approach before any data moves.

Adjacent paths

Related migrations to explore

Ready when you are

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