CRM migration
Field-level mapping, validation, and rollback between Amwork and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
Amwork
Source
Twenty CRM
Destination
Compatibility
8 of 10
objects map 1:1 between Amwork and Twenty CRM.
Complexity
CModerate
Timeline
2-4 weeks
Overview
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.
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 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
Twenty CRM
Person
1:1Amwork 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
Twenty CRM
Company
1:1Amwork 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
Twenty CRM
Opportunity
1:1Amwork 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
Twenty CRM
Person
1:1Amwork 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
Twenty CRM
Tasks (standalone)
1:manyAmwork 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
Twenty CRM
Task
1:1Amwork 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
Twenty CRM
Note or Custom Object
lossyAmwork 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
Twenty CRM
Custom Fields
1:1Amwork 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
Twenty CRM
User
1:1Amwork 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
Twenty CRM
Attachment or URL
1:1File 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.
| Amwork | Twenty CRM | Compatibility | |
|---|---|---|---|
| Contact | Person1:1 | Fully supported | |
| Company | Company1:1 | Fully supported | |
| Deal | Opportunity1:1 | Fully supported | |
| Lead | Person1:1 | Fully supported | |
| Project | Tasks (standalone)1:many | Fully supported | |
| Task | Task1:1 | Fully supported | |
| Time Entry | Note or Custom Objectlossy | Fully supported | |
| Custom Fields | Custom Fields1:1 | Mapping required | |
| User | User1:1 | Fully supported | |
| Attachment | Attachment or URL1:1 | 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.
Amwork gotchas
Import requires exact CRM field structure match
Deal stage moves require menu selection, not drag-and-drop
Time entries attach to tasks, not directly to contacts
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 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.
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.
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.
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.
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.
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
Amwork
Source
Strengths
Weaknesses
Twenty CRM
Destination
Strengths
Weaknesses
Complexity grading
Moderate CRM migration. 4 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Moderate migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Amwork and Twenty CRM.
Object compatibility
4 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
Amwork: Not publicly documented. We assume typical SaaS tenant limits and tune extraction concurrency against the customer's plan during scoping..
Data volume sensitivity
Amwork 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 Amwork to Twenty CRM migration scoping. Not seeing yours? Book a call.
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 consultationAdjacent paths
Other ways to leave Amwork
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.