CRM migration

Migrate from Propeller CRM to Twenty CRM

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

Propeller CRM logo

Propeller CRM

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

80%

8 of 10

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

Complexity

CModerate

Timeline

2-3 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Propeller CRM to Twenty CRM is an archive reconstruction project, not a live-API migration. Propeller shut down permanently on December 15, 2019, and the export request window closed February 15, 2020. We receive whatever Propeller archive the customer preserved from that window, audit its completeness, and map the surviving records to Twenty's object model (People, Company, Opportunity, Pipeline). The migration requires parent-record ordering since Contacts must exist before Company lookups resolve, and Deals must exist before Pipeline stage assignments attach. Email campaign records migrate as reference notes. We do not migrate workflows, sequences, or activity logs because Propeller's Gmail extension did not expose those in the standard shutdown export. Post-migration, the customer rebuilds any Propeller automation patterns inside Twenty's workflow builder.

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

Propeller CRM logo

Propeller CRM

What's pushing teams away

  • Reporting functionality was consistently cited as underdeveloped — customers wanted more granular pipeline analytics and exportable dashboard views.
  • Propeller CRM ceased operations on December 15, 2019, leaving hundreds of customers without a platform and forcing urgent migration to alternatives.
  • The platform lacked enterprise-scale features, making it unsuitable as teams grew beyond the small-business segment it was designed for.
  • Contact and deal volumes were uncapped on the single tier, but the absence of advanced segmentation or custom objects frustrated more complex sales processes.

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

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

Propeller CRM

Contact

maps to

Twenty CRM

People

1:1
Fully supported

Propeller Contact records map directly to Twenty People. We extract name, email, phone, job title, and company association from the archive. The company_name field in Propeller's export resolves to a Company record in Twenty by name match. Contacts without a valid email are flagged as incomplete and require customer review before import. Any contacts that were orphaned in Propeller's export (no associated company) are held in a separate queue with a null Company assignment pending confirmation.

Propeller CRM

Company

maps to

Twenty CRM

Company

1:1
Fully supported

Propeller Company records map to Twenty Company. We extract company name, domain, phone, address, and industry. Multiple Propeller Contacts referencing the same company name resolve to a single Twenty Company record. If the archive contains duplicate company names with slight variations (e.g., 'Acme Corp' and 'Acme Corporation'), we flag them for dedupe review before import.

Propeller CRM

Deal

maps to

Twenty CRM

Opportunity

1:1
Fully supported

Propeller Deal records map to Twenty Opportunity. We extract deal name, amount, stage, owner, contact association, and created/updated timestamps. The deal's associated Contact resolves to the Twenty People record via email match. Owner assignment resolves by email against the User mapping. Open deals and closed-won deals migrate with their original amounts; closed-lost deals migrate at customer discretion based on whether historical loss data has reporting value.

Propeller CRM

Pipeline Stage

maps to

Twenty CRM

Pipeline Stage

lossy
Fully supported

Propeller's custom pipeline stage names migrate as Twenty Pipeline stage values. The archive preserves stage names but not stage ordering. We ask the customer to confirm the intended stage sequence during scoping and configure Twenty's Pipeline stages in that order. Stages with no clear semantic equivalent in Twenty (e.g., 'verbal yes', 'awaiting finance') require customer placement decision.

Propeller CRM

Email Campaign

maps to

Twenty CRM

Note (reference record)

1:1
Fully supported

Propeller Email Campaign records (campaign name, associated contacts, send date, status) migrate as Note records attached to the relevant Company or People in Twenty. Campaign content and templates do not migrate as functional email templates because Twenty does not have a native campaign automation feature. The customer documents campaign history for reporting reference.

Propeller CRM

Email Template

maps to

Twenty CRM

Note (reference record)

1:1
Fully supported

Propeller email templates with merge fields migrate as Note records in Twenty for reference. The template body and field names are preserved as plain text. Twenty does not have a native template-migration pathway; the customer uses the template text as a reference when creating new templates in Twenty or an integrated email tool.

Propeller CRM

Owner/User

