CRM migration

Migrate from aACE to Twenty CRM

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

aACE logo

aACE

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

58%

7 of 12

objects map 1:1 between aACE and Twenty CRM.

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

The aACE to Twenty CRM migration is a CRM-focused transition from a FileMaker-based all-in-one ERP to an open-source modern CRM. aACE stores accounting, CRM, order management, and inventory in a single linked FileMaker database with no public REST API — all extraction runs through FileMaker export scripts and a shared cache table. Twenty CRM is a GraphQL-first, TypeScript-built platform that provides Company, People, Opportunity, Task, Note, and Custom Object records with a self-hostable AGPL deployment option at $9 per seat per month for hosted or free self-hosted. We handle the extraction constraint by sequencing exports under a dedicated migration user, preserving relational links as explicit foreign-key mappings in Twenty, and splitting aACE's ERP data into CRM-relevant records (Contacts, Companies, Deals, Activities) and operational records (Invoices, Purchase Orders, Projects) that migrate as Notes or Custom Objects. Workflows, automations, and FileMaker layout-level scripts do not migrate; we deliver a written inventory for the customer's admin to rebuild in Twenty. Document attachments stored in FileMaker container fields cannot be extracted via export scripts and are flagged for a separate document-export step.

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

aACE logo

aACE

What's pushing teams away

  • The native integration ecosystem is thin: there is no built-in connector for modern e-commerce platforms, marketing automation tools, or SaaS CRMs, so teams using Shopify, HubSpot, or Stripe resort to manual data entry or custom FileMaker scripting.
  • The FileMaker backend becomes a liability at scale. Reviewers cite performance degradation with large datasets, limited concurrent-user capacity, and the inability to expose the database directly to external tools or BI platforms.
  • The reporting module is a frequent complaint: aACE ships with a fixed set of reports and no native export to external business intelligence tools, forcing power users to rebuild reports in Excel or third-party add-ons.
  • When companies grow past the 50-100 user range or need true cloud-native ERP capabilities — including SaaS integrations, mobile-first UX, and automated workflow engines — they migrate to platforms like NetSuite, Acumatica, or SAP Business One that offer a broader integration ecosystem.

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

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

aACE

Account

maps to

Twenty CRM

Company

1:1
Fully supported

aACE Accounts are the primary customer and vendor records holding billing and payment terms. Every linked Sales Order, Invoice, Purchase Order, and Project references an Account. We map Accounts 1:1 to Twenty Company records and use the Account name as the Company.displayName dedupe key. Address fields split into Company.address/streetAddress, addressCity, addressState, addressCountry. Custom fields on Account migrate to custom fields on Company or serialize as a JSON note if Twenty's field type does not match.

aACE

Sales Order

maps to

Twenty CRM

Opportunity

1:1
Fully supported

aACE Sales Orders are the transactional core linking a Customer Account to Line Items and spawning Invoices and Purchase Orders. We map Sales Order headers to Twenty Opportunity records with amount, closeDate, and stageName resolved from the aACE order status. Open orders migrate first with their full line item detail preserved as Opportunity description or a linked Note. Closed orders migrate with a historical flag.

aACE

Item

maps to

Twenty CRM

Product

1:1
Fully supported

aACE Items hold SKU, description, unit cost, and pricing and link to Sales Orders, Purchase Orders, and Invoices as line items. We map Item.sku to Product.skuCode, Item.description to Product.description, Item.unitCost to a custom Product.unitCost__c field, and pricing tiers to price book entries in Twenty.

aACE

Invoice

maps to

Twenty CRM

Note or Custom Object

lossy
Fully supported

aACE tracks both open A/R and historical closed Invoices with full balance and payment history. Twenty CRM has no native Invoice object. We migrate open Invoices as a custom Invoice custom object with header fields (invoice number, date, due date, total amount, balance) and line items as Note records linked to the Company. Closed invoices migrate as historical Note records with an archived flag.

aACE

Purchase Order

maps to

Twenty CRM

Note or Custom Object

lossy
Fully supported

aACE Purchase Orders link to Items, Vendors, and the originating Sales Order. They represent supply-chain data that Twenty CRM does not natively model. We migrate PO headers and line items as a custom PurchaseOrder custom object or as Note records linked to the Vendor Company. Partial receipts and PO status are preserved as custom fields.

aACE

Project

maps to

Twenty CRM

Custom Object (Project)

1:1
Fully supported

aACE Projects hold the job header and link to Tasks, Time entries, and billing records. We create a Project custom object in Twenty before migration, preserving Project status, dates, assigned user, and related Task links. If Twenty has a native project management module at migration time, we remap to the native object instead.

aACE

Task

maps to

Twenty CRM

Task

1:1
Fully supported

