CRM migration

Migrate from Rezora to Twenty CRM

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

Rezora logo

Rezora

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

91%

10 of 11

objects map 1:1 between Rezora and Twenty CRM.

Complexity

BStandard

Timeline

24–48 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Rezora is a real-estate-specific marketing platform centered on contacts, drip campaigns, and branded templates — it lacks native deal tracking, pipeline stages, or opportunity objects. Twenty CRM is a general-purpose open-source CRM with standard People, Companies, Opportunities, Notes, and Tasks objects plus unlimited custom objects and fields. The migration maps Rezora contacts to Twenty People records, Rezora companies to Twenty Companies records, and surfaces Rezora's drip campaign definitions as export files for manual rebuild in Twenty's workflow builder. FlitStack sequences the migration so companyId foreign keys resolve before People imports, then Opportunities last — matching Twenty's import-order requirement (Companies → People → Opportunities). Standard contact fields (firstname, lastname, email, phone, jobtitle) map directly; custom properties on contacts and companies migrate as Twenty custom fields; custom field types are preserved (text stays text, pick-list stays select, date stays date). Rezora's activity history (email opens, clicks, template views) cannot migrate — Twenty does not store engagement metrics as activity records. We use Twenty's REST and GraphQL API (available on all plans) to load records, with CSV bulk import as a fallback for non-relational fields.

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

Rezora logo

Rezora

What's pushing teams away

  • Interface is described as clunky and dated — creating sleek templates is harder than modern drag-and-drop builders.
  • Browser compatibility issues cause sporadic rendering problems that frustrate agents who switch between Chrome, Firefox, and Safari.
  • Scalability concerns emerge at high agent counts, with the platform feeling designed for boutique brokerages rather than large franchises.
  • Limited CRM depth means brokerages that grow past basic contact management and email marketing outgrow the feature set.

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 Rezora objects map to Twenty CRM

Each row shows how a Rezora 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.

Rezora

Contact

maps to

Twenty CRM

People

1:1
Fully supported

Rezora contacts migrate directly to Twenty People records. Each Rezora contact maps to one People record; the original Rezora contact ID is stored as Source_System_ID__c for traceability and delta-run de-duplication. Emails, phone numbers, job titles, and addresses transfer as standard People fields.

Rezora

Contact Custom Properties

maps to

Twenty CRM

People (custom fields)

1:1
Fully supported

Rezora custom properties on contacts (e.g., lead_source, license_number, preferred_contact_method) create Twenty custom fields on the People object via Twenty's Metadata API before the migration run. Field type is preserved: text properties become text fields, pick-lists become select fields, date properties become date fields.

Rezora

Company

maps to

Twenty CRM

Company

1:1
Fully supported

Rezora companies (brokerages, teams, or office entities) map directly to Twenty Companies records. Company name, domain/website, industry, number of employees, and annual revenue transfer to matching Twenty fields. Multi-office brokerages with parent-branch hierarchies require decisions about whether to create separate Company records per office or consolidate under one primary brokerage record.

Rezora

Company Custom Properties

maps to

Twenty CRM

Company (custom fields)

1:1
Fully supported

Rezora company-level custom fields (e.g., mls_id, brokerage_license, market_region) migrate as Twenty Company custom fields. The Metadata API creates each field first, then field values load during the Company import phase. Original create dates are preserved as custom datetime fields since Twenty's CreatedAt is set at migration time.

Rezora

Campaign

maps to

Twenty CRM

Custom Object (Campaign) or Notes

1:1
Fully supported

Rezora campaigns have no direct equivalent in Twenty's standard schema. FlitStack exports campaign names, types, statuses, and member counts as a CSV reference file. Teams rebuild campaigns as custom objects in Twenty (Organization plan) or document them in a Campaign Notes record linked to relevant People records. Campaign membership (which contacts received which campaigns) is preserved as a custom field on People.

Rezora

Drip Campaign / Sequence

maps to

Twenty CRM

Workflow (manual rebuild)

1:1
Fully supported

Rezora drip campaigns and email sequences are marketing automation constructs with step timing, condition branches, and enrollment rules. Twenty's workflow builder handles task automation but does not natively replicate drip campaign logic. FlitStack exports drip campaign definitions as JSON and CSV reference files so your Twenty admin can rebuild them as workflows. The exported file includes step order, wait durations, and enrollment criteria.

Rezora

Email Template

maps to

Twenty CRM

Custom Field or External Storage

1:1
Fully supported

