CRM migration

Migrate from MetroLeads to Freshsales

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

MetroLeads logo

MetroLeads

Source

Freshsales

Destination

Freshsales logo

Compatibility

80%

8 of 10

objects map 1:1 between MetroLeads and Freshsales.

Complexity

BStandard

Timeline

2-4 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

MetroLeads organizes data around a Lead-centric model where each record carries a state, source_tags, and lead_fields keyed by internal property IDs rather than human-readable names. Freshsales uses the standard CRM triad of Leads, Contacts, and Accounts with a separate Deals object for pipeline management. The structural difference is that MetroLeads Lead state values are tenant-configured strings with no fixed vocabulary, requiring an upfront catalog of every unique value before mapping to Freshsales lifecycle stages or custom picklist fields. We also resolve MetroLeads custom lead_fields by fetching the property schema first, building an ID-to-name lookup table, and applying it during field mapping so destination custom fields carry the correct names. Source tags, embedded phones, and embedded emails flatten into Freshsales standard contact records with type metadata preserved. Workflows and automations do not migrate; we deliver a written inventory for your admin to rebuild in Freshsales Flow.

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

MetroLeads logo

MetroLeads

What's pushing teams away

  • Reporting and analytics features lack customization depth, with limited dashboard options for drag-and-drop insight building and graphical trend visualization.
  • Integration ecosystem is narrower than enterprise CRMs, making it difficult to connect specialized tools as the business scales beyond the built-in connectors.
  • Small review sample size on public platforms makes independent quality assessment difficult before committing to a contract.

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 MetroLeads objects map to Freshsales

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

MetroLeads

Lead

maps to

Freshsales

Contact or Lead

1:many
Fully supported

MetroLeads Leads with lifecycle state of contacted, qualified, or converted map to Freshsales Contact tied to an Account. Leads with state of new, unqualified, or prospect map to Freshsales Lead. We extract the full tenant-specific state vocabulary during export, present it to the customer for explicit split rule definition, and preserve the original MetroLeads state value in a custom field metroleads_original_state__c on both Lead and Contact for audit and reporting continuity.

MetroLeads

Company

maps to

Freshsales

Account

1:1
Fully supported

MetroLeads Companies serve as parent containers for Leads and map directly to Freshsales Account. The API path /companies/<company_uuid>/leads establishes the hierarchy. We export Company records first and resolve the parent AccountId on each Lead during import so that Contact-to-Account lookups are satisfied at insert time rather than requiring post-migration parent reassignment.

MetroLeads

Phone (embedded array)

maps to

Freshsales

Contact Phone

1:1
Fully supported

Phones embedded in MetroLeads Lead records with type metadata (Work, Mobile, Home, etc.) extract into Freshsales Contact phone fields. We preserve type labels by mapping to Freshsales phone_type values. Multiple phones per Lead become multiple Contact Phone records linked via the contact_id lookup.

MetroLeads

Email (embedded array)

maps to

Freshsales

Contact Email

1:1
Fully supported

Emails embedded in MetroLeads Lead records with type metadata (Work, Personal) extract into Freshsales Contact email fields. Type metadata maps to Freshsales email_type labels. Primary email flag from MetroLeads determines which email becomes the primary contact email in Freshsales.

MetroLeads

Source Tags

maps to

Freshsales

Contact Tags or Custom Multi-Select Field

lossy
Fully supported

MetroLeads source_tags are string arrays on Lead records indicating disposition or source channel (e.g. disposition_answered, channel_web). We export raw tag strings and map them to Freshsales Tags. If the customer uses tags for data classification rather than marketing segmentation, we map to a custom multi-select picklist field on Contact to preserve the full tag set without creating Freshsales system tags that alter CRM behavior.

MetroLeads

Lead Fields (Custom Properties)

maps to

Freshsales

Contact Custom Fields

1:1
Mapping required

