CRM migration

Migrate from RedEye to Twenty CRM

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

RedEye logo

RedEye

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

58%

7 of 12

objects map 1:1 between RedEye and Twenty CRM.

Complexity

BStandard

Timeline

4-6 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

RedEye is a B2C lifecycle marketing automation platform centred on Contacts, Campaigns, Journeys, and behavioural Events, priced by contact database size with a hard ceiling at 150,000 records on the Essentials tier. Twenty CRM is an open-source, self-hostable CRM built in TypeScript with a People-Company-Opportunity-Activity schema that prioritises data ownership over platform lock-in. The migration from RedEye to Twenty is a category crossing: RedEye's campaign and journey model does not have a direct equivalent in Twenty's opportunity pipeline, so we transform campaign records into a structured Opportunity template and deliver the journey logic as a documented rule set for manual rebuild in Twenty's workflow builder. We migrate all contact attributes, company associations, product catalogue records, and historical event logs, and we flag dashboard and automation gaps during scoping rather than discovering them post-cutover.

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

RedEye logo

RedEye

What's pushing teams away

  • Contact database size is capped per tier (150,000 on Essentials) and upselling to higher volumes can arrive without warning, making growth-stage brands feel price-pressured.
  • Reporting dashboards are described as basic by power users who want deeper drill-down and custom analytics beyond the built-in charts and dashboards.
  • The platform has a learning curve; reviewers note that initial onboarding guidance is insufficient and some features take time to master without better in-app documentation.
  • Drag-and-drop campaign building and auto-save functionality are absent, creating friction for marketers accustomed to more modern no-code UX patterns.

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

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

RedEye

Contact

maps to

Twenty CRM

People

1:1
Fully supported

RedEye Contact records map directly to Twenty People. The unified customer profile with behavioural enrichment migrates as a People record with all standard properties (name, email, phone, address) preserved. RedEye's lifecycle stage property is stored as a custom field lifecycle_stage__c on People for audit and segmentation continuity. Company linkage from RedEye's lighter-weight B2C model maps to a Twenty Company lookup on People.

RedEye

Company

maps to

Twenty CRM

Company

1:1
Fully supported

RedEye Company associations (lighter-weight than enterprise CRM models) map to Twenty Company records. The domain from RedEye's company domain field becomes the Company website field. We create Company records before People import so that the People-Company lookup relationship is satisfied at the moment of People insert.

RedEye

Campaign

maps to

Twenty CRM

Opportunity

1:many
Fully supported

RedEye Campaign records transform into Twenty Opportunity records with campaign metadata preserved in custom fields. Each RedEye campaign becomes an Opportunity with the campaign name, channel assignments, and timing rules stored as Opportunity properties. Campaign goals and metrics migrate to custom Opportunity fields. Note that Twenty's pipeline stages (qualified, proposal, negotiation, closed-won, closed-lost) require a mapping session with the customer to align RedEye campaign statuses to appropriate Twenty stage values.

RedEye

Campaign

maps to

Twenty CRM

Task

1:many
Fully supported

RedEye campaign-level goals, milestones, and performance metrics that do not fit the Opportunity object model migrate as Task records linked to the parent Opportunity. This preserves campaign KPI data without forcing it into fields that have no natural home in Twenty's schema.

RedEye

Customer Journey

maps to

Twenty CRM

Workflow (documented for rebuild)

lossy
Fully supported

RedEye's visual journey builder stores workflow definitions in a proprietary format that cannot be exported and re-imported. We extract the complete journey tree structure (triggers, conditions, branches, delays, actions) as a structured rule document with decision trees mapped to Twenty's workflow trigger conditions. The customer uses this document to rebuild journey logic manually in Twenty's workflow builder. We do not migrate journey definitions as code.

RedEye

Event

maps to

Twenty CRM

Activity

1:1
Fully supported

RedEye behavioural events (website actions, email opens, purchase triggers, custom events) migrate as Twenty Activity records with the event type, timestamp, and contact association preserved. Events that represent completed tasks (purchase, form submission) map to Task records; events that represent tracked interactions (email open, page view) map to Note records with event metadata in the body for timeline reconstruction.

RedEye

Product Record

maps to

Twenty CRM

Custom Object (Product)

1:1
Fully supported

RedEye product catalogue records (SKU, name, pricing, category) migrate to a Twenty Custom Object named Product. We pre-create the Product custom object schema in Twenty before import, including all product fields. Product associations from RedEye campaign or journey contexts migrate as lookups to the Product custom object.

