CRM migration

Migrate from CRM Runner to Twenty CRM

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

CRM Runner logo

CRM Runner

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

67%

8 of 12

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

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from CRM Runner to Twenty CRM is a platform-type transition as much as a data migration. CRM Runner bundles field-service operations (Jobs, Team Members, GPS tracking, dispatch) with CRM primitives; Twenty CRM is a self-hosted, open-source sales CRM with a Company-People-Opportunity model and no built-in field-service primitives. We map CRM Runner Contacts to Twenty People, Companies to Companies, and Jobs to Opportunities, but we flag that Jobs include time entries, location data, and team assignments that do not map to a standard Twenty CRM object. Team Members map to Twenty workspace Members, but CRM Runner role and permission levels require manual rebuild in Twenty. Communications history (calls, SMS, in-app chat) migrates as Note records attached to the People record. We do not migrate IFTTT automations, payments, or the digital catalog; these are documented separately for your admin to handle. The lack of a documented API on CRM Runner means extraction is UI-assisted rather than programmatic, which extends scoping timelines but does not prevent 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

CRM Runner logo

CRM Runner

What's pushing teams away

  • Setup requires significant configuration time — the platform's broad feature set means more decisions to make before data is usable.
  • Reviews mention the learning curve for configuring workflows and permissions, particularly for teams without a dedicated admin.
  • Limited documentation and API visibility make it harder for technical teams to extend or integrate the platform beyond its built-in options.
  • As the business scales beyond 20–30 users, the fixed-seat model becomes less competitive versus CRMs with volume discounts or tier-based feature gating.

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

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

CRM Runner

Contact

maps to

Twenty CRM

People

1:1
Fully supported

CRM Runner Contacts map directly to Twenty CRM People. The CRM Runner contact record (name, email, phone, address, and any custom fields) migrates as a People record. Email becomes the dedupe key during import. CRM Runner custom fields on contacts pre-exist in Twenty as custom fields on the People object. If CRM Runner contacts are linked to a Company record, we preserve the link by resolving the company name to the Twenty CRM Company record via the CRM Runner company_id foreign key.

CRM Runner

Company

maps to

Twenty CRM

Company

1:1
Fully supported

CRM Runner Company records map 1:1 to Twenty CRM Company. The CRM Runner domain field (if present) becomes the Twenty CRM website field. Company name is the dedupe key. Company records must import before People records so that the People-to-Company relationship is satisfied at the moment of People insert. Any CRM Runner custom fields on Company migrate as Twenty CRM custom fields created under Settings Data Model before import.

CRM Runner

Job

maps to

Twenty CRM

Opportunity

1:many
Fully supported

CRM Runner Jobs are the most complex migration object because they combine field-service work order data (location, assigned team members, status, time entries) with what functions as a deal record in a sales CRM. We map Jobs to Twenty CRM Opportunity with the CRM Runner job title becoming the Opportunity name, job status mapped to Opportunity stage values, and estimated or actual amounts carried as Opportunity amount fields. The location and assigned team member data does not have a native Twenty CRM equivalent; we preserve these as Note records attached to the Opportunity and flag them for manual rebuild if they drive workflow logic.

CRM Runner

Team Member

maps to

Twenty CRM

WorkspaceMember

1:1
Fully supported

CRM Runner Team Members map to Twenty CRM Workspace Members. We extract role, department, and permission level from CRM Runner and migrate these to Twenty CRM member roles under Settings Members. CRM Runner GPS tracking and time-clock features have no equivalent in Twenty CRM; we export this as a separate data package and flag it as outside CRM scope. Permission level rebuild is manual because Twenty CRM's role permissions are structured differently from CRM Runner's permission tiers.

CRM Runner

Communications (Calls, SMS, Chat)

maps to

Twenty CRM

Note

1:many
Mapping required

CRM Runner embeds call logs, SMS threads, and in-app chat as discrete communication records attached to contacts or jobs. We flatten these into Note records in Twenty CRM, one Note per communication event. The Note body carries the communication type (call/SMS/chat), timestamp, direction (inbound/outbound), and content. We link each Note to the corresponding People record in Twenty CRM. This loses CRM Runner's threading model for SMS but preserves the full communication history in an accessible format.

CRM Runner

Task

maps to

Twenty CRM

Task

1:1
Fully supported

CRM Runner Tasks migrate directly to Twenty CRM Task records. Due date, assignee (resolved via Team Member mapping), status, and description carry over. Task assignment in Twenty CRM uses the WorkspaceMember lookup; we resolve CRM Runner assignee references via the Team Member mapping to ensure the assignee is a valid Twenty CRM WorkspaceMember at migration time.

CRM Runner

Time Entry

maps to

Twenty CRM

(External Export Package)

1:1
Fully supported

CRM Runner time entries (clock-in/clock-out records tied to Team Members and Jobs) do not map to a standard Twenty CRM object. Twenty CRM has no time-tracking module. We export time entries as a separate CSV package with fields for employee, job reference, date, clock-in time, clock-out time, and duration. This package is delivered alongside the main migration for import into a dedicated time-tracking or payroll tool.

