CRM migration

Migrate from Onsite CRM to Freshsales

Field-level mapping, validation, and rollback between Onsite CRM and Freshsales. We move data and schema; workflows are rebuilt natively in Freshsales.

Onsite CRM logo

Onsite CRM

Source

Freshsales

Destination

Freshsales logo

Compatibility

80%

8 of 10

objects map 1:1 between Onsite CRM and Freshsales.

Complexity

CModerate

Timeline

2-3 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Onsite CRM to Freshsales is a manual-extraction migration constrained by the absence of a public API on the source platform. Onsite CRM exposes data only through in-app CSV and PDF exports, which means we request scoped exports of each object type from the customer, validate record counts and field coverage against customer-supplied screenshots of the Onsite CRM UI, and then map every standard field to Freshsales equivalents. Custom fields require explicit mapping during scoping because Onsite CRM's field structure varies per customer configuration. Pipeline stages migrate as Freshsales pipeline stages with probability mapping preserved. Activity history (calls, SMS, email logs) is the highest-risk object because Onsite CRM's in-app export options may not bundle rich activity records in a single downloadable file. We flag this gap during discovery and advise customers to request a separate activity export before migration day. We do not migrate Onsite CRM workflows, automations, or sequences as code; these do not exist as transferable data in Onsite CRM's data model, and Freshsales automations require rebuilding post-migration.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

Onsite CRM logo

Onsite CRM

What's pushing teams away

  • Extremely limited market presence with minimal third-party reviews and community discussion, making it difficult to assess long-term viability.
  • No publicly documented API, SDK, or webhook infrastructure limits integration options and blocks automated data extraction.
  • Appears to have weaker reporting and analytics depth compared to established CRM competitors like HubSpot or Pipedrive.
  • Very small user base on review platforms like G2 and Capterra suggests limited adoption and support ecosystem.
  • Lacks enterprise-grade features needed as teams scale, driving migration to platforms with better customization and API access.

Choosing

Freshsales logo

Freshsales

What's pulling them in

  • Lowest barrier to entry among major CRMs — the free tier supports up to 3 users and includes core CRM functionality before committing to per-seat pricing.
  • Built-in chat, email, and phone reduce reliance on third-party integrations for basic sales communication and contact management.
  • Freddy AI contact scoring and deal insights are included on Pro plans at a lower price than comparable HubSpot tiers.
  • Kanban pipeline views across Contacts, Accounts, and Deals provide visual deal management without requiring custom configuration.
  • Integration with the broader Freshworks ecosystem (Freshdesk, Freshchat, Freshservice) reduces tool sprawl for teams already using Freshworks.

Object mapping

How Onsite CRM objects map to Freshsales

Each row shows how a Onsite CRM 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.

Onsite CRM

Contact

maps to

Freshsales

Contact

1:1
Fully supported

Onsite CRM contact records map directly to Freshsales Contact. Standard fields (name, email, phone, company association) map to Freshsales Contact fields: first_name, last_name, email, phone, and the account_id lookup. Email serves as the dedupe key during import. We flag any contact records missing an email address for manual review because Freshsales requires a valid email for the contact to function fully in marketing and AI features.

Onsite CRM

Company

maps to

Freshsales

Account

1:1
Fully supported

Onsite CRM company records map to Freshsales Account. The company name becomes the account_name, and the domain or website field maps to Freshsales website. We create accounts before contact import so that account_id lookup is satisfied at the moment of contact insert. If Onsite CRM exposes industry or employee count fields, we map those to Freshsales custom fields created during the configuration phase.

Onsite CRM

Deal

maps to

Freshsales

Deal

1:1
Fully supported

Onsite CRM deal records map to Freshsales Deal. We map deal name, deal value, close date, and stage to Freshsales Deal fields. The stage name from Onsite CRM maps to a Freshsales pipeline stage that we configure before migration, preserving stage order and probability percentage. Closed-won and closed-lost statuses from Onsite CRM transfer to Freshsales deal status values.

Onsite CRM

Pipeline Stage

maps to

Freshsales

Pipeline Stage

lossy
Fully supported

Onsite CRM custom pipeline stages are customer-specific and exported as part of the deal export or visible in the pipeline configuration UI. We extract stage names, their display order, and probability percentages. In Freshsales, we configure a matching pipeline with stages named to match the Onsite CRM taxonomy, and set probability mapping per stage. The customer reviews and approves the stage mapping before migration loads begin.

Onsite CRM

Activity: Call Log

maps to

Freshsales

Activity

1:1
Fully supported

Onsite CRM call logs (built-in calling feature) map to Freshsales Activity records with activity_type = call. Call duration, disposition, and timestamp migrate to Freshsales activity fields. We note that Onsite CRM's call recording storage may be file-based rather than record-based; recording URLs require separate file extraction if the recordings are stored in the Onsite CRM environment rather than a linked telephony provider.

Onsite CRM

Activity: SMS

maps to

Freshsales

Activity

1:1
Fully supported

