CRM migration

Migrate from eTrigue to Twenty CRM

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

eTrigue logo

eTrigue

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

50%

5 of 10

objects map 1:1 between eTrigue and Twenty CRM.

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

eTrigue DemandCenter is a campaign-centric marketing automation platform that does not have a native CRM data model — there are no Accounts, no Opportunities, and no Deals. When teams move to Twenty CRM, the migration is an expansion as much as a replacement: we bring Prospects into Contacts and Companies, decode the numeric Status codes that eTrigue's CSV export returns, and decompose the five-component 3D Lead Score into individual custom fields in Twenty so the scoring logic can be rebuilt. Campaign response history (page views, email opens, form submissions) migrates as Timeline entries on the Contact record. Partner program data stored in eTrigue custom Prospect fields maps to the Company object with attribution flags. We do not migrate campaigns as automations; the campaign name and response counts transfer, and the customer's admin rebuilds the campaign logic in Twenty or a companion email platform.

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

eTrigue logo

eTrigue

What's pushing teams away

  • Workflow and automation capabilities are considered limited compared to broader platforms, with one reviewer noting they switched specifically because 'workflow and automation capabilities were a bit limited compared to other software on the market.'
  • UX and UI frustrations accumulate over time — users report 'minor UX frustrations when it came to renaming or reorganizing things,' creating friction for power users managing many campaigns.
  • The platform is perceived as better suited for small to medium teams, leading larger organizations to migrate toward enterprise-grade marketing automation with richer data models.
  • Pricing is opaque and quoted per-demo, which creates uncertainty and drives some buyers toward platforms with published tier-based pricing.

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

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

eTrigue

Prospect

maps to

Twenty CRM

Person

1:1
Fully supported

eTrigue Prospects map 1:1 to Twenty CRM Person records. Standard fields (name, email, phone, company, job title) transfer directly. We resolve the email address as the dedupe key and flag any Prospects with duplicate emails for the customer's admin to resolve before final insert. The migration runs in CSV tranches from eTrigue's built-in export because no public API exists.

eTrigue

Prospect Status (numeric codes)

maps to

Twenty CRM

Person subscription status

lossy
Fully supported

eTrigue's Status field exports as numeric codes (e.g., 1 = Active, 2 = Opt-Out) that must be decoded before insert. We detect these during data profiling, apply a decoding map derived from eTrigue's support documentation, and set Twenty's Person subscriptionStatus or a custom hasOptedOut field appropriately. Silent insertion of numeric codes as text values would incorrectly set all records to active status.

eTrigue

Prospect Company

maps to

Twenty CRM

Company

1:1
Fully supported

eTrigue Prospects reference a company name as a text field rather than a related Company object. We extract distinct company names from all Prospects, upsert them as Twenty CRM Company records, then back-fill the Person.companyId lookup on each Person during insert. This creates the account hierarchy in Twenty that eTrigue never maintained.

eTrigue

3D Lead Score (five sub-scores)

maps to

Twenty CRM

Custom number fields on Person

lossy
Fully supported

eTrigue's 3D Lead Scoring stores Campaign Score, Activity Score, Source Score, Relationship Score, and Buy Time Score as five separate numeric properties on the Prospect. We create five custom number fields on the Person object in Twenty before migration, map each sub-score to its corresponding field, and flag the composite logic in a written scoring rebuild guide for the customer's admin. Merging five scores into one field loses the attribution detail that makes the 3D model useful.

eTrigue

Lead Score (composite)

maps to

Twenty CRM

Custom number field on Person

lossy
Fully supported

If the customer uses eTrigue's standard composite Lead Score rather than 3D scoring, we map it to a single custom number field etrigue_lead_score__c on Person. We note which scoring model was active so the customer can decide whether to use Twenty's built-in lead scoring or rebuild the composite formula in a companion tool.

eTrigue

Campaign Response History

maps to

Twenty CRM

Timeline entries on Person

1:many
Fully supported