CRM Runner

Pipeline

maps to

Twenty CRM

Opportunity Stage

lossy
Fully supported

CRM Runner pipeline stages migrate as Twenty CRM Opportunity stage values. We capture the stage name, order, and probability percentage from CRM Runner and configure the corresponding stage in Twenty CRM under Settings Opportunities before migration. Custom stage logic (conditional routing, auto-close rules) does not migrate and is documented for manual rebuild.

CRM Runner

Custom Field (Contacts, Companies, Jobs)

maps to

Twenty CRM

Custom Field (People, Company, Opportunity)

lossy
Fully supported

CRM Runner custom fields on Contacts, Companies, and Jobs require pre-creation in Twenty CRM before data import. We extract all custom field definitions during scoping (field name, type, options for picklists, required vs optional), create the equivalent Twenty CRM custom fields under Settings Data Model before migration begins, and map the source field values during the import phase. Fields with no equivalent type in Twenty CRM (e.g., CRM Runner-specific field-service field types) are flagged for review.

CRM Runner

Payment / Transaction

maps to

Twenty CRM

(External Export Package)

1:1
Fully supported

CRM Runner payment and transaction records are embedded within Jobs or Contacts and are accounting-adjacent. Twenty CRM has no native payment or accounting module. We extract payment records as a separate CSV package with fields for customer, job reference, amount, payment method, date, and status. This package is delivered alongside the main migration for import into a dedicated accounting or bookkeeping tool.

CRM Runner

IFTTT Automation

maps to

Twenty CRM

(Written Specification Document)

1:1
Fully supported

CRM Runner IFTTT-style automations are not migratable. The platform's trigger-action logic is configured through a proprietary interface with no documented export path. We document every active automation we identify during discovery as a written specification: trigger type, conditions, actions, and recommended Twenty CRM equivalent (manual action or workflow rule if applicable). The customer's admin uses this document to rebuild automations post-migration. This is not included in the standard migration timeline.

CRM Runner

Digital Catalog / QR Codes

maps to

Twenty CRM

(Not Migrated)

1:1
Not supported

CRM Runner product catalog entries and QR code configurations are platform-specific display assets with no standard CRM equivalent in Twenty CRM. These must be rebuilt in Twenty CRM or a separate product management tool. We do not include them in the 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.

CRM Runner logo

CRM Runner gotchas

High

No free trial and immediate billing on subscription

High

No publicly documented API or export endpoints

Medium

IFTTT automations must be manually rebuilt post-migration

Medium

Time entries and payment data require separate export treatment

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

  • CRM Runner has no documented API for data extraction

    CRM Runner does not publish API documentation, a developer portal, or bulk export endpoints. All data extraction must be performed via UI-assisted methods, which is slower than API-based migration but fully feasible for the supported object types. We extract data by working with CRM Runner's built-in export functions and structured data views during the scoping phase. This extends scoping timelines by one to two weeks compared to API-based migrations but does not prevent any supported object from being migrated. We recommend requesting a data sample during any pre-sale evaluation of CRM Runner before committing to a subscription.

  • Jobs require a non-trivial model split in Twenty CRM

    CRM Runner Jobs combine field-service work order data (location, assigned technician, job status, time entries, photos) with what functions as a deal in a sales CRM (customer, amount, pipeline stage). Twenty CRM Opportunity has no native location, technician assignment, or time-tracking fields. We map Job title, customer, amount, and stage to Twenty CRM Opportunity fields, but the field-service specifics (location, assigned technician, time entries) are extracted as Note records attached to the Opportunity or as a separate export package. If your team relies on Job location and technician data for operational reporting, plan time to rebuild this view in Twenty CRM or a field-service companion tool.

  • IFTTT automations must be manually rebuilt post-migration

    CRM Runner's automation logic (trigger-action workflows for lead routing, follow-up reminders, status changes, and internal alerts) has no documented export or migration path. We document every active automation during discovery as a written specification including trigger type, conditions, and actions. The customer's admin rebuilds these in Twenty CRM using Twenty's workflow rules or manually. This is a post-migration implementation step outside the standard migration timeline and not included in standard migration pricing.

  • Custom fields must exist in Twenty CRM before import

    Twenty CRM requires custom fields to be created under Settings Data Model before any data import; the CSV import creates records, not fields. We extract all CRM Runner custom field definitions (field name, type, picklist options, required flag) during scoping and create the equivalent Twenty CRM custom fields before migration begins. Fields that do not have a direct type equivalent in Twenty CRM (e.g., CRM Runner-specific field types) are flagged for review. This pre-creation step adds a configuration phase to the migration timeline.

  • Communication threading does not survive migration

    CRM Runner's SMS and in-app chat store threaded conversations (grouped by contact and date). We flatten these into discrete Note records in Twenty CRM, one per communication event. The chronological sequence and content are preserved, but the threaded grouping UI in Twenty CRM will not match CRM Runner's threading display. Call recording URLs stored in CRM Runner communications also require manual re-linkage in Twenty CRM if the recordings are hosted externally.