aACE Tasks are unit-of-work records linked to Projects and optionally to Accounts and Orders. We preserve task title, status, assignee, due date, and any custom flag fields. High-volume task exports use FileMaker's batch cache mechanism with a dedicated migration user to avoid colliding with active users.

aACE

Employee

maps to

Twenty CRM

UserInvite or User

1:1
Fully supported

aACE Employee records hold name, email, department, and role. We map active Employees to Twenty UserInvite records so the customer's admin can complete onboarding. Historical employees with no active login map to a People record with an inactive flag.

aACE

Company Location

maps to

Twenty CRM

Company (additional address)

1:many
Fully supported

aACE supports multiple locations per Account, each with its own address and contact record. We create the primary Company record from the Account and add additional addresses as Company address fields or as a custom Location custom object linked to the Company.

aACE

Distribution List

maps to

Twenty CRM

People (tag or group)

1:1
Fully supported

aACE Distribution Lists are FileMaker portal-based address-book groupings. These migrate as a custom Group custom object with a many-to-many join table linking to People records, or as tags on People records depending on the customer's scoping preference.

aACE

Custom Fields

maps to

Twenty CRM

Custom Fields

lossy
Mapping required

aACE tenants frequently add custom fields to standard objects via FileMaker. There is no metadata API to enumerate these fields. We request FileMaker layout definitions during scoping, build the complete custom field list, pre-create matching custom fields in Twenty's Settings Data Model, and migrate the values. Fields that cannot map to a compatible Twenty field type serialize as JSON in a custom text field.

aACE

Document / Container

maps to

Twenty CRM

Not Migrated

lossy
Fully supported

FileMaker container fields store attachments, signatures, and scanned documents inside the aACE database. Export scripts do not reliably extract container binary data, and aACE exposes no separate document API. This is a known limitation. We flag documents and attachments for a separate FileMaker-native document export step and do not include binary container data in the primary migration scope.

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.

aACE logo

aACE gotchas

High

No public API — FileMaker export scripts only

Medium

FileMaker cache table is shared per-user

Medium

Custom fields require manual field-discovery

Low

Binary document containers are not migrated

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

  • aACE exposes no REST API; FileMaker export scripts are the only extraction path

    aACE has no documented public REST or GraphQL API. All data extraction runs through FileMaker export scripts that write to a temporary cache table before producing a spreadsheet. This constrains migration speed because exports cannot run continuously and must be chunked by object type and fiscal period. We run exports under a dedicated migration user account to avoid colliding with active users who may simultaneously be running imports. The cache table is scoped per user, so concurrent export sessions are isolated by account. Customers expecting a direct API pull need this constraint explained during scoping. Twenty's GraphQL endpoint and CSV import accept the FileMaker-produced output without additional transformation for standard field types.

  • Custom fields require manual discovery from FileMaker layout definitions

    aACE tenants frequently add custom fields to standard objects including Accounts, Sales Orders, Items, and Projects to support unique business processes. There is no metadata API to enumerate these fields automatically. We request the customer share their FileMaker layout definitions during scoping so we can build the complete field list before migration. Custom fields that do not map to a compatible Twenty field type (text, number, date, picklist, boolean) are written as JSON blobs or serialized into a custom text field. This discovery step is a gating dependency for the migration schedule; if layout definitions are unavailable, we use a sample export to infer field names and types but cannot guarantee completeness.

  • FileMaker container fields do not export binary document data

    aACE stores attachments, signatures, and scanned documents within FileMaker container fields. Export scripts do not reliably extract container binary data, and aACE provides no separate document API. Document preservation is a known limitation of this migration path. Customers with compliance, audit, or regulatory requirements for document preservation are flagged during scoping for a separate FileMaker-native document export step performed after the primary data migration completes. We do not include binary container extraction in the standard migration scope and do not guarantee document fidelity through the CSV import pipeline.

  • Twenty CRM is early-stage software; some standard objects are not yet implemented

    Twenty CRM is approximately three years old as of 2026. Its feature set does not yet include native Invoice, Purchase Order, Quote, or Contract objects; these are common in established CRM platforms. aACE's ERP layer contains operational records (Invoices, Purchase Orders, inventory transactions) that have no native destination in Twenty. We migrate these as Notes or Custom Objects with customer-approved field mappings. Before migration, we verify the current Twenty feature roadmap against the customer's data model so no object type is assumed to exist until confirmed in Twenty's live documentation.

  • aACE automations and workflow scripts do not migrate to Twenty

    aACE tenants commonly use FileMaker scripts and layout-level automation to handle business process rules. Twenty CRM has a different automation model centered on custom code and third-party middleware (Zapier, Make) rather than a native workflow builder. We do not migrate FileMaker scripts or aACE workflow rules as executable code. We deliver a written inventory of every active aACE script and automation with its trigger conditions, actions, and a recommended replacement approach in Twenty. The customer's admin or a Twenty implementation partner rebuilds these post-migration. This inventory is produced during the scoping phase before any data moves.

