CRM migration

Migrate from Weave to Freshsales

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

Weave logo

Weave

Source

Freshsales

Destination

Freshsales logo

Compatibility

92%

11 of 12

objects map 1:1 between Weave and Freshsales.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Weave is a patient-experience and communications platform built for dental, veterinary, and medical practices. Its core objects are Patients (contacts), Locations (businesses), Appointments, Communications (calls, texts, emails), Payments, and Reviews. Freshsales is a sales CRM built on the Freshworks platform with native objects: Leads, Contacts, Accounts, Deals, Activities, Products, and Custom Modules. The two platforms share no common object schema, so every Weave entity maps through an intermediate transformation layer. We migrate Patients → Contacts with address and phone preservation, Locations → Accounts with industry tagging, Appointments → Tasks with original timestamps, and Communication history → Activity records. Weave's review and payment records require custom object creation in Freshsales or field-level custom fields on Contact. Any Weave automations, text templates, or scheduling rules have no Freshsales equivalent — we export them as JSON for admin reference and rebuild. The migration runs via Freshsales REST API (rate-limited per plan: Growth 1000/hr, Pro 2000/hr, Enterprise 5000/hr) with delta-pickup capturing in-flight records during cutover.

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

Weave logo

Weave

What's pushing teams away

  • Software plateaued and stopped evolving with practice needs; features stagnated while competitors added AI and automation capabilities.
  • Customer support became inconsistent over time, with longer response times and difficulty reaching knowledgeable staff for technical issues.
  • Cost became difficult to justify as the practice grew and the feature set no longer matched the increasing monthly spend.
  • Customization limitations frustrated practices with unique workflows that could not be adapted within Weave's opinionated structure.

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

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

Weave

Patient

maps to

Freshsales

Contact

1:1
Fully supported

Weave Patients map directly to Freshsales Contacts. The patient's first name, last name, email, phone, address, and date of birth map to Freshsales Contact fields. We preserve the original Weave patient create date as a custom datetime field since Freshsales CreatedDate reflects the migration run date. Owner resolution uses email match against Freshsales users.

Weave

Patient

maps to

Freshsales

Lead

1:many
Fully supported

Patients with a lifecycle indicator of 'Prospect' or 'Referral' with no treatment history split to Freshsales Lead. Fully active patients with appointment history map to Contact. This split is driven by a Weave custom field flag or, if absent, by whether the patient record has at least one associated appointment.

Weave

Location

maps to

Freshsales

Account

1:1
Fully supported

Weave Locations map to Freshsales Accounts. The location name, address, phone, and website fields map directly. We tag the Freshsales Account with a custom Industry pick-list value (e.g., 'Healthcare — Dental', 'Healthcare — Veterinary') since Weave's location type is not a standard Freshsales field. Parent-child location hierarchies in Weave map to Freshsales Account.ParentId.

Weave

Appointment

maps to

Freshsales

Task

1:1
Fully supported

Weave Appointments map to Freshsales Tasks. The appointment subject, scheduled datetime, and status (Confirmed, Completed, Cancelled) map to Task fields. Duration calculates from Weave appointment length. The Task is linked to the Patient Contact record and the Location Account record via lookup. Cancelled appointments migrate as completed tasks with a custom status field to preserve history.

Weave

Communication (Call/Text/Email)

maps to

Freshsales

Activity (Task / Event)

1:1
Fully supported

Weave communication records (calls, SMS, emails) map to Freshsales Tasks with Type = 'Call', 'SMS', or 'Email'. Original timestamps and communication direction (inbound/outbound) are preserved in custom fields. The content or transcription, if stored in Weave, migrates to the Task description. Unanswered calls from Weave preserve the missed-call flag.

Weave

Payment / Invoice

maps to

Freshsales

Custom Object or Deal Product Line

1:1
Fully supported

Weave payment records have no native Freshsales equivalent. We create a Freshsales Custom Module called 'Payment_History__c' or, if the payment relates to a specific treatment plan, attach it as a custom field group on the Contact. Each payment's amount, date, method, and status migrate. Freshsales Pro plan or above is required for Custom Modules.

Weave

Review Request

maps to

Freshsales

Custom Field on Contact

1:1
Fully supported

Weave's review-request workflow (Google/Facebook review invites) has no Freshsales equivalent. We preserve the fact that a review was requested and whether it was completed as custom fields on the Contact record: Review_Request_Date__c and Review_Completed__c. The actual review link is stored as a URL field for reference.

Weave

Staff / Team Member

maps to

Freshsales

User

1:1
Fully supported