maps to

Twenty CRM

WorkspaceMember

1:1
Fully supported

Propeller user accounts mapped to contacts and deals by email address. We extract all distinct owner emails and attempt to match them against the Twenty workspace members. If a Propeller owner email has no corresponding Twenty user, we create a placeholder WorkspaceMember record with the email and flag it for the customer to activate or reassign. Owners whose original Propeller accounts were inactive at shutdown require the customer to decide on reassignment targets.

Propeller CRM

Activity Log

maps to

Twenty CRM

None

1:1
Fully supported

Activity logs (opens, clicks, replies, meeting scheduling) were tracked inside Propeller's Gmail extension as live activity data but were not included in the shutdown data export. We cannot reconstruct per-contact activity timelines from the archive. This gap is documented explicitly during scoping. No activity data migrates.

Propeller CRM

Workflow/Automation

maps to

Twenty CRM

None

1:1
Fully supported

Propeller workflow and automation rules do not exist as exportable records. Even during the live platform period, Propeller's automation logic was not exposed via API or data export. We do not attempt to reconstruct automations. We deliver a written record of any automation descriptions the customer documented externally (e.g., in support tickets or internal notes) as a reference for manual rebuild in Twenty's workflow builder.

Propeller CRM

Custom Field (if any)

maps to

Twenty CRM

Custom Field

lossy
Fully supported

Propeller did not support custom field creation on standard objects. If the customer's export contains any custom fields or extended properties that Propeller added in a later update or via an undocumented feature, we treat them as text fields in Twenty and flag them for the customer to configure with the correct field type in Settings → Data Model before final import.

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.

Propeller CRM logo

Propeller CRM gotchas

High

Platform shutdown — no active API or support

High

Activity history not included in standard export

Medium

Deal stage mapping requires manual review

Medium

Owner/user assignment requires remapping

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

  • No live Propeller API — migration depends entirely on archive quality

    Propeller CRM shut down on December 15, 2019, and the data request window closed February 15, 2020. There is no live API, no admin console, and no support team to contact. We work exclusively from whatever export the customer preserved during that window. If the customer did not request an export, their data may no longer exist. We audit the archive's completeness on receipt and flag missing objects (especially Activities) before any migration work begins.

  • Activity history permanently unavailable from Propeller's export

    Propeller tracked opens, clicks, replies, and meeting events as live activity logs inside its Gmail extension, but these were not included in the shutdown export package. We import Contacts, Deals, Companies, Pipeline Stages, and Email Campaigns, but the detailed per-contact activity timeline is gone. We document this gap explicitly in the scoping report and do not promise complete activity migration. The customer's reporting will be limited to what was captured in deal and contact fields, not behavioral history.

  • Pipeline stage order lost in Propeller's export

    Propeller allowed fully custom pipeline stage names, but the export preserved only the names, not the stage ordering logic. Customers who created stages with non-standard names (e.g., 'Pending Docs', 'verbal yes') cannot reconstruct the original sequence from the archive. We ask the customer to confirm stage order during scoping and configure Twenty's Pipeline accordingly. Stages that have no clear equivalent in Twenty require customer placement decision before import.

  • Owner assignments may reference inactive or absent users

    Propeller user accounts were tied to individual email addresses. If a team member left before the export was requested, their deal and contact assignments cannot log in to re-assign in the destination. We map all known owner emails during import and create placeholder WorkspaceMember records in Twenty, flagging any assignments where the owner email has no corresponding user. The customer decides whether to reactivate, reassign, or leave those records unassigned.

  • Twenty's self-hosted option requires infrastructure setup

    Twenty CRM offers a free self-hosted option (PostgreSQL, Docker) alongside paid hosted tiers. If the customer chooses self-hosting, the migration assumes the Twenty instance is already provisioned and accessible via API before data import begins. We do not set up the Twenty infrastructure. For customers using twenty.com's hosted service, we migrate directly to the API. This distinction affects the migration's first step and is confirmed during discovery.

