CRM migration

Migrate from Fieldmagic to Twenty CRM

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

Fieldmagic logo

Fieldmagic

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

100%

10 of 10

objects map 1:1 between Fieldmagic and Twenty CRM.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Fieldmagic and Twenty CRM serve different primary purposes: Fieldmagic is a field-service management platform built on a CRM foundation, while Twenty CRM is a general-purpose open-source CRM with a modern React frontend and PostgreSQL backend. The migration from Fieldmagic to Twenty is fundamentally a domain shift — you are moving out of a tool built for job scheduling, technician dispatch, and site-based asset tracking into a CRM platform where those concepts require custom objects. We map Fieldmagic's Customers to Twenty Companies, Contacts to People, Jobs to a custom Job__c object, and Assets to a custom Asset__c object. Sites — a core Fieldmagic entity representing physical service locations — are preserved as a custom Site__c object linked to the parent Company so site-address history is not lost. Quotes migrate as Opportunities with the estimated value in the Amount field and status reflected in the stage pick-list. Owner resolution runs by email match against Twenty Workspace Members before any record lands without an assigned owner. Workflows, automations, and integrations do not migrate — they must be rebuilt using Twenty's workflow builder, REST API, or tools like n8n or Zapier. We sequence the migration so the Company side of relationships migrates first, followed by People, then Opportunities and custom objects, matching Twenty's import-order constraint that the 'one' side of one-to-many relationships must exist before the 'many' side can reference them. A 24–48 hour delta-pickup window captures any records modified in Fieldmagic during cutover, and our audit log provides one-click rollback if reconciliation fails.

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

Fieldmagic logo

Fieldmagic

What's pushing teams away

  • The platform becomes cost-prohibitive as teams scale — multiple office users, more technicians, and advanced features tier out quickly, and the per-seat model compounds for growing field service businesses.
  • Salesforce underpinnings add unnecessary complexity for straightforward field service needs — smaller teams report the CRM features feel oversized for their actual job management requirements.
  • Limited API documentation and no publicly documented bulk export mechanism makes it difficult for technical teams to build custom integrations or extract data for migration without vendor involvement.
  • Some users report the UI, while functional, lacks the polish of newer FSM competitors, and certain workflow automation features require a steeper learning curve to configure effectively.

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

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

Fieldmagic

Customer

maps to

Twenty CRM

Company

1:1
Fully supported

Fieldmagic's Customer object (name, phone, email, billing address) maps directly to Twenty's Companies object. The domain/website field on Fieldmagic Customer migrates to the Website field on Company. Since Twenty does not have a native Site sub-entity, the primary service address is stored as a custom Address__c text field on the Company record for reference.

Fieldmagic

Contact

maps to

Twenty CRM

Person

1:1
Fully supported

Fieldmagic Contacts map 1:1 to Twenty People. Each Contact's email, phone, job title, and name fields migrate to the corresponding People fields. The link to the parent Customer migrates as a CompanyId relation pointing to the mapped Company record — this requires the Company import to complete before Contact import per Twenty's dependency order.

Fieldmagic

Site

maps to

Twenty CRM

Custom Site__c object

1:1
Fully supported

Fieldmagic's Site object (service locations with address, GPS coordinates, site name) has no native equivalent in Twenty CRM. We create a custom Site__c object in Twenty, add custom fields for address components, GPS latitude/longitude, and a CompanyId relation back to the parent Company. Site-to-Contact N:1 relationships are preserved via a contactId custom field on Site__c.

Fieldmagic

Job

maps to

Twenty CRM

Custom Job__c object

1:1
Fully supported

Fieldmagic's Job entity (scheduled work linked to a Site, assigned to a technician, with status, priority, and description) requires a custom Job__c object in Twenty. Custom fields include jobStatus (select), priority (select), scheduledDate (date), assignedTechnician (relation to Person), siteId (relation to Site__c), and originalCreateDate (datetime for audit continuity). Job history and checklist data are stored as JSON in a long-text custom field.

Fieldmagic

Quote

maps to

Twenty CRM

Opportunity

1:1
Fully supported

Fieldmagic Quotes — proposals sent to customers with estimated amounts and expiry dates — map to Twenty Opportunities. The quote estimated amount migrates to the Opportunity amount field, expiry date maps to the expected close date, and the quote status (Draft, Sent, Accepted, Lost) maps to a custom OpportunityStage__c pick-list so reporting continuity is preserved.

Fieldmagic

Asset

maps to

Twenty CRM

Custom Asset__c object

1:1
Fully supported

Fieldmagic Assets (equipment tracked at Sites with serial number, manufacturer, status) have no native Twenty equivalent. We create a custom Asset__c object with custom fields for serialNumber, manufacturer, model, assetStatus, and a siteId relation to Site__c. Asset-to-Job relationships are preserved as a custom jobId relation on Asset__c so maintenance history is queryable.