Migration approach

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

  1. Discovery and scoping

    We conduct a structured discovery with the customer's CRM Runner instance, extracting all supported object types (Contacts, Companies, Jobs, Team Members, Tasks, Communications, Pipelines, Custom Fields) via UI-assisted methods. We document record counts, custom field definitions, pipeline stage names, active automations, and any embedded data (time entries, payments) that requires separate export treatment. We also assess data quality: duplicate records, outdated contacts, and test data that should be archived rather than migrated. The discovery output is a written migration scope and a data retention recommendation.

  2. Target schema preparation in Twenty CRM

    We create the destination schema in Twenty CRM before any data import. This includes creating custom fields on People, Company, and Opportunity to match CRM Runner's custom field definitions; configuring Opportunity stage values to match CRM Runner pipeline stages with probability percentages; setting up Twenty CRM Workspace Members and roles to match the CRM Runner Team Member structure; and creating any custom objects required for domain-specific records. Schema creation happens in the customer's Twenty CRM instance (Sandbox if available, Production if not). Fields must exist before import; we do not create fields during the import phase.

  3. Data extraction and transformation

    We extract data from CRM Runner in dependency order: Companies first (as the parent object for People), then People (with company linkage resolved via company name or CRM Runner company_id), then Team Members (as Workspace Members in Twenty), then Jobs (as Opportunities with field-service specifics extracted to Notes), then Tasks, then Communications (as Notes). Embedded time entries and payment records are extracted as separate CSV packages for payroll and accounting tools. We apply transformation rules during extraction: CRM Runner date formats normalized to ISO 8601, phone numbers stripped of formatting, custom picklist values mapped to Twenty CRM picklist options.

  4. Import sequencing and reconciliation

    We import into Twenty CRM in strict dependency order: Companies, then People (linked to Companies), then Workspace Members (Team Members), then Opportunities (Jobs linked to People and Workspace Members), then Tasks, then Notes (Communications). Each import phase emits a row-count reconciliation report. We validate 25-50 records per object against the CRM Runner source, checking field-level accuracy and relationship integrity. Corrections are applied to the transformation scripts before the next phase begins. Any unmapped fields are documented for review.

  5. Parallel operation and cutover planning

    We recommend running CRM Runner and Twenty CRM in parallel during the migration window. CRM Runner remains the system of record while data migrates; the team continues working in CRM Runner. During parallel operation, we coordinate a cutover date with the customer's admin, during which new records created in CRM Runner after the final migration delta are migrated to Twenty CRM before cutover. We recommend scheduling cutover during off-peak hours with a one-hour freeze window. CRM Runner can remain accessible read-only post-cutover for reference if needed.

  6. Delivery and automation handoff

    We deliver the migration artifacts: the Twenty CRM instance with all migrated records, a data quality report (record counts, duplicate summary, unmapped fields), separate export packages for time entries and payment records, and the written automation specification document for manual rebuild in Twenty CRM. We conduct a validation session with the customer's admin to spot-check migrated records and confirm relationship integrity. We do not rebuild CRM Runner automations as Twenty CRM workflow rules within the migration scope; that work is handled separately by the customer's admin or a Twenty CRM implementation partner.

Platform deep dives

Context on both ends of the pair

CRM Runner logo

CRM Runner

Source

Strengths

  • Fixed 10-user base price simplifies budgeting for small teams versus per-seat scaling.
  • All-in-one platform consolidates field service, CRM, communications, and payments under one vendor relationship.
  • Built-in VoIP and SMS keep communication history attached to contact records without third-party integration.
  • GPS tracking and time-clock features are included for field-workforce management without add-on costs.
  • Online booking generates leads directly into the CRM pipeline, reducing manual entry friction.

Weaknesses

  • No publicly documented API limits or endpoints, making programmatic migration and ongoing integration speculative.
  • IFTTT-style automations are not exportable or migratable — all workflow logic must be manually rebuilt in the destination.
  • Setup and configuration complexity is a recurring theme in reviews, suggesting the platform rewards careful initial planning.
  • No free tier and no trial period — billing starts immediately upon subscription, increasing commitment risk.
  • Custom field and pipeline configuration lacks the flexibility of established CRMs like HubSpot or Salesforce.
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. 2 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 CRM Runner and Twenty CRM.

  • Object compatibility

    B

    2 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

    CRM Runner: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

Walk through your CRM Runner 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 three and five weeks for accounts under 5,000 Contacts and 2,000 Companies with no custom objects and straightforward pipeline stages. Migrations with custom fields on multiple objects, large communication histories (over 200,000 embedded call/SMS records), or Job time-entry extraction requiring a separate export package move to eight to twelve weeks. CRM Runner's lack of a documented API adds one to two weeks to the scoping phase compared to API-based migrations, but does not prevent any supported object from being migrated.

Adjacent paths

Related migrations to explore

Ready when you are

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