CRM migration

Migrate from FieldAware by GPS Insight to Twenty CRM

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

FieldAware by GPS Insight logo

FieldAware by GPS Insight

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

100%

14 of 14

objects map 1:1 between FieldAware by GPS Insight and Twenty CRM.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

FieldAware by GPS Insight is a field service management platform built around work orders, dispatch scheduling, asset tracking, and invoicing. Its data model centres on Jobs, Customers (with Locations), Contacts, Assets, Invoices, Items, and custom fields applied per entity type — all accessible via a REST API with JSON payloads. Twenty CRM is an open-source CRM built on PostgreSQL, TypeScript, and React with a generic data model: People, Companies, Opportunities, Notes, Tasks, and unlimited custom objects. Twenty's API supports REST and GraphQL calls, CSV imports limited to 20,000 records per export, and per-user permissions for import/export operations. The migration maps FieldAware's operational objects into Twenty's entity model. Jobs become either Opportunities (for deal-tracking) or custom objects (for service-history records). Customers and Locations map to Companies and address fields. FieldAware Contacts map directly to Twenty People. Assets, line items, and invoice history migrate as custom objects. Custom fields declared in FieldAware for Jobs, Customers, Contacts, Assets, and Items are recreated as custom fields in Twenty per entity type. FieldAware's native workflows, dispatch rules, scheduling constraints, and mobile-to-back-office automation do not have equivalents in Twenty and must be rebuilt using Twenty's workflow builder or an external automation layer — FlitStack provides an exportable definition of every workflow rule as a rebuild reference. The migration runs via FlitStack's ETL pipeline against FieldAware's REST API, sequenced so related records (Customer before Location, Company before People) resolve correctly in Twenty's foreign-key model.

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

FieldAware by GPS Insight logo

FieldAware by GPS Insight

What's pushing teams away

  • Support fragmentation where multiple agents respond to a single ticket asking redundant questions creates confusion and delays resolution, especially for billing or refund issues.
  • Refund processing workflow is widely reported as confusing and error-prone, requiring detailed knowledge of job status to route correctly, which frustrates accounting staff.
  • Mobile app syncing problems and occasional data loss during orientation changes or typing on Android devices cause technicians to lose completed job data.
  • Limited automatic customer text alerts and poor secondary technician job visibility on active work orders create communication gaps on multi-tech jobs.
  • Advanced customizations and deeper configuration options often require vendor assistance rather than self-service within the platform.

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 FieldAware by GPS Insight objects map to Twenty CRM

Each row shows how a FieldAware by GPS Insight 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.

FieldAware by GPS Insight

Customer

maps to

Twenty CRM

Company

1:1
Fully supported

FieldAware Customers map directly to Twenty Companies. A Customer in FieldAware is a business entity (HVAC company, property manager) — Twenty's Companies object stores organization name, industry, domain, and size. FieldAware's Customer-level custom fields (e.g., SLA tier, service agreement type) migrate as custom fields on the Twenty Company record. If a Customer has multiple service Locations, each Location becomes a separate Company record in Twenty linked by a custom parent-company relationship.

FieldAware by GPS Insight

Location

maps to

Twenty CRM

Company

1:1
Fully supported

FieldAware Locations are service-site addresses attached to a Customer (e.g., a restaurant chain with 12 branch locations). In Twenty, each Location becomes a Company record with a custom Location_Type__c field set to 'Branch' and a Parent_Company__c relation pointing to the primary Customer Company. Address fields (street, city, state, zip, country) map to the address compound field on the Twenty Company. This preserves the full location hierarchy for service dispatch history.

FieldAware by GPS Insight

Contact

maps to

Twenty CRM

Person

1:1
Fully supported

FieldAware Contacts (individuals linked to a Customer or Location) map directly to Twenty People. Standard fields — first name, last name, email, phone, job title — migrate as-is. The Contact-to-Customer relationship becomes a Company relation on the Twenty Person record. Role labels on FieldAware Contacts (e.g., Site Manager, Operations Director) are preserved as a custom Role__c field on Person.

FieldAware by GPS Insight

Job

maps to

Twenty CRM

Opportunity + Custom Object (JobHistory__c)

1:1
Fully supported

FieldAware Jobs are work orders — the core entity of the FSM model. They carry status (Scheduled, In Progress, Completed, Cancelled), assigned technician, scheduled date/time, location, line items (parts and labour), and custom fields per job. In Twenty, Jobs map to two targets: (1) an Opportunity record capturing the commercial value of the job (amount, stage as job status, close date), and (2) a custom JobHistory__c object storing full job detail — technician assigned, actual start/end times, parts used, signature captured, and custom checklist responses.

