CRM migration

Migrate from Termene to Twenty CRM

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

Termene logo

Termene

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

100%

10 of 10

objects map 1:1 between Termene and Twenty CRM.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Termene is primarily a company-intelligence and risk-monitoring platform for Romanian business data — it holds company records with financial indicators, risk flags, and associated contact data but does not function as a traditional CRM with pipelines, deal stages, or built-in workflow automation. Twenty CRM is a modern open-source CRM built on TypeScript, NestJS, React, and PostgreSQL with standard objects for People, Companies, Opportunities, Notes, and Tasks, plus unlimited custom objects on paid plans. The migration maps Termene's company records directly to Twenty Companies, Termene person records to Twenty People (with a companyId relation back to the matched company), and Termene financial metrics and risk indicators to custom fields on the Company record. FlitStack AI sequences the import so the 'one' side of each relationship exists before the referencing record lands — a requirement that Twenty's Settings → Data Model import enforces. We preserve Termene's original timestamps and source-record IDs as custom fields for reconciliation. Because Termene carries no native workflow, automation, or sequence engine, those objects have nothing to migrate — but any follow-up sequences or notification logic you have built outside Termene will need to be rebuilt inside Twenty's workflow builder. The migration runs via CSV export from Termene and CSV import into Twenty, with a 24–48 hour delta-pickup window capturing records modified during cutover.

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

Termene logo

Termene

What's pushing teams away

  • Termene covers only Romanian companies, making it unsuitable for businesses with international counterparties and forcing teams to maintain a second intelligence tool for cross-border risk.
  • No documented public API means data cannot be programmatically exported, limiting automation and forcing manual report downloads for any migration out.
  • Absence of pricing transparency on the website requires sales contact to obtain a quote, creating friction for budget-conscious SMBs evaluating the platform.

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

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

Termene

Company Record (Termene)

maps to

Twenty CRM

Company (Twenty CRM)

1:1
Fully supported

Termene company records map directly to Twenty Companies. The company name, domain, industry, employee count, and address fields map field-by-field. Termene's unique company ID is preserved as a custom field (Source_ID__c) for delta-run de-duplication and reconciliation against the original Termene dataset.

Termene

Person / Contact (Termene)

maps to

Twenty CRM

People (Twenty CRM)

1:1
Fully supported

Termene person records associated with a company map to Twenty People with a companyId relation pointing to the matched Company record. The person-to-company link is the most critical relationship to preserve during import — Twenty requires the Company to exist before the People record referencing it can be imported.

Termene

Financial Indicator Fields (on Company)

maps to

Twenty CRM

Custom Fields on Company (Twenty CRM)

1:1
Fully supported

Termene stores financial health scores, risk ratings, debt flags, and revenue indicators per company. These have no direct Twenty CRM equivalent and are migrated as custom fields (e.g., Risk_Score__c, Debt_Flag__c, Revenue_Indicator__c) created in Settings → Data Model before the import runs. Field type is set to Select or Number based on the source data format.

Termene

Activity / Event Log (Termene)

maps to

Twenty CRM

Note (Twenty CRM)

1:1
Fully supported

Termene may hold interaction history or event records tied to a company or person. These are migrated as Twenty Notes attached to the relevant Company or People record. Each Note preserves the original event timestamp and a content summary. Full structured activity timelines require a custom object definition in Twenty if granular call/email/meeting records are needed.

Termene

User / Team Member (Termene)

maps to

Twenty CRM

Workspace Member (Twenty CRM)

1:1
Fully supported

Termene user accounts map to Twenty Workspace Members. Users must be invited and accept their Twenty invitation before the migration runs, because People records with an assigned owner reference (e.g., assigned_user_id) need a corresponding Workspace Member to link correctly. We flag any owner references that cannot be matched before import.

Termene

Risk / Alert Record (Termene)

maps to

Twenty CRM

Custom Field on Company (Twenty CRM)

1:1
Fully supported

Termene's core value is flagging companies with overdue debt, VAT cancellation, or insolvency proceedings. These risk indicators migrate as custom pick-list or text fields on the Twenty Company record (e.g., Risk_Type__c, Alert_Date__c) so they surface in Twenty's Company view and can trigger workflow conditions.

Termene

Report / Monitoring Record (Termene)

maps to

Twenty CRM

Custom Object or Note (Twenty CRM)

1:1
Fully supported

