CRM migration
Field-level mapping, validation, and rollback between Click and Salesforce Sales Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Sales Cloud.
Click
Source
Salesforce Sales Cloud
Destination
Compatibility
11 of 12
objects map 1:1 between Click and Salesforce Sales Cloud.
Complexity
BStandard
Timeline
6-10 weeks
Overview
Moving from ClickDimensions to Salesforce is a two-layer extraction masquerading as a single migration. ClickDimensions is not a standalone CRM — it extends Microsoft Dynamics 365, which holds the actual contact, account, lead, and opportunity records. We pull the base CRM layer from the Dynamics instance and the marketing activity layer (Email Sends, Event Registrations, Web Tracking Events, Survey Responses) from ClickDimensions itself, then map both to Salesforce's native objects. Email Sends migrate to Campaign Member activity; Event Registrations migrate to Campaign with custom registration fields; Web Tracking and Survey Responses migrate to custom Salesforce objects with field-level mapping. ClickDimensions Workflows, automations, and campaign templates do not migrate as code — we deliver a written inventory for your admin to rebuild in Salesforce Flow or a Salesforce-native marketing tool. API rate-limit constraints on Free Forever plans and the non-transferability of Click's built-in Export/Import tools (which are Dynamics-environment-only) are the highest-severity pair-specific gotchas.
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 Salesforce Sales Cloud, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Click
Contact (via Dynamics 365)
Salesforce Sales Cloud
Contact
1:1ClickDimensions does not store contacts independently — it extends Microsoft Dynamics 365 contact records with marketing attributes. We pull the base Contact records from the Dynamics 365 instance, preserving FirstName, LastName, Email, Phone, and the contact's Account link. ClickDimensions-specific fields (email consent flags, engagement scores, lifecycle stage annotations) migrate as custom fields on the Salesforce Contact record. The AccountId lookup on Contact is resolved from the Account records imported in the same phase.
Click
Account (via Dynamics 365)
Salesforce Sales Cloud
Account
1:1ClickDimensions links marketing activity to Accounts primarily through the contact-to-account relationship. We extract Account records from the Dynamics 365 instance and import them into Salesforce as Account. The Account Name, Website, Industry, and Billing Address fields migrate directly. Account must be imported before Contact so that the AccountId foreign key is available at Contact insert time.
Click
Lead (via Dynamics 365)
Salesforce Sales Cloud
Lead
1:1Dynamics 365 Lead records with ClickDimensions marketing annotations (lead scoring, source attribution, campaign responses) migrate to Salesforce Lead. The Dynamics leadscore and rating fields map to Salesforce LeadScore and Rating. Any ClickDimensions custom fields on Leads migrate to custom Lead fields. Leads are imported after Accounts and before Contacts to maintain referential integrity.
Click
Email Sends
Salesforce Sales Cloud
Campaign + CampaignMember
1:manyClickDimensions Email Send records (send date, campaign name, recipient count, delivery status) map to Salesforce Campaign. Individual send recipients link as CampaignMember records attached to the corresponding Contact or Lead. Email engagement events (opens, clicks) from ClickDimensions migrate as Campaign Member Status updates (Sent, Opened, Clicked) and as Activity records (Tasks) with engagement timestamps. Open and click counts aggregate on the Campaign for reporting.
Click
Event Registrations
Salesforce Sales Cloud
Campaign (Event)
1:1ClickDimensions Event entities store registration records linked to CRM contacts and accounts. Registration status, session choices, and custom registration fields migrate to Salesforce Campaign (of type Event) with CampaignMember records for each registrant. Custom registration fields (e.g., dietary restrictions, session preferences) become custom fields on Campaign or CampaignMember depending on whether the data is attendee-level or event-level. The Event start and end date from ClickDimensions map to Salesforce Campaign StartDate and EndDate.
Click
Web Tracking Events
Salesforce Sales Cloud
Task + Custom Object
1:1ClickDimensions captures web behavioral events tied to known contacts (via email) or anonymous visitors. Known-contact events migrate to Salesforce Task records linked to the Contact, with the event type (page view, form submission, resource download) as Task Subject and a custom Task field for event detail. Anonymous visitor data is optionally migrated to a custom WebActivity__c object keyed by session ID if the customer requires the raw behavioral data for reporting. The ActivityDate on Task preserves the original event timestamp for timeline ordering.
Click
Survey Responses
Salesforce Sales Cloud
Custom Object (SurveyResponse__c)
1:1ClickDimensions Survey Responses are linked to contacts and include answer data in custom field structures. We extract response records and map survey questions to fields on a Salesforce custom object SurveyResponse__c with a Lookup to Contact. Survey answers that are multi-select or free-text become Textarea fields; single-select answers become Picklist fields. Response status (completed, partial, abandoned) from ClickDimensions becomes a Status__c picklist on the custom object. We pre-create the custom object schema in Salesforce before migration.
Click
Opportunity (via Dynamics 365)
Salesforce Sales Cloud
Opportunity
1:1Dynamics 365 Opportunities map to Salesforce Opportunity. The Dynamics opportunity amount, close date, and stage map to Salesforce Amount, CloseDate, and StageName. Stage probability percentages migrate to Salesforce StageProbability fields. The Opportunity's AccountId and OwnerId are resolved from the Account and User lookups imported earlier in the migration sequence.
Click
Activity (Email Engagements, Form Submissions via Dynamics)
Salesforce Sales Cloud
Task + EmailMessage
1:1ClickDimensions creates activity records in Dynamics 365 for email engagement, form submissions, and other interactions. These are standard CRM Activity objects in Dynamics and migrate cleanly to Salesforce Task and Event. Email engagements migrate as EmailMessage records (the content) linked to a Task (the timeline entry). Form submission events migrate as Task records with a custom form_name__c field. The WhoId on Task points to the Contact or Lead; the WhatId points to the related Opportunity, Account, or Campaign.
Click
ClickDimensions Custom Fields on Tasks
Salesforce Sales Cloud
Custom Fields on Task
1:1ClickDimensions supports custom fields on tasks via its API. Free Forever plans limit Custom Field writes to 60 uses per workspace, so we check the customer's plan tier during scoping. On Free Forever plans we use the API within the 60-use limit and fall back to manual UI-based field population for overflow records. On paid plans we map all custom task fields to Salesforce custom Task fields without limitation. The custom field API name from ClickDimensions becomes the Salesforce custom field API name with __c suffix.
Click
Owner/User (via Dynamics 365)
Salesforce Sales Cloud
User
1:1ClickDimensions user records for the Dynamics instance (sales reps, marketers) map to Salesforce User records. We resolve owners by email match against the destination Salesforce org's User table. Any owner without a matching User goes to a reconciliation queue for the customer's admin to provision before record import resumes. OwnerId must be resolved before Opportunities, Contacts, Leads, and Tasks can be imported.
Click
Dynamics 365 Product / Price List
Salesforce Sales Cloud
Product2 + PricebookEntry
1:1If the Dynamics 365 instance contains product catalog data used in Quotes or Opportunities, we extract Products and Price List entries and map them to Salesforce Product2 and PricebookEntry. The product code from Dynamics becomes the Product2 ProductCode; the price list value becomes the Standard Pricebook entry. Products must be imported before Line Items.
| Click | Salesforce Sales Cloud | Compatibility | |
|---|---|---|---|
| Contact (via Dynamics 365) | Contact1:1 | Fully supported | |
| Account (via Dynamics 365) | Account1:1 | Fully supported | |
| Lead (via Dynamics 365) | Lead1:1 | Fully supported | |
| Email Sends | Campaign + CampaignMember1:many | Mapping required | |
| Event Registrations | Campaign (Event)1:1 | Mapping required | |
| Web Tracking Events | Task + Custom Object1:1 | Mapping required | |
| Survey Responses | Custom Object (SurveyResponse__c)1:1 | Mapping required | |
| Opportunity (via Dynamics 365) | Opportunity1:1 | Fully supported | |
| Activity (Email Engagements, Form Submissions via Dynamics) | Task + EmailMessage1:1 | Fully supported | |
| ClickDimensions Custom Fields on Tasks | Custom Fields on Task1:1 | Fully supported | |
| Owner/User (via Dynamics 365) | User1:1 | Fully supported | |
| Dynamics 365 Product / Price List | Product2 + PricebookEntry1: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
Salesforce Sales Cloud gotchas
Workflow Rules and Process Builder are retired
Bulk API batch quota exhaustion during large imports
Storage overage billing is non-obvious
Account-Contact many-to-many relationship mapping
Territory and team member import ordering dependencies
Pair-specific challenges
Migration approach
Discovery and two-source extraction planning
We audit the Microsoft Dynamics 365 instance for base CRM records (Contacts, Accounts, Leads, Opportunities, Products, Owners) and the ClickDimensions portal for marketing activity entities (Email Sends, Event Registrations, Web Tracking Events, Survey Responses). We confirm the ClickDimensions plan tier (Free Forever or paid) to scope the Custom Field write limit, identify any non-standard custom fields in use, and assess the total volume of marketing activity records. We also identify the Salesforce destination org edition (Starter $25/user, Professional $80/user, Enterprise $165/user) based on custom object requirements and user count. The discovery output is a written migration scope specifying both the Dynamics data pull and the ClickDimensions extraction with record counts per entity.
Schema design in Salesforce Sandbox
We design the destination schema in a Salesforce Sandbox before touching production. This includes pre-creating custom objects (SurveyResponse__c for survey responses, WebActivity__c for web tracking if needed), custom fields on standard objects (Contact, Lead, Campaign, CampaignMember, Task), Salesforce Campaign Record Types for each ClickDimensions event type, and a custom hs_original_lifecycle__c field on Contact and Lead to preserve any ClickDimensions lifecycle or consent data. Schema is deployed via Salesforce metadata API into the Sandbox for validation. The customer reviews and approves the schema before we proceed to data migration.
Sandbox migration and reconciliation
We run a full migration into the Salesforce Sandbox using production-like data volumes. The customer's RevOps lead reviews record counts across all entities, spot-checks 25-50 random records against the source Dynamics and ClickDimensions systems, and validates that Email Sends appear as Campaigns with correct member counts, Event Registrations appear as Campaign Members with custom field values populated, and Survey Responses appear in the custom object with correct contact lookups. Mapping corrections are documented and applied before production migration begins. This step is the last chance to catch field-level mismatches without touching live data.
Owner reconciliation and User provisioning
We extract every distinct owner referenced on Dynamics CRM records (Contacts, Accounts, Leads, Opportunities, Tasks) and match by email against the destination Salesforce org's User table. Any owner without a matching Salesforce User goes to a reconciliation queue. The customer's Salesforce admin provisions the missing Users and confirms Active status. OwnerId references are required on most standard Salesforce objects, so migration cannot proceed past this step until the queue is cleared.
Production migration in dependency order
We run production migration in record-dependency order: Accounts (from Dynamics 365), Contacts (with AccountId resolved), Leads (with OwnerId resolved), Opportunities (with AccountId, OwnerId, and RecordTypeId resolved), Products and Pricebook entries, Campaign records (from ClickDimensions Email Sends and Events), CampaignMember records (from email recipients and event registrants), Activity history (Tasks, Events, EmailMessages via Bulk API 2.0), SurveyResponse__c custom object records (last, with Contact lookup resolved), and WebActivity__c if applicable. Each phase emits a row-count reconciliation report and a field-populated sample before the next phase begins.
Cutover, validation, and automation rebuild handoff
We freeze writes to the source Dynamics and ClickDimensions systems during cutover, run a final delta migration of any records modified during the migration window, then enable Salesforce as the system of record. We deliver a written inventory of every active ClickDimensions Workflow and campaign automation with trigger, conditions, actions, and a recommended Salesforce Flow equivalent. We do not rebuild ClickDimensions Workflows as Salesforce Flow inside the migration scope; that is a separate engagement. We support a one-week hypercare window where we resolve reconciliation issues raised by the customer's teams during their first week of Salesforce-only operation.
Platform deep dives
Click
Source
Strengths
Weaknesses
Salesforce Sales Cloud
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 Salesforce Sales Cloud.
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 Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.
Walk through your Click to Salesforce Sales Cloud 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 Salesforce Sales Cloud
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.