CRM migration
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
Source
Twenty CRM
Destination
Compatibility
14 of 14
objects map 1:1 between FieldAware by GPS Insight and Twenty CRM.
Complexity
BStandard
Timeline
48–72 hours
Overview
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.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a 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
Twenty CRM
Company
1:1FieldAware 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
Twenty CRM
Company
1:1FieldAware 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
Twenty CRM
Person
1:1FieldAware 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
Twenty CRM
Opportunity + Custom Object (JobHistory__c)
1:1FieldAware 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
Twenty CRM
Opportunity Stage
1:1FieldAware 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
Twenty CRM
Custom Object (Asset__c)
1:1FieldAware 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
Twenty CRM
Custom Object (Invoice__c)
1:1FieldAware 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
Twenty CRM
Custom Object (ServiceItem__c)
1:1FieldAware 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
Twenty CRM
Task
1:1FieldAware 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
Twenty CRM
Note
1:1FieldAware 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
Twenty CRM
WorkspaceMember
1:1FieldAware 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)
Twenty CRM
Custom Fields
1:1FieldAware 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
Twenty CRM
File
1:1FieldAware 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
Twenty CRM
No Equivalent
1:1FieldAware 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.
| FieldAware by GPS Insight | Twenty CRM | Compatibility | |
|---|---|---|---|
| Customer | Company1:1 | Fully supported | |
| Location | Company1:1 | Fully supported | |
| Contact | Person1:1 | Fully supported | |
| Job | Opportunity + Custom Object (JobHistory__c)1:1 | Fully supported | |
| Job Status / Stage | Opportunity Stage1:1 | Fully supported | |
| Asset | Custom Object (Asset__c)1:1 | Fully supported | |
| Invoice | Custom Object (Invoice__c)1:1 | Fully supported | |
| Item / Parts | Custom Object (ServiceItem__c)1:1 | Fully supported | |
| Task | Task1:1 | Fully supported | |
| Note | Note1:1 | Fully supported | |
| User / Technician | WorkspaceMember1:1 | Fully supported | |
| Custom Fields (per entity) | Custom Fields1:1 | Fully supported | |
| Attachment / File | File1:1 | Fully supported | |
| Workflows / Scheduling Rules | No Equivalent1:1 | Fully supported |
Gotchas + challenges
Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.
FieldAware by GPS Insight gotchas
User tier cap misalignment at migration time
Custom field format type immutability
API rate limits are not publicly documented
Asset-to-Job linkage reconstruction
FieldAware brand transition to GPS Insight
Twenty CRM gotchas
Import order is enforced and critical
Export limited to 20,000 records and visible columns only
Soft-deleted records count toward uniqueness and trigger restores
API rate limits cap at 200 req/min on Organization tier
No native email sequences — follow-up cadences require external tools
Pair-specific challenges
Migration approach
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.
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.
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.
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.
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
FieldAware by GPS Insight
Source
Strengths
Weaknesses
Twenty CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 2 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across FieldAware by GPS Insight and Twenty CRM.
Object compatibility
2 of 8 objects need a mapping; the rest are 1:1.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
8-object category — typical timelines run 2–7 days end-to-end.
API constraints
FieldAware by GPS Insight: Not publicly documented in the FieldAware REST API reference..
Data volume sensitivity
FieldAware by GPS Insight doesn't expose a bulk API — REST + parallelization used for high-volume runs.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during FieldAware by GPS Insight to Twenty CRM migration scoping. Not seeing yours? Book a call.
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 consultationAdjacent paths
Other ways to leave FieldAware by GPS Insight
Other ways to arrive at Twenty CRM
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.