Termene's scheduled company monitoring reports have no direct Twenty CRM equivalent. We preserve report metadata as a Note on the Company record with a summary of the last monitored status. If a custom monitoring workflow is needed in Twenty, we deliver a rebuild plan using Twenty's workflow builder as a reference.

Termene

Industry / Category Classification (Termene)

maps to

Twenty CRM

Custom Field on Company (Twenty CRM)

1:1
Fully supported

Industry classification from Termene (CAEN codes, Romanian sector categories, and other industry groupings) migrates as a custom Select field on the Twenty Company record. We preserve the exact source values including all Romanian-specific industry codes and sector taxonomy so filtering by industry works immediately in Twenty's Company view and filter builder without requiring manual reclassification of your existing dataset.

Termene

Attachment / File (Termene)

maps to

Twenty CRM

Note with Attachment Reference (Twenty CRM)

1:1
Fully supported

Termene may store PDF reports, financial statements, or legal documents attached to a company record. These are downloaded, re-hosted as file references in Twenty, and attached to the corresponding Company Note record. Large files that exceed Twenty's import size limits are flagged for manual re-upload after cutover.

Termene

Workflow / Automation Logic (none in Termene)

maps to

Twenty CRM

N/A

1:1
Fully supported

Termene carries no native workflow, sequence, or automation engine. Any follow-up sequences or notification logic built externally around Termene data will need to be designed from scratch in Twenty's workflow builder. We do not attempt to migrate automations that do not exist in the source system.

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.

Termene logo

Termene gotchas

High

No public API for data export

High

Alert and notification history is not exportable

Medium

Data model schema not publicly documented

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

  • Twenty requires Companies to import before People — Termene's company-person linkage breaks without sequencing

    Twenty's CSV import enforces referential integrity: a People record with a companyId foreign key can only import if the referenced Company record already exists in Twenty. Termene stores person records with a link back to their parent company, but if you export both objects simultaneously and load them in the wrong order, every person record lands without a companyId and your relationship graph is severed. We sequence the migration as: (1) Companies first with their source IDs, (2) People second with companyId resolved via Source_ID__c match, (3) Notes and custom fields last. Skipping this sequence is the most common cause of orphaned contact records in a Termene-to-Twenty migration.

  • Custom fields must exist in Twenty before CSV import — the import creates records, not schema

    Twenty's Settings → Data Model requires you to pre-create every custom field before a CSV import can populate it. The import maps column headers to existing fields by name; if a Termene financial indicator like risk_score has no corresponding Twenty field at import time, that column is silently ignored. We generate a custom field creation checklist from the Termene schema audit and deliver it as a pre-migration configuration step. Fields must be created with correct types (Select for pick-list values, Number for numeric indicators, Date for timestamp fields) before the CSV is loaded — changing field types post-import requires record migration, not just field renaming.

  • Workflow automations and follow-up sequences do not exist in Termene and cannot migrate to Twenty

    Termene is a company-intelligence platform with no native workflow, sequence, or automation engine — there are no Termene automations to migrate to Twenty's workflow builder. Reddit discussions about Twenty CRM migration confirm that teams moving from simpler platforms to Twenty face the task of designing their automation logic from scratch for the first time. We provide a Termene audit summary (what events are tracked, what alerts fire, what follow-up actions your team takes manually) as a process reference document for rebuilding that logic in Twenty's workflow builder. This is not a migration of existing automations — it is a process-design exercise your team should plan for post-cutover.

  • API access for programmatic import is limited to Pro and Organization plans — free self-hosted cannot use REST or GraphQL

    Twenty's free self-hosted plan does not include REST or GraphQL API access, webhooks, or MCP server integration. A Termene-to-Twenty migration running on the free self-hosted plan must use CSV export from Termene and CSV import via Twenty's UI (Command Menu → Import records), with a per-export limit of 20,000 records per file. Teams with more than 20,000 Termene records on a free Twenty instance need to split exports by object or upgrade to the Pro plan ($9/user/month) for API-based bulk import. We confirm your Twenty plan tier and export-splitting strategy during the discovery phase.

  • Duplicate detection on import includes soft-deleted records — restores them if the same unique value reappears

    Twenty's import system checks uniqueness against all records, including soft-deleted records visible under Command Menu → See deleted records. If a Termene company record with registration number CUI-123456 is exported, migrated, then later soft-deleted in Twenty, a subsequent delta import with the same CUI value will restore the original record rather than create a new one. We handle this by clearing the uniqueness constraint on Source_ID__c for delta runs if your team has performed manual deletions, or by using a generated migration-specific UUID rather than the Termene ID as the uniqueness key for delta imports. This behavior is documented in Twenty's import documentation and must be planned for in cutover scenarios.