Fieldmagic

Task

maps to

Twenty CRM

Task

1:1
Fully supported

Fieldmagic Tasks (to-dos linked to Jobs or Contacts) map directly to Twenty's native Task object. Task subject, body text, due date, assignee, and completion status transfer directly. Category distinctions in Fieldmagic (e.g., Call, Email, Follow-up) are preserved as a custom taskCategory__c select field since Twenty Tasks do not have a native type taxonomy.

Fieldmagic

User / Owner

maps to

Twenty CRM

Workspace Member

1:1
Fully supported

Fieldmagic office users and technicians are resolved against Twenty Workspace Members by email address. Unmatched owners are flagged before migration — your admin creates the corresponding Twenty user first or assigns their records to a fallback owner. This step is required before any record with an ownerId can be imported, per Twenty's user-existence prerequisite.

Fieldmagic

Tag / Label

maps to

Twenty CRM

Custom tag field

1:1
Fully supported

Fieldmagic tags applied to Customers, Contacts, Jobs, and Assets migrate as a custom Tags__c text field on each respective object, with comma-separated values preserved. If tags follow a consistent taxonomy (e.g., service type, priority tier), we can instead create a custom select field with the applicable options for cleaner filtering in Twenty views.

Fieldmagic

Attachment / File

maps to

Twenty CRM

Attachment via Twenty API

1:1
Fully supported

Fieldmagic file attachments (photos, documents, signed forms on Jobs or Assets) are re-uploaded to Twenty via the REST API. Files are associated to their parent record using the Twenty object ID generated during migration. Maximum file size follows Twenty's upload limits; large files are flagged for manual review if they exceed those thresholds.

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.

Fieldmagic logo

Fieldmagic gotchas

High

Site-Asset hierarchy is a mandatory import dependency

Medium

Checklist auto-attachment and completion data require separate handling

Medium

Salesforce custom objects and custom fields are not covered by standard import

Medium

Contract pricing links to invoicing require value-level mapping

High

Bulk API extraction is not publicly documented

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

  • Twenty ships with minimal standard fields — custom fields must exist before import

    Twenty CRM's standard People and Companies objects include very few out-of-the-box fields beyond name, email, and phone. A confirmed limitation (GitHub issue #13953) notes that users migrating from other CRMs must spend 30–60 minutes creating basic fields before importing any data. FlitStack AI creates all required custom fields in Twenty's Settings → Data Model before any import runs. If your Fieldmagic setup uses more than 15 custom properties per object, the pre-import field creation phase extends the project timeline. Schedule 1–2 hours of workspace preparation per custom field group before the data migration begins.

  • Jobs and Assets have no native Twenty CRM equivalent — custom objects are required

    Fieldmagic's core domain entities — Jobs (scheduled work orders with status, priority, assigned technician, and site link) and Assets (equipment tracked at service locations) — do not map to any of Twenty's standard objects (People, Companies, Opportunities, Notes, Tasks). FlitStack AI creates custom Job__c and Asset__c objects in Twenty with the necessary fields and relations, but the custom objects must be set up before import per Twenty's import-order documentation. This is a pair-level gotcha: other CRM migrations to Twenty may not need custom objects at all, but a Fieldmagic migration always does because the entire field-service data model is non-standard in Twenty.

  • Twenty's CSV export is capped at 20,000 records — API batch import required for large datasets

    Twenty's UI-based CSV export limits each operation to 20,000 records. Fieldmagic setups with more than 20,000 total records across Customers, Contacts, Jobs, and Assets exceed this limit. FlitStack AI handles this by extracting data from Fieldmagic via its API using paginated batch requests, then loading into Twenty via the REST or GraphQL API at up to 100–200 calls per minute depending on the Twenty plan tier. The API-based approach adds validation overhead and requires more thorough pre-migration testing to confirm rate-limit handling and batch-size tuning.

  • Twenty requires Workspace Members to exist before importing records with owner assignments

    Twenty's import documentation explicitly states: 'If your data includes user references (Account Owner, Assignee, etc.), those users must exist in Twenty before import. Otherwise, those relations cannot be mapped.' Fieldmagic office users and technicians appear as job owners and assignees throughout the data model. If a Fieldmagic owner has no corresponding Twenty Workspace Member when migration runs, the owner relation on that record is left blank and the record lands unassigned. FlitStack AI performs owner resolution by email match before migration and surfaces a list of unmatched owners so your admin can create the corresponding Twenty users first.

  • Fieldmagic workflows and automations do not migrate — must be rebuilt in Twenty

    Fieldmagic's workflow engine handles automatic job scheduling, checklist auto-attachment on job creation, task status updates based on schedule changes, and integration-triggered actions with Xero and QuickBooks. Twenty's workflow builder (Organization tier) provides manual workflow automation but does not replicate Fieldmagic's schedule-based job triggering or field-service dispatch logic. FlitStack AI does not migrate workflows or automations. We export Fieldmagic workflow definitions as a structured reference document your admin can use to rebuild equivalent automations in Twenty's workflow builder or via an external tool like n8n connected to Twenty's REST API.