FieldAware by GPS Insight

Job Status / Stage

maps to

Twenty CRM

Opportunity Stage

1:1
Fully supported

FieldAware job statuses (Scheduled, En Route, On Site, Completed, Invoiced, Cancelled) map to Twenty Opportunity stage values. Each status becomes a named stage in Twenty's pipeline. Probability and forecast category are re-applied based on the mapping — Completed maps to Closed Won, Cancelled maps to Closed Lost, and active statuses distribute across the pipeline stages. Job stage-change timestamps are preserved in a custom Stage_Changed_At__c datetime field on the Opportunity.

FieldAware by GPS Insight

Asset

maps to

Twenty CRM

Custom Object (Asset__c)

1:1
Fully supported

FieldAware Assets are equipment records tracked at customer locations (HVAC units, elevators, refrigeration systems). These have serial numbers, make/model, install date, warranty status, and service history. Twenty has no native Asset object, so FlitStack creates an Asset__c custom object with fields for name, serial number, make, model, install date, warranty expiry, and a relation to the Company record representing the asset's location. Asset-to-Job associations (which jobs were performed on which assets) migrate as a custom Asset_Job__c junction object.

FieldAware by GPS Insight

Invoice

maps to

Twenty CRM

Custom Object (Invoice__c)

1:1
Fully supported

FieldAware Invoices carry line items, tax, payment status, and a link to the originating Job. Twenty has no native invoicing module. FlitStack creates an Invoice__c custom object with fields for invoice number, date, amount, tax amount, status (Paid, Unpaid, Overdue, Void), payment date, and a relation to the Opportunity representing the Job. Invoice line items migrate as a custom InvoiceLineItem__c object with description, quantity, unit price, and total — linked to Invoice__c.

FieldAware by GPS Insight

Item / Parts

maps to

Twenty CRM

Custom Object (ServiceItem__c)

1:1
Fully supported

FieldAware Items are parts and services in the pricebook — used on Job line items and Quotes. These map to a ServiceItem__c custom object in Twenty with fields for name, part number, description, unit price, cost, and a type pick-list (Part, Labour, Miscellaneous). Items linked to invoices carry that relationship forward via the Invoice__c junction.

FieldAware by GPS Insight

Task

maps to

Twenty CRM

Task

1:1
Fully supported

FieldAware Tasks (internal to-do items on jobs, often assigned to technicians) map directly to Twenty Tasks. Subject, description, due date, assignee, and completion status carry over. Tasks linked to a Job Opportunity in Twenty are connected via the Opportunity relation on the Task record. Completed task timestamps are preserved from the FieldAware record.

FieldAware by GPS Insight

Note

maps to

Twenty CRM

Note

1:1
Fully supported

FieldAware Notes (free-text annotations on Jobs, Customers, or Assets) migrate to Twenty Notes. The body, author, and creation timestamp are preserved. Notes attached to a Job Opportunity carry the Opportunity as their parent record. If a note references a specific asset or location, the custom object relation is established via a lookup field on the Note.

FieldAware by GPS Insight

User / Technician

maps to

Twenty CRM

WorkspaceMember

1:1
Fully supported

FieldAware Users (dispatchers, technicians, admins) map to Twenty Workspace Members. Resolution happens by email match — each FieldAware user email is matched against Twenty workspace member emails. Unmatched users are flagged before migration. Active status and role (technician vs. admin) are preserved as a Role__c text field on the WorkspaceMember record. Note that FieldAware's permission model (Roles & Rights) does not migrate — Twenty's permission groups are set up separately.

FieldAware by GPS Insight

Custom Fields (per entity)

maps to

Twenty CRM

Custom Fields

1:1
Fully supported

FieldAware supports custom fields on Jobs, Customers, Contacts, Locations, Assets, Invoices, Items, and Tasks with types: Text, Number, CheckBox, Dropdown, Date, Time, and for Job/Asset — syncable-to-mobile flags. Each custom field declaration migrates as a custom field in Twenty on the corresponding object. Dropdown custom fields in FieldAware create pick-list custom fields in Twenty with the same option values. CheckBox maps to Boolean; Date and Time map to Date and DateTime respectively in Twenty.

FieldAware by GPS Insight

Attachment / File

maps to

Twenty CRM

File

1:1
Fully supported

