CRM migration
Field-level mapping, validation, and rollback between Click and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
Click
Source
Twenty CRM
Destination
Compatibility
6 of 10
objects map 1:1 between Click and Twenty CRM.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from ClickDimensions to Twenty CRM requires addressing the fundamental architectural gap between these two platforms. ClickDimensions is not a standalone CRM — it is a marketing automation layer that sits above Microsoft Dynamics 365 and does not store contacts independently. We must extract base CRM records (Contacts, Accounts, Leads, Opportunities) from the underlying Dynamics instance rather than from ClickDimensions exports alone. Once we have the Dynamics records, we map them into Twenty's People (Contacts) and Companies (Accounts) objects, then overlay ClickDimensions marketing activity entities — Email Sends, Event Registrations, Web Tracking Events, and Survey Responses — as Tasks, Notes, or custom object records. Twenty's CSV-based import requires all custom fields to be created in Settings before records are imported, and users must be invited before owner lookups can resolve. We do not migrate ClickDimensions workflows, marketing automation rules, or survey logic as code; we deliver a written inventory of these for the customer's admin to rebuild in Twenty's workflow builder. The migration path is scoped to the CRM data layer only — the marketing automation rebuild sits outside standard scope.
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 Click 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.
Click
Contact (from Dynamics 365)
Twenty CRM
People
1:1ClickDimensions does not store contacts independently — all Contact records live in the underlying Microsoft Dynamics 365 CRM instance. We extract Contacts from Dynamics via its API or export tools, not from ClickDimensions. Each Dynamics Contact maps to Twenty People. Email address is the dedupe key. Mobile phone, job title, and address fields map directly to equivalent Twenty People fields. We preserve the Dynamics Contact ID as a custom field dynamics_contact_id__c for audit trail.
Click
Account (from Dynamics 365)
Twenty CRM
Company
1:1Dynamics Accounts map to Twenty Companies. Website, industry, phone, and address fields migrate directly. We resolve the Dynamics Account-Contact relationship and link each People record to its parent Company via Twenty's relation fields. Company is imported before People so that the Company lookup is satisfied at the moment of People insert.
Click
Lead (from Dynamics 365)
Twenty CRM
People (with custom status field)
1:manyDynamics Leads do not have a direct Twenty equivalent because Twenty uses a single People object without a separate Lead stage. We migrate Dynamics Leads to Twenty People and preserve the original lead status in a custom field original_lead_status__c so that the customer's admin can segment prospects in Twenty's views. If the customer requires a distinct lead pipeline, we create a custom object called Lead with its own pipeline stages and link it to People.
Click
Opportunity (from Dynamics 365)
Twenty CRM
Opportunity
1:1Dynamics Opportunities map directly to Twenty Opportunities. Deal amount, close date, pipeline stage, and probability migrate. We resolve the parent Company (Account) and People (Contact) lookups during migration. Dynamics Opportunity products map to OpportunityLineItems if the customer uses product-based selling.
Click
Email Send (ClickDimensions)
Twenty CRM
Task (custom type)
1:1ClickDimensions Email Send records — including send date, campaign name, subject, and recipient count — migrate to Twenty Tasks with a custom field email_send_id__c and a picklist field email_send_type__c set to Campaign Email. The Task is linked to the People record that represents the recipient Contact. Individual open and click engagement events are mapped as separate Task records with engagement_type__c set to Email Open or Email Click.
Click
Event Registration (ClickDimensions)
Twenty CRM
Task (custom type) + custom Event object
1:manyClickDimensions Event Registrations split into two parts: the registration record links to the People registrant as a Task with event_registration__c set to true, and the event itself is created as a custom Event object in Twenty (name, date, location, capacity) before registration records are imported. Custom registration fields map to custom fields on the Task record.
Click
Web Tracking Event (ClickDimensions)
Twenty CRM
Note
lossyClickDimensions Web Tracking Events for known contacts (identified by email) migrate to Twenty Notes attached to the corresponding People record. The Note body captures the page visited, timestamp, and referring URL. Anonymous visitor tracking events are optionally migrated as aggregate campaign or source data if the customer has an active use case; otherwise they are excluded to reduce noise in the People timeline.
Click
Survey Response (ClickDimensions)
Twenty CRM
custom Survey Response object
1:1ClickDimensions Survey Responses require a custom Survey Response object pre-created in Twenty before import. Each survey question maps to a custom field on the object. Responses are linked to People (the respondent). Survey metadata (survey name, completion date, score) migrates as standard fields on the custom object. Survey logic and conditional branching do not migrate and are documented for the customer's admin to rebuild in Twenty's workflow builder.
Click
Custom Field (ClickDimensions on Dynamics entities)
Twenty CRM
Custom Field (Twenty)
lossyClickDimensions custom field data attached to Dynamics Contacts, Accounts, Leads, and Opportunities migrates to the corresponding Twenty custom fields. Custom fields must be created in Twenty Settings before CSV import — the import creates records, not fields. We generate the full list of required custom fields from the Dynamics schema during discovery, the customer or our team creates them in Twenty, and we validate their existence before running the import. ClickDimensions Free Forever plan users with API write limits should upgrade to a paid tier before migration begins.
Click
Activity (from Dynamics 365)
Twenty CRM
Task
1:1Dynamics activity records — phone calls, tasks, appointments, and emails logged in Dynamics — migrate to Twenty Tasks. Activity type is preserved in a custom field activity_type__c. Activity date migrates as the Task due date. Call duration, disposition, and body text map to custom fields on the Task. These records provide the historical activity timeline in Twenty after cutover.
| Click | Twenty CRM | Compatibility | |
|---|---|---|---|
| Contact (from Dynamics 365) | People1:1 | Fully supported | |
| Account (from Dynamics 365) | Company1:1 | Fully supported | |
| Lead (from Dynamics 365) | People (with custom status field)1:many | Fully supported | |
| Opportunity (from Dynamics 365) | Opportunity1:1 | Fully supported | |
| Email Send (ClickDimensions) | Task (custom type)1:1 | Fully supported | |
| Event Registration (ClickDimensions) | Task (custom type) + custom Event object1:many | Fully supported | |
| Web Tracking Event (ClickDimensions) | Notelossy | Fully supported | |
| Survey Response (ClickDimensions) | custom Survey Response object1:1 | Fully supported | |
| Custom Field (ClickDimensions on Dynamics entities) | Custom Field (Twenty)lossy | Fully supported | |
| Activity (from Dynamics 365) | Task1: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.
Click gotchas
Custom Field write limit on Free Forever plans
ClickDimensions does not store contacts independently
Export and Import tools move Click records between Dynamics environments
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 plan tier verification
We audit the source environment in two layers: the underlying Microsoft Dynamics 365 instance (object counts, custom fields, pipeline stages, activity volume) and the ClickDimensions instance (Email Sends, Event Registrations, Web Tracking Events, Survey Responses, custom fields, plan tier). We confirm the ClickDimensions plan tier and identify any API write limits that affect extraction strategy. The discovery output is a written scope document listing all entities to migrate, their estimated record counts, and the recommended extraction method (Dynamics API, ClickDimensions built-in export, or ClickDimensions API with rate-limit handling) for each entity.
Dynamics CRM extraction and data quality review
We extract base CRM records — Contacts, Accounts, Leads, Opportunities, Products, and Activities — from the underlying Microsoft Dynamics 365 instance. We run a data quality review: deduplication on email address and company name, removal of records with no activity in over two years, and consolidation of duplicate accounts. This step is critical because ClickDimensions has no standalone contact store — the Dynamics extraction IS the foundation of the migration. We produce a data quality report and share it with the customer's admin for sign-off before proceeding.
ClickDimensions marketing entity extraction
We extract ClickDimensions marketing entities — Email Sends, Event Registrations, Web Tracking Events for known contacts, and Survey Responses — using the ClickDimensions API (paid plans) or the built-in Export feature (Free Forever plans). For each entity type, we map the ClickDimensions fields to their Twenty equivalents (Task, Note, or custom object) and produce a field-level mapping document. We flag any ClickDimensions custom fields that require equivalent custom fields to be pre-created in Twenty before import.
Twenty workspace preparation and custom field creation
We create all required custom fields in Twenty Settings before any data import begins. This includes custom fields for ClickDimensions marketing data (email_send_type__c, event_registration__c, engagement_type__c), custom fields for Dynamics metadata (dynamics_contact_id__c, original_lead_status__c), and any custom object schemas (Survey Response). We invite all team members who will be assigned as record owners, wait for acceptances, and validate that the Members list reflects every user referenced in the source data. Twenty's documentation confirms that fields must exist before import and users must be invited before owner lookups resolve.
Sandbox migration and reconciliation
We run a full migration into a staging environment using production-like data volume. The customer's admin reviews record counts, spot-checks 25-50 records against the source data, and validates that the relationship links (People to Company, Task to People, Opportunity to Company) resolved correctly. Any mapping corrections are documented and applied before the production migration. This step catches field name mismatches, missing custom fields, and lookup resolution failures before they affect production data.
Production migration in dependency order
We run production migration in record-dependency order: Companies (first, so that lookups are available), People (with CompanyId resolved), Opportunities (with CompanyId and primary PeopleId resolved), Tasks from Dynamics Activities, then ClickDimensions entities (Email Sends as Tasks, Event Registrations as Tasks linked to custom Event records, Web Tracking as Notes, Survey Responses as custom object records). Each phase emits a row-count reconciliation report. We freeze writes in Dynamics and ClickDimensions during the cutover window, run a final delta migration of any records modified during the window, then hand off to the customer.
Cutover, validation, and automation rebuild handoff
We enable Twenty as the system of record after cutover and deliver the written inventory of ClickDimensions workflows, automations, and survey logic for the customer's admin to rebuild. We support a one-week hypercare window for reconciliation issues. We do not rebuild ClickDimensions workflows in Twenty as part of standard migration scope. That work is either handled by the customer's admin using Twenty's workflow capabilities or as a separate automation rebuild engagement.
Platform deep dives
Click
Source
Strengths
Weaknesses
Twenty CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 2 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 Click and Twenty CRM.
Object compatibility
2 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
Click: Inherits Microsoft Dataverse and Power Platform service-protection limits (per-user request quotas published by Microsoft). The vendor does not publish Click-specific limits beyond those..
Data volume sensitivity
Click 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 Click to Twenty CRM migration scoping. Not seeing yours? Book a call.
Walk through your Click 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 Click
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.