CRM migration

Migrate from RollWorks Account-Based Platform to Twenty CRM

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

RollWorks Account-Based Platform logo

RollWorks Account-Based Platform

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

70%

7 of 10

objects map 1:1 between RollWorks Account-Based Platform and Twenty CRM.

Complexity

BStandard

Timeline

3-4 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

RollWorks is an account-based marketing platform that layers on top of a connected CRM (Salesforce or HubSpot) — the actual CRM records (Contacts, Companies, Deals) live in the integrated platform, not in RollWorks itself. We migrate both the CRM-layer records through Twenty's CSV import and REST API, and the ABM-layer data (Account Lists, Journey Stages, AdRoll aggregated engagement metrics) as Companies with enriched custom fields. The migration does not include Workflows (defined in AdRoll's orchestration layer), live advertising campaigns, or G2 Buyer Intent signals — these require separate rebuilds or manual setup in Twenty. We deliver a written inventory of all RollWorks automation logic and segmentation rules for the customer's admin to reconstruct in 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

RollWorks Account-Based Platform logo

RollWorks Account-Based Platform

What's pushing teams away

  • Filter selection and segmenting abilities are repeatedly cited as limited, with 45 G2 mentions flagging the constraint — teams needing granular audience builds outgrow the platform's segmentation.
  • RollWorks rebranded to AdRoll ABM, merging the ABM product into the broader AdRoll advertising brand, which creates confusion for teams that selected RollWorks specifically for its standalone ABM positioning.
  • Pricing opacity and the sales-driven quote process push teams toward competitors with published pricing or self-service tiers, especially at the lower end of mid-market.
  • Visitor identification stays at the company level, not person level — teams needing individual contact attribution for ad targeting must layer in a separate contact-level tool.
  • Advanced ABM capabilities in competing platforms (6sense predictive buying stages, Demandbase account-based web personalization) outpace RollWorks for enterprise-tier requirements.

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 RollWorks Account-Based Platform objects map to Twenty CRM

Each row shows how a RollWorks Account-Based Platform 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.

RollWorks Account-Based Platform

Company (in connected Salesforce/HubSpot)

maps to

Twenty CRM

Company

1:1
Fully supported

