CRM migration

Migrate from Regal.io to Twenty CRM

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

Regal.io logo

Regal.io

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

70%

7 of 10

objects map 1:1 between Regal.io and Twenty CRM.

Complexity

BStandard

Timeline

2-4 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Regal.io to Twenty CRM is a structural migration from an event-driven voice AI platform to an open-source CRM with full data ownership. Regal defines a Contact as anyone with a reachable phone number and tracks behavioral Events as first-class objects that drive AI Agent Journeys; Twenty uses a standard CRM object model (People, Companies, Opportunities, Tasks) with custom fields and custom objects configured before import. We extract Contacts with their custom attributes, the full Event history, Campaigns, and any custom Object instances from Regal, transform them into Twenty's People and custom object equivalents, and preserve behavioral context as Notes or Task records. AI Agent scripts and Journey configurations are non-exportable and require manual rebuild in Twenty's workflow tools. We deliver a written inventory of active Journeys and integration endpoints so your team can recreate the engagement logic post-migration.

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

Regal.io logo

Regal.io

What's pushing teams away

  • Pricing opacity frustrates teams during renewal negotiations — Regal does not publish public pricing tiers, and quotes vary significantly based on call volume commitments.
  • Teams requiring deep telephony analytics report that Regal's reporting dashboard lacks the drill-down granularity needed for per-agent or per-campaign revenue attribution.
  • Scaling to multi-region inbound operations exposes limitations in Regal's agent desktop compared to full CCaaS platforms that offer broader workforce management features.

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 Regal.io objects map to Twenty CRM

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

Regal.io

Contact

maps to

Twenty CRM

People

1:1
Fully supported

Regal Contacts map to Twenty People records. The primary identifier is the contact's phone number or email; we use email as the dedupe key where available. Custom attributes on the Regal Contact (tenant-specific profile fields) migrate as Twenty custom fields that we pre-create in Settings > Data Model before import. Any Contact record missing both a phone number and email is flagged as a partial record and held in a reconciliation queue because Twenty People do not require phone numbers but your team may want to review incomplete records before they enter the CRM.

Regal.io

Company

maps to

Twenty CRM

Company

1:1
Fully supported

Regal Company records (if present in the source export) map to Twenty Company records with a 1:1 field mapping. The Company domain becomes the Website field and serves as the dedupe key. If the source export contains only Contacts without a standalone Company object, we derive Company records from domain-matching logic on People email addresses, creating or linking to the corresponding Company record during migration.

Regal.io

Campaign

maps to

Twenty CRM

Opportunity

1:many
Fully supported

Regal Campaigns define outbound programs with list selection, cadence, and goal metrics. We map Campaign membership (the list of Contacts targeted) to a set of Opportunity records linked to the target People, with Campaign name and goal metrics stored in custom Opportunity fields. If the customer has a pipeline concept, each Campaign becomes a distinct Opportunity stage group rather than a flat list, preserving the program-level view.

Regal.io

Event

maps to

Twenty CRM

Task or Note

1:1
Fully supported

Behavioral Events are the core of Regal's data model. Each Event has a type, timestamp, properties, and an associated Contact. We export the full event history and transform each Event into a Twenty Task (for call, email, and meeting outcomes) or a Note (for custom event types and Journey trigger records). The original Event type is preserved in a custom field event_type__c so that the behavioral timeline is queryable in Twenty. Event timestamps map to the Task ActivityDate to maintain chronological ordering in the activity feed.

Regal.io

Contact Attribute

maps to

Twenty CRM

Custom Field (People or Company)

lossy
Fully supported

Regal's Contact Attributes are tenant-specific custom profile fields stored on Contacts. We extract the full attribute schema from Regal's API before migration, identify the field types (text, number, date, boolean, select), and pre-create matching custom fields in Twenty's Settings > Data Model under the People or Company object as appropriate. Select and multi-select attributes map to Twenty's select and multi-select field types with the same option values preserved.

Regal.io

Custom Object

maps to

Twenty CRM

Custom Object

1:1
Fully supported

Regal Custom Objects are defined by Custom Event schemas with a traits/properties split (traits update Contact; properties update the Object instance) and a unique identifier property. We extract all Custom Object instances, resolve the linking Contact reference, and create matching Custom Objects in Twenty with the same field names and types. The unique identifier property from Regal becomes a custom ID field in Twenty. Multiple Regal events can update a single Object instance, and we consolidate those updates into the latest state of the custom Object record.

Regal.io

Journey

maps to

Twenty CRM

Workflow (documentation only)

lossy
Fully supported