RedEye

Channel

maps to

Twenty CRM

Custom Fields (configuration documented)

lossy
Fully supported

RedEye supports email plus up to eight additional channels per campaign. Channel assignments are documented as custom field metadata on the Campaign-to-Opportunity migration. Any channels not natively represented in Twenty (such as push notifications, SMS, or specific digital channels) are flagged for manual configuration post-migration.

RedEye

Custom Field

maps to

Twenty CRM

Custom Field

1:1
Fully supported

RedEye custom contact and event fields require explicit field-to-field mapping during scoping. We extract the full field schema from RedEye, match each field to an equivalent Twenty custom field (created in Settings before import), and apply any format transformations (date formats, phone number normalisation, picklist mapping). Fields must exist in Twenty before CSV import begins.

RedEye

Segment

maps to

Twenty CRM

Filter (documented for rebuild)

lossy
Fully supported

RedEye dynamic segments based on behavioural rules and demographic criteria are exported as structured rule sets. We deliver a segment definition document with the filter logic (field, operator, value) that the customer's admin rebuilds in Twenty using Twenty's filter and view system. Active segment membership (the list of contacts currently in each segment) is not migratable; only the segment rule definition is preserved.

RedEye

Tag

maps to

Twenty CRM

Tag

1:1
Fully supported

RedEye contact and campaign tags migrate as a flat tag array on the target record. We map tag names exactly and flag any tag characters (special characters, spaces, non-ASCII) that conflict with Twenty's tag schema. Tags used for campaign classification migrate as tags on the related Opportunity; tags used for contact classification migrate as tags on People.

RedEye

Attachment

maps to

Twenty CRM

File

1:1
Fully supported

Campaign assets (images, documents) attached to RedEye campaigns or emails migrate via file export and re-upload. We preserve the file hierarchy and naming conventions to minimise manual re-linking. Individual file attachments on contact records migrate as Files attached to the People record via Twenty's file linking system.

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.

RedEye logo

RedEye gotchas

High

Contact database size limits differ by pricing tier

Medium

Campaign journey logic does not export as a portable schema

Medium

Reports and dashboards are not exportable

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

  • RedEye journey logic cannot export as a portable schema

    RedEye's visual journey builder stores workflow definitions in a proprietary format that does not export or port to any other platform. We extract the journey structure as a structured rule document listing every trigger, condition, branch, delay, and action in order, but the customer must rebuild the logic manually in Twenty's workflow builder. This is not a limitation of the migration—it is a RedEye platform characteristic. We flag journey rebuild as a separate workstream during scoping so it does not become a post-migration surprise.

  • Campaign records require schema transformation into CRM opportunity model

    RedEye campaigns are marketing records with channel assignments, journey triggers, and campaign goals; Twenty CRM does not have a Campaign object with those semantics. We transform RedEye campaigns into Twenty Opportunities with campaign metadata stored in custom Opportunity fields. The customer should confirm during scoping that the Opportunity pipeline stage mapping reflects their campaign lifecycle (e.g., draft, active, completed, paused) before the first import.

  • RedEye contact database size limits affect scoping and destination tier selection

    RedEye Essentials caps contact databases at 150,000 records. During scoping, we run a pre-flight count of all contact records. If the destination Twenty instance will store significantly more records (for example, if the customer is moving from a pruned RedEye export), no artificial ceiling applies in Twenty, but the scoping estimate should reflect the actual record count being migrated. We flag any RedEye-tier-induced pruning decisions before import so the customer decides whether to migrate dormant contacts or accept a smaller, active-only migration.

  • Reports and dashboards do not migrate; underlying data does

    RedEye's native analytics dashboards use platform-specific visualisation components that cannot be exported. We migrate all underlying contact attributes, event logs, and campaign performance data so the customer can rebuild reports from scratch in Twenty's view and chart system. We surface this during scoping so the customer allocates time for the reporting rebuild phase rather than expecting dashboards to carry over.

  • Twenty requires workspace preparation before CSV import begins

    Twenty's import process requires that all custom fields, custom objects, and user accounts exist in the workspace before CSV import starts. We create the full custom field schema in Twenty during the setup phase before any data migration. Any custom fields missing at import time will cause record creation to fail for records using those fields. We coordinate with the customer's Twenty admin to ensure all workspace configuration is complete before the first import batch runs.

Migration approach

