CRM migration

Migrate from Kordeva to Twenty CRM

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

Kordeva logo

Kordeva

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

100%

10 of 10

objects map 1:1 between Kordeva and Twenty CRM.

Complexity

BStandard

Timeline

2-3 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Kordeva to Twenty CRM is a migration from a niche bundled platform to an open-source Salesforce alternative with a developer-first data model. Kordeva exposes a Custom Fields API for extended resource attributes but lacks published documentation for bulk export endpoints or activity history retrieval, which constrains what we can migrate programmatically. We handle this constraint by running a connectivity test during discovery: if the API confirms read access to contacts, companies, deals, and activities, we use structured extraction with batch chunking; if not, we fall back to CSV export which captures standard fields but may omit custom field values and historical activity records. Twenty's runtime Data Model lets us recreate Kordeva's custom field definitions as typed Twenty fields in Settings before import, preserving the extended attribute schema. We do not migrate Intelligent Workflow (Premium tier) or In-Depth Reporting; we deliver a written inventory of these for the customer's admin to rebuild in Twenty's workflow builder 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

Kordeva logo

Kordeva

What's pushing teams away

  • The CRM market is crowded with better-known alternatives like HubSpot, Zoho CRM, and Pipedrive that have larger review communities and more third-party integrations.
  • Only one verified G2 review exists for Kordeva CRM, making it difficult for prospective buyers to assess real-world performance and support quality.
  • Kordeva lacks visible public documentation on API rate limits, endpoint specifications, and bulk export capabilities, raising concerns for teams needing programmatic data access.
  • The bundled feature set (CRM, campus management, call center) may represent unnecessary complexity for teams that only need a standalone CRM.

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

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

Kordeva

Contact

maps to

Twenty CRM

People

1:1
Fully supported

Kordeva Contact records map directly to Twenty People. Standard fields (name, email, phone, address) map to their Twenty equivalents. We preserve any custom contact-level attributes from Kordeva's Custom Fields API by creating matching custom fields in Twenty's Settings Data Model before import. The People record is the first migrated object because Twenty's Company-People relationship requires People to exist before the Company lookup can be resolved.

Kordeva

Company

maps to

Twenty CRM

Company

1:1
Fully supported

Kordeva Company records map to Twenty Company. The company domain name maps to the Website field and is used as the dedupe key during import. We create all Companies before importing People so that the People-Company relationship is satisfied at import time. Custom company-level attributes from the Kordeva Custom Fields API carry through as Twenty custom fields.

Kordeva

Deal

maps to

Twenty CRM

Opportunity

1:1
Fully supported

Kordeva Deal records map to Twenty Opportunity. The deal stage maps to Twenty's Opportunity stage values. Pipeline layout (stage-to-stage mapping) requires customer review during scoping since Kordeva's pipeline configuration is not exposed via documented API. We use the customer's stated stage order to configure the Twenty Opportunity pipeline before import.

Kordeva

Activity (Call, Email, Meeting, Task)

maps to

Twenty CRM

Task and Note

1:1
Fully supported

Kordeva Activity records (calls, emails, meetings, tasks) log against contacts and deals. We export the full activity history and map call and meeting activities to Twenty Task records (with Task type differentiated via a custom field), and email records to Note records linked to the correct People or Opportunity. The mapping type is 1:1 but depends on API confirmation of activity retrieval since Kordeva's activity export endpoints are not publicly documented.

Kordeva

Custom Field (Contact level)

maps to

Twenty CRM

Custom Field (People object)

1:1
Fully supported

Kordeva custom fields defined on the Contact object map to Twenty custom fields on the People object. We enumerate all custom field definitions during discovery by querying the Kordeva Custom Fields API, then pre-create matching fields in Twenty's Settings Data Model with equivalent field types (text, number, date, select, multi-select) before importing any People records.

Kordeva

Custom Field (Company level)

maps to

Twenty CRM

Custom Field (Company object)

1:1
Fully supported