Onsite CRM SMS thread records map to Freshsales Activity with activity_type = task and a custom field sms_body__c carrying the message content. Thread ordering is preserved by setting activity_date to the original message timestamp. We flag SMS export completeness as a pre-migration risk because Onsite CRM's SMS history export coverage may vary by customer configuration.

Onsite CRM

Activity: Email

maps to

Freshsales

Activity

1:1
Fully supported

Onsite CRM email marketing and email tracking records map to Freshsales Activity. The email subject, body, and send timestamp migrate. Freshsales supports email logging through its email logging feature, which we configure during the migration setup phase to match Onsite CRM's email tracking behavior.

Onsite CRM

Task

maps to

Freshsales

Task

1:1
Fully supported

Onsite CRM task records migrate to Freshsales Task with title, due_date, status, and priority preserved. Task assignment requires owner resolution: we match Onsite CRM owner email to Freshsales User email and set the owner_id accordingly. Any Onsite CRM task with an unresolvable owner is flagged for the customer to map manually before import.

Onsite CRM

Custom Field

maps to

Freshsales

Custom Field

lossy
Fully supported

Onsite CRM custom fields on any object require manual mapping during scoping because the platform exposes only what the UI shows per customer configuration. We request customer-supplied screenshots of the Onsite CRM field configuration page during discovery, then create equivalent custom fields in Freshsales before migration. Field type mapping (text to text, date to date, picklist to picklist) is resolved during scoping, and any Onsite CRM field type that Freshsales does not support natively is flagged for alternative handling.

Onsite CRM

Tag

maps to

Freshsales

Tag

1:1
Fully supported

Tags applied to Onsite CRM contacts or deals migrate as Freshsales Tag records linked to the corresponding contact or deal. The tagging taxonomy is preserved as-is, and the customer reviews tag normalization during scoping. If Onsite CRM uses a flat tag list and Freshsales supports hierarchical tags, we flag the normalization options for customer decision.

Gotchas + challenges

What specifically takes care here

Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.

Onsite CRM logo

Onsite CRM gotchas

High

No public API documentation found

Medium

Weebly-hosted infrastructure limits data access

Medium

Limited historical activity export

Freshsales logo

Freshsales gotchas

Medium

Freddy AI is Pro-tier only despite heavy marketing

High

Post-migration emails and sequences are disabled

Medium

Bot session credits are a one-time 500-session allocation

Medium

Phone credits charged per minute with no cap

Low

File storage limits scale with plan tier

Pair-specific challenges

  • No public API forces reliance on in-app CSV exports

    Onsite CRM has no documented REST API, SDK, or webhook infrastructure according to apitracker.io. We cannot build an automated extraction and must work entirely from in-app CSV exports. If the customer has more than 5,000 records across objects, or complex custom field configurations, the Weebly-hosted UI export mechanism becomes a practical bottleneck. We request customer-supplied screenshots of their Onsite CRM data structure during scoping to confirm what objects and fields the UI actually exposes, and we advise customers with large datasets to run multiple scoped exports rather than a single full export to avoid export timeout errors.

  • Activity history export completeness is not guaranteed

    CRM migration reviews consistently surface that teams want full call notes, SMS threads, and email logs in the new system. Onsite CRM's built-in calling, SMS, and email marketing features generate activity records that may not be included in the standard in-app CSV export, depending on how the platform stores engagement data. We advise customers to request a dedicated pre-migration export of activity records separately and budget time for manual re-entry if the export is incomplete. We flag activity export scope as a discovery item before finalizing the migration scope.

  • Freshsales Lead-Contact split requires upfront design

    Freshsales separates unqualified prospects into Lead records and qualified buyers into Contact records attached to Accounts, with an explicit Convert action to promote a Lead to a Contact. Onsite CRM does not have a separate Lead object. We resolve this during scoping by asking the customer whether they use Onsite CRM contacts uniformly for prospects and customers, or whether they distinguish between unqualified and qualified records. If all Onsite CRM contacts are qualified buyers, we import them directly as Freshsales Contacts. If the customer wants a prospect funnel in Freshsales, we create a Lead import path for records meeting a prospect criteria defined during scoping.

  • Weebly-hosted infrastructure ties export capability to platform constraints

    Onsite CRM is built on the Weebly platform, which means data storage, application logic, and export mechanisms are subject to Weebly infrastructure constraints beyond our control. We have no direct database access and must work with whatever the UI exposes for export. We request customer-supplied screenshots of their data structure during scoping to confirm what objects and fields the UI actually exposes before designing the migration sequence. Any change in Weebly's export behavior during the engagement is flagged immediately and may extend the timeline.

Migration approach

