CRM migration
Field-level mapping, validation, and rollback between Insider and Freshsales. We move data and schema; workflows are rebuilt natively in Freshsales.
Insider
Source
Freshsales
Destination
Compatibility
6 of 8
objects map 1:1 between Insider and Freshsales.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Insider and Freshsales serve different primary functions: Insider is a marketing engagement platform with a native CDP and multi-channel orchestration layer, while Freshsales is a sales CRM built for growing teams that want AI-assisted lead scoring and pipeline management in one place. Migrating between them means reshaping a behavioral profile model into a record-based CRM model. We extract user profiles, events, segments, tags, and product catalog from Insider via their Unification API and Raw Export API, map them to Freshsales Contacts, Accounts, Deals, and Tasks, and write the full Custom Field schema before any data lands. We do not migrate Journeys, automations, or channel configurations as code because Insider provides no export API for them and Freshsales Workflows are a different automation paradigm. We deliver a written automation inventory so your admin can rebuild Journeys in Freshsales Workflows post-migration. Timeline is three to five weeks for accounts under 50,000 profiles with straightforward data structures; ten to fourteen weeks for accounts with large event histories, complex segment definitions, or multi-object schema dependencies.
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 Insider 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.
Insider
User (Profile)
Freshsales
Contact or Lead
1:manyInsider user profiles map to Freshsales Contact by default, with a Lead split for profiles that have not yet entered a sales-qualified stage. We evaluate the insider_hs_lifecyclestage property and any custom stage indicator to determine whether a record should land as a Lead or Contact. Standard profile fields (email, phone, first_name, last_name) map directly. All custom user attributes from Insider become Freshsales Contact custom fields, which we pre-create in Freshsales before migration begins. The mapping type is 1:N split because a single Insider user may need to create both a Lead record and, upon conversion, a Contact record in Freshsales.
Insider
Event (Behavioral)
Freshsales
Task
1:1Insider behavioral events (page views, purchases, cart actions, custom events) migrate to Freshsales Task records with TaskSubtype set to the event category. Each Task captures event_name, timestamp, and event_parameters as a JSON-serialized custom field on the Task. This is not a perfect behavioral profile representation — Freshsales does not have an event stream model — but it preserves the activity timeline in a searchable, reportable form. Events without a resolvable Contact email are held in a quarantine queue for admin resolution before import.
Insider
Segment
Freshsales
Static List or Tag
1:1Insider segment membership (the list of users in a given segment) migrates to Freshsales Static Lists. We export the member email and segment ID, then recreate the segment as a Freshsales contact list. The segment's rule definition — the attribute conditions and event triggers that define membership — does not migrate because Freshsales Groups do not support the same rule engine. We document each segment's rule logic in a written inventory deliverable so the admin can recreate active segments using Freshsales' filter and list conditions. The mapping type is 1:1 at the membership level, not the definition level.
Insider
Custom Attribute
Freshsales
Contact Custom Field
1:1Insider custom user properties beyond the standard profile schema (arbitrary key-value pairs stored in the CDP) become Freshsales Contact custom fields. We pre-create each custom field in Freshsales before migration using the Freshsales REST API, inferring field type from the property value (string, number, date, boolean). Multi-value arrays (arrays of tags or IDs) map to Freshsales multi-select picklists or text fields depending on the array contents. Any custom attribute that references an Insider-specific object (a channel identifier or a journey ID) is flagged during scoping and migrated as a text field with a note that the reference requires manual cleanup.
Insider
Product (Catalog)
Freshsales
Product
1:1Insider product catalog entries — sku, name, price, category, images, and custom attributes — map directly to Freshsales Product records. The sku becomes Product Code, name becomes Product Name, price maps to Unit Price, and category becomes a custom Product Category field. Product associations with Insider transaction events migrate as Line Items under Freshsales Deals if the corresponding Deal exists for the associated user account.
Insider
Transaction (Order)
Freshsales
Deal + Line Item
1:1Insider transaction objects (order_id, total, items, currency, timestamps) migrate to Freshsales Deals with the amount field populated from the transaction total and the close date set from the transaction timestamp. Individual line items within a transaction migrate as Freshsales Deal Line Items linked to the parent Deal. Currency mapping preserves the original currency code, and amounts are stored in Freshsales' currency fields without automatic conversion. Deals created from transactions are flagged with a source: insider_transaction custom field to distinguish them from pipeline Deals created natively in Freshsales.
Insider
List (Static Collection)
Freshsales
Static List
1:1Insider static lists — named user collections beyond dynamic segment membership — migrate to Freshsales Static Lists. We export the list membership records (user email + list ID), resolve each email to a Freshsales Contact, and add the Contact to the corresponding Freshsales list. Lists with no corresponding Freshsales Contact are recorded in the reconciliation report for admin review. List names and descriptions migrate as list metadata.
Insider
Tag
Freshsales
Contact Tag or Custom Field
lossyInsider user tags (arbitrary string labels applied to profiles) migrate as Freshsales Contact tags. We evaluate whether the customer's tagging taxonomy is better represented as Freshsales native tags or as a custom multi-select picklist field during scoping. For high-cardinality tagging systems (more than 50 distinct tag values), we recommend a custom field approach to avoid tag sprawl. Tags that encode behavioral signals (engagement tier, risk flag) are migrated to a dedicated Freshsales custom field rather than a generic tag so that they can trigger workflow conditions.
| Insider | Freshsales | Compatibility | |
|---|---|---|---|
| User (Profile) | Contact or Lead1:many | Fully supported | |
| Event (Behavioral) | Task1:1 | Fully supported | |
| Segment | Static List or Tag1:1 | Fully supported | |
| Custom Attribute | Contact Custom Field1:1 | Fully supported | |
| Product (Catalog) | Product1:1 | Fully supported | |
| Transaction (Order) | Deal + Line Item1:1 | Fully supported | |
| List (Static Collection) | Static List1:1 | Fully supported | |
| Tag | Contact Tag or Custom Fieldlossy | 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.
Insider gotchas
API rate limit of 25,000 requests per minute is shared across endpoints
No automated journey export — automations must be rebuilt manually on exit
Pricing is traffic-based with no public tiers, leading to billing surprises
Contract lock-in with annual or multi-year terms
Long implementation ramp complicates early-stage migrations
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 migration scope definition
We audit the source Insider account across three dimensions: user profile volume and attribute dictionary, event history scope and schema, and active automation inventory. We extract the complete custom attribute list via the Unification API to understand the full schema before designing the Freshsales field map. We document every active Journey in the written inventory deliverable. We confirm the user's Insider contract end date and notice period with the customer to factor the exit timeline into the migration schedule and avoid paying for both platforms simultaneously during the transition.
Freshsales schema design and custom field creation
We design the Freshsales schema to accommodate the Insider source data: pre-creating Contact custom fields for every Insider custom attribute, creating a Product catalog mirroring the Insider product data, setting up Deals with a stage structure that reflects the customer's existing pipeline, and adding custom fields for transaction-derived Deals (source: insider_transaction). We use the Freshsales REST API to create fields before any data import begins. We configure any required Freshsales Workflows, lists, and groups during this phase so that the import can write directly into the configured structure.
Sandbox migration and reconciliation
We run a full migration into a Freshsales sandbox account (or a trial account if no sandbox is available) using a representative data sample. The customer reviews the migrated records: checks that custom fields populated correctly, verifies that the segment-to-list mapping is complete, confirms that transaction-derived Deals appear with the correct amounts and dates, and validates that the event-to-Task conversion produced a readable activity timeline. Mapping corrections happen here before any production data moves. We do not begin production migration without written sign-off from the customer's admin.
User and Contact owner reconciliation
We extract every distinct Insider user owner and map them by email address to Freshsales User accounts. Any HubSpot Owner without a matching Freshsales User is held in a reconciliation queue. The customer provisions the missing Freshsales Users and confirms assignment before record import resumes. Owner resolution is required before Deal and Task import because OwnerId is a required reference on most Freshsales standard objects. This step typically takes one to three days depending on how many users need to be provisioned.
Production migration in dependency order
We run production migration in record-dependency order: Products first (to populate the catalog for Deal line items), then Contacts and Accounts (resolved by email dedupe key), then Leads for the split subset, then Deals from transaction records, then Tasks from the event history via bulk API, then Static Lists for segment membership, then Tags and remaining custom field data. Each phase emits a row-count reconciliation report. We pause between phases if the count variance exceeds the agreed tolerance. Insider API rate limiting is managed throughout via throttled batch writers with exponential backoff.
Cutover, validation, and automation rebuild handoff
We freeze writes to Insider during the cutover window, run a final delta migration of any records modified during the migration window, then hand off Freshsales as the system of record. We deliver the written Journey inventory and segment rule documentation to the customer's admin. We do not rebuild Insider Journeys as Freshsales Workflows within the migration scope; that rebuild is a separate engagement or an admin-led task using the delivered documentation. We support a one-week post-cutover window for reconciliation issues raised by the sales team during first use of the migrated data.
Platform deep dives
Insider
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 Insider 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
Insider: 25,000 requests per minute, shared across Unification API endpoints (Upsert User Data and Delete User Attribute). Exceeding this returns HTTP 429 and requires retry with backoff..
Data volume sensitivity
Insider 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 Insider to Freshsales migration scoping. Not seeing yours? Book a call.
Walk through your Insider 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 Insider
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.