Migration approach

Six steps for a successful aACE to Twenty CRM data migration

  1. Scoping and layout discovery

    We conduct a structured scoping call with the customer's aACE admin to enumerate all objects in use, identify custom fields via FileMaker layout definitions, and flag container fields, FileMaker scripts, and automations. We map aACE's relational links (Order to Line Items, Invoices, Purchase Orders, Tasks, Projects) and agree on the split between CRM records migrating to standard Twenty objects and operational records migrating as Notes or Custom Objects. We also provision a dedicated migration user account in aACE to isolate the export cache table from active users.

  2. Twenty workspace configuration

    We set up the Twenty workspace before any data moves. This includes creating all required custom objects (Project, Invoice, PurchaseOrder, any tenant-specific objects), custom fields, and picklist values via Twenty's Settings Data Model. We configure Record Types and stage values for Opportunities to match the customer's aACE order pipeline structure. Fields must exist in Twenty before CSV import because the import creates records, not fields. We validate the workspace configuration in Twenty's staging or test environment before committing to production.

  3. FileMaker export sequencing

    We write FileMaker export scripts scoped to each object type, run them under the dedicated migration user, and chunk large datasets by fiscal period or record range. The cache table is cleared before each batch to prevent stale records. Export outputs are validated against the aACE schema and cross-checked for record counts before transformation begins. Any export that encounters a FileMaker permission error, missing field, or encoding issue is logged and re-run before proceeding.

  4. Data transformation and enrichment

    We transform the FileMaker export output into Twenty-compatible CSV format. This includes splitting multi-address fields, normalizing date formats, resolving the owner reference by matching Employee email to a pre-created UserInvite, and splitting aACE's composite records (Invoice line items as separate Note records, PO line items as separate Note records). Custom field values are mapped to their Twenty equivalents or serialized to custom text fields. We deduplicate Company and Person records using name and email as the dedupe key.

  5. Staging migration and reconciliation

    We run a full migration into Twenty's staging environment using production-like data volume. The customer's admin reconciles record counts (Accounts in equals Companies in, Sales Orders in equals Opportunities in, Items in equals Products in, etc.), spot-checks 25-50 records against the aACE source, and validates the relational links (each Opportunity links to the correct Company, each Task links to the correct Person or Company). Mapping corrections are made in staging before the production migration window opens.

  6. Production migration and cutover

    We freeze writes in aACE during the cutover window and run a final delta export of any records modified since the staging migration. Production migration follows the same dependency order as staging: custom object schema, then Company, Person, Opportunity, Product, Note (Invoice and PO records), Task, and Project. Each phase emits a row-count reconciliation report. After cutover, we enable Twenty as the system of record and deliver the automation and script inventory document to the customer's admin. We support a one-week post-migration hypercare window for reconciliation issues and do not rebuild aACE workflows or FileMaker scripts as Twenty automations within the migration scope.

Platform deep dives

Context on both ends of the pair

aACE logo

aACE

Source

Strengths

  • All records — Accounts, Orders, Invoices, Tasks, Projects — live in a single FileMaker database with explicit relational links between them.
  • Combines accounting, CRM, order management, inventory, purchasing, and project management in one platform without requiring data exports between modules.
  • Per-user access privileges and custom privilege sets allow granular field-level and record-level security without dedicated IT staff.
  • Cloud-hosted options with a monthly hosting fee remove on-premises server maintenance for small and mid-size distributors.

Weaknesses

  • All reporting and data analysis must be built within FileMaker's native tools, which lack the flexibility of dedicated BI platforms like Power BI or Tableau.
  • No documented public REST API — migrations are handled via FileMaker export scripts and temporary cache tables rather than API-driven pipelines.
  • FileMaker's underlying architecture limits concurrent-user performance and makes the platform difficult to extend with external integrations or automated workflows.
  • Companies requiring deep supply chain automation, multi-entity consolidation, or real-time e-commerce synchronization outgrow the platform's native capabilities.
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 aACE 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

    aACE: Not publicly documented for aACE itself. The underlying Claris FileMaker Data API caps concurrent sessions per server license, so high-volume extracts must be chunked and timed against the customer's FileMaker Server capacity (confirmed during scoping)..

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Small aACE customers with under 5,000 records and minimal custom fields typically complete in three to four weeks. Mid-size migrations with multiple custom field sets, Projects, and historical Invoice or Purchase Order data move to five to eight weeks because of the FileMaker export sequencing work and the custom field discovery dependency. The custom field discovery step (reviewing FileMaker layout definitions) is the critical path item; if layout definitions are unavailable or heavily customized, discovery adds one to two weeks to the schedule.

Adjacent paths

Related migrations to explore

Ready when you are

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