CRM migration

Migrate from RSoft CRM to Twenty CRM

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

RSoft CRM logo

RSoft CRM

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

82%

9 of 11

objects map 1:1 between RSoft CRM and Twenty CRM.

Complexity

CModerate

Timeline

2-4 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from RSoft CRM to Twenty CRM is a structural migration from an India-centric, telephony-bundled platform to an open-source, self-hostable CRM with a GraphQL API and a clean interface that suits teams of 10 to 100 people. RSoft's export surface covers Leads, Contacts, Companies, Deals, and Tickets via CSV, but IVR call recordings and WhatsApp message threads live in RSoft-specific modules that do not appear in the export — we flag these gaps during scoping and transfer files separately where the customer requests it. RSoft's tier-gated custom field and workflow limits (capped at 5 on Standard and Advanced plans) routinely exceed the cap for teams migrating mid-growth, so we audit the plan tier and surface any fields that would be orphaned. Twenty's standard field model is intentionally lean — Person and Company objects ship with fewer built-in fields than HubSpot or Salesforce, which means we configure the destination schema (custom fields, custom objects, pipeline stages) before any data lands. Workflow definitions do not migrate; we deliver a written inventory of every active RSoft workflow for the customer's admin to rebuild in Twenty's workflow engine.

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

RSoft CRM logo

RSoft CRM

What's pushing teams away

  • RSoft's true cost escalates rapidly — base pricing of ₹999/user/month balloons to ₹3,500/user/month once IVR and WhatsApp add-ons are stacked, surprising teams on tight budgets.
  • G2 reviewers report frequent email deliverability issues and email integration instability that causes conversation threads to scatter across inboxes.
  • Custom field and workflow limits on lower tiers force growing teams to upgrade before they see proportional value, prompting them to evaluate alternatives.
  • The platform's heavy India-market focus means limited English-language documentation and community resources for non-Indian teams.
  • Support response times of 2 business hours on Standard and Advanced tiers frustrate teams running time-sensitive sales operations.

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

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

RSoft CRM

Contact

maps to

Twenty CRM

Person

1:1
Fully supported

RSoft Contacts map to Twenty Persons. We map name fields, email, phone, address, lifecycle stage, and owner. RSoft's custom contact properties above the 5-field tier limit require manual review before import — any field exceeding the destination's plan limit is flagged and the customer decides which fields to create in Twenty before the migration begins. The Person.displayName is constructed from firstName and lastName if available; otherwise the full contact name string is used.

RSoft CRM

Lead

maps to

Twenty CRM

Person (lead status)

1:1
Fully supported

RSoft Leads map to Twenty Persons with a lead status marker. We extract Lead source, status, score, assigned owner, and associated activities. RSoft's Lead-to-Contact conversion record is preserved as a Person record with a conversion_date field we add as a custom field. If Twenty's workspace uses the opportunities feature, leads that have moved to a deal stage may alternatively map to an Opportunity linked to the Person.

RSoft CRM

Company

maps to

Twenty CRM

Company

1:1
Fully supported

RSoft Company records map directly to Twenty Company records. We map company name, industry, size, address, and owner. The Company-to-Person relationship is preserved by sequencing Companies first in the migration load order so that the Company record exists before any linked Person record is created in Twenty.

RSoft CRM

Deal

maps to

Twenty CRM

Opportunity

1:1
Fully supported

RSoft Deals map to Twenty Opportunities. We map deal amount, probability, expected close date, owner, and pipeline stage. RSoft uses a drag-and-drop pipeline builder allowing multiple pipelines; each RSoft pipeline maps to a Twenty pipeline configured before migration. Closed-Won and Closed-Lost reasons from RSoft custom fields migrate as Opportunity custom fields in Twenty.

RSoft CRM

Pipeline Stage

maps to

Twenty CRM

Pipeline Stage

lossy
Fully supported

RSoft custom stage names and probabilities map to Twenty pipeline stages. We extract the stage name, position, probability, and any stage-specific automation triggers and document them as Twenty stage configuration notes. Stage reordering is preserved by setting the sortOrder field in Twenty during pipeline setup.

RSoft CRM

Activities (calls, emails, SMS, notes)

maps to

Twenty CRM

Task or Event

1:1
Fully supported

Activities logged against Contacts, Leads, or Deals migrate as Tasks in Twenty. Call logs from IVR are flagged as a gap because RSoft stores IVR call recordings in a separate module not included in CSV export — we identify the count and total duration of orphaned IVR call records during scoping and offer a separate file-transfer approach if the customer wants to preserve audio files. Standard call and email log entries migrate as Tasks with the activity type preserved in a custom field.

RSoft CRM

Ticket

maps to

Twenty CRM

Task (with custom status)

1:1
Fully supported

RSoft Tickets migrate as Tasks in Twenty, with ticket status and priority mapped to custom task fields. RSoft's Ticket Management processes requests from email, online, phone, chat, and social media — the source channel is preserved in a custom field for audit. If Twenty's workspace uses a custom ticket object, we configure it during the schema design phase before import.

