CRM migration
Field-level mapping, validation, and rollback between work4all and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
work4all
Source
Twenty CRM
Destination
Compatibility
9 of 11
objects map 1:1 between work4all and Twenty CRM.
Complexity
BStandard
Timeline
5-8 weeks
Overview
Moving from work4all to Twenty CRM is a migration from a combined German CRM/ERP Windows application to a modern open-source web CRM. work4all organises data around Customers and Suppliers as master parties with ERP documents and CRM activities attached; Twenty separates Companies, People, and Opportunities as distinct objects with a clean relational schema. The structural difference is the primary mapping challenge: business partners in work4all who have personal contact persons require a two-record strategy in Twenty (a Company record plus one or more Person records linked via a relationship field). Since work4all has no documented public API, we coordinate a vendor-assisted database export or structured Excel extraction as the migration foundation, then use Twenty's REST and GraphQL APIs to land records with parent-lookup resolution. We do not migrate work4all's workflow rules, industry extensions, or ERP document templates as code; we deliver a written inventory of these for the customer to rebuild in Twenty's workflow builder. Typical migration scope runs five to eight weeks for accounts with up to 5,000 customer records, 500 open opportunities, and a clean ERP document history, with pricing between $7,500 and $18,000 depending on document volume and custom field count.
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 work4all 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.
work4all
Customer (Debitor)
Twenty CRM
Company
1:1work4all Customers are the primary organisational anchor with address, contact details, commercial terms, and open items attached. We map them to Twenty Company records. The work4all customer number becomes the Company id field, and address data maps to Twenty's address compound field. If the work4all Customer has linked personal contact persons (Ansprechpartner), those become separate Person records in Twenty linked to the Company via the people array on the Company object.
work4all
Supplier (Kreditor)
Twenty CRM
Company
1:1work4all Suppliers mirror the Customer structure with address, contact details, and purchasing history. We map Suppliers to Twenty Company records with a custom field source_type__c set to 'supplier' to distinguish them from Customer Companies in list views and reports. If the customer wants to keep Customers and Suppliers in separate Twenty workspaces, we map Suppliers to a second Company workspace or a custom Company subtype.
work4all
Sales Opportunity
Twenty CRM
Opportunity
1:1work4all Sales Opportunities track pipeline progress, estimated value, stage, and linked Customer. We map each to a Twenty Opportunity with stageName from the work4all pipeline stage, amount from the opportunity value, and the linked Customer resolved to a Company lookup. Closed-Won and Closed-Lost outcomes and any stage probability data migrate as custom fields.
work4all
Item (Artikel)
Twenty CRM
Custom Object or Product
1:1work4all Items are the product catalogue with pricing, descriptions, stock levels, and variants. We map Items to either Twenty's Product object (if used for sales quoting) or a custom 'Product' object (if used for inventory reference). Price list structures flatten into a single pricebook or a custom price field depending on the customer's quoting workflow in Twenty.
work4all
Invoice and ERP Document
Twenty CRM
Note or Custom Object
1:manywork4all Invoices, Offers, and Cost Receipts are ERP documents linked to Customers and Items. These have no direct Twenty CRM equivalent because Twenty does not have a native ERP document object. We map document headers as a custom 'ERP Document' object with fields for document type, number, date, amount, and currency; line items map as child records of the custom object. PDF attachments require a separate file migration step with ContentDocument records linked to the parent.
work4all
Open Items (Offene Posten)
Twenty CRM
Custom Object
1:1Open items track outstanding invoices and credit memos against a Customer. We map them to a custom 'Open Item' object with fields for the related invoice reference (linked to the ERP Document custom object), open amount, due date, and payment status. Partial payments require reconciliation against the original invoice document to compute the correct open amount before migration.
work4all
Telephone Notes and Call Logs
Twenty CRM
Note or Task
1:1Phone call logs are CRM activities linked to a Customer and an Owner in work4all. TAPI integration populates caller ID but the note body is free text. We map each call log to a Twenty Note or Task record with the body preserved, timestamp set from the call date, and the linked Customer resolved to a Company lookup. Call duration and disposition migrate as custom fields if present in the export.
work4all
Visit Reports
Twenty CRM
Note or Task
1:1Visit reports are time-stamped CRM records associated with a Customer and an Owner. They may contain custom fields depending on industry extension usage. We map the report body as a Note body in Twenty, the visit date as the creation timestamp, and the linked Customer to the Company lookup. Any industry-extension custom fields on the visit report require pre-migration discovery and map to custom fields on the Note or a linked custom object.
work4all
Time Recordings
Twenty CRM
Task
1:1Time entries in work4all link to Employees, Projects, or Tasks depending on configuration. Light-tier users have restricted time entry access. We map each time recording to a Twenty Task with the description, duration, date, and owner resolved via email match. Project-linked time entries require a custom 'Project' object in Twenty if the customer tracks project associations.
work4all
Task
Twenty CRM
Task
1:1Standalone CRM Tasks in work4all carry status, priority, due date, and owner assignment linked to Customers, Contacts, or Documents. We map them directly to Twenty Task with status, due date, assignee resolved by email match, and the linked entity resolved to a Company or Person lookup. Status enums map from work4all's task-state values to Twenty's task status values.
work4all
Custom Fields
Twenty CRM
Custom Fields
lossywork4all custom fields across CRM activities and ERP documents are not exposed via a metadata endpoint, so we discover them by requesting the customer to provide a screenshot or field inventory and by inspecting the exported schema for non-standard fields. Each discovered custom field is created as a custom field in Twenty's Data Model before the corresponding records are imported. Custom fields that cannot be enumerated from the export require a vendor-assisted schema inspection as an additional scoping step.
| work4all | Twenty CRM | Compatibility | |
|---|---|---|---|
| Customer (Debitor) | Company1:1 | Fully supported | |
| Supplier (Kreditor) | Company1:1 | Fully supported | |
| Sales Opportunity | Opportunity1:1 | Fully supported | |
| Item (Artikel) | Custom Object or Product1:1 | Fully supported | |
| Invoice and ERP Document | Note or Custom Object1:many | Fully supported | |
| Open Items (Offene Posten) | Custom Object1:1 | Mapping required | |
| Telephone Notes and Call Logs | Note or Task1:1 | Mapping required | |
| Visit Reports | Note or Task1:1 | Mapping required | |
| Time Recordings | Task1:1 | Mapping required | |
| Task | Task1:1 | Fully supported | |
| Custom Fields | Custom Fieldslossy | Mapping required |
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.
work4all gotchas
Light licence users cannot export all data types
No public REST API; migrations rely on Excel templates and vendor-assisted exports
Custom fields are not discoverable via a metadata endpoint
Open items require reconciliation against payment history before export
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
Scoping and vendor export coordination
We audit the work4all instance for licence tiers, user counts, and data objects in scope. Because work4all has no self-service export API, we coordinate directly with the work4all vendor to request a structured data package: Customers and Suppliers via the standard Excel templates, ERP document headers and line items via a custom script, and open items with payment history. We ask the customer to provide a custom field inventory if industry extensions are in use. The scoping output is a written migration scope document with confirmed record counts, a vendor contact plan, and a custom field discovery list.
Twenty workspace preparation and schema design
We set up the Twenty workspace before any data arrives. This includes creating any custom objects required for ERP documents and open items, adding custom fields to the standard Company, Person, and Opportunity objects to capture work4all-specific data (customer number, industry, payment terms), and configuring the workspace's currency and date format to match the source data. We also invite all active work4all users to Twenty so that owner email matching can resolve during the import phase.
Data extraction, cleansing, and transformation
We receive the work4all export package and run a data quality assessment: duplicate detection on customer and contact records, missing required field handling, date format normalisation, and open-item reconciliation for any partially paid invoices. Custom fields discovered in the export that are not in the standard object list are mapped to Twenty custom fields that we create before import. The Customer-to-Company and contact-person-to-Person split is applied during transformation, producing a set of clean CSVs ready for Twenty's CSV import or REST API push.
Staging migration and reconciliation
We run a full migration into a staging Twenty environment using production-like data volume. The customer's admin reviews record counts against the work4all source (Companies in, Persons in, Opportunities in, custom object records in), spot-checks a sample of 25-50 records for field-level accuracy, and confirms that open items reconcile to the expected outstanding amounts. Any mapping corrections are made in the transformation layer before production migration begins.
Production migration in dependency order
We execute production migration in record-dependency order: Companies first (they are the parent for People and Opportunities), then People linked to their parent Companies, then Opportunities with their Company and Person lookups resolved, then custom ERP Document records, then open items referencing the documents, then activity records (Notes, Tasks) linked to the parent Companies or Persons. Each phase emits a row-count reconciliation report. After all data is loaded, we run a final validation comparing aggregate counts and sampled record accuracy against the work4all source.
Cutover, handoff, and automation inventory
We freeze writes in work4all during the cutover window, run a delta migration of any records modified during the window, and mark Twenty as the system of record. We deliver a written inventory of work4all workflow rules, industry extension configurations, and ERP document templates that require rebuild in Twenty's workflow builder and settings. We support a one-week post-go-live window for reconciliation issues. We do not rebuild automations, forms, or ERP templates as part of the standard migration scope; those are handed off to the customer's admin team or a Twenty implementation partner.
Platform deep dives
work4all
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 work4all 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
work4all: Not publicly documented.
Data volume sensitivity
work4all 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 work4all to Twenty CRM migration scoping. Not seeing yours? Book a call.
Walk through your work4all 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 work4all
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.