Migration approach

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

  1. Archive receipt and completeness audit

    The customer shares the Propeller CRM export archive (CSV, JSON, or whatever format was produced at shutdown). We audit the archive for all supported objects: Contacts, Companies, Deals, Pipeline Stages, Email Campaigns, Email Templates, and Owners. We confirm row counts per object, identify any missing objects or truncated fields, and flag the Activity Log gap. The audit output is a written completeness report that forms the basis of the migration scope and the customer sign-off before work begins.

  2. Twenty workspace provisioning verification

    We confirm that Twenty is provisioned and accessible via its GraphQL or REST API. For self-hosted instances, the customer provides the instance URL and API credentials. For hosted twenty.com accounts, we connect to the workspace API directly. We verify that the Twenty workspace has the required objects (People, Company, Opportunity, Pipeline) and that the customer has configured any custom fields or custom objects needed for the migration. We do not provision the Twenty instance itself.

  3. Schema mapping and stage order confirmation

    We create a written mapping document that pairs each Propeller object with its Twenty equivalent, documents field-level transformations (date formats, phone number normalization, name parsing), and lists the Pipeline stage names with a request for confirmed ordering. The customer reviews and approves the mapping before any data loads. During this step, we also reconcile owner emails against Twenty workspace members and identify any unresolved owner assignments.

  4. Parent-record import in dependency order

    We import data in record-dependency order to satisfy foreign-key constraints. Companies load first (as Twenty Company records). People load second with Company lookups resolved by name match. Opportunities load third with People lookups resolved by email and Pipeline stages assigned by name. Email Campaigns and Templates load as Note records attached to the relevant Company or People. Each phase emits a row-count reconciliation report before the next phase begins. Any records that fail validation (missing required fields, unmatched lookups) are held in an error queue for customer review.

  5. Validation and orphaned record reconciliation

    We run reconciliation checks across all imported objects: Contact count matches Propeller export, Company count matches unique company names, Deal count matches Propeller export, and Owner assignments are verified. Orphaned contacts (no Company lookup), orphaned deals (no People lookup), and unassigned owner records are documented in a reconciliation report for the customer to resolve. The customer makes final decisions on reassignment targets and dedupe choices before production cutover.

  6. Production cutover and automation handoff

    We freeze the Propeller archive (no further writes possible since the platform is defunct) and run a final delta reconciliation if any records were added during scoping. We enable Twenty as the system of record. We deliver the automation handoff document listing any Propeller automation patterns documented in the export or customer notes, with recommended equivalents in Twenty's workflow builder. We do not rebuild automations inside the migration scope. We support a one-week post-cutover window for data discrepancy resolution.

Platform deep dives

Context on both ends of the pair

Propeller CRM logo

Propeller CRM

Source

Strengths

  • Gmail-deep integration via Chrome extension eliminated context switching between inbox and CRM.
  • Single-tier pricing included all features — no upgrade gating for automation or reporting.
  • Lightweight setup meant small teams were operational within hours, not weeks.
  • Email tracking and automated follow-up sequences ran from inside the inbox without separate tools.
  • Pipeline visualization gave small sales teams a clear view of deal progress without enterprise complexity.

Weaknesses

  • Reporting was consistently described as limited — basic dashboard views with no advanced filtering or exportable analytics.
  • The platform shut down permanently in December 2019, leaving no active product, support, or API.
  • No mobile app beyond responsive web — field sales teams without laptop access had no native mobile experience.
  • Custom objects and advanced field types were not supported, making it unsuitable for complex data models.
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. 1 of 8 objects need a manual workaround.

C

Overall complexity

Moderate migration

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

  • Object compatibility

    C

    1 of 8 objects need a manual workaround.

  • 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

    Propeller CRM: Not applicable — platform shut down December 15, 2019.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Migrations with clean, well-structured Propeller exports typically complete in two to three weeks. Complex migrations where the archive requires orphaned-record reconstruction, duplicate company resolution, or extensive deal stage mapping extend to four to eight weeks. Timeline depends primarily on the archive's condition and the customer's responsiveness during the stage-order and owner-reconciliation steps.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Propeller 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