CRM migration
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
Source
Twenty CRM
Destination
Compatibility
7 of 10
objects map 1:1 between RollWorks Account-Based Platform and Twenty CRM.
Complexity
BStandard
Timeline
3-4 weeks
Overview
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.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
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)
Twenty CRM
Company
1:1HubSpot 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
Twenty CRM
Company + Tag
1:1RollWorks 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)
Twenty CRM
Custom Field on Company
lossyJourney 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)
Twenty CRM
Person
1:1HubSpot 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)
Twenty CRM
Opportunity
1:1HubSpot 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)
Twenty CRM
Custom Field on Company
lossyRollWorks 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
Twenty CRM
Tag + Custom Field
1:1RollWorks 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
Twenty CRM
Custom Field on Company
lossySales 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)
Twenty CRM
Custom Object
1:1Any 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)
Twenty CRM
Task or Note
1:1Activity 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.
| RollWorks Account-Based Platform | Twenty CRM | Compatibility | |
|---|---|---|---|
| Company (in connected Salesforce/HubSpot) | Company1:1 | Fully supported | |
| Account List | Company + Tag1:1 | Fully supported | |
| Journey Stage (CRM field) | Custom Field on Companylossy | Fully supported | |
| Contact (in connected Salesforce/HubSpot) | Person1:1 | Fully supported | |
| Deal (in connected Salesforce/HubSpot) | Opportunity1:1 | Fully supported | |
| AdRoll Aggregated Account Data (Salesforce custom object) | Custom Field on Companylossy | Fully supported | |
| Audience Segment | Tag + Custom Field1:1 | Fully supported | |
| Sales Insights / Account Spike Signals | Custom Field on Companylossy | Mapping required | |
| Custom Object (RollWorks-adjacent CRM data) | Custom Object1:1 | Fully supported | |
| Engagement Activity (emails, calls, meetings) | Task or Note1:1 | Fully supported |
Gotchas + challenges
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 gotchas
CRM sync limited to standard Salesforce objects
Lead-to-Account association is not supported
Workflow definitions live outside the CRM
Ad serving costs use dynamic CPM, not CPC or CPA
Twenty CRM gotchas
Import order is enforced and critical
Export limited to 20,000 records and visible columns only
Soft-deleted records count toward uniqueness and trigger restores
API rate limits cap at 200 req/min on Organization tier
No native email sequences — follow-up cadences require external tools
Pair-specific challenges
Migration approach
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.
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.
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.
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.
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.
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
RollWorks Account-Based Platform
Source
Strengths
Weaknesses
Twenty CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 1 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across RollWorks Account-Based Platform and Twenty CRM.
Object compatibility
1 of 8 objects need a mapping; the rest are 1:1.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
8-object category — typical timelines run 2–7 days end-to-end.
API constraints
RollWorks Account-Based Platform: Not publicly documented.
Data volume sensitivity
RollWorks Account-Based Platform exposes a bulk API — large-volume migrations stream efficiently.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during RollWorks Account-Based Platform to Twenty CRM migration scoping. Not seeing yours? Book a call.
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 consultationAdjacent paths
Other ways to leave RollWorks Account-Based Platform
Other ways to arrive at Twenty CRM
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.