CRM migration

Migrate from work4all to Twenty CRM

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

work4all logo

work4all

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

82%

9 of 11

objects map 1:1 between work4all and Twenty CRM.

Complexity

BStandard

Timeline

5-8 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

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.

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

work4all logo

work4all

What's pushing teams away

  • Organisations scaling beyond 250 users or with complex multi-entity structures find the platform's architecture constraining and look toward enterprise-grade ERP systems like SAP or Microsoft Dynamics.
  • Teams that require extensive API-driven integrations or custom automation find work4all's limited public API documentation a blocker for modern CI/CD and data pipeline workflows.
  • Businesses seeking a modern web-first or mobile-native experience report friction with the Windows-desktop-first interface, which lacks the UX polish of newer SaaS alternatives.
  • Some customers cite difficulty achieving full GDPR compliance tooling within the platform, particularly around automated data retention policies and audit trails for deleted records.

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

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)

maps to

Twenty CRM

Company

1:1
Fully supported

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

maps to

Twenty CRM

Company

1:1
Fully supported

work4all 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

maps to

Twenty CRM

Opportunity

1:1
Fully supported

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

maps to

Twenty CRM

Custom Object or Product

1:1
Fully supported

work4all 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

maps to

Twenty CRM

Note or Custom Object

1:many
Fully supported

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

maps to

Twenty CRM

Custom Object

1:1
Mapping required

Open 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

maps to

Twenty CRM

Note or Task

1:1
Mapping required

Phone 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

maps to

Twenty CRM

Note or Task

1:1
Mapping required

Visit 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

maps to

Twenty CRM

Task

1:1
Mapping required

Time 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

maps to

Twenty CRM

Task

1:1
Fully supported

Standalone 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

maps to

Twenty CRM

Custom Fields

lossy
Mapping required

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

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.

work4all logo

work4all gotchas

High

Light licence users cannot export all data types

High

No public REST API; migrations rely on Excel templates and vendor-assisted exports

Medium

Custom fields are not discoverable via a metadata endpoint

Medium

Open items require reconciliation against payment history before export

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

  • work4all has no public API; migration relies on vendor-assisted export

    work4all does not publish a REST API reference. Data export is handled through built-in Excel import templates for Customers, Suppliers, and Items, and through custom vendor-scripted exports for other objects. We coordinate with the work4all vendor team to request a database-level export or a structured CSV package. This adds three to five business days to scoping compared to platforms with open APIs, and any custom fields not visible in the standard export template require a separate vendor engagement to extract. We include this coordination time in our scoping phase and flag it clearly in the project schedule.

  • Custom fields are not discoverable via a self-service interface

    work4all supports custom fields for CRM activities and ERP documents, particularly within industry extensions, but these are not enumerated in a metadata API or self-service settings panel. We address this by asking the customer to provide a screenshot or field inventory of any custom fields they have created. If the customer cannot enumerate them, we attempt a schema inspection of the exported data to detect fields not in the standard object list. This discovery step is scoped separately and adds one to two days to the project timeline if custom fields are present.

  • Open items require reconciliation against payment history before export

    Open items in work4all (Offene Posten) track outstanding invoices and credit memos but do not automatically include payment history. If a customer has partial payments against an invoice, the open amount must be calculated as the original invoice amount minus any recorded payments. We request the customer to confirm whether partial payments exist and, if so, we ask the work4all vendor to include payment records in the export or we reconstruct open amounts from invoice and payment data separately before migration.

  • Twenty's Person and Company objects require a two-record strategy for business partners with contacts

    work4all stores business partners (Kunden/Lieferanten) as single records that may have multiple linked contact persons. Twenty separates Companies and People into distinct objects. If a work4all Customer record has multiple associated contact persons, we map the Customer to a Twenty Company and each contact person to a separate Person record, with the relationship between them maintained via the Company's people array or a custom relationship field. This is the primary schema remodelling step and must be agreed with the customer during scoping.

  • Light licence users cannot access full CRM activity data

    The work4all Light licence tier is designed for field technicians who only need time tracking and delivery note access. It restricts access to full CRM activities and ERP document detail. When scoping a migration, we identify every user with a Light licence and confirm which data objects their accounts can reach. If a technician's time entries or visit reports are locked under a restricted account, we request an upgrade or admin-assisted export from work4all to avoid silent data loss in the activity history. This is resolved before the migration scope is finalised.

Migration approach

Six steps for a successful work4all to Twenty CRM data migration

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

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

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

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

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

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

Context on both ends of the pair

work4all logo

work4all

Source

Strengths

  • Combines CRM and ERP in a single platform with shared master data, eliminating duplicate entry between sales and accounting workflows.
  • Supports both cloud-hosted and on-premise server deployment, giving customers control over where their data resides.
  • Industry-neutral base platform with optional industry extensions, allowing targeted functionality without forcing a vertical-specific tool.
  • Pricing model is proportional to role: Light licences for field technicians at low cost, Professional and Ultimate for power users with full CRM and ERP access.
  • Over 35 years of continuous development with 1,000+ corporate customers indicates stability and domain expertise in SME resource planning.

Weaknesses

  • Limited documented public API constrains automated integrations and migration tooling, making data export largely dependent on Excel templates and vendor-assisted custom imports.
  • Windows desktop-first architecture creates friction for organisations expecting browser-based or mobile-native access to core ERP functions.
  • No widely reviewed tier-specific feature matrix makes it difficult to compare licensing options or understand what is locked behind higher tiers without direct vendor engagement.
  • GDPR compliance tooling is not prominently documented, which may concern customers in regulated industries handling EU personal data.
  • Customer reviews are sparse on public platforms (G2 shows limited verified reviews), making independent evaluation harder for prospective buyers.
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 work4all 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

    work4all: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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 consultation

Migrations with up to 5,000 customer records, 500 open opportunities, and no complex ERP document history typically complete in five to eight weeks. The primary time variable is the vendor-assisted export coordination from work4all, which adds three to five business days to the scoping phase compared to platforms with self-service APIs. Migrations with large open-item histories, multiple custom fields across industry extensions, or many linked contact persons requiring the Company-and-Person split strategy extend to ten to sixteen weeks.

Adjacent paths

Related migrations to explore

Ready when you are

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