CRM migration
Field-level mapping, validation, and rollback between Freshmarketer and Nutshell. We move data and schema; workflows are rebuilt natively in Nutshell.
Freshmarketer
Source
Nutshell
Destination
Compatibility
10 of 12
objects map 1:1 between Freshmarketer and Nutshell.
Complexity
BStandard
Timeline
2-4 weeks
Overview
Moving from Freshmarketer to Nutshell is a structural shift from a marketing automation platform to a sales CRM. Freshmarketer organizes data around Contacts, Companies, Deals, and multichannel campaign Journeys; Nutshell organizes around People, Companies, Deals with pipeline stages, and a unified activity timeline. We resolve the object model transition at scoping, preserve engagement history as Nutshell activity records, and map Freshmarketer's lifecycle stage and marketing contact flags to Nutshell custom fields. Journeys (email, SMS, WhatsApp, and WhatsApp automation workflows) cannot be exported as executable logic via Freshmarketer's API; we document the enrolled contact state and deliver a Journey configuration reference so your team can rebuild in Nutshell's task automation or a dedicated marketing tool. Freshmarketer's API rate limit of 1000 requests per hour governs extraction throughput, and Nutshell's per-user pricing at Growth ($25/user/month) replaces Freshmarketer's per-contact billing model.
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 Freshmarketer object lands in Nutshell, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Freshmarketer
Contact
Nutshell
Person
1:1Freshmarketer Contacts map directly to Nutshell People. Email address is the dedupe key. We preserve the Freshmarketer lifecycle stage as a custom field lifecycle_stage__c on the Nutshell Person record. Any Freshmarketer Marketing Contact flag (contacts enrolled in email, SMS, or WhatsApp campaigns) is preserved in a custom field marketing_contact__c so the customer can re-segment in a downstream marketing tool if needed. Custom contact properties from Freshmarketer map to Nutshell custom fields on Person, requiring field-type resolution (dropdown vs. text, date formats, multi-select) during scoping.
Freshmarketer
Company
Nutshell
Company
1:1Freshmarketer Company records map 1:1 to Nutshell Company. Domain and company name are preserved as the dedupe key. The company-contact association (org_contact_id in Freshmarketer) is resolved at migration time so that each Nutshell Person is linked to their corresponding Nutshell Company before activity records are attached. Custom company fields map to Nutshell Company custom fields with equivalent types.
Freshmarketer
Deal
Nutshell
Deal
1:1Freshmarketer Deals map to Nutshell Deals with pipeline stage, amount, close date, and owner preserved. The Freshmarketer pipeline assignment maps to a Nutshell Pipeline that we configure before migration if multiple pipelines exist. Deal custom fields map to Nutshell Deal custom fields. Owner assignment resolves via email match against the Nutshell User directory.
Freshmarketer
Deal Stage
Nutshell
Pipeline Stage
lossyFreshmarketer pipeline stages map to Nutshell Pipeline Stages. We pre-create the Nutshell pipeline structure during schema design, mapping each Freshmarketer stage name to a corresponding Nutshell stage. Stage order and probability percentages are preserved as closely as the destination allows.
Freshmarketer
User
Nutshell
User
1:1Freshmarketer Users (sales reps, admins) map to Nutshell Users by email match. Owner references on Contacts, Companies, and Deals resolve to the corresponding Nutshell User ID. Users without a matching Nutshell account enter a reconciliation queue for the customer to provision before record import proceeds.
Freshmarketer
Activity: Email Log
Nutshell
Activity
1:1Freshmarketer email logs migrate to Nutshell Activity records attached to the corresponding Person or Deal. Email subject, body, and timestamp are preserved. The Activity type is set to Email. We resolve the parent Person or Deal reference via email-match lookup before inserting.
Freshmarketer
Activity: Call
Nutshell
Activity (type: Call)
1:1Freshmarketer call activities migrate to Nutshell Activity records with type set to Call. Call duration and disposition notes transfer to custom Activity fields. The timestamp from Freshmarketer is preserved as the Nutshell Activity date.
Freshmarketer
Activity: Meeting
Nutshell
Activity (type: Meeting)
1:1Freshmarketer meeting activities migrate to Nutshell Activity records with type set to Meeting. Meeting title, date, and location are preserved. Attendee information is logged in the Activity notes field since Nutshell does not have a native attendee object.
Freshmarketer
Activity: Task
Nutshell
Activity (type: Task)
1:1Freshmarketer task activities migrate to Nutshell Activity records with type set to Task. Status, due date, and assignment transfer directly. Owner assignment resolves via email match against the Nutshell User directory.
Freshmarketer
Tag
Nutshell
Tag
1:1Tags from Freshmarketer Contacts, Companies, and Deals migrate as flat string lists applied to the corresponding Nutshell record. Nutshell supports tagging on People, Companies, and Deals. No tag hierarchy exists on either platform, so the migration is direct.
Freshmarketer
Custom Field
Nutshell
Custom Field
1:1Custom fields on Freshmarketer Contacts, Companies, and Deals require explicit per-field mapping to Nutshell custom fields. Field types must be resolved during scoping: Freshmarketer dropdowns map to Nutshell dropdowns if values match; multi-select maps to multi-select; date fields map to date fields; text fields map to text. We create the destination custom field in Nutshell before migration and document any field types that require customer decisions on value mapping.
Freshmarketer
Segment
Nutshell
Static List (manual rebuild)
lossyFreshmarketer Segments (audience filters based on contact properties) do not have a direct equivalent in Nutshell. Nutshell does not support dynamic audience lists. We document each Freshmarketer Segment with its criteria and deliver a static contact list that the customer can recreate in Nutshell manually or via a third-party segmentation tool. This is a reference deliverable, not an automated migration.
| Freshmarketer | Nutshell | Compatibility | |
|---|---|---|---|
| Contact | Person1:1 | Fully supported | |
| Company | Company1:1 | Fully supported | |
| Deal | Deal1:1 | Fully supported | |
| Deal Stage | Pipeline Stagelossy | Fully supported | |
| User | User1:1 | Fully supported | |
| Activity: Email Log | Activity1:1 | Fully supported | |
| Activity: Call | Activity (type: Call)1:1 | Fully supported | |
| Activity: Meeting | Activity (type: Meeting)1:1 | Fully supported | |
| Activity: Task | Activity (type: Task)1:1 | Fully supported | |
| Tag | Tag1:1 | Fully supported | |
| Custom Field | Custom Field1:1 | Fully supported | |
| Segment | Static List (manual rebuild)lossy | 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.
Freshmarketer gotchas
Marketing Contacts billing model affects migration scoping
Email-based contact merging during Freshsales Suite migration
Journeys stop executing post-migration with no auto-resume
API rate limit of 1000 requests per hour caps migration throughput
Outgoing emails disabled after migration require manual re-enablement
Nutshell gotchas
Contact tier limits enforced on import
No bulk API endpoint requires paginated extraction
Email sequences not exportable via API
Foundation plan disables key sales features
Pair-specific challenges
Migration approach
Discovery and scope definition
We audit the Freshmarketer account across contact volume, company volume, deal volume, activity history counts (emails, calls, meetings, tasks), custom field inventory, active Journeys, segment list, and user count. We pair this with a Nutshell account review to confirm the Growth or Pro tier supports the required pipeline structure. The discovery output is a written migration scope document with record counts per object, a list of custom fields requiring mapping, and a list of active Journeys to document.
Schema design and custom field creation
We create the destination schema in Nutshell before any data import. This includes creating any custom fields on Person, Company, and Deal that correspond to Freshmarketer custom properties, configuring the pipeline and stage structure to match Freshmarketer's deal pipelines, and creating any required custom fields on Nutshell Activity records. Custom field type resolution (dropdown values, date formats, multi-select) happens during this step with customer input on any non-matching values.
User reconciliation and provisioning
We extract every distinct Freshmarketer Owner referenced on Contact, Company, Deal, and Activity records and match by email against the Nutshell User directory. Owners without a matching Nutshell User are held in a reconciliation queue. The customer's Nutshell admin provisions missing Users before record import proceeds. This step is required because OwnerId references are needed on imported Deals and Activities.
Sandbox migration and reconciliation
We run a full migration into a Nutshell trial or sandbox environment using production-like data volume. The customer reconciles record counts, spot-checks 20-30 records against Freshmarketer source data, and signs off the schema and mapping before production migration begins. Any custom field corrections, stage mapping adjustments, or data cleaning decisions happen here, not in production.
Production migration in dependency order
We run production migration in record-dependency order: Companies (created first so Person-Company associations resolve), People (with lifecycle_stage__c and marketing_contact__c custom fields populated), Deals (with pipeline, stage, owner, and custom fields resolved), Activity history (emails, calls, meetings, tasks attached to the correct Person or Deal via email-match and owner lookup). Each phase emits a row-count reconciliation report before the next phase begins. We pace extraction against Freshmarketer's 1000-request-per-hour limit throughout.
Cutover, validation, and Journey handoff
We freeze Freshmarketer writes during cutover, run a final delta migration of records modified during the migration window, then mark Nutshell as the system of record. We deliver the Journey configuration reference document listing each active Journey, its enrolled contacts, and its trigger conditions, so the customer's admin can rebuild in Nutshell task automation or a dedicated marketing tool. We support a three-day hypercare window for reconciliation issues. We do not rebuild Journeys in Nutshell; that is a separate scope.
Platform deep dives
Freshmarketer
Source
Strengths
Weaknesses
Nutshell
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 Freshmarketer and Nutshell.
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
Freshmarketer: 1000 requests per hour per account.
Data volume sensitivity
Freshmarketer 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 Freshmarketer to Nutshell migration scoping. Not seeing yours? Book a call.
Walk through your Freshmarketer to Nutshell migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Freshmarketer
Other ways to arrive at Nutshell
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.