MetroLeads lead_fields store tenant-specific custom property values keyed by internal property IDs (e.g. customer_id_070). We fetch the MetroLeads property schema first, build an ID-to-name mapping table, and apply it during field mapping so destination custom fields carry the correct human-readable names rather than ID strings. Custom field types are inferred from the property data type in the schema and mapped to the equivalent Freshsales field type before import.

MetroLeads

Event

maps to

Freshsales

Appointment

1:1
Fully supported

MetroLeads Events track engagement history tied to Leads with event_type and event_timestamp fields. We map Events to Freshsales Appointments, preserving the event_type as appointment title, event_timestamp as StartDateTime, and any disposition notes in the appointment description. Event-to-Lead associations require join mapping across the MetroLeads API response structure to resolve the correct Freshsales Contact or Lead contact_id.

MetroLeads

User

maps to

Freshsales

User

1:1
Fully supported

MetroLeads Users with id, name, and role assignments export and map to Freshsales User records by email match. Owner assignments on Leads (assigned_to, user_assigned_to) resolve to Freshsales OwnerId via the User lookup. Any MetroLeads User without a matching Freshsales User email goes to a reconciliation queue for the customer's admin to provision before record import resumes.

MetroLeads

Lead Group

maps to

Freshsales

Contact List or Custom Field

1:1
Mapping required

MetroLeads lead_group is a UUID reference grouping related Leads. This is not a standard Freshsales concept. We export the UUID and map grouped Leads to Freshsales Contact Lists or a custom text field holding the original lead_group UUID, depending on whether the customer uses Lists for segmentation or needs the grouping preserved as a data attribute for reference.

MetroLeads

Intellisearch

maps to

Freshsales

Custom Fields or Notes

1:1
Mapping required

Intellisearch is a MetroLeads-specific search and scoring layer built on Lead data. The scoring logic and saved searches do not map 1:1 to Freshsales. We export the raw Intellisearch configuration and scoring parameters as a JSON document attached to the primary Contact record via a long-text custom field for reference. Any pre-calculated lead scores map to a numeric custom field freshsales_intellisearch_score__c.

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.

MetroLeads logo

MetroLeads gotchas

High

Merge API field priority can silently overwrite data

Medium

Custom lead_fields use property IDs not property names

Medium

Tenant-specific state values require pre-migration catalog

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

  • Lead custom field data lost during Freshsales Lead conversion without explicit mapping

    Freshsales requires explicit field mapping from Lead custom fields to Contact, Account, and Deal custom fields before Lead conversion. If the mapping is not configured in Freshsales Admin Settings before migration, data in MetroLeads lead_fields silently drops during conversion. We create all destination custom fields upfront, configure the field mapping dropdown per Freshsales documentation, and verify conversion mapping is active before the first Lead conversion runs in production.

  • MetroLeads merge API silently overwrites secondary Lead data

    The MetroLeads merge API defaults to primary Lead field priority when two Leads conflict, silently dropping secondary Lead values without a retain_fields parameter. We identify merge-pending Lead pairs during the export scan, prompt the customer to confirm which record should survive, and preserve merge decisions explicitly in a custom field before executing the import rather than accepting the API default behavior.

  • Tenant-specific state values require pre-migration catalog

    MetroLeads Lead state field accepts tenant-configured string values, meaning 'contacted' in one MetroLeads instance may not exist in another. We extract all unique state values during the export scan, present them to the customer for lifecycle-stage mapping to Freshsales lifecycle stages or custom picklist values, and flag any unmapped values so no records are orphaned with an unresolvable state during import.

  • Custom lead_fields keyed by property ID require schema fetch first

    MetroLeads lead_fields store values keyed by internal property IDs rather than human-readable names. The property name catalog is a separate API call. We fetch the full property schema before any field mapping begins, build an ID-to-name lookup, and apply it during transformation so destination custom fields carry the correct names and types.

Migration approach