RSoft CRM

Custom Fields (excess of 5 on Standard/Advanced)

maps to

Twenty CRM

Custom Fields

lossy
Fully supported

RSoft caps custom fields at 5 on Standard and Advanced plans. Any custom fields beyond that limit must be reviewed with the customer before import because they will be absent from the CSV export unless the customer is on the Customised plan. We audit the RSoft plan tier during discovery, list every custom field name and data type, and configure matching custom fields in Twenty before migration begins. Fields that exceed the destination plan's limits are flagged with a cost estimate for the appropriate Twenty plan tier.

RSoft CRM

Attachments

maps to

Twenty CRM

ContentDocument (via file transfer)

1:1
Not supported

RSoft does not expose document attachments via CSV export. Files linked to Contacts, Deals, or Tickets must be migrated separately via direct file transfer, not inline with record migration. We extract the list of attachment names and parent record IDs from the customer during discovery, bulk-transfer the files to a shared location, and attach them to the correct records in Twenty after the record migration completes using Twenty's file attachment API.

RSoft CRM

Tag

maps to

Twenty CRM

Tag

1:1
Fully supported

Tags on Contacts, Leads, and Deals export via CSV and map as Tags in Twenty. We deduplicate tags during import and preserve the association with the parent record (Person, Company, or Opportunity) using Twenty's tag API. Tags used for lead scoring in RSoft are preserved as tag values rather than converted to a numeric score field unless the customer requests the transformation.

RSoft CRM

User and Owner

maps to

Twenty CRM

WorkspaceMember

1:1
Fully supported

RSoft user accounts map to WorkspaceMember records in Twenty. We extract the full user roster from RSoft and map each to a corresponding Twenty workspace member by email match. Orphaned owner references — records in RSoft assigned to a user who will not have an account in Twenty — are flagged in a reconciliation queue before migration. The customer's admin provisions any missing workspace members before record import begins.

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.

RSoft CRM logo

RSoft CRM gotchas

High

Add-on cost stacking inflates the headline price

Medium

Custom fields and workflows are tier-gated

High

IVR call logs and WhatsApp conversations do not export via CSV

Low

No publicly documented API rate limits or bulk endpoints

Medium

Record limits vary by plan tier

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

  • IVR call logs and WhatsApp conversations do not export via CSV

    RSoft's standard CSV export covers Leads, Contacts, Companies, Deals, and Tickets, but IVR call recordings and WhatsApp message threads are stored in RSoft-specific modules that do not appear in the export. Teams migrating from RSoft lose call recording audio and WhatsApp message history unless those modules are migrated separately via file transfer. We identify the gap count during the scoping call, extract IVR call metadata (duration, disposition, timestamp, caller number) as a CSV supplement where available, and transfer attachment files independently if the customer requests it. WhatsApp message threads require a separate extraction approach because RSoft does not expose them via any documented export endpoint.

  • Custom fields exceeding the 5-field tier limit are absent from export

    Standard and Advanced RSoft plans cap custom fields at 5. Any migration mapping that exceeds those limits will silently omit the excess fields from the CSV export. We audit the customer's RSoft plan tier during discovery, extract all field and workflow names from the Settings export, and surface any that would be orphaned in the destination before the migration begins. Fields on the Customised plan export fully but must still be mapped individually to Twenty's custom field schema, which requires upfront configuration in Twenty's workspace before the first import record lands.

  • Twenty ships with minimal standard fields requiring pre-migration configuration

    Twenty's Person and Company objects intentionally ship with fewer built-in fields than enterprise CRMs. A GitHub issue (twentyhq/twenty#13953) notes that new users must spend 30-60 minutes creating basic fields before importing data from other CRMs. We configure the destination schema — adding industry, website, employeeCount, jobTitle, and other common fields to Person and Company — before any data import begins. This pre-configuration step is part of the standard migration scope and must complete before the first record loads.

  • RSoft has no publicly documented API rate limits or bulk endpoints

    RSoft does not publish API rate limits, authentication methods, or bulk export endpoints in public documentation. We rely on CSV export for data extraction, which requires manual ordering (Companies before Contacts before Deals) to preserve relationships. If the customer needs automated recurring migration, we flag the API documentation gap and recommend a custom integration approach or a webhook-based event pipeline for future data feeds. For Twenty, the GraphQL API is well-documented and supports batch queries, but the destination is not the constraint in this migration pair.

  • RSoft's conflicting pricing pages require a live quote for accurate cost modeling

    RSoft's own website contains at least two conflicting pricing pages — a main pricing page and a standard pricing page — with different tier names, per-user prices, and minimum user counts. Third-party aggregators list yet another set of prices. We use the customer's actual signed contract values for scoping. Any discrepancy between what the customer believes they pay and what RSoft invoices is surfaced as a billing risk before the migration contract is finalized.

Migration approach