Rezora email templates (HTML content used in drip campaigns) have no storage location in Twenty's standard schema. FlitStack exports template HTML as files. Teams can store template body as a long-text custom field on a Campaign reference record, or re-create templates in an external email tool (e.g., Mailchimp, SendGrid) and integrate via Twenty's webhooks.

Rezora

Activity (Email Opens / Clicks)

maps to

Twenty CRM

No equivalent

1:1
Fully supported

Rezora tracks email engagement metrics (opens, clicks, template views) per contact. Twenty does not store engagement metrics as activity records — it tracks only calls, meetings, and notes. Engagement history cannot migrate to Twenty and is exported as a reference CSV for compliance or reporting purposes outside the CRM.

Rezora

Social Media Post

maps to

Twenty CRM

Notes or Custom Object

1:1
Fully supported

Rezora's social media scheduling and posting features have no direct equivalent in Twenty. Social post records can be exported as a CSV with post text, platform, and date. Teams rebuild posting workflows in dedicated social media tools (e.g., Buffer, Hootsuite) and link those tools to Twenty via webhook or Zapier integration post-migration.

Rezora

Agent (Contact with agent role)

maps to

Twenty CRM

People + WorkspaceMember

1:many
Fully supported

Rezora agents are contacts with an agent-specific role. In Twenty, the contact data migrates to a People record. If the agent also needs to log into Twenty as a user, their email address is used to create a WorkspaceMember invitation — but agents who are only managed contacts (not users) land only as People records. FlitStack flags contacts that have matching email invitations in Twenty before assigning WorkspaceMember roles.

Rezora

Attachment / File

maps to

Twenty CRM

Manual re-upload or API

1:1
Fully supported

Rezora file attachments on contacts or templates are not included in CSV exports. FlitStack exports a manifest of attachment URLs and file names. Teams re-upload files to Twenty manually, or FlitStack's API team handles re-upload to Twenty's file storage. This step is scoped separately from the record migration because file transfer requires destination storage credentials.

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.

Rezora logo

Rezora gotchas

Medium

Rezora's per-feature pricing creates migration scope ambiguity

Medium

Template HTML carryover requires merge-field reformatting

Medium

Agent-level distribution lists do not map to standard CRM groups

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

  • Rezora's marketing automation constructs have no native equivalent in Twenty

    Rezora's drip campaigns, email sequences, and branded templates are core to its platform but have no equivalent in Twenty's schema. Twenty's workflow builder handles task automation (create a task when a record is updated, send a webhook when a field changes) but does not replicate the enrollment logic, step branching, or timing rules that drive Rezora drip campaigns. FlitStack exports drip campaign definitions as JSON reference files and template HTML as files — your Twenty admin rebuilds those in Twenty's workflow builder. This is a manual step that must be factored into your migration timeline, and the exported definitions are a planning aid, not a drop-in replacement.

  • Twenty requires import order: Companies → People → Opportunities

    Twenty's CSV import and API both enforce referential integrity: People records must reference a valid companyId (linking to a Company record), and Opportunity records must reference a valid companyId and personId. Rezora exports flat CSV files per object with no foreign key enforcement. FlitStack resolves Rezora company names to Twenty companyIds before People records load, and flags any Rezora contacts with a company value that does not have a matching Twenty Company record. If a Rezora contact has no associated company, FlitStack creates a placeholder 'Unassigned' Company record and links all orphan contacts to it — your admin decides whether to split those into real companies or leave them consolidated.

  • WorkspaceMember invitations must be accepted before data imports

    Twenty requires all workspace members to accept their invitations before records can be linked to them as assignees or owners. Rezora agents who need to log into Twenty as users must receive and accept an invitation before the migration run. FlitStack pre-checks Twenty's workspace for accepted invitations before assigning OwnerId on People and Opportunities. Unmatched owners are flagged and assigned to a fallback user (or a 'Rezora Migration Owner' placeholder) — you can reassign records post-migration. This step prevents orphaned records with null owner fields, which Twenty's permissions model does not allow on standard objects.

  • File attachments are excluded from Twenty's CSV import

    Twenty's CSV import function does not include file attachments — only field values transfer via CSV. Rezora templates, branded graphics, and any files attached to contact or company records must be re-uploaded manually or handled via Twenty's GraphQL API after the migration run. FlitStack provides a manifest CSV listing every Rezora attachment with its file name, type, and source record URL so your team can systematically re-upload. Large volumes of template files may require a separate file-migration work order scoped outside the standard migration fee.

  • Multi-office brokerage hierarchies need junction-object or flattening decisions

    Rezora allows a contact to be associated with multiple brokerages or offices simultaneously. Twenty's People-to-Company relationship is one-to-many from the Company side: one Company record has many People records, each with a single primary companyId. Brokerage teams where an agent works across multiple offices need either separate People records per office (one per brokerage affiliation) or a custom junction object in Twenty (Organization plan) to preserve the N:N relationship. FlitStack surfaces this during the pre-migration audit and provides a junction-object setup plan if your Twenty plan supports custom objects with relations.

