CRM migration
Field-level mapping, validation, and rollback between Salesforce Marketing Cloud Account Engagement and Freshsales. We move data and schema; workflows are rebuilt natively in Freshsales.
Salesforce Marketing Cloud Account Engagement
Source
Freshsales
Destination
Compatibility
10 of 15
objects map 1:1 between Salesforce Marketing Cloud Account Engagement and Freshsales.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from Salesforce Marketing Cloud Account Engagement to Freshsales is a cross-platform migration that separates two objects which Pardot consolidates into one. Pardot uses a single Prospects object with a lifecycle stage property to track both early-stage and qualified buyers; Freshsales splits these into separate Lead and Contact objects. We compute the split during migration using the customer's lifecycle matrix, preserve Pardot scoring as custom fields on both Lead and Contact, and migrate historical Campaign activity. Engagement Programs and Automation Rules are not migratable because they reference internal Pardot IDs; we document their structure for the customer's admin to rebuild. Forms, Landing Pages, and Email Templates with complex merge fields are also not migratable as functional assets. Multi-Business Unit accounts require manual reconstruction in Freshsales using Teams and shared Products. The migration uses Freshsales REST API endpoints with rate-limit handling and batch chunking on large record sets.
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 Salesforce Marketing Cloud Account Engagement object lands in Freshsales, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Salesforce Marketing Cloud Account Engagement
Prospect
Freshsales
Lead
1:manyProspects with lifecycle stages of subscriber, marketing qualified lead, or sales accepted lead map to Freshsales Lead. We apply a computed split rule during migration using the Pardot lifecycle_stage and hs_lead_status properties. The original Pardot lifecycle stage is preserved in a custom field pardot_lifecycle_stage__c on the Lead for audit and segmentation. Any active Pardot owner assignment is resolved to a Freshsales User by email before Lead creation.
Salesforce Marketing Cloud Account Engagement
Prospect
Freshsales
Contact
1:manyProspects with lifecycle stages of sales qualified lead, opportunity, customer, evangelist, or other map to Freshsales Contact. The original Pardot lifecycle stage is preserved in a custom field pardot_lifecycle_stage__c on the Contact. Contact is created after the related Account is established so the AccountId lookup is satisfied at insert time.
Salesforce Marketing Cloud Account Engagement
Custom Fields
Freshsales
Custom Fields
1:1Pardot Custom Fields migrate as Freshsales custom fields on the Lead and Contact objects. Field type mapping applies: Pardot text, number, date, and picklist fields map to Freshsales equivalent field types. Required field constraints and picklist values are recreated in Freshsales before import. Pardot field labels are preserved as Freshsales field names with spaces retained for readability.
Salesforce Marketing Cloud Account Engagement
Accounts (Salesforce CRM)
Freshsales
Account
1:1Pardot Prospects are associated to Accounts via the Salesforce CRM sync, but Account Engagement itself does not have a native Account object. We extract the linked Account name from the Pardot-Salesforce sync data and create Freshsales Account records. If no Salesforce Account is linked, we create the Account from the Prospects company field or use the email domain as a fallback dedupe key.
Salesforce Marketing Cloud Account Engagement
Campaigns
Freshsales
Deals
1:1Pardot Campaigns track marketing initiative performance and associate to Prospects. We map Campaign records to Freshsales Deals, with the Campaign name becoming the Deal name and the Campaign budget or cost mapped to the Deal Amount field. Each migrated Deal is linked to the Account and Contact derived from the associated Prospects. Campaign-level Prospect activity history migrates as Deal-related tasks and notes.
Salesforce Marketing Cloud Account Engagement
Scoring Categories
Freshsales
Fit Score + Engagement Score
lossyPardot Scoring Categories with custom weights and category names require manual rebuild in Freshsales. Freshsales Pro+ has native Fit Score and Engagement Score fields on Lead and Contact, but Pardot's custom Scoring Category logic cannot be imported as code. We export the category definitions and weight rules during scoping and deliver a written specification for rebuilding the scoring model in Freshsales scoring rules post-migration. Historical Prospect scores migrate as static custom field values for reference.
Salesforce Marketing Cloud Account Engagement
Custom Objects
Freshsales
Custom Objects
lossyPardot Custom Objects (available on Advanced+ tier) can reference Salesforce objects linked to Prospects. In Freshsales, we recreate the destination schema as Freshsales custom modules with lookup relationships to Contacts and Accounts. Custom object records migrate via the Freshsales REST API. Automation rules on custom objects (which Pardot marks as read-only) do not migrate.
Salesforce Marketing Cloud Account Engagement
Engagement Programs (Automation Rules)
Freshsales
N/A (documented for rebuild)
1:1Engagement Programs and Automation Rules are not migratable. They reference internal Pardot object IDs that do not exist in Freshsales. We export the full program structure during scoping, including trigger conditions, action sequences, wait steps, and completion actions, and deliver a written inventory for the customer's admin to rebuild as Freshsales workflows or a separate marketing automation tool. This is scoped as a separate rebuild project outside standard migration.
Salesforce Marketing Cloud Account Engagement
Forms
Freshsales
N/A (manual rebuild required)
1:1Pardot Forms capture Prospect data and are tied to Landing Pages and Custom Fields. Freshsales CRM has no native form builder equivalent. We export form definitions, field mappings, and handler logic as a written specification. The customer rebuilds forms in a separate form tool (Typeform, HubSpot Forms, or Freshworks Freshdesk forms) and maps field outputs to Freshsales custom fields. Form handler URLs cannot be migrated because they reference internal Pardot IDs.
Salesforce Marketing Cloud Account Engagement
Landing Pages
Freshsales
N/A (manual rebuild required)
1:1Pardot Landing Pages are static web assets hosted within or pointing to Account Engagement, tied to internal form IDs. Freshsales CRM has no Landing Page object. We export page content, layouts, and associated form bindings as a written asset inventory. Landing pages are rebuilt in a separate CMS or form tool post-migration. The customer documents URL redirects for any indexed landing pages before decommissioning the Pardot instance.
Salesforce Marketing Cloud Account Engagement
Email Templates
Freshsales
Email Templates
1:1Email Template HTML content migrates to Freshsales Email Templates. Merge field syntax requires rewriting: Pardot uses double-brace syntax such as %%first_name%% and Freshsales uses single-brace syntax such as {{contact.first_name}}. We rewrite standard merge fields during template export. Dynamic content blocks with conditional branching logic are flagged for marketer-level review and manual reconstruction rather than automated import.
Salesforce Marketing Cloud Account Engagement
Tags
Freshsales
Tags
1:1Pardot Tags used for Prospect segmentation migrate as Freshsales Tags on Contact records. Tags export cleanly via the Pardot API as label-value pairs per Prospect. In Freshsales, Tags are a native segmentation feature available on Contact and Deal objects. Tag assignments migrate as tag membership records against the relevant Contact derived from the Prospect.
Salesforce Marketing Cloud Account Engagement
Lists (Static and Dynamic)
Freshsales
Contact Groups
1:1Pardot Static List memberships migrate as Contact records tagged with the corresponding list name. Dynamic Lists with rule-based criteria cannot migrate as active lists because the criteria engine differs between platforms. We export the dynamic list membership snapshot at migration time and deliver a written rule translation for rebuilding the equivalent Contact Group logic in Freshsales.
Salesforce Marketing Cloud Account Engagement
Business Units
Freshsales
Teams
lossyPardot Business Units partition prospects, users, and branding within a single account. Freshsales has no Business Unit equivalent; it supports a single account with Teams for internal segmentation. For multi-Business Unit migrations, we migrate each Business Unit's Prospects as separate scoped imports and deliver a written configuration plan using Freshsales Teams, shared Products, and territory-based Assignment Rules to approximate the original Business Unit structure.
Salesforce Marketing Cloud Account Engagement
Users (Assigned Owners)
Freshsales
Users
1:1Pardot Users or Assigned Owners correspond to Freshsales Users responsible for Prospect records. We resolve Pardot user email addresses against the Freshsales User table. Any Pardot Owner without a matching Freshsales User goes to a reconciliation queue for admin provisioning before record import begins. Owner assignments on Prospects migrate as the OwnerId on the resulting Lead or Contact in Freshsales.
| Salesforce Marketing Cloud Account Engagement | Freshsales | Compatibility | |
|---|---|---|---|
| Prospect | Lead1:many | Fully supported | |
| Prospect | Contact1:many | Fully supported | |
| Custom Fields | Custom Fields1:1 | Mapping required | |
| Accounts (Salesforce CRM) | Account1:1 | Fully supported | |
| Campaigns | Deals1:1 | Mapping required | |
| Scoring Categories | Fit Score + Engagement Scorelossy | Mapping required | |
| Custom Objects | Custom Objectslossy | Mapping required | |
| Engagement Programs (Automation Rules) | N/A (documented for rebuild)1:1 | Not supported | |
| Forms | N/A (manual rebuild required)1:1 | Mapping required | |
| Landing Pages | N/A (manual rebuild required)1:1 | Mapping required | |
| Email Templates | Email Templates1:1 | Mapping required | |
| Tags | Tags1:1 | Fully supported | |
| Lists (Static and Dynamic) | Contact Groups1:1 | Fully supported | |
| Business Units | Teamslossy | Mapping required | |
| Users (Assigned Owners) | Users1: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.
Salesforce Marketing Cloud Account Engagement gotchas
Engagement Programs and Automation Rules cannot be exported
Prospect contact volume limits enforced per tier
Email address is the sole unique identifier for Prospect matching
Multi-Business Unit accounts require separate migration scoping
Email Template merge fields use Pardot syntax incompatible with most destinations
Freshsales gotchas
Freddy AI is Pro-tier only despite heavy marketing
Post-migration emails and sequences are disabled
Bot session credits are a one-time 500-session allocation
Phone credits charged per minute with no cap
File storage limits scale with plan tier
Pair-specific challenges
Migration approach
Discovery and scoping
We audit the Pardot account across tier (Growth+, Plus+, Advanced+, Premium+), prospect volume, custom fields, Scoring Categories, Campaigns, Custom Objects, Business Units, email templates, and Engagement Program inventory. We assess Freshsales tier requirements against the customer's data model and deliver a written migration scope that includes the Lead-Contact split rule, custom field mapping, Scoring Category rebuild specification, and a list of assets that require manual rebuild post-migration rather than automated migration.
Schema design in Freshsales
We design the Freshsales schema to receive the Pardot data. This includes recreating all custom fields with type-mapped Freshsales field types on Lead and Contact objects, recreating Scoring Category logic as Freshsales Fit Score and Engagement Score rules, configuring the deal pipeline with stages mapped from Pardot Campaigns, designing the Lead-Contact split rule using the customer's lifecycle stage matrix, and setting up Teams for multi-Business Unit scenarios. Schema is validated in a Freshsales test account before production migration.
Sandbox migration and reconciliation
We run a full migration into a Freshsales sandbox environment using a representative subset of prospect records. The customer's admin reconciles record counts (Leads in, Contacts in, Accounts in, Deals in), spot-checks field values against the Pardot source, and validates the split logic against 25-50 randomly sampled records. Email template rendering is tested with merge field substitutions. Sign-off on the sandbox reconciliation precedes the production migration date.
Owner reconciliation and User provisioning
We extract every distinct Pardot Assigned Owner referenced on Prospect records and match by email against the Freshsales User table. Any Owner without a matching Freshsales User is added to a reconciliation queue for the customer's admin to provision before record import begins. OwnerId references are required on Leads, Contacts, and Deals, so provisioning must complete before the production migration phase starts.
Production migration in dependency order
We run production migration in record-dependency order: Accounts first (from Pardot Salesforce-linked Account names or company field), then Leads and Contacts with the lifecycle stage split applied, then Deals from Pardot Campaigns linked to Accounts and Contacts, then Products and Deal Line Items, then Campaign-related activity history as Freshsales Tasks and notes, then custom field values on Lead and Contact, and finally Tags. Each phase emits a row-count reconciliation report before the next phase begins.
Cutover, validation, and rebuild handoff
We freeze writes to Pardot during cutover, run a final delta migration of any records modified during the migration window, then enable Freshsales as the system of record. We deliver the Engagement Program, Automation Rule, Form, and Landing Page inventory documents for the customer's admin to rebuild. We support a one-week hypercare window where we resolve any record reconciliation issues raised by the sales team. Automation rebuild is a separate engagement outside standard migration scope.
Platform deep dives
Salesforce Marketing Cloud Account Engagement
Source
Strengths
Weaknesses
Freshsales
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 Salesforce Marketing Cloud Account Engagement and Freshsales.
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
Salesforce Marketing Cloud Account Engagement: Daily API quota varies by Account Engagement edition (tier); resets at start of day in the account's time zone. Maximum 5 concurrent requests per Business Unit. Exceeding the daily limit returns error code 122..
Data volume sensitivity
Salesforce Marketing Cloud Account Engagement 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 Salesforce Marketing Cloud Account Engagement to Freshsales migration scoping. Not seeing yours? Book a call.
Walk through your Salesforce Marketing Cloud Account Engagement to Freshsales migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Salesforce Marketing Cloud Account Engagement
Other ways to arrive at Freshsales
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.