Regal Journeys are conditional, event-triggered sequences of voice, SMS, and email steps defined in the no-code Journey builder. We do not migrate Journeys as executable logic because Regal's Journey runtime is not exportable. Instead, we document every active Journey as a step-by-step conditional rule inventory: trigger event, condition branches, action steps, and goal metrics. This document serves as the blueprint for rebuilding equivalent logic in Twenty's workflow system post-migration.

Regal.io

Call Transcript

maps to

Twenty CRM

Note (attached to People)

1:1
Fully supported

Call transcripts from Regal are exported as structured text and attached to the corresponding People record in Twenty as a Note with a custom transcript__c field. The Note title carries the call timestamp and duration. If the customer requires audio file preservation, we note that audio availability depends on Regal's retention settings at the time of export; audio files themselves are not directly importable into Twenty without a custom storage integration.

Regal.io

SMS and Email Thread

maps to

Twenty CRM

Note (attached to People)

1:1
Fully supported

SMS and email conversational history associated with Contacts is extracted as thread-level data and reattached to the corresponding People record in Twenty as a Note. Thread continuity in the destination system cannot be guaranteed because Twenty's activity model is task-based rather than thread-native; we preserve the message content and timestamp but note that the conversation UI will differ from Regal's thread view.

Regal.io

AI Agent

maps to

Twenty CRM

Workflow (rebuild required)

1:1
Fully supported

Regal AI Agent configurations — voice scripts, decision trees, persona settings — are tied to Regal's proprietary agent runtime and are not exportable via API or UI. We explicitly exclude Agent logic from the migration scope and flag it for manual rebuild. We do migrate the conversation outcome data and Journey trigger conditions so that business context is preserved. The written Journey inventory (see above) serves as the functional spec for recreating equivalent logic in Twenty's workflow 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.

Regal.io logo

Regal.io gotchas

High

Regal API is a single-events endpoint

High

AI Agent scripts and decision trees are non-exportable

Medium

No public pricing or documented tier limits

Medium

Contact contactability status is phone-number-dependent

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

  • Regal's single API endpoint requires throttled write sequencing

    All contact creation, updates, and event ingestion in Regal flow through one endpoint at https://events.regalvoice.com/events with a 300 req/sec rate limit. We sequence creates before updates to prevent duplicate Contact records, chunk our writes accordingly, and throttle to avoid HTTP 429 rejections. If the source export contains high-velocity event bursts (common in large Journey-triggered campaigns), we batch and back off to avoid stalling the migration. This throttling extends the migration timeline proportionally for high-volume event histories.

  • AI Agent scripts and decision trees are non-exportable

    Regal's AI Agent configurations live in a proprietary runtime that cannot be downloaded via API or UI. We explicitly exclude Agent logic from the migration scope and flag it for manual rebuild. We do migrate conversation outcome data, call transcripts, and Journey trigger conditions so that business context is preserved. The written Journey inventory we deliver documents trigger events, conditions, and action steps so that your team can recreate the logic in Twenty's workflow system. This is not a data limitation; it is a platform architecture constraint of the source.

  • Phone-number requirement creates partial Contact records

    Regal defines a Contact as contactable, meaning a phone number is required for full Journey eligibility. Contacts imported without a phone number land as non-contactable records in Regal. When migrating to Twenty, any Contact record missing a phone number is valid in Twenty's schema but will represent a partial identity in the destination. We validate phone number presence in the source export and flag any Contact records missing this field before loading, ensuring the migration map reflects the actual campaign-eligible population and your team can decide whether to enrich or exclude partial records.

  • Custom Objects depend on event schema resolution

    Regal Custom Objects are driven by Custom Event properties and a unique identifier property. Multiple event types can update a single Object instance, and a single event can update multiple Object types. We resolve the object type, the unique identifier property, and the Contact link for each event before creating Custom Object records in Twenty. If the source export contains orphaned Custom Event instances (events with no matching Contact), those instances are flagged and held for manual review because they lack the parent reference needed for the lookup resolution.

  • Activity timeline reconstruction requires type tagging

    Regal's event types (call_outcome, email_sent, sms_received, journey_trigger, custom) map to different Twenty record types (Task with TaskSubtype, Note). Without an event_type__c custom field tagging each migrated record, the activity timeline becomes a flat chronological list without semantic distinction. We pre-create the custom field during schema setup and populate it on every migrated activity record so that your team can filter and report on event types in Twenty's views and workflows.

Migration approach

