CRM migration
Field-level mapping, validation, and rollback between Act-On and Salesforce Sales Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Sales Cloud.
Act-On
Source
Salesforce Sales Cloud
Destination
Compatibility
8 of 12
objects map 1:1 between Act-On and Salesforce Sales Cloud.
Complexity
BStandard
Timeline
5-8 weeks
Overview
Moving from Act-On to Salesforce is a platform-type shift: Act-On is a marketing automation system centred on Contacts, Companies, and automated Programs; Salesforce Sales Cloud is a full CRM that adds Leads, Accounts, Opportunities, and a structured pipeline. We resolve the model difference during discovery, splitting Act-On contacts by lifecycle stage and routing them to Salesforce Leads or Contacts attached to Accounts. Engagement scores migrate as static numeric values; the Act-On scoring formulas do not transfer. Automated Programs (multi-step nurture sequences) are documented as reference blueprints rather than migrated code. We use the Salesforce Bulk API 2.0 for large engagement histories and handle Act-On's undocumented throttling with exponential backoff and batch chunking. Workflows, Sequences, and email templates do not migrate; we deliver a written inventory of every active Program and its recommended Salesforce Flow equivalent for the customer's admin to rebuild.
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 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.
Act-On
Contact
Salesforce Sales Cloud
Lead or Contact (split required)
1:manyAct-On Contacts with lifecycle stage of prospect or unknown map to Salesforce Lead. Contacts with lifecycle stage of customer, evangelist, or partner map to Salesforce Contact tied to a Salesforce Account. We compute the split using Act-On's lifecycle_stage property and preserve the original value in a custom field ao_original_lifecycle__c on both Lead and Contact for audit. The customer approves the split matrix during discovery before any data moves.
Act-On
Company
Salesforce Sales Cloud
Account
1:1Act-On Company records map directly to Salesforce Account. The Company name becomes Account.Name; industry and custom company fields migrate to standard or custom Account fields. Account is created before Contact import so that AccountId lookup is satisfied at Contact insert time.
Act-On
List
Salesforce Sales Cloud
Campaign or Multi-Select Picklist
lossyAct-On Lists are audience segments used for targeting campaigns. Static Lists migrate as Salesforce Campaign records with Campaign Members seeded from the Contact/Lead mapping. Dynamic Lists cannot replicate their rule logic; we document the segment criteria as a reference and the customer rebuilds as a Salesforce Campaign or Smart List. List membership for small static lists migrates as a multi-select picklist or tag field on the Contact/Lead.
Act-On
Engagement Score
Salesforce Sales Cloud
Custom Number Field on Lead/Contact
1:1Act-On calculates engagement scores using proprietary weighting across email opens, clicks, page visits, and form submissions. The calculation rules do not export. We migrate the current numeric score as a static integer in a custom field ao_engagement_score__c on Lead and Contact. The customer configures Salesforce-native scoring (Einstein Lead Scoring or a custom Flow-based scoring model) post-migration.
Act-On
Custom Data Schema / Custom Objects
Salesforce Sales Cloud
Custom Object (__c)
1:1Act-On's Custom Data Schema defines user-defined field extensions per object. We read the schema definition via Act-On's API, export all existing records, and write them to Salesforce custom objects with equivalent API names (__c suffix). The destination schema is pre-created in a Sandbox before any data import, including custom field types, lookup relationships, and validation rules.
Act-On
Email (content and send history)
Salesforce Sales Cloud
EmailTemplate or ContentDocument
1:1Act-On email content, subject lines, and send history are accessible via API. HTML email bodies migrate as ContentDocument records linked to the relevant Account, Contact, or Campaign. Email templates do not migrate as live templates; we deliver a content inventory document listing subject, body copy, and images for the customer's admin to recreate in Salesforce Email Templates or Marketing Cloud.
Act-On
Form (web forms)
Salesforce Sales Cloud
Web-to-Lead or Experience Cloud Form
lossyAct-On web form field definitions and submission data migrate; the form embed code does not transfer. We deliver a form field inventory mapping each Act-On form field to a Salesforce field and recommend Salesforce Web-to-Lead (standard) or Experience Cloud Form Builder (if the customer licenses Experience Cloud) as the replacement implementation.
Act-On
Activity: Email opens, clicks, form submissions
Salesforce Sales Cloud
Task or Event
1:1Act-On logs email opens, clicks, form submissions, and other behavioural events as timestamped activity records. We export activity history as Task records linked to the Contact or Lead, with the original engagement type (open, click, form_submission) preserved in a custom Task field ao_engagement_type__c. Volume can be large; we chunk by date range and use Bulk API 2.0.
Act-On
Activity: Calls, Meetings logged in Act-On
Salesforce Sales Cloud
Task (TaskSubtype = Call) or Event
1:1Call logs from Act-On map to Salesforce Task with TaskSubtype = Call. Duration, disposition, and any notes migrate to custom Task fields. Meeting records map to Salesforce Event with StartDateTime, EndDateTime, and Location preserved. Attendee resolution is limited by Act-On's API; we link to the primary Contact or Lead only.
Act-On
Tag
Salesforce Sales Cloud
Multi-Select Picklist or Topic
lossyAct-On Contact and Company tags export as label arrays. We map them to Salesforce multi-select picklist fields on Lead and Contact for operational use, or to Salesforce Topics with TopicAssignment records for content classification. The customer chooses the tag strategy during scoping.
Act-On
Owner
Salesforce Sales Cloud
User
1:1Act-On owners (users who own contacts, companies, and programs) map to Salesforce User records by email match. Any Act-On Owner without a matching Salesforce User is held in a reconciliation queue for the customer's admin to provision before record import resumes.
Act-On
Program (Automated Workflow)
Salesforce Sales Cloud
Documentation only
1:1Act-On Programs define multi-step nurture sequences stored server-side. They are not accessible via the API and cannot be migrated as code. We export all Contact data within each Program (who entered, when, which branch they took) as a historical record and deliver a Program blueprint document listing sequence steps, entry criteria, delays, and actions. The customer's admin rebuilds the Program in Salesforce Flow using that document as reference.
| Act-On | Salesforce Sales Cloud | Compatibility | |
|---|---|---|---|
| Contact | Lead or Contact (split required)1:many | Fully supported | |
| Company | Account1:1 | Fully supported | |
| List | Campaign or Multi-Select Picklistlossy | Fully supported | |
| Engagement Score | Custom Number Field on Lead/Contact1:1 | Fully supported | |
| Custom Data Schema / Custom Objects | Custom Object (__c)1:1 | Mapping required | |
| Email (content and send history) | EmailTemplate or ContentDocument1:1 | Fully supported | |
| Form (web forms) | Web-to-Lead or Experience Cloud Formlossy | Fully supported | |
| Activity: Email opens, clicks, form submissions | Task or Event1:1 | Fully supported | |
| Activity: Calls, Meetings logged in Act-On | Task (TaskSubtype = Call) or Event1:1 | Fully supported | |
| Tag | Multi-Select Picklist or Topiclossy | Fully supported | |
| Owner | User1:1 | Fully supported | |
| Program (Automated Workflow) | Documentation only1: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
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 product confirmation
We confirm the exact product name (Act-On marketing automation SaaS, not ACT! CRM), gather Act-On API credentials, and audit the source portal for contact volume, company volume, custom data schema definitions, active Programs, List count and type (static vs dynamic), engagement history volume and date range, and owner roster. We pair this with a Salesforce edition review: Professional ($80/user) covers most migrations; Enterprise ($165/user) is required for advanced territory management, custom Forecasting, or Einstein AI features. The discovery output is a written migration scope and a Salesforce edition recommendation.
Schema design and Lead-Contact split rule
We design the destination schema in Salesforce. This includes provisioning custom objects (with __c API names matched to Act-On Custom Data Schema names), custom fields (with type-mapped Salesforce field types), Record Types for any pipeline equivalents, and the Lead-Contact split rule based on the customer's Act-On lifecycle stage matrix. Schema is deployed via Salesforce metadata API into a Sandbox first for validation. We also configure Salesforce field-level security and any validation rules that may block import before migration begins.
Sandbox migration and reconciliation
We run a full migration into a Salesforce Sandbox (Full Copy or Partial Copy) using production-like data volume. The customer's RevOps lead reconciles record counts (Contacts in, Leads in, Accounts in, Activities in), spot-checks 25-50 random records against Act-On source, and signs off the schema and mapping before production migration begins. Any mapping corrections happen here, not in production.
Owner reconciliation and User provisioning
We extract every distinct Act-On owner referenced on Contact, Company, and engagement records and match by email against the Salesforce destination org's User table. Owners without a matching User go to a reconciliation queue. The customer's Salesforce admin provisions any missing Users before migration resumes because OwnerId references are required on most standard objects.
Production migration in dependency order
We run production migration in record-dependency order: Accounts (from Act-On Companies), Contacts and Leads (with the lifecycle stage split applied), Custom Objects (with pre-created schema), Lists (as Campaigns with Campaign Members for static lists), Engagement history (as Tasks via Bulk API 2.0 with chunking and parent-record resolution), and Tags (as multi-select picklists or Topics). Each phase emits a row-count reconciliation report before the next phase begins.
Cutover, validation, and Program rebuild handoff
We freeze Act-On writes 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 the Program blueprint document listing sequence steps, entry criteria, delays, and actions for each Act-On Automated Program. We support a one-week hypercare window where we resolve any reconciliation issues. We do not rebuild Act-On Programs as Salesforce Flow inside the migration scope; that is a separate engagement or an internal admin task.
Platform deep dives
Act-On
Source
Strengths
Weaknesses
Salesforce Sales Cloud
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 Salesforce Sales Cloud.
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 Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.
Walk through your Act-On 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 Act-On
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.