CRM migration
Field-level mapping, validation, and rollback between Act-On and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
Act-On
Source
Twenty CRM
Destination
Compatibility
9 of 10
objects map 1:1 between Act-On and Twenty CRM.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from Act-On to Twenty CRM is a platform-type migration: Act-On is a marketing automation platform centred on Contacts, Companies, Programs, and engagement scoring; Twenty CRM is a sales CRM centred on Contacts, Organizations, Opportunities, and Tasks. The object models overlap on Contacts and Companies but diverge sharply on Programs (Act-On's nurture sequences do not export) and engagement scoring (proprietary formulas cannot transfer). We migrate Contact and Company records with their standard and custom properties, List membership as tag data, email and activity history as timestamped Tasks, and any Custom Data schema as Twenty custom fields. We do not migrate Automated Programs, scoring formulas, or email template content; we deliver a written Program inventory and a scoring configuration guide for your Twenty admin. The migration runs through Twenty's REST and GraphQL API with batch chunking and backoff logic against any undocumented throttling.
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 Act-On 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.
Act-On
Contact
Twenty CRM
Person
1:1Act-On Contact records map directly to Twenty Person records. Standard fields (first name, last name, email, phone, job title) map cleanly. We preserve lifecycle stage, source, and any custom contact-level properties as custom fields on the Person object. The Person record is created before any related Opportunity or Task imports so that lookups are satisfied at insert time.
Act-On
Company
Twenty CRM
Company
1:1Act-On Company records map to Twenty Company records. Company name, industry, website, employee count, and annual revenue migrate directly. Custom company fields from Act-On's schema become Twenty custom fields. We use the company domain as a deduplication key and resolve the Company-to-Person relationship during Person import.
Act-On
List (Audience Segment)
Twenty CRM
Tag + Custom Field
lossyAct-On Lists are audience segments used for campaign targeting. We export List membership as tag data on the Person record, with one tag per List membership (e.g., tag: Newsletter_Q4, tag: Enterprise_Leads). The customer chooses during scoping whether List logic (dynamic vs static) is noted as a reference for manual segmentation rebuild in Twenty's table views and filters.
Act-On
Program (Automated Workflow)
Twenty CRM
Workflow (rebuild required)
1:1Act-On Automated Programs define multi-step nurture sequences stored server-side and are not accessible via API for export. We export all Contact data within a Program (who entered, when, what branch they took, what actions fired) as a timestamped reference dataset. We deliver a written Program inventory with each sequence's steps, triggers, conditions, and actions mapped to Twenty's Workflow builder as a blueprint for manual rebuild.
Act-On
Custom Data Schema
Twenty CRM
Custom Field or Custom Object
1:1Act-On's Custom Data schemas define user-extended field structures on Contacts and Companies. We read the schema definition via API, export existing records, and create equivalent custom fields in Twenty's Data Model. If the schema defines a standalone custom object (not linked to Contact or Company), we create a Twenty custom object with matching field types and relationships before data import.
Act-On
Engagement Score
Twenty CRM
Custom Numeric Field
1:1Act-On calculates a behavioural engagement score per contact using proprietary weighting rules across email opens, clicks, page visits, and form submissions. These calculation rules do not export. We migrate the current numeric score as a custom field (e.g., acton_engagement_score__c) on the Person record and flag that the customer must configure any new scoring logic manually in Twenty using custom formula fields or an integration with an external scoring service.
Act-On
Email (Send History)
Twenty CRM
Task
1:1Act-On email content, subject lines, and send history are accessible via API. We migrate send events as Task records on the Person record with a custom type field (acton_email_task__c), timestamp, subject line, and a link back to the original email content stored in our migration artifact archive. HTML template content is preserved as a reference document for the customer to rebuild in their preferred email sending tool post-migration.
Act-On
Form
Twenty CRM
Custom Field + Reference Document
1:1Web forms in Act-On capture leads with custom field definitions. Form field schemas migrate as custom fields on the Person object. Submission data migrates as historical records. The form embed code does not transfer and must be re-implemented in Twenty or a third-party form tool (Typeform, JotForm, or similar) post-migration.
Act-On
Activity History (Opens, Clicks, Form Submissions)
Twenty CRM
Task
1:1Act-On logs email opens, clicks, form submissions, and other behavioural events. We export activity history as timestamped Task records linked to the Person record. Volume can be large; we chunk by date range and apply backoff logic. We flag high-volume activity exports (>100,000 records) during scoping as a cost driver because API pagination and chunking add time.
Act-On
Tag
Twenty CRM
Tag
1:1Contact and company tags export cleanly as label arrays. We map them directly to Twenty's tag model on Person and Company records. Tags used for marketing classification migrate as-is; tags used for lead scoring are noted separately since scoring logic does not transfer.
| Act-On | Twenty CRM | Compatibility | |
|---|---|---|---|
| Contact | Person1:1 | Fully supported | |
| Company | Company1:1 | Fully supported | |
| List (Audience Segment) | Tag + Custom Fieldlossy | Fully supported | |
| Program (Automated Workflow) | Workflow (rebuild required)1:1 | Fully supported | |
| Custom Data Schema | Custom Field or Custom Object1:1 | Fully supported | |
| Engagement Score | Custom Numeric Field1:1 | Fully supported | |
| Email (Send History) | Task1:1 | Fully supported | |
| Form | Custom Field + Reference Document1:1 | Fully supported | |
| Activity History (Opens, Clicks, Form Submissions) | Task1:1 | Fully supported | |
| Tag | Tag1: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.
Act-On gotchas
ACT! desktop CRM and Act-On marketing automation are different products
Automated Program logic does not export
Engagement score formulas are not transferable
Bulk API is not publicly documented
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 product confirmation
We confirm the exact Act-On product (marketing automation SaaS, not ACT! desktop CRM), audit the source portal across tier level, contact volume, company volume, custom data schema definitions, active Programs, List count and membership volume, engagement score configuration, and activity history volume. We confirm the target Twenty deployment model (self-hosted or cloud SaaS at $9/user/month) and audit the existing Twenty instance's Data Model for any pre-existing custom objects or fields that affect schema design. The discovery output is a written migration scope document with record counts, object list, and a schema pre-creation plan.
Schema design and custom field pre-creation
We design the destination schema in Twenty. This includes creating any custom fields on Person and Company to receive Act-On properties that have no native Twenty equivalent (acton_lifecycle_stage__c, acton_engagement_score__c, acton_source__c, acton_original_create_date__c). If Act-On Custom Data schemas define standalone objects, we create Twenty custom objects with equivalent field types and relationships before any data import. Schema is configured via Twenty's Settings → Data Model UI or via API in a staging environment first.
Data extraction and deduplication
We export Contact, Company, List membership, activity history, and custom data records from Act-On via the API. We run a deduplication pass on Contacts using email as the primary key and flag duplicates for the customer's review before import. We export List membership as a separate denormalized table (one row per Contact per List) for tag creation during import. We audit data quality: blank required fields, malformed emails, inactive contacts, and stale records are flagged with a remediation recommendation before migration begins.
Staging migration and reconciliation
We run a full migration into a staging environment or sandbox copy of the Twenty instance. The customer reconciles record counts (Persons in, Companies in, activity Tasks in), spot-checks 25-50 records against Act-On source data, and reviews the tag structure and custom field values. Any mapping corrections are documented and applied before the production migration begins. We do not proceed to production migration until the customer signs off on the staging reconciliation report.
Production migration in dependency order
We run production migration in record-dependency order: Companies first (for deduplication and address normalization), then Persons (with Company lookups resolved, tags created from List membership, custom fields populated), then activity Tasks (chunked by date range with backoff logic), then Custom Data records (for standalone custom objects). Each phase emits a row-count reconciliation report. We freeze Act-On writes during the final cutover window and run a delta migration for any records modified during the migration window.
Cutover, validation, and Program inventory delivery
We enable Twenty as the system of record after the final delta pass. We deliver the Automated Program inventory document mapping each Act-On Program to a Twenty Workflow rebuild blueprint, the engagement scoring configuration guide, and the full field mapping reference. We support a one-week hypercare window to resolve any record linkage issues, tag gaps, or custom field value discrepancies. We do not rebuild Act-On Programs as Twenty Workflows inside the migration scope; that is a separate configuration engagement for the customer's admin.
Platform deep dives
Act-On
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 Act-On 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
Act-On: Not publicly documented.
Data volume sensitivity
Act-On doesn't expose a bulk API — REST + parallelization used for high-volume runs.
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 Act-On to Twenty CRM migration scoping. Not seeing yours? Book a call.
Walk through your Act-On 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 Act-On
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.