Migration approach

Six steps for a successful Fieldmagic to Twenty CRM data migration

  1. Stand up Twenty workspace schema before data moves

    FlitStack AI audits your Fieldmagic data model — objects, field counts, relationship types, and custom properties — and generates a Twenty workspace setup plan. We create the custom Job__c and Asset__c objects, all custom fields (GPS coordinates on Site__c, job status and priority selects on Job__c, asset serial and manufacturer fields), and the relation fields linking Jobs to Sites and Assets to Sites. We also export your Fieldmagic workflow definitions as a structured JSON reference so your admin has a rebuild starting point. This step runs before any import so Twenty's schema is ready when data lands.

  2. Resolve owners and invite Workspace Members

    Fieldmagic office users and technicians are matched by email to Twenty Workspace Members. We run an owner resolution pass against your Fieldmagic user export and your Twenty member list. Unmatched owners are flagged with their Fieldmagic user records so your admin can create the corresponding Twenty users before migration. No record with an ownerId lands without either a matched Twenty user or an explicit unassigned flag for manual post-migration review.

  3. Sequence the migration: Companies → People → Opportunities → custom objects

    Twenty enforces import-order dependencies: the 'one' side of a one-to-many relationship must exist before the 'many' side can reference it. We sequence the migration as follows: first Companies (from Fieldmagic Customers), then People (from Contacts linked via companyId), then Opportunities (from Quotes), then custom objects in dependency order (Site__c, Job__c, Asset__c). Each batch uses Twenty's CSV import or API batch endpoint, with foreign key references resolved at load time. The sequence prevents orphaned relations and avoids the 'record not found' errors that occur when a Job tries to reference a Site that has not yet been created.

  4. Run a sample migration with field-level diff before full commit

    A representative slice — typically 100–300 records covering a mix of Customers, Contacts, Jobs, and Assets — migrates first. FlitStack AI generates a field-level diff comparing source Fieldmagic values against the destination Twenty fields so you can verify that GPS coordinates landed correctly on Site__c, that job status values mapped to the right select options, and that technician email resolution produced the expected assignee links. Sample migration findings go into a correction pass before the full run commits.

  5. Cut over with delta-pickup and audit log

    The full migration runs against Twenty with a 24–48 hour delta-pickup window. Any Fieldmagic records modified or created during the cutover window are captured in a second pass so Twenty reflects Fieldmagic's final state at go-live. FlitStack AI generates an audit log of every record created, updated, or skipped, with reasons. One-click rollback reverts the Twenty workspace to its pre-migration state if reconciliation identifies critical issues. Post-migration, we deliver a data quality report showing record counts, duplicate flags, and owner resolution rates for each object type.

Platform deep dives

Context on both ends of the pair

Fieldmagic logo

Fieldmagic

Source

Strengths

  • End-to-end job lifecycle from quote through invoicing with time-and-materials and fixed-price billing in one platform.
  • Offline-capable mobile app with real-time GPS technician tracking and paperless field workflows.
  • Native Xero and QuickBooks Online accounting sync with MYOB AccountRight support for Australian businesses.
  • Built-in asset management with Site-level tracking, maintenance history, and inspection checklists.
  • All-inclusve pricing with no storage, usage, or basic support add-ons on any paid tier.

Weaknesses

  • Per-seat pricing compounds quickly as field teams grow — office user and mobile user licenses are counted separately.
  • Salesforce base adds CRM complexity that smaller field service teams may not need, increasing onboarding overhead.
  • Bulk API export mechanism is not publicly documented, limiting programmatic data extraction for migrations and integrations.
  • Mobile-only plan at $19/user/month lacks the full feature set available on higher tiers, creating feature-gated upgrades.
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. 1 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 Fieldmagic and Twenty CRM.

  • Object compatibility

    B

    1 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

    Fieldmagic: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most Fieldmagic-to-Twenty migrations complete within 48–72 hours of clock time for setups under 25,000 total records. The longest phase is usually the pre-import schema setup — creating custom Job__c and Asset__c objects plus all necessary custom fields in Twenty's Settings → Data Model — which takes 2–4 hours per custom object depending on field count. Setups exceeding 100,000 records or requiring API-based extraction (due to Twenty's 20,000-record CSV export cap) extend to 5–10 days. The owner-resolution and import-order planning steps add 1–2 days regardless of record volume.

Adjacent paths

Related migrations to explore

Ready when you are

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