CRM migration

Migrate from Genoo to Twenty CRM

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

Genoo logo

Genoo

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

90%

9 of 10

objects map 1:1 between Genoo and Twenty CRM.

Complexity

BStandard

Timeline

2-4 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Genoo to Twenty CRM is a structural upgrade from a shallow, feature-gated marketing automation tool to an extensible open-source CRM. Genoo has no documented bulk export API, so we sequence multiple scoped manual exports, deduplicate across batches, and reconstruct the relationship graph (Lead-to-Campaign associations, Contact-to-Account links) using email as the join key before loading into Twenty. Twenty's standard objects (People, Companies, Opportunities) and custom objects are pre-created via API before any import begins. Genoo's lead scoring rules, landing page assets, email template HTML, and content library files are not extractable as structured data; we document each as a non-migrated asset and advise on manual or alternative handling. Workflows, automations, and Zapier integrations do not migrate; we deliver a written inventory for the customer's admin to rebuild in Twenty or reconfigure in Zapier.

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

Genoo logo

Genoo

What's pushing teams away

  • The platform has remained very small — estimated fewer than 10 employees and limited development investment — raising concerns about long-term product viability and whether it will stay supported.
  • Pricing at $199 per feature per month plus active lead fees compounds quickly for growing teams, making Genoo significantly more expensive than HubSpot's starter tier once the feature set expands.
  • No documented public API for bulk data export means customers have no reliable machine-readable way to extract their historical lead data, contact history, and campaign performance before switching.
  • The tool lacks modern capabilities that small firms increasingly expect: advanced automation branches, multi-touch attribution, native A/B testing depth, and robust analytics beyond basic open/click rates.
  • Integration options are limited to Zapier for non-Salesforce CRMs, which adds cost and latency for teams needing real-time or event-driven CRM updates.

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

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

Genoo

Lead

maps to

Twenty CRM

People

1:1
Fully supported

Genoo Leads map directly to Twenty's People object. We extract all standard lead fields (name, email, phone, company, source, status) from Genoo's manual export. During migration, we resolve the email address as the dedupe key and flag any duplicate email records for the customer to reconcile before final insert. Custom lead properties in Genoo become Twenty custom fields on the People object, pre-created via Twenty's metadata API before the import batch runs.

Genoo

Contact

maps to

Twenty CRM

People

1:1
Fully supported

Genoo Contacts (populated through landing page captures and imported lists) map to Twenty's People object using email as the dedupe key. Where Genoo and the destination both have records for the same email address, we use a source-system flag to identify the newer record and update rather than duplicate. Any contact records without an email address are held in a reconciliation queue because Twenty's People object requires an email for the primary key resolution.

Genoo

Account

maps to

Twenty CRM

Company

1:1
Fully supported

Genoo Account records map to Twenty's Company object. Genoo's Account fields are limited (company name, website, industry), so we map these to the corresponding Twenty Company fields. The domain name extracted from the email address on associated Leads and Contacts populates the Company website field where Genoo's Account record does not have one. Company is loaded before People so that the People-to-Company lookup is satisfied at insert time.

Genoo

Opportunity

maps to

Twenty CRM

Opportunity

lossy
Fully supported

Genoo Opportunities are not first-class objects — they are derived from CRM sync where the destination CRM owns the Opportunity. If the customer used Salesforce sync from Genoo, Opportunities were created in Salesforce, not Genoo. We import any Opportunity-like data the customer exported from Genoo as a CSV as a custom object in Twenty or as Opportunity records if the customer has defined an Opportunity model. We document the source structure during discovery and confirm the mapping with the customer before migration.

Genoo

Campaign

maps to

Twenty CRM

Custom Object (Campaign)

1:1
Fully supported

Genoo Campaigns (drip programs and email nurture sequences) map to a Twenty custom object named Campaign. We extract Campaign name, status, start/end dates, associated program steps, and Campaign membership links (which People enrolled in which Campaign and at what date). The Campaign membership table is the critical relationship we reconstruct using email as the join key across separate export batches.

Genoo

Campaign Membership

maps to

Twenty CRM

Custom Object (Campaign Membership)

1:1
Fully supported

Genoo Campaign membership links — which Lead enrolled in which Campaign, enrollment date, completion status — are stored as a separate table from Campaign records. We export this as a distinct batch, resolve the associated People record by email, and create a Campaign Membership custom object in Twenty with a lookup to People and a lookup to the Campaign custom object. Without this relationship, the migrated Campaign records in Twenty are orphaned enrollments.

Genoo