Kordeva custom fields defined on the Company object map to Twenty custom fields on the Company object. Same approach as Contact-level custom fields: enumerate via Kordeva Custom Fields API, create matching typed fields in Twenty Data Model, then import. Custom field values stored on existing Company records migrate as field data in the Company import.

Kordeva

Custom Field (Deal level)

maps to

Twenty CRM

Custom Field (Opportunity object)

1:1
Fully supported

Kordeva custom fields defined on the Deal object map to Twenty custom fields on the Opportunity object. We apply the same enumeration and pre-creation workflow before Opportunity import. Any deal-level custom field used for pipeline-specific tracking is flagged for the customer to configure as a Twenty custom field before migration runs.

Kordeva

Owner

maps to

Twenty CRM

Workspace Member

1:1
Fully supported

Kordeva Owner records (the user assigned to a Contact, Company, or Deal) map to Twenty workspace Members. We extract all distinct owner emails referenced across the dataset and invite them to the Twenty workspace before import. Any owner without a matching Twenty user is held in a reconciliation queue for the customer's admin to provision before the relevant records import.

Kordeva

Accounts and Invoicing

maps to

Twenty CRM

Custom Object or Note

1:1
Mapping required

Kordeva includes accounts and invoicing at the Regular tier. Invoice records, line items, and payment status are migratable but require field-level mapping since invoicing schemas vary significantly between platforms. We typically map invoices to a custom Invoice object in Twenty if the customer has an active billing workflow, or to Note records attached to the relevant Company if the invoice history is reference data rather than operational. This requires explicit scoping during discovery.

Kordeva

Premium Tier Workflows

maps to

Twenty CRM

Workflow

1:1
Fully supported

Kordeva Intelligent Workflow is gated to the Premium tier. Workflow configurations do not migrate; we do not rebuild Kordeva workflows as Twenty workflows. We deliver a written inventory of every active Kordeva workflow with its trigger, conditions, and actions documented for the customer's admin to rebuild in Twenty's workflow builder post-migration. This is a separate services engagement outside standard migration scope.

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.

Kordeva logo

Kordeva gotchas

High

Sparse public API documentation limits migration tooling confidence

Medium

Premium-tier feature boundary affects what data exists to migrate

Low

Single verified review on G2 creates information asymmetry

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

  • Kordeva API connectivity requires pre-migration verification

    Kordeva's Custom Fields API is documented, but bulk export endpoints for contacts, companies, deals, and activity history are not publicly specified. Before scoping, we request API credentials and run a connectivity test against the base CRM endpoints to confirm read access and response schemas. If the API confirms activity retrieval and bulk read, we use structured extraction with batch chunking. If the API is inaccessible or returns incomplete schemas, we fall back to CSV export from the Kordeva UI, which captures standard fields but may omit custom field values and historical activity records entirely. The migration scope changes materially based on this test result.

  • CSV export does not capture custom field values

    Kordeva's UI-based CSV export produces files with standard object fields only. Custom field definitions retrieved via the Custom Fields API are not included in the standard export. If API access is unavailable and we must rely on CSV, we explicitly scope out custom field values from the migration inventory and flag this data loss to the customer before proceeding. The customer can choose to accept the reduced scope or invest in API access verification before migration begins.

  • Regular tier customers have no workflows to inventory

    Kordeva separates Intelligent Workflow to the Premium tier. Teams on the Regular tier have no workflow automations in the platform to inventory. We confirm which tier the customer occupies during discovery and exclude workflow inventory from the deliverable if the Regular tier is confirmed. If Premium tier is in use, we inventory every active workflow and deliver the rebuild handoff document. This boundary affects both scope and price.

  • Activity history export is undocumented and may be incomplete

    Activity records (calls, emails, meetings, tasks) are logged against contacts and deals in Kordeva, but the API endpoints for retrieving engagement history are not publicly documented. If the connectivity test confirms activity retrieval, we export the full timeline and map each record to the correct People or Opportunity in Twenty. If retrieval fails, activity history is scoped out and the customer is notified before migration. Twenty's Timeline view is populated only by migrated records; no historical data appears without explicit extraction.

Migration approach