Six steps for a successful MetroLeads to Freshsales data migration

  1. Discovery and schema extraction

    We audit the MetroLeads API to extract the full object inventory: Leads with embedded phones and emails, Companies, Events, Users, source_tags vocabulary, lead_fields property schema (ID-to-name mapping), and all unique state values. We pair this with a Freshsales schema review to identify which standard fields are available, which custom fields must be created, and whether the customer plans to use Freshsales Leads or Contact-only model. The discovery output is a written migration scope with the state-value catalog presented to the customer for explicit split rule definition.

  2. Freshsales custom field creation and field mapping configuration

    We create all destination custom fields in Freshsales Admin Settings matching the MetroLeads property names and inferred types from the schema fetch. We configure the Freshsales Lead-to-Contact field mapping dropdown for every custom field so that data is preserved during conversion. We also create the Freshsales lifecycle stage or custom picklist values matching the MetroLeads state catalog. Custom fields and mapping configuration deploy into the Freshsales account before any data import begins.

  3. Merge-pending pair identification and reconciliation

    We scan MetroLeads for duplicate Lead pairs flagged as merge-pending. For each pair, we present the customer with the field-level diff so they can confirm which record should survive. We capture the decision explicitly in a reconciliation document and handle the merge in the destination during import rather than executing it in MetroLeads before export, preserving the original MetroLeads data integrity.

  4. Export in dependency order with tenant-state catalog applied

    We export MetroLeads records in dependency order: Users first (for Owner resolution), then Companies (for Account parent lookups), then Leads with state catalog applied for split rule resolution, then Events. Embedded phones and emails extract during the transform phase and write to Freshsales Contact phone and email records after Contact insert. Source tags and lead_group UUIDs write alongside their parent records.

  5. Production migration with validation gates

    We run production migration in record-dependency order: Users validated, then Accounts from Companies, then Contacts from Leads with the state-split rule applied, then Events as Appointments. Each phase emits a row-count reconciliation report before the next phase begins. We validate that lead_fields landed in the correct Freshsales custom fields and that Lead conversion mapping is active for any Leads that qualify as Contacts.

  6. Cutover and automation inventory delivery

    We freeze MetroLeads writes during cutover, run a final delta migration of records modified during the migration window, then enable Freshsales as the system of record. We deliver the automation inventory document listing every MetroLeads task reminder and follow-up sequence with its trigger, conditions, and recommended Freshsales Flow equivalent for the customer's admin to rebuild. We support a 72-hour post-cutover hypercare window for reconciliation issues.

Platform deep dives

Context on both ends of the pair

MetroLeads logo

MetroLeads

Source

Strengths

  • Unified CRM, telephony, and lead capture in a single platform reduces vendor fragmentation.
  • Automatic lead deduplication prevents duplicate records on import.
  • Native cloud VOIP with call logging integrated directly into the Lead record.
  • Workflow automation for reminders and follow-up sequences is built in.
  • Omni-channel engagement tracking across voice, email, and web.

Weaknesses

  • Limited review corpus on public platforms makes independent quality assessment challenging.
  • Analytics and reporting lack advanced visualization and customization options.
  • Smaller integration ecosystem compared to enterprise-grade CRMs.
  • No publicly documented pricing tiers on the main website.
  • Limited evidence of advanced customization options for enterprise-scale deployments.
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?

Standard CRM migration. 2 of 8 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

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

  • Object compatibility

    B

    2 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

    MetroLeads: Not publicly documented in the available research data.

  • Data volume sensitivity

    B

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

Estimator

Estimate your MetroLeads 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 MetroLeads to Freshsales data migrations

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

Can't find your answer?

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

Book a free 30 minute consultation

Straightforward migrations under 15,000 Leads and 3,000 Companies with no Advanced Data Modules typically complete in two to four weeks. Migrations with Advanced Data Modules, large engagement histories, multiple merge-pending Lead pairs, or complex state-value catalogs requiring extensive mapping move to five to eight weeks. Timeline is driven by data volume, schema complexity, and the speed of customer sign-off on the state-value catalog and merge-pending pair decisions.

Adjacent paths

Related migrations to explore

Ready when you are

Move from MetroLeads.
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