Migration approach

Six steps for a successful Termene to Twenty CRM data migration

  1. Audit Termene data model and export structure

    We connect to Termene (via your provided export or API access) and inventory every company record, person record, financial indicator field, risk flag field, and any linked attachments or activity notes. We document the unique identifier strategy (does Termene expose a stable company registration number like CUI?), the person-to-company linkage model, and the field types for all financial and risk metrics. This audit generates the custom field creation checklist for Twenty's Data Model settings and confirms the export-splitting strategy if record counts exceed Twenty's 20,000-row CSV import limit.

  2. Create Twenty custom fields and invite workspace members

    Before any data lands, we create every custom field identified in the audit — Risk_Score__c, Debt_Flag__c, CUI__c, CAEN_Code__c, Source_ID__c, Original_Create_Date__c, and any other Termene properties without a Twenty native equivalent. We configure field types, pick-list values, and required flags to match the source data format. Simultaneously, we identify every owner and assigned-user reference in Termene and map them to Twenty Workspace Members — your team sends invitations to all users before the migration runs so owner relationships resolve at import time rather than defaulting to null.

  3. Export companies first, then people, then notes — in Twenty's required import order

    We export Termene data in the sequence Twenty enforces: Companies CSV first (with Source_ID__c set to the Termene company ID), People CSV second (with companyId resolved by matching Source_ID__c to the Company records imported in step one), and Notes or activity records last. Each CSV is formatted with headers matching Twenty's import column names. We validate record counts at each export step and confirm that foreign key relationships are intact before proceeding to the next object — if a person record references a company that is missing from the Company export, we flag and remediate before the People import runs.

  4. Run a sample migration with field-level diff on a representative slice

    We load 100–500 representative records spanning your largest company segments, person records with and without company associations, and any records with non-ASCII characters (common in Romanian company and person names). We generate a field-level diff report showing every Termene field value alongside the Twenty field it populated, flagging any nulls, truncation, or pick-list mismatches. You review the diff report and approve the mapping before the full migration commits. This step is where we catch issues like Romanian diacritical characters encoding incorrectly or pick-list values in Termene that have no matching option in a Twenty Select field.

  5. Execute full migration with delta-pickup window and rollback plan

    The full migration loads all Companies, People, and Notes CSVs into Twenty. A delta-pickup window of 24–48 hours runs concurrently, capturing any records created or modified in Termene during the cutover. Our audit log records every import operation — object type, record count, success/fail count, and timestamp. If reconciliation identifies missing records or broken relationships, we execute a one-click rollback to the pre-migration state and re-run the affected object import. After the delta window closes, we deliver a final reconciliation report showing record counts by object, any records that could not be migrated (with reason codes), and the Source_ID__c cross-reference table for your team to validate data integrity in Twenty.

Platform deep dives

Context on both ends of the pair

Termene logo

Termene

Source

Strengths

  • Aggregates data from over 20 Romanian official sources into a single searchable company profile.
  • Real-time updates on VAT status changes, insolvency filings, and government debt flags.
  • Built-in debtor reporting and overdue-invoice workflow for collections teams.
  • Searchable registry of all Romanian companies by CUI/CIF, name, county, and activity code.
  • Automated portfolio monitoring with configurable alerts per company.

Weaknesses

  • No public API — all data access and export is manual via the web interface.
  • Covers Romanian companies only, with no international counterpart data.
  • No pipeline, contact, or activity-logging objects — not a general CRM and cannot serve as one.
  • Pricing is opaque; requires direct sales contact for a quote.
  • No documented data model or schema reference publicly available.
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 Termene 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

    Termene: Not publicly documented. Limits are tied to the subscribed API plan (free vs paid) and confirmed during commercial onboarding with Termene's API team..

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

A Termene-to-Twenty migration for under 25,000 records typically completes in 48–72 hours of clock time once the Termene export and Twenty custom-field setup are confirmed. The discovery and schema-preparation phase (Steps 1 and 2) adds 3–5 business days before data moves. Larger datasets exceeding 100,000 records, or Termene exports that require splitting across multiple CSV files due to Twenty's 20,000-row import limit, extend the timeline to 5–10 days. The delta-pickup window (Step 5) runs for 24–48 hours after the initial load and does not extend the overall timeline significantly.

Adjacent paths

Related migrations to explore

Ready when you are

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