HubSpot Companies or Salesforce Accounts map directly to Twenty Companies. The domain name from RollWorks Account Lists becomes the Website field on the Twenty Company record. Account List membership is preserved as Tags on the Company record (multiple tags supported via Twenty's tag system). We match Companies by domain during import to avoid duplicates where the same account appears across RollWorks Account Lists and the CRM.

RollWorks Account-Based Platform

Account List

maps to

Twenty CRM

Company + Tag

1:1
Fully supported

RollWorks Account Lists are collections of target accounts used for campaign targeting and reporting. We extract Account List names and member domain lists, then create corresponding Tags in Twenty (e.g., Tag: 'Q1_Enterprise_List'). The tag assignment is resolved at Company import time by matching domains across list membership files. Account List hierarchy (nested lists) maps to tag parent-child relationships in Twenty where the data model supports it.

RollWorks Account-Based Platform

Journey Stage (CRM field)

maps to

Twenty CRM

Custom Field on Company

lossy
Fully supported

Journey Stages in RollWorks are derived from CRM field values synced from Salesforce or HubSpot — they are not a native RollWorks object but a field in the connected CRM. We extract the Journey Stage field definition and recreate it as a custom Select field on the Twenty Company object (e.g., 'icp_fit_tier' or 'abm_journey_stage') with the same picklist values. The field must be created in Settings → Data Model before Company import so that the import CSV can populate it.

RollWorks Account-Based Platform

Contact (in connected Salesforce/HubSpot)

maps to

Twenty CRM

Person

1:1
Fully supported

HubSpot Contacts or Salesforce Contacts map to Twenty Person records. The Person is created after the parent Company (by domain match) so that the WorkRelations (employment) relationship is satisfied at insert time. Email, name, phone, title, and LinkedIn URL fields map directly. Any contact role data (e.g., decision-maker, champion) stored in the connected CRM maps to a custom Select field on Person.

RollWorks Account-Based Platform

Deal (in connected Salesforce/HubSpot)

maps to

Twenty CRM

Opportunity

1:1
Fully supported

HubSpot Deals or Salesforce Opportunities map to Twenty Opportunities. The pipeline stage mapping requires configuration in Twenty before import: we create a Stage field on Opportunity with values matching the source dealstage names. Amount, close date, deal name, and probability migrate directly. We resolve the Company (Account) lookup by domain match and the Person (Contact) lookup by email match before Opportunity insert.

RollWorks Account-Based Platform

AdRoll Aggregated Account Data (Salesforce custom object)

maps to

Twenty CRM

Custom Field on Company

lossy
Fully supported

RollWorks writes aggregated engagement metrics (ad impressions, clicks, engagement score) back to a custom Salesforce object tied to the Account. This schema is documented in RollWorks help center (AdRoll ABM Data in Salesforce: Custom Objects and Fields). We extract the field names and recreate equivalent custom Number or Currency fields on the Twenty Company object (e.g., adroll_impressions_last_30d, adroll_engagement_score). The Website field on the Salesforce Account is the matching key to resolve Company records.

RollWorks Account-Based Platform

Audience Segment

maps to

Twenty CRM

Tag + Custom Field

1:1
Fully supported

RollWorks audience segments are built from filter combinations applied to RollWorks' own data and CRM field values. We extract the segment definition (filter criteria, lookback window, included/excluded accounts) as a written document during scoping, then create Tags in Twenty to label records that match the segment membership. Complex segment logic with multiple filter conditions is documented as a filter recipe for manual recreation in Twenty's filter UI.

RollWorks Account-Based Platform

Sales Insights / Account Spike Signals

maps to

Twenty CRM

Custom Field on Company

lossy
Mapping required

Sales Insights (Account Spike scoring) are written by RollWorks to the connected CRM as custom fields on the Account or Company record. We map these signal fields to equivalent custom Number fields on Twenty Company (e.g., account_spike_score, intent_signal_strength). The original signal values are preserved so the customer can re-establish their scoring thresholds in Twenty post-migration.

RollWorks Account-Based Platform

Custom Object (RollWorks-adjacent CRM data)

maps to

Twenty CRM

Custom Object

1:1
Fully supported

Any custom Salesforce objects or HubSpot custom objects used in the customer's ABM workflow (beyond the AdRoll aggregated data object) migrate to Twenty Custom Objects. We pre-create the destination schema in Settings → Data Model — including field types, picklist values, and lookup relationships — before any CSV import. The customer defines the data model during scoping; we validate field type compatibility (e.g., Salesforce formula fields become read-only or computed fields in Twenty where supported).

RollWorks Account-Based Platform

Engagement Activity (emails, calls, meetings)

maps to

Twenty CRM

Task or Note

1:1
Fully supported

Activity history in the connected CRM (Salesforce Tasks/Events or HubSpot engagements) migrates to Twenty as Tasks (for calls, emails, meetings) or Notes (for free-form commentary). We map ActivityDate and body content, and link activities to the resolved Person or Company record by email or domain match. Large engagement histories (over 100,000 records) use chunked CSV import with lookup resolution in batches.

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.

RollWorks Account-Based Platform logo

RollWorks Account-Based Platform gotchas

High

CRM sync limited to standard Salesforce objects

Medium

Lead-to-Account association is not supported

Medium

Workflow definitions live outside the CRM

Low

Ad serving costs use dynamic CPM, not CPC or CPA

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

  • RollWorks Account Lists require domain-matching to resolve Company records

    RollWorks Account Lists identify target accounts by company name and domain, not by CRM record ID. The connected CRM (Salesforce or HubSpot) stores the same accounts with potentially different name spellings or missing domains. We perform a domain-extraction pass on both the RollWorks Account List export and the CRM Company/Account records, then match on normalized domain strings. Accounts with no domain in either system go to a manual reconciliation queue. Inconsistent company naming (e.g., 'Acme Corp' vs 'Acme Corporation' vs 'Acme') causes duplicates if not resolved before import.

  • Custom fields must exist in Twenty before CSV import

    Twenty's CSV import creates records but not fields — a constraint documented in the Twenty migration guide (docs.twenty.com). All Journey Stage fields, AdRoll aggregated metric fields, and Sales Insight signal fields must be created in Settings → Data Model before the Company import CSV is loaded. We run the schema build phase first and validate that all field names in the import CSV have a matching Twenty field before any records are inserted. Skipping this step results in silent field drops on import.

  • Workflows in AdRoll orchestration layer do not migrate

    RollWorks Workflows (Triggers and Actions) are defined in the AdRoll ABM orchestration layer, not in the connected CRM. They automate CRM updates, email campaigns via HubSpot/Marketo, and Hot Contact alerts. Twenty has a Workflows feature in beta that supports different trigger and action types. We do not migrate Workflows as logic. We deliver a written inventory of every active RollWorks Workflow with its trigger, conditions, and actions so the customer's admin can rebuild them in Twenty's Workflow builder. The inventory is produced during the extraction pass alongside CRM data export.

  • G2 Buyer Intent and Account Spike signals are platform-specific

    G2 Buyer Intent data (Profile Views, Alternatives Views, Comparisons) and RollWorks Account Spike scoring are computed by the respective platforms and written as values to the connected CRM. They do not have a raw data export path. We preserve the most recent signal values as static custom fields on the Twenty Company record at migration time. New intent signals require either a G2 API connection re-established in Twenty or a third-party intent data provider configured independently.

  • Advertising campaign structure does not migrate

    RollWorks advertising campaign configuration (ad set names, audience targeting rules, creative assets, spend data) lives in the AdRoll advertising layer, not in the CRM. We extract campaign names, targeting criteria, and aggregated spend metrics from RollWorks reports as a reference CSV during scoping. The customer uses this as a written record to rebuild campaign structures in their chosen advertising platform post-migration. We do not migrate live ad creative, bid rules, or dynamic CPM settings.

Migration approach

Six steps for a successful RollWorks Account-Based Platform to Twenty CRM data migration

  1. Discovery and ABM-layer extraction

    We audit the RollWorks Account-Based Platform scope: Account List names and member counts, Journey Stage field names and picklist values, the connected CRM's custom object schema (AdRoll aggregated data object), active Workflow count and trigger types, and G2 Buyer Intent integration status. We simultaneously extract CRM-layer records (Companies/Accounts, Contacts/People, Deals/Opportunities) from the connected Salesforce or HubSpot instance via API. The discovery output is a written migration scope document with record counts, field mappings, and a list of custom fields to create in Twenty before import.

  2. Schema build in Twenty

    We provision all custom fields in Twenty's Data Model (Settings → Data Model) before any data import. This includes Journey Stage select fields on Company, AdRoll aggregated metric fields (impressions, clicks, engagement score), Account Spike signal fields, and any custom Objects referenced in the connected CRM. Field types are matched to Twenty's supported types: text, number, currency, date, select, multi-select, boolean, and URL. Fields are validated in Twenty's UI before the import CSV is prepared.

  3. Domain-matching and deduplication

    We run a domain-extraction pass across both the RollWorks Account List export and the CRM Company/Account records. Domains are normalized (stripped of www., lowercased, root domain extracted) and used as the primary dedupe key during import. Accounts with no domain (e.g., private companies) are matched on a normalized name algorithm (stripped of suffixes like Inc., LLC, Ltd.). Deduplication conflicts are documented in a reconciliation report for the customer to resolve before production import.

  4. Staging migration and reconciliation

    We run a full migration into a Twenty staging environment (self-hosted or the hosted trial at app.twenty.com) using production-like data volume. The customer's RevOps lead validates record counts (Companies in, People in, Opportunities in), spot-checks 25-50 records against the source CRM and RollWorks exports, and confirms that Journey Stage values, AdRoll metric fields, and Tags are populated correctly. Any mapping corrections are made before production migration begins.

  5. Production migration in dependency order

    We run production migration in record-dependency order: Custom Objects (first, if referenced by lookups), Companies (with Account List Tags and custom metric fields), People (with WorkRelations resolved to parent Company), Opportunities (with Company lookup and stage values resolved), then Activity history (Tasks and Notes via chunked CSV). Each phase emits a row-count reconciliation report before the next phase begins. RollWorks Workflows and advertising campaign data are not imported — they are delivered as written inventories for manual rebuild.

  6. Cutover, validation, and Workflow rebuild handoff

    We freeze writes to the connected CRM during cutover, run a final delta migration of any records modified during the migration window, then enable Twenty as the system of record. We deliver the Workflow inventory document (trigger type, conditions, actions) and the Audience Segment reconstruction guide to the customer's admin. We support a one-week hypercare window where we resolve any data issues raised by the team. We do not rebuild RollWorks Workflows as Twenty Workflows inside the migration scope; that is a separate configuration engagement.

Platform deep dives

Context on both ends of the pair

RollWorks Account-Based Platform logo

RollWorks Account-Based Platform

Source

Strengths

  • Bi-directional Salesforce and HubSpot integration keeps ABM signals embedded in the sales record
  • Account Spike data science model gives SDRs a ranked outreach list without additional tooling
  • Multi-channel advertising (display, LinkedIn, Facebook, Instagram) under one vendor reduces coordination overhead
  • G2 buyer intent integration enriches native intent data with third-party buying signals
  • Dynamic CPM ad serving model with no platform fee on self-service retargeting

Weaknesses

  • Visitor identification is company-level only, not person-level, requiring a supplemental contact tool for individual attribution
  • Filter and segmentation capabilities are limited compared to dedicated data platforms, with 45 G2 mentions flagging the constraint
  • Non-standard Salesforce objects and their fields are not available for Journey Stages customization
  • Lead object activity cannot be associated to Accounts in Journey Events, leaving a data gap for teams using Leads over Contacts
  • RollWorks rebranded to AdRoll ABM, merging ABM identity into the broader AdRoll advertising brand
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 RollWorks Account-Based Platform 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

    RollWorks Account-Based Platform: Not publicly documented.

  • Data volume sensitivity

    A

    RollWorks Account-Based Platform exposes a bulk API — large-volume migrations stream efficiently.

Estimator

Estimate your RollWorks Account-Based Platform 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 RollWorks Account-Based Platform to Twenty CRM data migrations

Answers to the questions buyers ask most during RollWorks Account-Based Platform to Twenty CRM migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your RollWorks Account-Based Platform 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 four weeks for accounts under 10,000 CRM records (Companies, People, Opportunities) with no custom objects. Migrations with multiple Account Lists, Journey Stage custom fields, AdRoll aggregated Salesforce custom objects, or engagement history (over 200,000 activity records) move to six to ten weeks because of schema build time, domain-matching deduplication, and chunked CSV import for large activity tables.

Adjacent paths

Related migrations to explore

Ready when you are

Move from RollWorks Account-Based Platform.
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