Six steps for a successful Kordeva to Twenty CRM data migration

  1. Discovery and API connectivity test

    We audit the source Kordeva account across tier (Regular/Premium), custom field definitions via the Custom Fields API, record counts by object, and active workflow count. We run a connectivity test against the base CRM endpoints and activity history endpoints to confirm what is programmatically accessible. We also request a manual CSV export to compare against API schema availability. The discovery output is a written migration scope that explicitly states which objects are API-accessible, which require CSV fallback, and which are out of scope.

  2. Twenty workspace configuration

    We set up the Twenty workspace before any data import. This includes creating custom fields on the People, Company, and Opportunity objects in Settings Data Model to match every Kordeva custom field definition confirmed in discovery. We configure the Opportunity pipeline with stages mapped to the customer's Kordeva deal stages. We invite all team Members to the workspace so that owner lookups resolve at import time rather than creating orphaned records.

  3. Data extraction and transformation

    If API access is confirmed, we extract contacts, companies, deals, and activities in batches using the Kordeva API with pagination handling. If API access is unavailable, we extract from CSV and flag custom field values as excluded. We transform each record using the object mapping defined in scoping: standard fields map directly, custom fields map to their Twenty equivalents, and owner emails are resolved to Twenty Member references. We deduplicate by email for People and by domain for Company.

  4. Sandbox import and reconciliation

    We run a test import into a staging Twenty instance (self-hosted Docker container or Twenty Cloud sandbox) using production-like data volume. We reconcile record counts for each object, spot-check 20-30 records against the Kordeva source for field accuracy, and validate that People-Company relationships and Opportunity-People relationships are correctly resolved. Any mapping corrections are applied before production migration begins.

  5. Production migration in dependency order

    We run production migration in record-dependency order: Members (already provisioned), Companies (first, as the anchor), People (with CompanyId resolved), Opportunities (with PeopleId and pipeline stage resolved), Activity history (Tasks and Notes via Twenty's import API with parent record resolution). Each phase emits a row-count reconciliation report before the next phase begins. We freeze Kordeva writes during the final delta migration window to capture any records modified during the migration window.

  6. Cutover, validation, and workflow rebuild handoff

    We complete the delta migration, validate record counts and relationship integrity in Twenty, and enable the workspace as the system of record. We deliver the workflow inventory document to the customer's admin team with recommended Twenty workflow equivalents documented per Kordeva workflow. We support a five-business-day hypercare window where we resolve any data integrity issues raised by the customer's team. Workflow rebuild in Twenty is a separate engagement handled by the customer's admin or a Twenty implementation partner.

Platform deep dives

Context on both ends of the pair

Kordeva logo

Kordeva

Source

Strengths

  • Bundles CRM, call center, and campus management in one vendor relationship.
  • Includes accounts and invoicing at the base tier without requiring a separate accounting tool.
  • Custom Fields API enables programmatic access to extended resource attributes.
  • Intelligent Workflow and In-Depth Reporting available on Premium tier.
  • Regular IT Support included across all tiers.

Weaknesses

  • Extremely limited public review presence with only one verified G2 review on record.
  • API documentation is sparse; no public rate limit specifications or bulk export endpoints found.
  • Campus Management and Call Center modules are separate product lines that may not integrate deeply with the CRM core.
  • Competitor research (TrustRadius) lists Kordeva alongside much larger CRM vendors, suggesting it occupies a niche position without comparable market traction.
  • No public pricing page found in the research data, making cost comparison difficult.
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 Kordeva 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

    Kordeva: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

Walk through your Kordeva 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 three weeks for accounts under 10,000 People and 2,000 Opportunities with clean standard fields and confirmed API access. Migrations with extensive custom field definitions, large activity histories (over 100,000 records), or accounts on the Regular tier with no Premium workflows move to four to six weeks because of data audit scope, Twenty Data Model configuration time, and reconciliation testing. Migrations requiring CSV fallback due to inaccessible API endpoints may take less time on extraction but result in reduced scope.

Adjacent paths

Related migrations to explore

Ready when you are

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