eTrigue records each Prospect's campaign responses (page views, email opens, form submissions, click-throughs) as a dated Activity History. We export this as a structured log and load it as Twenty CRM Timeline entries on the Person record, preserving the original timestamp and activity type. Each response becomes a separate Timeline entry with the campaign name as the context label. This is the richest data set in eTrigue and the most migration-intensive because of row count.

eTrigue

Campaign

maps to

Twenty CRM

Program

1:1
Fully supported

eTrigue Campaigns (names, campaign type, start and end dates) transfer to Twenty CRM Programs. We preserve the campaign response count and the associated Prospect list as a Program participants list in Twenty. Note that the campaign automation logic (workflow triggers, nurture sequences, enrollment criteria) does not migrate; we deliver a written campaign logic inventory for the customer's admin to rebuild in Twenty or a companion marketing automation tool.

eTrigue

Custom Prospect Fields

maps to

Twenty CRM

Custom fields on Person

1:1
Fully supported

eTrigue Boolean, Text, Number, and Date custom fields defined in Settings > Prospect Fields migrate to Twenty CRM Person custom fields of the equivalent type. Boolean fields with custom labels (e.g., true = 'Has Demo Access') transfer their string labels into a Text or Select field to preserve the original meaning. We pre-create the custom field schema in Twenty before any Person records are inserted.

eTrigue

Partner Program Data (Lead Accelerator)

maps to

Twenty CRM

Company custom fields

lossy
Fully supported

Customers using eTrigue Lead Accelerator store partner organization names and partner-specific campaign attribution in custom Prospect fields. We map these to Twenty CRM Company custom fields (partner_name__c, partner_attribution__c) and flag any partner-specific scoring rules that relied on the Lead Accelerator scoring engine for manual recreation. The partner-to-company elevation requires that the Prospect.companyName field is populated, which we validate during data profiling.

eTrigue

Landing Page / Progressive Form

maps to

Twenty CRM

Form configuration documentation

1:1
Fully supported

eTrigue progressive form field definitions export as a field list but do not migrate as a functional form. We deliver a written form inventory with the source field names, types, and validation rules for the customer's admin to recreate in Twenty or a companion form tool. Styling and layout are not preserved.

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.

eTrigue logo

eTrigue gotchas

High

No public API means migration relies on CSV export only

Medium

Opt-Out status encoding in Status field export

Medium

Lead Score sub-components are five separate fields, not one

Medium

Partner program data stored in custom fields, not a native object

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 public API — all eTrigue data extracts via CSV export in batches

    eTrigue DemandCenter does not publish a REST or SOAP API. Every data extraction for migration uses the built-in CSV export from the Prospects list or Scheduled Exports. Large databases require multiple export tranches with pagination via saved search filters, followed by dataset assembly before loading. This is a manual-intensive step compared to API-based migrations. We handle the batching logic and dataset assembly, but the source-side extraction speed is constrained by eTrigue's export tool, not our infrastructure.

  • Status field exports as numeric codes, not human-readable labels

    The Status field on eTrigue Prospects exports numeric codes (1 = Active, 2 = Opt-Out, etc.) rather than the label text shown in the UI. A support article explicitly documents this encoding. We detect numeric codes during data profiling, apply a decoding map, and set the destination's subscription or opt-out status correctly. Inserting raw numeric values as text would silently mark all Opt-Out records as Active in Twenty.

  • Lead Score sub-components are five separate fields, not one composite

    eTrigue's 3D Lead Scoring decomposes the score into Campaign, Activity, Source, Relationship, and Buy Time sub-scores, each a separate numeric property. Standard CRMs including Twenty CRM typically store a single numeric score field. We export all five sub-scores as individual custom fields in Twenty and document the composite formula so the customer's admin can rebuild the logic in a scoring tool or companion platform. Merging five numbers into one field on import loses the attribution data that justifies the 3D model.

  • Partner program data in custom fields requires schema redesign

    eTrigue Lead Accelerator customers store partner attribution in custom Prospect fields rather than a dedicated Partner object. Since eTrigue has no native Company object, partner organizations are text strings on Prospect. We elevate these to Twenty CRM Company records during migration, but any partner-specific scoring rules or partner-segmented campaign logic must be manually recreated post-migration. We flag the affected fields and rules in the written inventory delivered at migration close.

