CRM migration
Field-level mapping, validation, and rollback between Novo Work Order and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
Novo Work Order
Source
Twenty CRM
Destination
Compatibility
10 of 10
objects map 1:1 between Novo Work Order and Twenty CRM.
Complexity
BStandard
Timeline
48–72 hours
Overview
Novo Work Order is a work-order and asset-management platform built for field-service and maintenance teams; its data model centers on Work Orders, Assets, Requesters, and associated notes. Twenty CRM is a modern open-source CRM that structures data around People, Companies, Opportunities, Notes, and Tasks, with support for custom objects via the /metadata API. The migration translates Novo's work-order records into Twenty Opportunities, its requesters and contacts into People linked to Companies, and its asset records into a custom Asset object or structured notes. FlitStack sequences the import: Companies first (no dependencies), then People (linked by companyId), then Opportunities (linked by company and person), then custom objects last. Asset files and attachments re-upload to Twenty's file storage since CSV imports do not carry binary attachments. Workflows, scheduled maintenance rules, and notification templates are not migrated — those require manual rebuild in Twenty's workflow builder, and FlitStack exports the source workflow definitions as a rebuild reference. Owner and technician resolution happens by email match against Twenty workspace members before records land.
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 Novo Work Order 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.
Novo Work Order
Work Order
Twenty CRM
Opportunity
1:1Novo Work Orders map to Twenty Opportunities. The WO number becomes the Opportunity name or a reference field; work-order status (Open, In Progress, Completed, Closed) maps to a custom pick-list field on the Opportunity since Twenty does not have a native status enum. The original WO create date is preserved as a custom datetime field for audit continuity.
Novo Work Order
Requester / Contact
Twenty CRM
Person
1:1Novo requesters — the individuals who submitted or are associated with a work order — map directly to Twenty People records. Their name, email, phone, and address fields transfer as-is. A person may be linked to multiple work orders, which Twenty handles by linking the same Person record to multiple Opportunity records.
Novo Work Order
Customer / Account
Twenty CRM
Company
1:1Novo customer accounts (the organization or property owning the asset) map to Twenty Companies. Company name, domain/website, industry, and address fields transfer directly. Multi-location customers with separate addresses per work order preserve each location address as a custom field on the Company or as a separate Company record per location.
Novo Work Order
Asset / Equipment
Twenty CRM
Custom Object: Asset
1:1Novo assets (equipment, vehicles, facilities) have no native equivalent in Twenty's standard object set. FlitStack creates a custom Asset object in Twenty via the /metadata API and maps asset name, asset ID, location, make/model, and condition fields. Each Asset links to the related Company and Opportunity records using relation fields.
Novo Work Order
Work Order Note / Description
Twenty CRM
Note
1:1Work order descriptions, internal notes, and resolution summaries map to Twenty Notes records. Each Note is linked to its parent Opportunity and Person records so the full work-order context surfaces in the Twenty timeline view. Original timestamps and note authors are preserved.
Novo Work Order
Work Order Attachment
Twenty CRM
Twenty File Storage
1:1Novo file attachments on work orders (photos, PDFs, inspection reports) do not migrate via CSV import. FlitStack re-uploads each attachment to Twenty's file storage, linking the file to the corresponding Opportunity record. Inline images in notes are downloaded, re-hosted, and the links updated in the Note body.
Novo Work Order
Technician / Assigned User
Twenty CRM
WorkspaceMember
1:1Novo technicians and work-order assignees resolve by email match against Twenty Workspace Members. Unmatched users are flagged before migration — the team either invites them to Twenty first or assigns their records to a fallback Workspace Member. Technicians without Twenty accounts cannot be linked automatically.
Novo Work Order
Work Order Custom Fields
Twenty CRM
Custom Fields on Opportunity
1:1Novo custom fields on work orders (e.g., service type, priority level, permit number, damage category) map to custom fields on the Twenty Opportunity object. Each custom field is created in Twenty's schema via the settings UI or API before migration validation runs. Field types (text, number, date, pick-list) are matched to Twenty's supported field types.
Novo Work Order
Preventive Maintenance Schedule
Twenty CRM
Custom Object: MaintenanceSchedule
1:1Novo preventive maintenance schedules and recurring work-order templates have no native equivalent in Twenty. These are documented as a rebuild reference export and can be recreated in Twenty using custom objects, date fields, and workflow triggers. FlitStack does not migrate the scheduling logic — it is a manual-rebuild item.
Novo Work Order
Service Task / Line Item
Twenty CRM
Custom Field on Opportunity
1:1Novo work-order line items or service tasks (labor hours, parts used, service codes) typically map to a custom text area or JSON-formatted custom field on the Twenty Opportunity, since Twenty's standard Opportunity object does not have a native line-item sub-object. Complex multi-line structures may require a custom OpportunityLineItem object.
| Novo Work Order | Twenty CRM | Compatibility | |
|---|---|---|---|
| Work Order | Opportunity1:1 | Fully supported | |
| Requester / Contact | Person1:1 | Fully supported | |
| Customer / Account | Company1:1 | Fully supported | |
| Asset / Equipment | Custom Object: Asset1:1 | Fully supported | |
| Work Order Note / Description | Note1:1 | Fully supported | |
| Work Order Attachment | Twenty File Storage1:1 | Fully supported | |
| Technician / Assigned User | WorkspaceMember1:1 | Fully supported | |
| Work Order Custom Fields | Custom Fields on Opportunity1:1 | Fully supported | |
| Preventive Maintenance Schedule | Custom Object: MaintenanceSchedule1:1 | Fully supported | |
| Service Task / Line Item | Custom Field on Opportunity1: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.
Novo Work Order gotchas
No public API forces migration via built-in exports
Pricing opacity complicates budget planning
Municipal-specific custom fields need careful schema mapping
Preventative maintenance recurrence rules vary by configuration
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 Novo Work Order data and plan Twenty schema
FlitStack pulls a full data export from Novo — all work orders, requesters, customers, assets, and custom fields. We audit record counts, identify orphaned relationships (requesters without accounts, assets without customers), and document every custom field on work orders and assets. From this audit we deliver a Twenty schema setup plan: which custom fields to create, what types they need, whether a custom Asset object is required, and which custom pick-list values need to be pre-loaded. Your Twenty admin creates the schema before FlitStack validation runs.
Resolve technicians and requesters against Twenty workspace members
FlitStack retrieves the list of Twenty Workspace Members via the Twenty API and compares each Novo technician and requester email address against those accounts. Any email that does not match a Twenty member appears in a pre-flight report, giving the team the choice to invite the user to Twenty or map the record to a designated fallback workspace member. Opportunities are only created once every assignee resolves to an existing member; unresolved cases are logged and scheduled for post-migration cleanup.
Migrate companies first, then people, then opportunities, then custom objects
Following Twenty's import-order constraint, FlitStack sequences the migration: Companies (no dependencies), People linked by companyId, Opportunities linked to companies and people, and finally the custom Asset object with its relation fields. Each batch validates before the next begins. Relationship errors (e.g., a person with a non-existent companyId) are corrected in the CSV and re-imported before the next object type runs.
Re-host work-order attachments and link files to opportunities
Novo file attachments on work orders are downloaded, uploaded to Twenty's file storage, and linked back to the corresponding Opportunity record. Inline images embedded in work-order notes are extracted, re-hosted, and their URLs updated in the Note body. This step runs in parallel with the data migration and is included in the base scope — large volumes of high-resolution photos may require a scope add-on.
Run sample migration with field-level diff and execute full cutover with delta pickup
A representative slice — typically 100–500 records spanning all object types — migrates first. FlitStack generates a field-level diff showing every source field value and its destination counterpart, so you can verify that status mapping, asset linking, and assignee resolution are correct. After your sign-off, the full migration runs and a 24–48 hour delta-pickup window captures any work orders created or modified in Novo during the cutover. The audit log records every operation, and one-click rollback is available if reconciliation fails.
Platform deep dives
Novo Work Order
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 Novo Work Order 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
Novo Work Order: Not publicly documented.
Data volume sensitivity
Novo Work Order 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 Novo Work Order to Twenty CRM migration scoping. Not seeing yours? Book a call.
Walk through your Novo Work Order 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 Novo Work Order
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.