Six steps for a successful Regal.io to Twenty CRM data migration

  1. Discovery and data landscape audit

    We audit the source Regal workspace across the full data model: Contacts, Contact Attributes (tenant-specific schema), Events (types, volumes, retention period), Campaigns, Custom Objects (Object Types, associated event schemas, unique identifier properties), active Journeys, integrations with Segment or HubSpot, and any call transcript or SMS thread availability. We also identify the contactable population by validating phone number presence. The discovery output is a written migration scope, a source-object inventory, and a list of Custom Attributes and Custom Object fields to pre-create in Twenty before any data moves.

  2. Twenty workspace preparation

    We create all required custom fields in Twenty's Settings > Data Model before import, including the event_type__c field on Task for activity type tagging, any custom fields matching Regal Contact Attributes, and any Custom Objects matching Regal's Object Types. We create the workspace members list so that Owner lookups can be resolved during import. If the customer plans to model Campaigns as Opportunities, we configure the Opportunity record types and stage values. Schema is deployed into a staging workspace first.

  3. Sandbox migration and reconciliation

    We run a full migration into a staging workspace using production-like data volumes. The customer reconciles record counts (People in, Companies in, Opportunities in, Tasks/Notes in), spot-checks 20-40 random records against Regal's source view, and validates that custom fields and custom Object records are populated correctly. Any mapping corrections — incorrect field types, missing select options, custom Object schema mismatches — are resolved in this phase before the production migration begins.

  4. Data extraction from Regal

    We extract all source data via Regal's API: all Contact records with full attribute sets, the complete Event history by type, all Campaign records with membership lists, all Custom Object instances with their associated Contact references, and available call transcripts and SMS/email thread data. The 300 req/sec rate limit governs our extraction pacing; for large event histories we use background job throttling with checkpointing so that a stalled job can resume from its last successful page rather than restart.

  5. Data transformation and cleaning

    We transform the extracted data according to the object mapping: Contacts to People with attribute-to-custom-field mapping, Events to Tasks or Notes with event_type__c tagging, Campaigns to Opportunities, Custom Objects to Twenty Custom Objects with Contact lookup resolution. We deduplicate Contacts by email, flag partial records (missing phone and email), and consolidate Custom Object instances updated by multiple events into their latest state. Data cleansing steps include phone number format normalization and removal of test records identified during discovery.

  6. Production migration and Journey handoff

    We run production migration in dependency order: Companies first (for People dedupe resolution), then People, then Opportunities, then Tasks and Notes (activity timeline), then Custom Objects. Each phase emits a row-count reconciliation report. After migration, we deliver the written Journey inventory document — a step-by-step rule map of every active Journey and AI Agent configuration for your team to rebuild in Twenty's workflow system. We do not rebuild Journeys as code. We support a three-day post-migration validation window where we resolve import errors and confirm that activity timelines are ordered correctly.

Platform deep dives

Context on both ends of the pair

Regal.io logo

Regal.io

Source

Strengths

  • Event-based contact model with 300 req/sec API throughput for real-time, high-volume data streaming.
  • Native AI Agent runtime with smooth handoff to human agents, eliminating power-dialer spam issues.
  • CDP-native integrations with Segment, HubSpot, Salesforce, Braze, and Iterable for same-day onboarding.
  • Journey builder with no-code AI tools for marketers to design event-triggered voice, SMS, and email workflows.
  • 97% containment rate and 80% cost-to-serve reduction cited in enterprise case studies.

Weaknesses

  • No public pricing tiers — requires sales consultation and volume commitments for quotes.
  • AI Agent configurations and scripts are not exportable, requiring full rebuild at destination.
  • Full CCaaS feature set (WFM, multi-region inbound queuing) is narrower than platforms like RingCentral.
  • Call recording and transcript retention is governed by Regal's internal policy, not customer-configurable.
  • Rate limits are generous but undocumented for burst scenarios beyond 300 req/sec.
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 Regal.io 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

    Regal.io: 300 requests per second.

  • Data volume sensitivity

    B

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

Estimator

Estimate your Regal.io 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 Regal.io to Twenty CRM data migrations

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

Can't find your answer?

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

Book a free 30 minute consultation

Most migrations land between two and four weeks for accounts under 15,000 Contacts, 200,000 Event records, and no custom Objects. Migrations with custom Object instances, large behavioral event histories (over 500,000 records), multiple Campaigns, or a complex custom attribute schema move to five to eight weeks because of the event-to-activity transformation work, custom field creation in Twenty, and the Journey documentation deliverable. Timeline is also influenced by how quickly the customer validates the sandbox migration and provides the User provisioning list for Owner lookups.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Regal.io.
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