Migration approach

Six steps for a successful eTrigue to Twenty CRM data migration

  1. Data audit and export strategy

    We audit the eTrigue portal to document all active Prospects, custom field definitions, saved search criteria used in Scheduled Exports, and the 3D or standard Lead Scoring configuration. We define the CSV export strategy: which saved search filters apply per data tranche, how many export batches are required for the Prospect volume, and which activity history export options are available. This audit output is the migration scope document that both teams sign off before extraction begins.

  2. CSV extraction in tranches and dataset assembly

    We run the CSV exports from eTrigue using the customer's account with the saved search filters documented in step one. Large databases export in multiple batches. We assemble the full dataset from all tranches, validate email address format across the full set, and flag records with missing or malformed email addresses for the customer's admin to correct. Status field numeric codes are decoded at this stage.

  3. Twenty CRM workspace configuration

    We create the custom fields on the Person and Company objects in Twenty CRM to receive the 3D Lead Score sub-components, custom Prospect field mappings, and partner attribution fields. We configure the Company object as the parent of Person (matching Twenty's data model), pre-create any required Company records from distinct Prospect.companyName values, and validate the workspace schema in a staging environment before production data is loaded.

  4. Lead score decomposition and data profiling

    We decompose the 3D Lead Score into its five component fields (Campaign Score, Activity Score, Source Score, Relationship Score, Buy Time Score) during the data transform phase. Each sub-score maps to its corresponding custom Person field in Twenty. We flag any Prospects using the standard composite score separately and note the scoring model type in a custom field on the Person record. Activity history (page views, email opens, form submissions) is parsed into a Timeline entry format compatible with Twenty's API.

  5. Production load in dependency order

    We load data in dependency order: Companies first (from distinct Prospect company names), then Persons with the resolved CompanyId lookup, then Timeline entries (activity history) linked to the correct Person record. Lead score sub-fields and custom Prospect fields insert in the same Person load phase. We run row-count reconciliation after each phase and spot-check 25-50 records against the eTrigue source before declaring the load complete.

  6. Campaign logic inventory and handoff

    We deliver a written campaign logic inventory covering every active eTrigue campaign with its enrollment criteria, nurture sequence steps, and scoring logic. This document serves as the rebuild guide for the customer's admin in Twenty or a companion marketing automation platform. We do not rebuild campaigns, automations, or forms as code; that work is outside standard migration scope. Partner program scoring rules are flagged separately in the inventory for Lead Accelerator customers.

Platform deep dives

Context on both ends of the pair

eTrigue logo

eTrigue

Source

Strengths

  • Drag-and-drop campaign builder reduces onboarding time for non-technical marketing users.
  • Lead scoring model is multi-dimensional (5-component composite) and praised for accuracy in G2 reviews.
  • Built-in progressive forms capture prospect data contextually within campaigns.
  • Support responsiveness is a documented strength — callbacks within an hour for complex setups.
  • Partner marketing specialization with Lead Accelerator is a differentiator for channel-focused organizations.

Weaknesses

  • Limited workflow and automation capabilities compared to broader marketing automation platforms.
  • No publicly documented API — all data extraction relies on the built-in CSV export tool, which constrains migration speed.
  • Platform is perceived as scaling poorly beyond small to medium team sizes.
  • Pricing is opaque (per-demo quote model) with no published tier-based pricing, complicating budget planning.
  • UX frustrations with renaming and reorganizing objects accumulate for power users managing many campaigns.
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 eTrigue 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

    eTrigue: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Straightforward migrations under 10,000 Prospects with fewer than 20 custom fields and no 3D Lead Scoring complexity land between three and five weeks. Migrations with 3D Lead Scoring, partner program data in custom fields, large activity histories (over 200,000 activity records), or multiple export tranches requiring dataset assembly move to eight to twelve weeks. The source-side CSV export cadence is the primary timeline variable; the Twenty CRM API load side is faster once data is assembled.

Adjacent paths

Related migrations to explore

Ready when you are

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