FieldAware file attachments on Jobs (photos, PDFs, signatures) re-upload to Twenty's file storage. File size limits apply — FieldAware documents within standard limits migrate fully. Signature images captured on the mobile app are stored as image files attached to the JobHistory__c custom object record. If files are inline in notes (e.g., embedded images), they are extracted, rehosted, and the note body is updated with the new URL reference.

FieldAware by GPS Insight

Workflows / Scheduling Rules

maps to

Twenty CRM

No Equivalent

1:1
Fully supported

FieldAware dispatch and scheduling workflows — auto-assignment rules, geo-routing, technician skill matching, and SLA alerting — are platform-specific automation with no native equivalent in Twenty CRM. These are documented in an exportable workflow definition for rebuild in Twenty's workflow builder or an external automation tool. This is a manual-rebuild item disclosed upfront.

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.

FieldAware by GPS Insight logo

FieldAware by GPS Insight gotchas

High

User tier cap misalignment at migration time

Medium

Custom field format type immutability

Medium

API rate limits are not publicly documented

Medium

Asset-to-Job linkage reconstruction

Low

FieldAware brand transition to GPS Insight

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

  • Field service dispatch rules have no equivalent in Twenty CRM and must be rebuilt manually

    FieldAware's scheduler auto-assigns jobs based on technician skills, geo-proximity, certifications, and availability — rules that live in FieldAware's back-office scheduler tied to the mobile app. Twenty CRM has no native dispatch or scheduling engine; it stores technician records as Workspace Members and Opportunity assignments but does not run routing algorithms. FlitStack exports the full set of FieldAware scheduling rules (technician skills, certification tags, SLA windows) as a structured JSON document so a Twenty admin or automation tool can rebuild the routing logic. This is always a manual step — no automation migrates.

  • Invoices and invoice-to-job payment status do not map natively — invoice history requires a custom object rebuild

    FieldAware's invoicing module produces line items, tax, payment status, and e-signature records tied to a Job. Twenty CRM has no invoicing module as of the current release — there is no native object for invoices, payments, or receipts. FlitStack migrates invoice data to a custom Invoice__c object with status, amount, tax, and payment date fields, and a junction to the Opportunity representing the Job. However, payment processing integrations, payment gateway links, and invoice PDF templates must be rebuilt in Twenty or via a third-party accounting connector. Teams relying on FieldAware's billing reconciliation features will need to re-establish that workflow.

  • Location-to-Customer hierarchy inverts the standard CRM parent-company relationship, requiring custom junction logic

    FieldAware models Customers as the top-level entity with multiple Locations beneath them — a one-to-many hierarchy where each Location has its own address and contact set. Twenty CRM's standard Companies model uses a single-level parent-account relationship. FlitStack maps each FieldAware Location to a separate Company record with a custom LocationType__c = 'Branch' field and a Parent_Company__c lookup pointing to the primary Customer Company. This preserves the full service-site hierarchy but requires the Twenty admin to configure the Parent_Company__c field visibility and reporting relationships — it is not automatic.

  • Custom field format types differ — CheckBox, Date, Time, and syncable-to-mobile flags need explicit field-type mapping

    FieldAware custom fields support types: Text, Number, CheckBox, Dropdown, Date, Time — and for Job and Asset custom fields, a 'syncable to mobile' boolean that controls field visibility on the technician app. Twenty's custom field types include text, number, date, dateTime, boolean, select, and multi-select. FlitStack maps FieldAware CheckBox to Twenty boolean, Date to date, Time to dateTime (storing the time as a UTC datetime), and Dropdown to select. The 'syncable to mobile' flag has no equivalent in Twenty and is discarded — if mobile technician visibility of a custom field matters, that must be reconfigured as a Twenty workspace setting manually.

  • Twenty's CSV import limit of 20,000 records per operation may require batched migration for large FieldAware datasets

    Twenty's CSV import function handles up to 20,000 records per export, and only exports columns currently visible in the active view. FieldAware datasets for large field-service operations — particularly Job history with years of completed records — can exceed 20,000 rows. FlitStack handles this by chunking the migration into Twenty-compatible batches, mapping Company records first, then People, then Opportunities, then custom objects. The migration plan sequences these batches so foreign-key dependencies (companyId on Person, Opportunity, and custom objects) resolve correctly. If a FieldAware setup has over 100,000 records across all entity types, the migration timeline extends to 5–10 days to accommodate batch sequencing.

Migration approach

