CRM migration
Field-level mapping, validation, and rollback between The Real Estate Platform (REP) and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
The Real Estate Platform (REP)
Source
Twenty CRM
Destination
Compatibility
12 of 12
objects map 1:1 between The Real Estate Platform (REP) and Twenty CRM.
Complexity
CModerate
Timeline
1–2 weeks
Overview
The Real Estate Platform (REP) is an enterprise real estate CRM built by Phoenix Software — it stores contacts, companies, deals, and marketing campaign data, with each customer instance white-labeled and configured independently. REP has no public API documentation and no self-service export UI — FlitStack accesses REP data through its authenticated export interface, extracting contacts, companies, deals, activity history, and any custom properties defined in that customer's REP instance. REP's flexible schema means every migration starts with an audit step to enumerate exactly which custom fields exist in your REP setup. Twenty CRM is an open-source CRM built on TypeScript, NestJS, React, and PostgreSQL. Its standard objects are People (contacts), Companies, Opportunities (deals), Notes, and Tasks. Twenty lacks a native real estate listing or property object — REP property references and listing IDs migrate as custom fields on Companies and Opportunities. Twenty's CSV import tool accepts up to 20,000 records per batch, with a required import order: Companies first, then People, then Opportunities, then custom objects. API access (REST and GraphQL) unlocks on the Pro plan at $9 per user per month. We extract REP data via REP's export interface, transform it against your REP instance's custom field schema, then load it into Twenty in the correct dependency order. Activity history (calls, emails, meetings, notes) maps to Twenty Tasks and Notes with original timestamps and linked record IDs preserved. FlitStack surfaces REP's workflow definitions, automation rules, and marketing templates as exported reference documents — those cannot migrate programmatically and must be rebuilt in Twenty's workflow builder or an external automation tool.
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 The Real Estate Platform (REP) 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.
The Real Estate Platform (REP)
Contact / Lead
Twenty CRM
People
1:1REP contacts migrate as Twenty People records. All standard REP contact fields — first name, last name, email, phone, job title, address — map directly. REP custom contact properties become Twenty custom fields on the People object. Owner resolution happens by email match against Twenty workspace members.
The Real Estate Platform (REP)
Company
Twenty CRM
Companies
1:1REP companies migrate as Twenty Companies records. REP company fields including name, domain, industry, employee count, and annual revenue map directly. REP parent-company hierarchies map to Twenty's relation field pointing to the parent Companies record. REP property associations on the company record become custom fields or relation fields.
The Real Estate Platform (REP)
Deal / Transaction
Twenty CRM
Opportunities
1:1REP deals migrate as Twenty Opportunities. Deal name, amount, close date, and owner (by email match) map directly. REP deal stage names map to Twenty Opportunity stage values via value mapping. REP's transaction type and property reference fields become custom fields on the Opportunity record.
The Real Estate Platform (REP)
Call / Email / Meeting Activity
Twenty CRM
Tasks / Notes
1:1REP call logs, emails, and meeting records migrate as Twenty Tasks with Type = 'Call', 'Email', or 'Meeting'. Original timestamps, owners, and the linked contact or deal record ID are preserved so activity history is searchable in Twenty from day one.
The Real Estate Platform (REP)
Note / Document
Twenty CRM
Notes
1:1REP notes migrate as Twenty Notes attached to the relevant People, Companies, or Opportunities record. Note body text and original create timestamps are preserved. Rich-text formatting is converted to Twenty's note format during the transform step. Any attachments referenced in the REP note are flagged for manual re-upload since Twenty Notes do not support inline file attachments.
The Real Estate Platform (REP)
Attachment / File
Twenty CRM
Files (re-uploaded)
1:1REP file attachments are downloaded and re-uploaded to Twenty. Files are linked to the parent record they were attached to in REP. Maximum file size limits on the destination apply. We flag any REP files exceeding Twenty's upload size threshold before migration so you can decide on a case-by-case basis.
The Real Estate Platform (REP)
Agent / Team Member
Twenty CRM
Workspace Members
1:1REP agents and office staff map to Twenty Workspace Members by email address. FlitStack resolves REP owner IDs to Twenty user emails for a clean owner assignment on migrated records. Unresolved owners are flagged before migration commits so your team can either invite them to Twenty or reassign their records.
The Real Estate Platform (REP)
Team / Office
Twenty CRM
Custom relation field on People
1:1REP team and office structures have no direct equivalent in Twenty's flat workspace model. We map team membership as a custom select or relation field on the People record. If REP teams are used for permission scoping, Twenty's object-level permissions can be configured post-migration.
The Real Estate Platform (REP)
Campaign / Marketing List
Twenty CRM
Custom Campaign object
1:1Twenty has no native campaign object. REP campaigns and marketing list memberships are preserved as a custom Campaign object with a CampaignMember relation to People. We create this object during the Twenty schema setup phase before data migration begins. After migration, campaign-related reporting views and filters must be configured manually in Twenty since the CRM does not automatically surface custom object data in standard reports.
The Real Estate Platform (REP)
REP Custom Properties
Twenty CRM
Custom fields (various objects)
1:1REP's strength — and its migration complexity — is that every customer instance has a unique set of custom fields. FlitStack audits your REP instance's actual schema first, then creates matching custom fields in Twenty across People, Companies, and Opportunities before the migration run. No REP custom property is dropped without a documented mapping decision.
The Real Estate Platform (REP)
Lead Source / UTM Reference
Twenty CRM
Custom field on People
1:1REP stores lead source and UTM attribution as contact properties. Twenty has no native lead source field. We create a custom select field (Lead_Source__c) on the People object and populate it from REP's source property value, preserving attribution data for post-migration reporting.
The Real Estate Platform (REP)
Property / Listing Reference
Twenty CRM
Custom fields on Companies or Opportunities
1:1REP tracks listing IDs, property addresses, and listing status as core REP fields on deals and companies. Since Twenty lacks a real estate property object, these values migrate as custom text fields (Property_ID__c, Listing_Status__c) on the relevant Companies or Opportunities record, linked to the deal that references that property.
| The Real Estate Platform (REP) | Twenty CRM | Compatibility | |
|---|---|---|---|
| Contact / Lead | People1:1 | Fully supported | |
| Company | Companies1:1 | Fully supported | |
| Deal / Transaction | Opportunities1:1 | Fully supported | |
| Call / Email / Meeting Activity | Tasks / Notes1:1 | Fully supported | |
| Note / Document | Notes1:1 | Fully supported | |
| Attachment / File | Files (re-uploaded)1:1 | Fully supported | |
| Agent / Team Member | Workspace Members1:1 | Fully supported | |
| Team / Office | Custom relation field on People1:1 | Fully supported | |
| Campaign / Marketing List | Custom Campaign object1:1 | Fully supported | |
| REP Custom Properties | Custom fields (various objects)1:1 | Fully supported | |
| Lead Source / UTM Reference | Custom field on People1:1 | Fully supported | |
| Property / Listing Reference | Custom fields on Companies or Opportunities1: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.
The Real Estate Platform (REP) gotchas
White-label customization creates non-portable schema
Marketing campaign drip state does not transfer
Mobile app offline data is not exportable
Syndication channel configurations do not export
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 REP schema and export data
FlitStack connects to your REP instance via your authenticated export credentials and enumerates every custom field present in your REP setup — including custom contact properties, custom company fields, and custom deal fields. We export all standard and custom REP objects: People, Companies, Deals, Activity history (calls, emails, meetings, notes), Attachments, Campaigns, and CampaignMembers. We also document REP's automation rules and workflow definitions as exported reference JSON for your team to use when rebuilding in Twenty. This step establishes the exact scope of custom fields requiring Twenty custom field creation.
Design and create Twenty schema
Before any data is loaded, FlitStack creates the matching custom fields in your Twenty workspace based on the REP schema audit. We create custom fields on People (lead source, REP lead status, REP contact custom properties), on Companies (property reference, REP company custom fields), and on Opportunities (priority, transaction type, property ID, REP deal custom fields). If REP campaign membership needs to be preserved, we create a custom Campaign object with a CampaignMember relation to People. We also map REP deal stages to Twenty Opportunity stages and configure stage probability values. The Twenty schema setup plan is delivered to your admin for review before FlitStack commits any changes.
Migrate accounts and people in dependency order
FlitStack executes the migration in Twenty's required import order. Companies are migrated first and committed to Twenty — these records must exist before People can reference them via companyId. People are migrated second, with REP contact fields mapped to Twenty People fields and REP custom contact properties mapped to the custom fields created in Step 2. Email addresses are used to pre-resolve REP owner IDs against Twenty workspace members — unmatched owners are flagged in a pre-migration report so your team can invite them to Twenty or reassign their records before the final migration run.
Migrate opportunities, activities, and remaining objects
With Companies and People committed, FlitStack migrates REP deals as Twenty Opportunities, mapping deal stage names to Twenty Opportunity stage values, preserving the original close date, amount, and REP transaction type. Activity records (calls, emails, meetings, notes) are migrated as Twenty Tasks and Notes, each linked to its parent People, Companies, or Opportunities record with original timestamps and owner IDs preserved. Campaign membership data is loaded into the custom Campaign object. For REP instances exceeding 20,000 records, FlitStack uses Twenty's GraphQL API for the bulk load rather than CSV.
Run sample migration with field-level diff and delta pickup
A representative slice — typically 100–500 records spanning People, Companies, Opportunities, and a sample of activity records — migrates first. FlitStack generates a field-level diff report comparing source REP values against the destination Twenty values so you can verify that custom field mapping, stage mapping, owner resolution, and date preservation are all correct before the full run commits. After full migration, a delta-pickup window captures any REP records created or modified during the cutover period so Twenty reflects your REP system's final state at go-live.
Validate, deliver, and hand off rebuild references
FlitStack delivers a final reconciliation report showing record counts by object, any records that could not be migrated with reasons, and a mapping audit trail. We deliver the exported REP workflow definitions and automation rules as reference JSON for your Twenty admin to use when rebuilding automations in Twenty's workflow builder or an external tool. FlitStack does not migrate workflows, sequences, email templates, or REP reports — those are rebuilt manually using the reference documentation we provide. One-click rollback is available if reconciliation identifies issues within 48 hours of the full migration run.
Platform deep dives
The Real Estate Platform (REP)
Source
Strengths
Weaknesses
Twenty CRM
Destination
Strengths
Weaknesses
Complexity grading
Moderate CRM migration. 4 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Moderate migration
Derived from compatibility, mapping clarity, API constraints, and data volume across The Real Estate Platform (REP) and Twenty CRM.
Object compatibility
4 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
The Real Estate Platform (REP): Not publicly documented.
Data volume sensitivity
The Real Estate Platform (REP) 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 The Real Estate Platform (REP) to Twenty CRM migration scoping. Not seeing yours? Book a call.
Walk through your The Real Estate Platform (REP) 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 The Real Estate Platform (REP)
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.