Weave staff members map to Freshsales users by email. We resolve each Weave staff email against Freshsales registered users. Unmatched staff are flagged before migration — the team either invites them to Freshsales or assigns their records to a fallback user. We preserve the staff role as a custom pick-list on the Contact record for context.

Weave

Custom Field (Patient-level)

maps to

Freshsales

Custom Field (Contact)

1:1
Fully supported

Weave Pro/Elite custom fields on patient records (e.g., 'Insurance Provider', 'Last Cleaning Date', 'Treatment Plan Status') map to Freshsales custom fields on Contact. Field type is matched: pick-lists map to pick-lists, dates to dates, numbers to numbers. The Freshsales field limit per module applies — Growth (10 fields) may require a plan upgrade or field consolidation.

Weave

Treatment Plan / Case

maps to

Freshsales

Deal

1:1
Fully supported

Weave treatment plans (patient-specific proposed procedures with estimated costs) map to Freshsales Deals. The treatment plan name becomes the Deal name; estimated value becomes Deal Amount; status maps to Freshsales Deal stage. We create a custom pick-list field Treatment_Plan_Status__c to track the plan lifecycle. Each treatment line item requires a separate Deal Product entry or a custom object.

Weave

Product / Service Item

maps to

Freshsales

Product

1:1
Fully supported

Weave services and products are mapped to Freshsales Products for use within Deals. The product name, SKU (if present), unit price, and description all migrate. Products connect to Deals via the Deal Product association in Freshsales, enabling line-item tracking and revenue attribution per offering.

Weave

Note (Patient Note)

maps to

Freshsales

Note

1:1
Fully supported

Weave patient notes including clinical notes and general comments migrate to Freshsales Notes attached to the Contact record. Both the original note timestamps and the author staff email are preserved during migration. Since Freshsales does not support HTML-formatted notes natively, any rich-text formatting is converted to plain text to ensure readability in the target system.

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.

Weave logo

Weave gotchas

High

Pricing hides setup, hardware, and addon costs

High

SMS and voicemail retention limits

Medium

Limited public API documentation

Medium

VoIP call records tied to phone service

Medium

Consolidated pricing tiers obscure feature availability

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

  • Freshsales API rate limits throttle bulk migration at Growth/Pro plan tiers

    Freshsales enforces per-plan API rate limits: Growth caps at 1,000 requests per hour, Pro at 2,000/hour, and Enterprise at 5,000/hour. A Weave export with 20,000+ patient records and associated communication history can generate 100,000+ API calls. FlitStack throttles write operations to stay within plan limits and staggers object writes (Contacts before Activities before Deals) to avoid 429 Too Many Requests errors. If the Freshsales plan is Growth, we recommend upgrading to Pro for the migration window or requesting a temporary Enterprise trial — the migration itself is faster than hitting rate-limit retry delays.

  • Freshsales custom field limits on Growth plan may require a plan upgrade

    Freshsales Growth plan allows only 10 custom fields per module (Contact, Account, Deal). Weave Pro and Elite practices typically have multiple custom fields per patient (insurance provider, last visit date, treatment preferences). A standard Weave-to-Freshsales migration with 15+ custom fields on Patient will exceed Growth limits. We map the highest-value custom fields first and flag overflow fields for admin prioritization. The workaround is upgrading to Freshsales Pro (100 fields/module) or Enterprise (300 fields/module) before migration — we flag this during the pre-migration audit.

  • Weave communication history requires threading by patient-contact ID

    Weave stores calls, texts, and emails as separate communication records with a patient reference but no single conversation thread ID. Freshsales Tasks are individual records attached to a Contact. When migrating Weave communication history, each communication record becomes a separate Freshsales Task. We preserve chronological ordering by populating the Original_Communication_Date__c custom datetime field and sort by it in Freshsales list views. If Weave stores conversation threads as a single record with multiple message segments, we split them into individual Tasks per segment.

  • Weave review and payment records need Freshsales Custom Modules (Pro/Enterprise only)

    Weave's review-request tracking and payment history have no equivalent native object in Freshsales. Freshsales Growth and Pro plans support custom fields but not custom objects — only Freshsales Enterprise (Forest tier at $59/user/month) includes Custom Modules. We create a Payment_History__c custom object for payment records and use a Review_Request__c custom object for review tracking, but these require the Enterprise plan. On lower plans, we attach payment and review data as custom fields on the Contact record — a compromise that limits historical depth but keeps all data accessible.

  • Weave Owner-to-Freshsales-User email resolution fails for inactive staff

    Weave staff members who have left the practice but still own patient records or appointments will not have Freshsales user accounts. FlitStack resolves Weave staff emails against Freshsales registered users by email match. Unmatched owners generate a pre-migration flag report — the practice admin must either invite the former staff member to Freshsales as a user or reassign their records to an active user before migration. We do not create placeholder users in Freshsales; records without a resolvable owner land in an 'Unassigned' state for admin resolution post-migration.