Six steps for a successful RSoft CRM to Twenty CRM data migration

  1. Discovery and RSoft export audit

    We audit the customer's RSoft portal across plan tier, object counts (Leads, Contacts, Companies, Deals, Tickets, Activities), custom field inventory, active workflows, and attachment volume. We verify the plan tier against the contract because custom field limits and record caps differ across Standard, Advanced, Enterprise, and Customised. We extract the CSV exports in dependency order (Companies, then Contacts, then Leads, then Deals, then Tickets) and flag any objects approaching RSoft's 25,000 or 50,000 record limits. We identify IVR call log and WhatsApp conversation gaps and present the customer with a file-transfer option for orphaned attachment data.

  2. Twenty schema design and configuration

    We configure the Twenty destination workspace before any data import. This includes adding standard fields (industry, website, phone type, jobTitle, department) to Person and Company that RSoft ships natively; configuring pipeline stages and probabilities to match the RSoft pipeline model; setting up custom fields to absorb RSoft custom field data beyond the 5-field tier cap; and designing the custom object schema if the customer uses RSoft custom objects on the Customised plan. Schema configuration uses Twenty's GraphQL /metadata API, deployed into the customer's Twenty workspace before the first CSV import.

  3. Mapping document and migration order specification

    We produce a written mapping document that specifies the CSV column-to-Twenty field mapping for every object, the custom field transformation logic, the tag deduplication strategy, the owner email-to-workspaceMember lookup table, and the exact load order. The mapping document is reviewed and signed off by the customer's admin before any migration run begins. This document also includes the workflow inventory: every RSoft workflow trigger, condition, and action is documented for rebuild in Twenty's workflow engine.

  4. Sandbox migration and reconciliation

    We run a full migration into a Twenty staging workspace using production-like data volume. The customer reconciles record counts, spot-checks 20-30 random records against the RSoft source, and signs off the mapping and schema before production migration begins. Any field mapping corrections, missing custom fields, or pipeline stage adjustments happen here. We do not proceed to production migration until the sandbox reconciliation report is approved.

  5. Owner and user provisioning in Twenty

    We extract every distinct RSoft user referenced on Contacts, Leads, Deals, and Tickets and match by email against the Twenty workspace members. Any RSoft owner without a matching Twenty workspace member goes to a reconciliation queue. The customer's admin provisions any missing workspace members (active or inactive depending on whether the original RSoft user is still with the team). Migration cannot proceed past record import because OwnerId references on Opportunities and Tasks must resolve at insert time.

  6. Production migration in dependency order

    We run production migration in record-dependency order: Companies (first, so Account records exist for Person lookups), Persons (from Contacts and Leads), Opportunities (from Deals with stage and probability mapped), Tasks (from Activities with type preserved), and Tickets (as Tasks with custom status fields). Each phase emits a row-count reconciliation report before the next phase begins. Attachments are transferred in parallel via file transfer and linked to the correct parent records after the record migration completes.

  7. Cutover, validation, and workflow handoff

    We freeze RSoft writes during the cutover window, run a final delta migration of any records modified during the migration window, then mark Twenty as the system of record. We deliver the workflow inventory document to the customer's admin team with recommended equivalents in Twenty's workflow engine. We support a one-week hypercare window where we resolve any reconciliation issues. We do not rebuild RSoft workflows as Twenty workflows inside the migration scope; that is a separate engagement or an internal admin task.

Platform deep dives

Context on both ends of the pair

RSoft CRM logo

RSoft CRM

Source

Strengths

  • AI-based lead scoring and auto-follow-up reduces manual nurturing work for sales reps.
  • Bundled WhatsApp, IVR, and autodialer in one platform eliminates separate telephony subscriptions.
  • Real estate-specific feature set with 12+ years of domain automation built in.
  • Multilingual support desk covering English, Tamil, and Hindi for Indian operations.
  • Free tier available for small teams to validate fit before committing to paid plans.

Weaknesses

  • Pricing opacity — add-on stacking (IVR, WhatsApp, autodialer) can triple the effective per-user cost.
  • Limited API documentation makes programmatic export and migration harder to automate.
  • G2 reviews cite frequent email delivery issues and inbox scattering as ongoing pain points.
  • Custom field and workflow caps on lower tiers restrict data model flexibility.
  • Email conversation history and IVR call logs do not export cleanly via standard CSV.
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?

Moderate CRM migration. 4 of 8 objects need a mapping; the rest are 1:1.

C

Overall complexity

Moderate migration

Derived from compatibility, mapping clarity, API constraints, and data volume across RSoft CRM and Twenty CRM.

  • Object compatibility

    C

    4 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

    RSoft CRM: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

Walk through your RSoft CRM 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 and 3,000 Deals with no custom objects and a clean CSV export. Migrations with custom objects, large activity histories (over 200,000 records), or complex pipeline structures move to five to ten weeks because of Twenty schema pre-configuration time, bulk attachment transfer, and the sandbox reconciliation step.

Adjacent paths

Related migrations to explore

Ready when you are

Move from RSoft CRM.
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