Migration approach

Six steps for a successful Rezora to Twenty CRM data migration

  1. Audit Rezora data and design Twenty schema

    FlitStack exports Rezora's full record set across contacts, companies, campaigns, and drip campaigns. We catalog every custom property on contacts and companies, map pick-list values, and document campaign and drip campaign definitions for the export-and-rebuild reference package. Simultaneously, we use Twenty's Metadata API to create any custom fields and custom objects required before data loads. We deliver a schema setup plan so your Twenty admin can pre-create custom fields on People and Company objects, avoiding import errors when the migration run executes.

  2. Resolve owners and validate workspace invitations

    Rezora agents who will be Twenty users must have accepted workspace invitations before migration. FlitStack matches Rezora owner email addresses against Twenty workspace members. Unmatched owners are flagged with a fallback assignment plan — either invite them to Twenty first or assign their records to a designated migration owner. This step prevents null OwnerId errors on People and Opportunity records during the import phase, which Twenty's permissions model blocks on standard objects.

  3. Import Companies first, then People, then Opportunities

    Following Twenty's required import order, FlitStack loads Companies first (so companyId values exist for lookups), then People records (with companyId resolved to their primary brokerage or office), then Opportunities. Custom object imports run last after all foreign keys are established. Every batch is validated against Twenty's field-type constraints before committing — pick-list values that do not match Twenty's defined options are flagged and mapped to the nearest equivalent before the next batch runs.

  4. Run sample migration with field-level diff

    A representative slice migrates first — typically 100–500 records spanning contacts, companies, and opportunities across a few Rezora campaigns. FlitStack generates a field-level diff report comparing source field values against Twenty field values for every migrated record. You verify that custom property mappings are correct, companyId lookups resolved properly, and owner assignments are acceptable. No full migration commits until you sign off on the sample diff.

  5. Full migration with delta-pickup and rollback plan

    The full record set migrates against Twenty. A delta-pickup window (typically 24–48 hours) captures any records created or modified in Rezora during the cutover window. FlitStack's audit log records every operation — record created, updated, linked, or skipped — and one-click rollback is available if reconciliation reveals unexpected gaps. After the migration is confirmed, we deliver the drip campaign JSON export file and template manifest so your Twenty admin can begin rebuilding automation logic in Twenty's workflow builder.

Platform deep dives

Context on both ends of the pair

Rezora logo

Rezora

Source

Strengths

  • Purpose-built for the brokerage-sponsor-agents data model that general CRMs do not handle natively.
  • Automated listing email triggers reduce manual follow-up for agents with active inventory.
  • Template system enables brand-controlled mass personalisation across large agent networks.
  • AI writing assistance embedded in the agent workflow reduces content creation overhead.
  • Brokerage-level analytics give franchise operators visibility into aggregate agent engagement.

Weaknesses

  • Template editor is described as clunky, limiting design quality compared to modern email builders.
  • Browser compatibility issues create inconsistent agent experience across desktop environments.
  • Limited CRM depth — no native pipeline, deal tracking, or transaction management.
  • Social media management is a separate paid tier, fragmenting the marketing stack for agents.
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. 1 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 Rezora and Twenty CRM.

  • Object compatibility

    B

    1 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

    Rezora: Not publicly documented — no published numeric rate limits..

  • Data volume sensitivity

    B

    Rezora doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your Rezora 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 Rezora to Twenty CRM data migrations

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

Can't find your answer?

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

Book a free 30 minute consultation

Most Rezora-to-Twenty migrations complete in 24–48 hours for under 10,000 records. Larger datasets with 500,000+ records or multi-office brokerage hierarchies extend to 5–7 days. The pre-migration audit and Twenty schema setup (creating custom fields via the Metadata API) adds 1–2 days before data moves. Drip campaign export-and-rebuild documentation is delivered alongside the migration but the manual rebuild in Twenty's workflow builder is a separate task your admin handles post-migration.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Rezora.
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