CRM migration
Field-level mapping, validation, and rollback between RealGreen by WorkWave and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
RealGreen by WorkWave
Source
Twenty CRM
Destination
Compatibility
12 of 12
objects map 1:1 between RealGreen by WorkWave and Twenty CRM.
Complexity
BStandard
Timeline
5–10 days
Overview
RealGreen by WorkWave combines CRM, scheduling, routing, and payment processing for green-industry operators — a purpose-built field-service stack where the CRM component shares a data model with its sister platform WorkWave Service Assistant. Twenty CRM is a modern open-source Salesforce alternative built on TypeScript, NestJS, React, and PostgreSQL, offering People, Companies, Opportunities, Notes, Tasks, and unlimited custom objects with no feature gating on custom fields. The migration carries RealGreen's customer records, company records, work order histories, and payment references into Twenty's standard objects and a custom Work_Order object, while routing data, service-geography configurations, and payment token records are preserved as reference fields or left for manual rebuild. FlitStack sequences the import as Companies → People → Opportunities → Custom Work Orders, respecting Twenty's import-order constraint and resolving owner assignments by email match against Twenty workspace members before data lands. Custom pick-list values for service types, work order statuses, and service territories are mapped from RealGreen's field settings into Twenty's Data Model select fields, ensuring that filtering, grouping, and automation triggers function identically in the destination workspace. Routing engine parameters and WorkWave Payment token credentials cannot be extracted and require separate reconfiguration with third-party routing tools and a new payment processor integration.
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 RealGreen by WorkWave 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.
RealGreen by WorkWave
Customer (person record)
Twenty CRM
People
1:1RealGreen customers map directly to Twenty People. The customer record holds name, email, phone, address, and service flags — all standard Twenty People fields. Original RealGreen customer IDs are preserved in a custom Source_System_ID__c field for delta-run de-duplication. Customers without an assigned company in RealGreen land as standalone People records in Twenty.
RealGreen by WorkWave
Company
Twenty CRM
Companies
1:1RealGreen company records (business accounts, property management entities) map 1:1 to Twenty Companies. Company name, domain, industry, address, and employee count translate to the corresponding Twenty Companies fields. RealGreen supports company hierarchies (parent/child); these map to Twenty's nested Companies structure via the parentId reference where applicable.
RealGreen by WorkWave
Work Order
Twenty CRM
Custom Object: Work_Order
1:1Work Orders have no native Twenty equivalent — they become a custom Work_Order object created in Settings → Data Model before import. The object holds technician name, service type, territory, scheduled date, status, total amount, and notes. Work Order ID is stored in Source_System_ID__c for traceability. RealGreen's open vs. completed vs. invoiced status maps to a Work_Order_Status__c pick-list.
RealGreen by WorkWave
Work Order Line Item / Service Line
Twenty CRM
Custom Object: Work_Order_Line_Item
1:1Individual service lines on a Work Order (e.g., lawn mowing, mulching, aeration) are imported as child Work_Order_Line_Item records linked to the parent Work_Order via a relation field. Each line carries service name, quantity, unit price, and line total. If RealGreen uses bundled pricing, the bundle is stored as a single line with the aggregated amount and a line_description noting the bundle name.
RealGreen by WorkWave
Customer Owner / Assigned Rep
Twenty CRM
WorkspaceMember
1:1RealGreen's assigned representative on a customer or work order is resolved by email match against Twenty workspace members. Unmatched owners are flagged with an Assigned_Rep_Source__c text field containing the RealGreen owner name and email, so the team can manually assign in Twenty post-migration. Twenty requires members to accept invitations before foreign-key relations can be established — this step is sequenced before the People import.
RealGreen by WorkWave
Payment / Invoice Record
Twenty CRM
Custom Object: Payment_Record
1:1Payment history from RealGreen (amount, date, method, status) migrates as a custom Payment_Record object linked to the parent Work_Order. Payment tokens and ACH/credit card references are NOT migrated — those live in WorkWave Payments' token vault and cannot be exported. The payment record preserves financial history for reporting; the actual payment method must be re-established with the new payment processor in Twenty.
RealGreen by WorkWave
Territory / Service Area
Twenty CRM
Custom Field: Service_Territory__c (on Work_Order)
1:1RealGreen's territory labels (geographic service areas, routing zones) are stored as a text or select custom field on the Work_Order object. If the team uses a structured list of territories, FlitStack creates a select field with the same options so filtering and reporting work in Twenty's kanban and table views.
RealGreen by WorkWave
Note / Attachment
Twenty CRM
Notes
1:1Notes attached to RealGreen customers, companies, or work orders migrate as Twenty Notes linked to the corresponding People, Companies, or Work_Order record. Attachments (e.g., signed forms, property diagrams) are downloaded from RealGreen's file storage and re-uploaded to Twenty's file attachment on the related record. File size limits on Twenty's cloud tier apply to individual uploads.
RealGreen by WorkWave
Task / Follow-up
Twenty CRM
Tasks
1:1Follow-up tasks and to-dos created in RealGreen (e.g., call customer, schedule re-inspection) migrate as Twenty Tasks linked to the relevant People or Work_Order record. Task status (completed, pending, cancelled) maps to Twenty's status field. Overdue timestamps are preserved in a custom Original_Due_Date__c field for reporting continuity.
RealGreen by WorkWave
Routing Data (route IDs, crew assignments)
Twenty CRM
Custom Field: Route_Reference__c (on Work_Order)
1:1RealGreen's dynamic routing engine generates route IDs and crew assignments that have no native equivalent in Twenty's CRM model. These are preserved as a text custom field (Route_Reference__c) on each Work_Order for historical reference. Route optimization logic must be rebuilt using Twenty's workflow builder or an external routing tool — FlitStack exports the RealGreen route schema as a rebuild reference.
RealGreen by WorkWave
Customer Portal Access Flag
Twenty CRM
Custom Field: Has_Customer_Portal_Access__c
1:1RealGreen's Customer Assistant Portal access flag indicates whether a customer has self-service login credentials. Twenty has no native customer portal concept; this is preserved as a boolean custom field on the People record for reference. The customer-facing self-service experience must be designed and configured separately in Twenty.
RealGreen by WorkWave
Flag Codes / Customer Status Tags
Twenty CRM
Custom Field: RG_Flag_Code__c
1:1RealGreen uses flag codes to categorize customers by status (e.g., priority, do-not-service, pre-pay). These are imported as a text custom field (RG_Flag_Code__c) on the People record. If the team uses a defined set of flag values, a select field with those options is created so filtering and automation triggers in Twenty work the same way.
| RealGreen by WorkWave | Twenty CRM | Compatibility | |
|---|---|---|---|
| Customer (person record) | People1:1 | Fully supported | |
| Company | Companies1:1 | Fully supported | |
| Work Order | Custom Object: Work_Order1:1 | Fully supported | |
| Work Order Line Item / Service Line | Custom Object: Work_Order_Line_Item1:1 | Fully supported | |
| Customer Owner / Assigned Rep | WorkspaceMember1:1 | Fully supported | |
| Payment / Invoice Record | Custom Object: Payment_Record1:1 | Fully supported | |
| Territory / Service Area | Custom Field: Service_Territory__c (on Work_Order)1:1 | Fully supported | |
| Note / Attachment | Notes1:1 | Fully supported | |
| Task / Follow-up | Tasks1:1 | Fully supported | |
| Routing Data (route IDs, crew assignments) | Custom Field: Route_Reference__c (on Work_Order)1:1 | Fully supported | |
| Customer Portal Access Flag | Custom Field: Has_Customer_Portal_Access__c1:1 | Fully supported | |
| Flag Codes / Customer Status Tags | Custom Field: RG_Flag_Code__c1: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.
RealGreen by WorkWave gotchas
WorkWave API requires paid developer account with setup and per-call fees
RealGreen was acquired by WorkWave in June 2021 — support and roadmap have shifted
Mobile app performance degrades after marking work orders complete
Snowflake Data Factory requires customer-managed compute costs
Tokenized payment methods require separate WorkWave transfer request
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
Confirm RealGreen data access and export method
FlitStack verifies whether the RealGreen account has an active WorkWave API developer account or whether the migration will rely on Service Assistant 5's manual CSV export. If API access is available, we pull customer, company, work order, and payment data via the WorkWave REST API using authenticated requests. If only CSV export is available, we use the Customer Import Utility templates and a custom Work Order CSV export designed around Twenty's custom object schema. This step produces a data inventory document listing record counts per object and a data quality assessment identifying duplicate records, missing required fields, and orphaned relationships.
Design Twenty data model and create custom objects
Before any data is imported, FlitStack creates the Work_Order, Work_Order_Line_Item, and Payment_Record custom objects in Twenty's Settings → Data Model, along with all custom fields referenced in the field mapping (Source_System_ID__c, Work_Order_Status__c, Service_Territory__c, Route_Reference__c, Technician__c, etc.). We also invite all team members to the Twenty workspace so owner email resolution works during the People import. A schema setup plan is delivered to the Twenty admin for review and approval before the migration test run begins.
Resolve owner and technician relationships by email
RealGreen's assigned rep and technician fields are stored as names or email strings, not as foreign keys. FlitStack builds an owner resolution table by matching RealGreen email addresses against invited Twenty Workspace Members. Records with unmatched owners receive an Assigned_Rep_Source__c text field carrying the original RealGreen owner name and email — the Twenty admin assigns these manually post-migration. Technician email-to-member matching is applied to the Work_Order Technician__c field. This step runs before the People import so all owner lookups are pre-resolved and no records land with null owner references.
Run a sample migration with field-level diff
A representative slice of 200–500 records spanning customers, companies, work orders, and payment records is imported first. FlitStack generates a field-level diff between the source RealGreen export and the Twenty import result, verifying that pick-list value mappings (service type, work order status, territory) translated correctly, that companyId and peopleId lookups resolved for all linked work orders, and that timestamps (created_date, completed_date, payment_date) appear in the custom datetime fields rather than overwriting Twenty's system timestamps. The diff is shared with the customer for sign-off before the full run commits.
Execute full migration with delta-pickup and rollback plan
The full migration runs Companies → People → Work Orders → Line Items → Payment Records in sequence. A delta-pickup window of 24–48 hours runs alongside the cutover, capturing any RealGreen records modified or created during the migration window. An audit log records every import operation with source record ID, destination record ID, and timestamp. If reconciliation fails — for example, more than 2% of work orders have missing customer links — FlitStack triggers a one-click rollback that reverts all imported records and surfaces the specific failure batch for remediation before a retry.
Platform deep dives
RealGreen by WorkWave
Source
Strengths
Weaknesses
Twenty CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 1 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 RealGreen by WorkWave and Twenty CRM.
Object compatibility
1 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
RealGreen by WorkWave: Not publicly documented — access negotiated with WorkWave API Sales.
Data volume sensitivity
RealGreen by WorkWave 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 RealGreen by WorkWave to Twenty CRM migration scoping. Not seeing yours? Book a call.
Walk through your RealGreen by WorkWave 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 RealGreen by WorkWave
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.