Six steps for a successful Onsite CRM to Freshsales data migration

  1. Discovery and export scoping

    We request customer-supplied screenshots of their Onsite CRM field configuration, pipeline stage setup, and object list. We run a test export of each object type (Contacts, Companies, Deals, Activities, Tasks) to confirm export file completeness and identify any fields missing from the standard export. We document every Onsite CRM custom field, its data type, and its current values, then create a mapping plan for Freshsales custom field creation. We also request a separate activity export request to assess call log, SMS, and email history coverage.

  2. Data validation and cleansing

    We validate every exported CSV against the Onsite CRM source: record counts per object, required field coverage (email presence on contacts, account association on deals), and duplicate identification. We flag records with missing required fields for the customer to resolve before import. We remove records marked as test or spam data and normalize date formats, phone number formats, and currency fields to match Freshsales import requirements. This phase produces a clean, validated dataset ready for field mapping.

  3. Freshsales schema configuration

    We configure the Freshsales destination account before any data loads begin. This includes creating Freshsales Users matching the Onsite CRM owner list, configuring pipeline stages mapped from Onsite CRM pipeline names and probabilities, creating custom fields for any Onsite CRM custom field that has no standard Freshsales equivalent, and setting up the Lead-Contact split logic if the customer has decided to implement a prospect funnel in Freshsales. We run this in a Freshsales trial account and validate the schema before production configuration.

  4. Account and Contact migration

    We load Companies (as Freshsales Accounts) first, then Contacts with the account_id lookup resolved from the Account import. Email serves as the dedupe key for contacts. Owner mapping is resolved by email match between Onsite CRM owner records and Freshsales User email addresses. Any owner without a matching Freshsales User is flagged and held in a reconciliation queue for the customer's admin to provision. We run record-count reconciliation after the contact load before proceeding to deals.

  5. Deal and Activity migration

    We load Deals with account_id resolved from the Account import and stage mapped to the Freshsales pipeline stage configured in step 3. Closed-won and closed-lost statuses are set explicitly from the Onsite CRM deal state. Activity history (calls, SMS, email logs) is loaded via Freshsales Activity API, linked to the parent Contact or Account record by resolved ID. Activity timestamp ordering is preserved from the original Onsite CRM export timestamp. Task records are loaded last with owner resolution applied.

  6. Cutover, delta sync, and automation rebuild handoff

    We freeze Onsite CRM writes during the final cutover window and run a delta migration of any records created or modified during the migration window. We deliver a written inventory of every Freshsales automation (workflows, assignment rules, territory rules) that requires configuration post-migration, along with the recommended setup steps. We do not rebuild automations inside the migration scope. We provide a one-week post-go-live support window to resolve reconciliation issues raised by the sales team.

Platform deep dives

Context on both ends of the pair

Onsite CRM logo

Onsite CRM

Source

Strengths

  • Combines CRM, calling, SMS, and email marketing in a single subscription for small teams.
  • Weebly-hosted platform offers straightforward initial setup for businesses already using Weebly.
  • Provides basic pipeline visualization and deal tracking for straightforward sales processes.
  • Lead conversion tools and real-time outreach automation for teams prioritizing outbound activity.
  • Established in 2010, indicating over a decade of operational history.

Weaknesses

  • No publicly documented REST API, SDK, or webhook system according to apitracker.io, severely limiting programmatic integrations and data extraction options.
  • Extremely limited market visibility with minimal reviews, community discussion, or third-party integrations.
  • Appears to lack enterprise-grade features like advanced reporting, custom objects, or sophisticated workflow automation.
  • Data export is limited to in-app CSV/PDF options with no bulk API access, complicating large-scale migrations.
  • Small user base and limited review presence make it difficult to assess platform reliability and long-term vendor viability.
Freshsales logo

Freshsales

Destination

Strengths

  • Generous free tier for small teams with core CRM functionality without per-seat costs.
  • All-in-one sales CRM with built-in telephony, chat, and email reducing third-party tool dependency.
  • Freddy AI contact scoring and deal predictions available on Pro tier.
  • Multiple pipeline views with Kanban and list options across all plans.

Weaknesses

  • Reports lack depth compared to competitors like HubSpot, with limited customization options.
  • Integration setup is poorly documented with no clear guides for connecting third-party tools.
  • AI features gated behind $39/user/month Pro tier despite marketing emphasis on Freddy AI.
  • Bot sessions limited to 500 one-time allocation with no monthly refresh.

Complexity grading

How hard is this migration?

Moderate CRM migration. 4 of 8 objects need a mapping; the rest are 1:1.

C

Overall complexity

Moderate migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Onsite CRM and Freshsales.

  • Object compatibility

    C

    4 of 8 objects need a mapping; the rest are 1:1.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    8-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    Onsite CRM: Not publicly documented.

  • Data volume sensitivity

    B

    Onsite CRM doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your Onsite CRM to Freshsales migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about Onsite CRM to Freshsales data migrations

Answers to the questions buyers ask most during Onsite CRM to Freshsales migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your Onsite CRM to Freshsales migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most migrations complete in two to three weeks for accounts under 5,000 total records with straightforward field mapping and no complex custom field configurations. Migrations with custom fields, non-standard pipeline stage structures, or large activity histories (over 50,000 records) extend to three to five weeks. The primary timeline driver is the discovery phase, where we map Onsite CRM's customer-specific field structure before any extraction begins.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Onsite CRM.
Land in Freshsales, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day