CRM migration
Field-level mapping, validation, and rollback between OptiPub and Freshsales. We move data and schema; workflows are rebuilt natively in Freshsales.
OptiPub
Source
Freshsales
Destination
Compatibility
6 of 9
objects map 1:1 between OptiPub and Freshsales.
Complexity
BStandard
Timeline
2-3 weeks
Overview
Moving from OptiPub to Freshsales is a platform-type migration: OptiPub organizes data around subscriber profiles, campaign workflows, and partner attribution for high-volume publishers, while Freshsales is a sales CRM that uses Contacts, Accounts, Deals, and Leads with built-in phone, email, and AI-assisted lead scoring. The structural gap means we do not migrate automation rules or campaign send-logic as code; we map Subscribers to Contacts and Segments to contact filter views, and we deliver a written inventory of every OptiPub automation requiring Freshsales workflow rebuild. Activity history and custom subscriber properties migrate through Freshsales REST API with type conversion, and video integration credentials require re-authentication post-migration.
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 OptiPub 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.
OptiPub
Subscriber
Freshsales
Contact
1:1OptiPub Subscribers map to Freshsales Contacts. The subscriber email address becomes the Contact email and acts as the dedupe key. Lifecycle status from OptiPub migrates to a custom Contact field subscriber_lifecycle_stage__c. Custom subscriber properties (profile fields, subscription tier, engagement scores) map to Freshsales custom Contact fields of matching type (text, number, date, picklist). We pre-create any missing custom fields in Freshsales before the Contact import phase begins.
OptiPub
Subscriber
Freshsales
Lead
1:manySubscribers who have not been qualified into a sales process map to Freshsales Lead records, while those with revenue intent or partner attribution map to Contact under an Account. We define the split rule during scoping based on OptiPub subscriber properties (engagement tier, partner status, paid publication flags). Subscribers with no engagement history default to Lead; those with click or conversion activity default to Contact.
OptiPub
Segment
Freshsales
Contact Filter View + List
1:1OptiPub dynamic and static Segments map to Freshsales Contact filter views and saved Lists. We capture each segment's membership criteria as a Freshsales filter definition and replicate current membership by creating a Freshsales List for each OptiPub Segment with members added via Bulk API. Segment-to-campaign associations document separately as a configuration note for the customer's admin to reconnect post-migration.
OptiPub
Campaign
Freshsales
Task + Note (Activity Log)
lossyOptiPub email campaigns (subject, body, send date, A/B variants) have no direct Freshsales CRM equivalent because Freshsales does not include native email campaign management. We migrate campaign metadata as Activity records (type=Email) linked to the Contact, with campaign name, subject line, and send date preserved in custom Task fields. A/B test variant data migrates as separate Activity records with variant labels. The customer's admin rebuilds campaign execution logic in Freshsales Workflows or in a dedicated email platform.
OptiPub
Partner
Freshsales
Account
1:1OptiPub Partner records (affiliate and partner management with domain monitoring and revenue attribution) map to Freshsales Account records. Partner-level stats (clicks, conversions, revenue share) migrate to custom Account fields (partner_clicks__c, partner_conversions__c, partner_revenue_share__c). Partner domain data maps to Account Website and Industry fields where applicable.
OptiPub
Template
Freshsales
Document / Attachment
1:1OptiPub email templates (drag-and-drop and HTML) migrate as Freshsales Document records or file attachments linked to the relevant Contact or Account. We export template HTML as a Document with a reference to its original campaign usage. Templates do not migrate as editable Freshsales templates because Freshsales does not include an email template builder at the same level as OptiPub.
OptiPub
Video (Wistia / YouTube integration)
Freshsales
Note + URL field
lossyOptiPub video references (Wistia and YouTube playback URLs, play statistics) migrate as Freshsales Note records linked to the Contact or Account, with the video URL stored in a custom URL field (video_playback_url__c) and play count stored in a custom number field (video_play_count__c). The video hosting connection does not migrate; re-authentication of the Wistia or YouTube integration at Freshsales is a post-migration admin task.
OptiPub
Automation Rule
Freshsales
Workflow (documentation only)
1:1OptiPub Automation Rules (workflow triggers, conditional logic, paid publication triggers, partner funnel steps) are documented but not migrated as code. Freshsales Workflows use record-triggered and scheduled variants with different action types and limits. We deliver a written inventory of every active OptiPub Automation Rule with its trigger conditions, action sequence, and recommended Freshsales Workflow equivalent for the customer's admin to rebuild.
OptiPub
Engagement (open, click, bounce data)
Freshsales
Contact Activity Timeline
1:1OptiPub engagement events (email opens, clicks, bounces, unsubscribes) migrate to Freshsales as Task records with custom engagement type fields (engagement_event_type__c, eng_open_count__c, eng_click_count__c) and EmailMessage records where applicable. Historical engagement data preserves the timeline by setting Task ActivityDate to the original OptiPub event timestamp. Bounce and unsubscribe flags migrate to Freshsales Contact fields (email_bounced__c, unsubscribed__c).
| OptiPub | Freshsales | Compatibility | |
|---|---|---|---|
| Subscriber | Contact1:1 | Fully supported | |
| Subscriber | Lead1:many | Fully supported | |
| Segment | Contact Filter View + List1:1 | Fully supported | |
| Campaign | Task + Note (Activity Log)lossy | Fully supported | |
| Partner | Account1:1 | Fully supported | |
| Template | Document / Attachment1:1 | Fully supported | |
| Video (Wistia / YouTube integration) | Note + URL fieldlossy | Fully supported | |
| Automation Rule | Workflow (documentation only)1:1 | Fully supported | |
| Engagement (open, click, bounce data) | Contact Activity Timeline1: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.
OptiPub gotchas
Dedicated IP reputation transfer requires warmup
Automation workflow branching logic may not map 1:1
Video integration references need re-authentication
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 data audit
We audit the OptiPub account across all objects: Subscriber count, segment count and membership criteria, campaign send history, active automation rules, template count, partner records, and video integration references. We also assess the Freshsales destination for existing Contacts, Accounts, custom fields, and any configured workflows or lists. The discovery output is a written migration scope document with object-level record counts, a preliminary field mapping table, and a list of OptiPub objects requiring custom field creation in Freshsales.
Schema design and custom field provisioning
We design the Freshsales custom field schema before any data moves. This includes provisioning custom Contact fields for OptiPub subscriber metadata (lifecycle stage, engagement score, paid publication flags), custom Account fields for partner attribution data, and custom Task fields for campaign metadata and engagement events. Custom fields deploy via Freshsales Admin Settings before migration begins. We also configure any required Lead status values if a subscriber-to-Lead split is needed.
Segment-to-filter-view transformation
We transform each OptiPub Segment into a Freshsales saved filter view and, where applicable, a corresponding List. Dynamic segments become Freshsales filter definitions with equivalent criteria (date range, property conditions, engagement thresholds). Static segments become Freshsales Lists populated with member Contact records via Bulk API. We document which segments map to Lists versus filter views so the customer's admin understands the resulting segmentation structure in Freshsales.
Sandbox migration and reconciliation
We run a full migration into a Freshsales sandbox or staging environment using production-like data volume. The customer's RevOps or admin lead reconciles record counts (Subscribers in, Contacts in, Accounts in, Segments replicated), spot-checks 25-50 random records against the OptiPub source, and validates segment membership accuracy. Any mapping corrections happen here, not in production. This step also validates that custom field values appear correctly on Contact and Account records.
Production migration in dependency order
We run production migration in record-dependency order: Accounts (from OptiPub Partners), Contacts (from OptiPub Subscribers with the Lead split applied), Activities (engagement history via Freshsales Bulk API with parent-record resolution), Campaigns (as Activity log records), Templates (as Document records), and Video references (as Notes with URL fields). Each phase emits a row-count reconciliation report before the next phase begins. Automation Rule documentation is delivered as a separate artifact alongside data migration.
Cutover, validation, and automation rebuild handoff
We freeze OptiPub writes 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 Automation Rule inventory document to the customer's admin team with Freshsales Workflow equivalents documented for each rule. We support a one-week hypercare window where we resolve any reconciliation issues. We do not rebuild OptiPub Automation Rules as Freshsales Workflows inside the migration scope; that is a separate engagement or an internal admin task.
Platform deep dives
OptiPub
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 OptiPub 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
OptiPub: Not publicly documented — typical SaaS limits assumed and confirmed during scoping.
Data volume sensitivity
OptiPub 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 OptiPub to Freshsales migration scoping. Not seeing yours? Book a call.
Walk through your OptiPub 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 OptiPub
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.