Six steps for a successful FieldAware by GPS Insight to Twenty CRM data migration

  1. Audit FieldAware data volume and custom field inventory via API

    FlitStack connects to your FieldAware account using API credentials with scoped read access. We enumerate all entity types — Jobs, Customers, Locations, Contacts, Assets, Invoices, Items, Tasks — and export record counts per type. We pull the complete custom field declarations for each entity from FieldAware's custom field metadata endpoint, recording field name, type, default value, and syncable-to-mobile flag. This audit produces the migration scope document: total records, custom field count, and any entity relationships (asset-to-job, location-to-customer) that require junction objects in Twenty.

  2. Design Twenty workspace schema — custom objects, fields, and relations

    Based on the audit, FlitStack generates a Twenty schema setup plan: the exact custom object names and field definitions for Asset__c, JobHistory__c, Invoice__c, InvoiceLineItem__c, and ServiceItem__c; pick-list values for status and role fields; and the Parent_Company__c lookup on Location-derived Company records. This plan is delivered as a structured JSON and as step-by-step instructions your Twenty admin can execute before data lands. Workflows, automations, and dispatch rules are documented in a separate export file — they are not configured in this step.

  3. Export FieldAware data entity by entity, resolving owner and location references

    FlitStack exports data from FieldAware's REST API in the correct dependency order: Customers (→ Companies), Locations (→ Company records with Parent_Company__c), Contacts (→ People linked to Companies), Assets (→ Asset__c records), Jobs (→ Opportunities + JobHistory__c), Invoices (→ Invoice__c), Items (→ ServiceItem__c), and Tasks (→ Tasks). During export, technician and contact email addresses are resolved against the target Twenty workspace's member list. Records with unmatched owners are flagged and assigned to a fallback workspace member — no record lands without a valid assignee in Twenty.

  4. Run sample migration with field-level diff on a representative slice

    A representative slice — typically 200–500 records spanning at least two Customers, their Locations and Contacts, a sample of Jobs across different statuses, an Asset, and an Invoice — is migrated first. FlitStack generates a field-level diff comparing source FieldAware values against the resulting Twenty records. You verify that job status-to-stage value mapping, location hierarchy, technician assignment, and custom field values all appear correctly. You also validate that Parent_Company__c links resolve correctly for multi-location Customers. No full run commits until you sign off on the sample diff.

  5. Execute full migration with delta-pickup window and rollback readiness

    The full migration runs against Twenty's API using the validated field mapping. A delta-pickup window — typically 24 hours after the full run completes — captures any records created or modified in FieldAware during the cutover. FlitStack's audit log records every record operation (create, update, link) for reconciliation. If field counts, relationship counts, or custom object record totals deviate from the scope document by more than a defined threshold, one-click rollback reverts the Twenty workspace to its pre-migration state. After rollback confirmation, the migration can be re-run with corrected mapping.

Platform deep dives

Context on both ends of the pair

FieldAware by GPS Insight logo

FieldAware by GPS Insight

Source

Strengths

  • Native offline-capable mobile apps for iOS and Android keep field operations running without connectivity.
  • Route optimization and schedule dispatching reduce travel time and prevent double-booking technicians.
  • End-to-end quote-to-invoice workflow with built-in payment processing eliminates module switching.
  • Open REST API with JSON payloads enables integrations to NetSuite, Domo, and other enterprise systems.
  • Scalable from 2-user Starter to 500+ vehicle fleets with tiered pricing and no per-module surprises.

Weaknesses

  • Support ticket handling involves multiple agents with overlapping questions, delaying issue resolution.
  • Refund processing requires specific knowledge of job lifecycle stages and is widely reported as error-prone.
  • Mobile app crashes or freezes during phone orientation changes and typing, causing incomplete job sync.
  • Automatic customer text notifications are absent, requiring manual communication for job status updates.
  • Advanced customizations and deeper configuration options often require vendor-assisted implementation.
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 FieldAware by GPS Insight 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

    FieldAware by GPS Insight: Not publicly documented in the FieldAware REST API reference..

  • Data volume sensitivity

    B

    FieldAware by GPS Insight doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your FieldAware by GPS Insight 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 FieldAware by GPS Insight to Twenty CRM data migrations

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

Can't find your answer?

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

Book a free 30 minute consultation

Most FieldAware-to-Twenty migrations complete in 48–72 hours of clock time for datasets under 50,000 total records. The longest phase is planning — designing the Twenty custom object schema for assets, job history, and invoices takes 2–3 days of admin work. Large setups with over 100,000 FieldAware records (especially years of job history) extend to 5–10 days because Twenty's CSV import caps at 20,000 rows per batch, requiring FlitStack to sequence multiple migration passes in dependency order.

Adjacent paths

Related migrations to explore

Ready when you are

Move from FieldAware by GPS Insight.
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