Landing Page / Microsite

maps to

Twenty CRM

Custom Object (Landing Page)

1:1
Fully supported

Genoo landing pages and microsites are stored as HTML template blobs with form configuration. We extract the page title, URL slug, and form field definitions as structured data into a Twenty custom object. The full rendered HTML cannot be imported as a functional page in Twenty because Twenty has no built-in page builder; we document the page URLs and form structure for the customer's admin to recreate in their chosen CMS or form tool.

Genoo

Email Template

maps to

Twenty CRM

Custom Object (Email Template Archive)

1:1
Fully supported

Genoo email templates are HTML-based with subject lines and styling. We extract the template body, subject line, and sender configuration as structured text into a Twenty custom object. Modern email builders do not accept raw HTML in the same way Genoo's template model does, so we treat these as reference documents for the customer's admin to rebuild in their chosen email platform (e.g., Klaviyo, Mailchimp, or a transactional email service). We explicitly flag that these are not live email templates post-migration.

Genoo

Event / Webinar Registration

maps to

Twenty CRM

Task

1:1
Fully supported

Event registrations in Genoo are stored as Activity-type records linked to Leads. We import registration data — event name, registration date, registration status (confirmed, waitlisted, cancelled) — as Task records in Twenty linked to the associated People record. Post-event attendance data (sessions attended, no-shows) is not available in Genoo's export and is documented as a gap requiring manual or webhook-based supplementation.

Genoo

Owner

maps to

Twenty CRM

WorkspaceMember

1:1
Fully supported

Genoo Owners (users who own Leads, Contacts, and Campaigns) map to Twenty WorkspaceMembers. We extract distinct owner email addresses from the export batches and match against the Twenty workspace's member list. If a Genoo Owner has no matching Twenty WorkspaceMember, we hold the assignment field blank and flag the record for the customer's admin to assign manually after the relevant users accept their Twenty invitations.

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.

Genoo logo

Genoo gotchas

High

No public bulk export API documented

High

Per-feature pricing model inflates costs during migration scoping

Medium

Lead scores are platform-native and not exportable

Medium

Content library assets require manual download before account closure

Low

CRM sync via Zapier only for non-Salesforce destinations

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

  • Genoo has no bulk export API — manual exports require batch sequencing

    Genoo does not publish a documented bulk API endpoint. All data extraction depends on the manual export UI, which imposes row limits per batch and separates exports by object type (Leads, Campaign members, Form data). We sequence multiple scoped exports, deduplicate by email address across batches, and reconstruct the relationship graph for import. If the customer's account has more than 10,000 records, this requires dozens of manual export runs, which must be coordinated with the customer's Genoo account holder before account closure. Any missed batch creates gaps in the Campaign membership table in Twenty.

  • Genoo's per-feature pricing inflates costs during migration scoping

    Genoo charges $199 per feature per month. Customers who need to access multiple features to extract complete data (e.g., activating drip automation to see Campaign enrollment data) immediately multiply their monthly bill during the migration window. We advise scoping all required Genoo features upfront before initiating exports, extracting all batches within a single billing cycle, and immediately pausing or downgrading to a minimal feature set after the final export to avoid an inflated final invoice from Genoo.

  • Lead scores are platform-native calculated values and cannot be exported

    Genoo's lead scoring engine calculates scores based on behavioral rules defined within the platform and displays them in the UI. These scores are not included in any export format and are not stored as discrete data fields. We do not migrate lead scores because the scoring rules and weighting factors cannot be extracted. During discovery, we document the active scoring configuration (rule names, weight values, thresholds) and advise the customer to replicate the model in Twenty using Twenty's built-in custom field formulas or a scoring tool the team selects post-migration.

  • Content library assets have no bulk download path

    Genoo's content library stores images, PDFs, and campaign files with no bulk file export API or download mechanism. We do not migrate binary assets automatically. We generate a manifest of referenced content library URLs during discovery and instruct the customer to download files manually from the Genoo UI or via a scripted browser session before the account is closed. Assets referenced in migrated email template HTML that are not pre-downloaded will appear as broken images in any platform consuming the exported HTML.

  • Twenty v1.0 Docker/Kubernetes migration failures require v2.0 or later

    GitHub issues and community reports document database migration failures on v1.0 when installing Twenty via Docker or Kubernetes. Twenty v2.0 (released April 2026) and later versions resolve these startup migration issues. We verify the target Twenty instance version before beginning any import and recommend customers use the latest stable release. For self-hosted customers using an older version, we flag the version mismatch before proceeding and advise upgrading first.