Migration approach

Six steps for a successful Weave to Freshsales data migration

  1. Pre-migration audit and Weave data extraction

    FlitStack connects to Weave via scoped read access and exports all patient records, location records, appointments, communication history, payments, and custom fields. We build a data dictionary from the Weave export — identifying every custom field, pick-list value, and relationship. We cross-reference Weave staff emails against the target Freshsales user list to build the owner resolution map and flag unmatched users. This audit produces the field-mapping specification used in all subsequent steps.

  2. Create Freshsales schema for custom fields and modules

    Before any data is written, FlitStack creates all required custom fields in Freshsales — original create dates, source system IDs, lifecycle stages, payment fields, review fields — via the Freshsales API. If the Growth plan is in use and the custom field count exceeds 10 per module, we surface this as a blocker and recommend a plan upgrade or field prioritization. For Enterprise plans, we create the Payment_History__c and Review_Request__c custom modules. This step also establishes the mapping of Weave location types to Freshsales Account Industry pick-list values.

  3. Migrate accounts and contacts in dependency order

    Freshsales requires Account records to exist before Contacts can link via AccountId, and Contacts before Deals can link via ContactId. We sequence the migration: Locations → Accounts first, then Patients → Contacts with AccountId resolution, then Treatment Plans → Deals with ContactId resolution. Owner resolution runs concurrently — Weave staff emails map to Freshsales User IDs. Any Contacts or Deals with unresolved owners land with a flagged status for admin review. Timestamps are preserved via custom datetime fields.

  4. Migrate activities and communication history with rate-limit pacing

    Appointment and communication records migrate after Contacts are confirmed in Freshsales. We paginate through Weave communication history and write Freshsales Tasks in batches, throttling to stay within the Freshsales plan's API rate limit (1,000/hr on Growth, 2,000/hr on Pro). Each Task links to its parent Contact and retains the original timestamp in Original_Communication_Date__c. For Weave records with high activity volume (practices with heavy SMS history), we prioritize recent records first and flag the tail for a second migration pass.

  5. Sample migration with field-level diff and admin sign-off

    A representative sample — typically 100–500 records covering contacts, accounts, appointments, and communication types — migrates first. We generate a field-level diff report comparing source Weave values against destination Freshsales values. The admin reviews the diff: confirming lifecycle stage mapping, location-type-to-industry mapping, owner resolution, and deal stage values. FlitStack surfaces any mismatches (truncated text, pick-list value gaps, missing custom fields) before the full migration runs. No full run commits without admin sign-off on the sample diff.

  6. Full migration run with delta-pickup and rollback readiness

    The full migration writes all records to Freshsales in the validated sequence. A delta-pickup window of 24–48 hours runs concurrently, capturing any Weave records modified during the migration window (new appointments, updated patient details, payment records posted after the initial export snapshot). An audit log records every record written, the source value, and the destination ID. If reconciliation fails, one-click rollback reverts the Freshsales instance to its pre-migration state. The Weave account remains fully operational throughout — scoped read access does not interrupt daily practice operations.

Platform deep dives

Context on both ends of the pair

Weave logo

Weave

Source

Strengths

  • Single platform covers phone, texting, scheduling, and payments for small healthcare practices.
  • HIPAA compliance is built-in rather than bolted on, simplifying security reviews.
  • Voicemail transcription is automatic and integrated into the communication inbox.
  • Text-to-pay brings billing into the same thread as patient communication.
  • G2 rating of 4.6 reflects consistent user satisfaction across dental, vet, and medical segments.

Weaknesses

  • API documentation is not publicly prominent, limiting self-service integration and migration tooling.
  • Historical SMS and voicemail retention depends on plan and storage policies, which may not cover the full relationship history.
  • Feature development slowed relative to competitors, with users noting stagnation over multi-year periods.
  • Customization options are limited compared to general-purpose CRMs, restricting adaptation to non-standard workflows.
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 Weave 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

    Weave: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most Weave-to-Freshsales migrations complete within 48–72 hours of clock time for standard-sized practices (under 25,000 patient records). Larger Weave deployments with multiple locations, heavy communication history, or payment record volumes above 50,000 lines extend the timeline to 5–7 days. The Freshsales API rate-limit tier (Growth's 1,000 req/hr vs. Enterprise's 5,000 req/hr) is the primary timeline variable — higher-tier accounts move faster. The pre-migration audit and sample diff add 1–2 business days before data starts moving.

Adjacent paths

Related migrations to explore

Ready when you are

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