Six steps for a successful RedEye to Twenty CRM data migration

  1. Discovery and scoping

    We audit the source RedEye portal across tier (Essentials/Elevate), contact count, active campaigns, journey definitions, event log volume, custom fields, segments, and product catalogue. We pair this with a Twenty CRM workspace assessment: self-hosted or cloud-hosted, existing schema (custom objects, custom fields, pipeline stages), and user count. The discovery output is a written migration scope document with record counts per object, a journey rebuild inventory, and a dashboard rebuild inventory. This document defines the migration boundary—what migrates automatically and what requires manual rebuild.

  2. Workspace preparation in Twenty

    We configure the Twenty workspace before any data import. This includes creating all required custom fields on People, Company, and Opportunity objects; pre-creating the Product custom object if the product catalogue is in scope; setting up pipeline stage values that map to RedEye campaign statuses; and inviting all team members who will be referenced as record owners. Fields must exist in Twenty before CSV import begins—this is a Twenty platform requirement that we satisfy proactively rather than discover during import.

  3. Schema mapping and transformation design

    We design the mapping between RedEye's schema and Twenty's schema. The core transformation is RedEye Contact to Twenty People, RedEye Company to Twenty Company, and RedEye Campaign to Twenty Opportunity with campaign metadata in custom fields. We design the journey rule document format and the segment definition document format during this phase. The mapping document is reviewed by the customer's admin before any extraction from RedEye begins.

  4. Sandbox migration and reconciliation

    We run a full migration into a Twenty staging environment using production-like data volume. The customer's team reconciles record counts (People in, Companies in, Opportunities in, Activities in), spot-checks 25-50 random records against the RedEye source, and validates that the custom field data is correctly formatted in Twenty. Any mapping corrections or field type adjustments happen here before production migration begins.

  5. Production migration in dependency order

    We run production migration in record-dependency order: Companies (first, as they are referenced by People), People (with CompanyId resolved), Opportunities (with contact lookups and custom field data), Activities and Events (as Tasks and Notes), Product records (as custom objects), Tags (as tag arrays on target records). Each phase emits a row-count reconciliation report before the next phase begins. We freeze RedEye writes during the final cutover window and run a delta migration of any records modified during the window before declaring completion.

  6. Cutover, validation, and rebuild handoff

    We enable Twenty as the system of record after the final delta migration. We deliver the journey rebuild document (structured rule sets for manual rebuild in Twenty's workflow builder), the segment rebuild document (filter logic for manual rebuild in Twenty's filter system), and the dashboard rebuild inventory (underlying data with the fields and record sets required for each report). We support a one-week hypercare window for reconciliation issues. We do not rebuild RedEye journeys, segments, or reports as part of the migration scope; those are delivered as documented specifications for the customer's admin to implement.

Platform deep dives

Context on both ends of the pair

RedEye logo

RedEye

Source

Strengths

  • Dedicated sending infrastructure with warm-up plans and inbox monitoring included on all paid tiers.
  • Unlimited email sends and event storage removes per-campaign volume anxiety for high-frequency senders.
  • Multi-channel campaign orchestration (up to nine channels) consolidates what many teams run across separate tools.
  • Strong B2C lifecycle marketing focus with retailer, travel, and financial sector expertise built into the product design.
  • AI predictive analytics and customer lifetime value modelling available on the Elevate tier.

Weaknesses

  • Contact database size limits (150,000 on Essentials) create a hard ceiling that triggers tier upgrades unexpectedly for growing brands.
  • Native reporting is described as basic by power users and lacks the drill-down depth available in standalone BI platforms.
  • Absence of drag-and-drop campaign building and auto-save creates UX friction for marketers used to modern no-code builders.
  • Steep learning curve without guided onboarding means teams spend more time self-discovering features than driving value.
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. 3 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 RedEye and Twenty CRM.

  • Object compatibility

    B

    3 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

    RedEye: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Straightforward migrations with under 50,000 contacts, fewer than 500 campaigns, and no complex journey logic land between four and six weeks. Migrations with large event histories (over 200,000 behavioural events), multiple active journeys requiring documented rebuild, custom product catalogue objects, or multi-segment contact lists move to ten to sixteen weeks because of schema transformation work, journey documentation scope, and extended validation testing. The journey rebuild and dashboard rebuild work happens in parallel during the migration window and does not add to the timeline if scoped correctly.

Adjacent paths

Related migrations to explore

Ready when you are

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