Migration approach

Six steps for a successful Genoo to Twenty CRM data migration

  1. Discovery and export scoping

    We audit the customer's Genoo account to identify all active objects: Leads, Contacts, Accounts, Campaigns, Campaign membership tables, event registrations, and any custom properties configured in the platform. We then map each object to its Genoo export location (Settings → Data Management, or the specific feature area), determine batch sizes based on Genoo's row limits, and produce a written export schedule. We also document the active lead scoring configuration, Zapier workflows syncing with Genoo, and any Genoo features currently activated so the customer can scope the minimal feature set needed during the export window.

  2. Twenty workspace setup and schema pre-creation

    Before any import, we set up the Twenty workspace by creating the required custom objects (Campaign, Campaign Membership, Landing Page, Email Template Archive) and any custom fields on the standard People and Company objects. Twenty's documentation requires that all fields exist before CSV import, and custom objects must be created before their lookup targets are referenced. We use Twenty's metadata API to create schema objects programmatically, then invite all team members who will be referenced as record owners so that OwnerId lookups can be resolved at import time.

  3. Genoo export sequencing and relationship reconstruction

    We guide the customer through a coordinated export session in Genoo, extracting each object type (Accounts, Leads, Contacts, Campaign membership, event registrations) as a separate CSV. We deduplicate across batches using email address as the primary join key, reconstruct the Account-to-People and Campaign-to-Campaign Membership relationships, and produce a reconciled staging dataset ready for Twenty import. Any records without email addresses or with duplicate emails are flagged for manual review before import begins.

  4. Twenty import in dependency order

    We load data into Twenty in strict dependency order: Companies first (because People requires a Company lookup), then People (Leads and Contacts), then Opportunities if applicable, then the Campaign custom object, then Campaign Membership (with resolved lookups to People and Campaign), then Task records for event registrations. Each phase produces a row-count reconciliation report that we compare against the source export totals. We use Twenty's REST API with exponential backoff and batch chunking to stay within rate limits.

  5. Post-import validation and non-migrated asset handoff

    We spot-check 25-50 records across all object types against the Genoo source data, verify that Campaign membership counts match, and confirm that People records are linked to the correct Company. We deliver the written automation rebuild inventory: a list of all Genoo Workflows (with triggers, conditions, and actions) and Zapier integrations, with a recommended Twenty equivalent for each. We also deliver the content library URL manifest and the lead scoring configuration documentation for the customer's admin to act on. We do not rebuild Genoo Workflows or Zapier integrations inside the migration scope.

  6. Cutover and go-live support

    We coordinate the cutover window with the customer's team: disable any active Zapier workflows syncing Genoo to a CRM to prevent duplicate record creation, run a final delta export of any records modified during the migration window, load the delta into Twenty, then switch the team to Twenty as the system of record. We provide a one-week hypercare window to resolve any reconciliation issues reported by the team. We do not provide ongoing admin support or workflow rebuild as standard scope.

Platform deep dives

Context on both ends of the pair

Genoo logo

Genoo

Source

Strengths

  • Simple per-feature pricing model at $199/month suits very small teams with a narrow use case.
  • Built-in landing page and microsite builder reduces tool count for solo and small-stack marketing teams.
  • Lead scoring with demographic and behavioral weights is accessible without consultant configuration.
  • Salesforce CRM sync via native integration handles basic Lead/Contact/Opportunity synchronization.
  • Content library provides centralized storage for campaign images, PDFs, and documents.

Weaknesses

  • Platform has remained extremely small — fewer than 10 employees — raising questions about long-term support and development investment.
  • No publicly documented API for bulk data export makes programmatic migration difficult and customer-dependent on manual exports.
  • Pricing model ($199 per feature) scales poorly for growing teams needing multiple automation capabilities.
  • No native custom objects or advanced data model means complex business rules must be handled outside Genoo.
  • Limited integrations — Zapier-only for non-Salesforce CRMs — increases cost and complexity for teams on other platforms.
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 Genoo 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

    Genoo: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most Genoo migrations land between two and four weeks. The primary driver is the manual export sequencing in Genoo, which requires the customer's account holder to run multiple batched exports under Genoo's UI row limits. Once exports are complete and the staging data is reconciled, loading into Twenty via API takes one to three days. Migrations with custom objects, large Campaign membership tables (10,000+ enrollment records), or event registration activity history extend to six to ten weeks because of the multi-batch export coordination and custom object schema creation work in Twenty.

Adjacent paths

Related migrations to explore

Ready when you are

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