CRM migration
Field-level mapping, validation, and rollback between Zedmed and Freshsales. We move data and schema; workflows are rebuilt natively in Freshsales.
Zedmed
Source
Freshsales
Destination
Compatibility
12 of 12
objects map 1:1 between Zedmed and Freshsales.
Complexity
BStandard
Timeline
48–72 hours
Overview
Zedmed stores patient demographics, clinical notes, practitioner profiles, appointments, and Medicare billing records in a structure designed for clinical workflows, not sales pipelines. Freshsales CRM organises around Leads, Contacts, Accounts, and Deals — a fundamentally different mental model. We migrate what migrates cleanly: patient demographics map to Freshsales Contacts, provider organisations map to Accounts, and appointment records become timestamped Activities with appointment-type and practitioner fields stored as custom properties. Clinical notes, prescription records, and pathology results have no standard Freshsales equivalent — we preserve these as file attachments on the relevant Contact record. Medicare billing claims, item numbers, and payer data from Zedmed map to a Billing_Reference__c custom field on Contacts. Workflows, automated appointment reminders, and clinical decision-support rules do not migrate — Freshsales workflows must be rebuilt from scratch. We use Freshsales REST API with the account's plan-determined rate limit (1,000–5,000 requests/hour) for the data transfer, run a sample migration with field-level diff before committing, and capture a 24–48 hour delta window for in-flight records at cutover.
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 Zedmed 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.
Zedmed
Patient / Person Record
Freshsales
Contact
1:1Zedmed patient demographics (name, DOB, address, contact details) map directly to Freshsales Contact fields. Medical reference data such as Medicare number, pension card, and health fund membership are stored as custom fields on the Contact record, preserving the original clinical identifiers for future billing and recall processes.
Zedmed
Patient / Person Record (commercial lead)
Freshsales
Lead
1:1Patients who have a commercial inquiry — such as an allied health referral, corporate health package, or specialist co‑management request — can be created as Freshsales Leads for pipeline tracking before conversion to a Contact. The source Zedmed patient ID is preserved in a custom field to maintain traceability across systems.
Zedmed
Practitioner / Provider Record
Freshsales
Account
1:1Individual practitioners (GPs, specialists, allied health) are mapped to Freshsales Accounts with the practitioner’s name in Account.Name and their AHPRA registration number stored in a custom field. Multi‑practitioner groups are represented as parent‑child Account hierarchies, allowing you to roll up performance metrics at the group level while retaining individual practitioner details.
Zedmed
Practice / Clinic Organisation
Freshsales
Account
1:1The Zedmed practice or clinic itself is mapped to a Freshsales Account record representing the organisation. Practice address, phone, and billing details are transferred to the corresponding Account fields, and practitioner Accounts are linked via custom relationship fields, enabling you to associate each practitioner with their employing clinic directly within Freshsales.
Zedmed
Appointment Record
Freshsales
Task (Activity)
1:1Zedmed appointment records have no direct Freshsales equivalent. We migrate each appointment as a Task with Subject set to the appointment type (e.g., 'Initial Consultation — Dr Smith'), Start Date/Time and End Date/Time preserved, and practitioner linked via the Task owner or a custom Practitioner__c field.
Zedmed
Appointment Record (cancelled/no-show)
Freshsales
Task (Activity) with Status mapping
1:1Zedmed appointment statuses (attended, did not attend, cancelled, rescheduled) are mapped to Freshsales Task status values using a value‑mapping table. DNAs (did not attend) are flagged with a custom DNA__c checkbox, allowing practice analytics in Freshsales to track patient no‑show rates and schedule adherence across providers.
Zedmed
Invoice / Billing Record
Freshsales
Custom Field on Contact (Billing_Reference__c)
1:1Zedmed invoices carry item numbers, MBS fees, payer type (Medicare/DVA/WorkCover/TAC), and payment status — none of which have a standard Freshsales equivalent. We compress the key billing fields (payer, bulk-bill flag, last invoice amount, item numbers) into a structured custom field on the Contact record. Full invoice history is preserved as a PDF attachment.
Zedmed
Clinical Note / Letter
Freshsales
Note / Attachment on Contact
1:1Zedmed clinical letters, referral documents, and SmartForms have no Freshsales schema equivalent, so we export each document as a PDF and attach it to the relevant Contact record in Freshsales Files. The original filename and creation timestamp are retained for audit traceability, and the attached files are accessible from the Contact’s activity timeline.
Zedmed
Prescription / Pathology Record
Freshsales
Note / Attachment on Contact
1:1Prescription and pathology result records from Zedmed are exported as structured PDFs and attached to the Contact in Freshsales. Because field‑level mapping is not possible, the attachment preserves the full clinical context, allowing the practitioner to view the document directly from the Contact record while maintaining the original document integrity.
Zedmed
Referral Record
Freshsales
Custom Object or Task
1:1Zedmed referrals between practitioners map to Freshsales either as Tasks on the source Contact with referral details in custom fields (referring practitioner, referral reason, urgency), or as a custom Referral object on Enterprise+ plans where the admin has pre-created the object schema.
Zedmed
Payer Configuration (Medicare, BUPA, DVA, TAC, WorkCover)
Freshsales
Custom Field / Picklist on Contact
1:1Zedmed payer types are mapped to a Freshsales custom pick-list field (Payer_Type__c) with values representing each supported payer. The practice's specific fee schedule per payer is documented in the migration plan for rebuild in Freshsales Product Catalog or a custom fee schedule object.
Zedmed
Practice User / Practitioner
Freshsales
Freshsales User
1:1Zedmed practitioner and staff accounts are matched to Freshsales users by email address. Where no email match exists, records are assigned to a fallback Freshsales user and flagged in the pre-migration owner-resolution report. Zedmed role-based clinical permissions do not translate to Freshsales profile/sharing settings.
| Zedmed | Freshsales | Compatibility | |
|---|---|---|---|
| Patient / Person Record | Contact1:1 | Fully supported | |
| Patient / Person Record (commercial lead) | Lead1:1 | Fully supported | |
| Practitioner / Provider Record | Account1:1 | Fully supported | |
| Practice / Clinic Organisation | Account1:1 | Fully supported | |
| Appointment Record | Task (Activity)1:1 | Fully supported | |
| Appointment Record (cancelled/no-show) | Task (Activity) with Status mapping1:1 | Fully supported | |
| Invoice / Billing Record | Custom Field on Contact (Billing_Reference__c)1:1 | Fully supported | |
| Clinical Note / Letter | Note / Attachment on Contact1:1 | Fully supported | |
| Prescription / Pathology Record | Note / Attachment on Contact1:1 | Fully supported | |
| Referral Record | Custom Object or Task1:1 | Fully supported | |
| Payer Configuration (Medicare, BUPA, DVA, TAC, WorkCover) | Custom Field / Picklist on Contact1:1 | Fully supported | |
| Practice User / Practitioner | Freshsales User1: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.
Zedmed gotchas
No public API — database extraction requires Zedmed support
v39 forces ZedSMS-only SMS after upgrade
Clinical WP Templates require RTF format and may be incompatible
Browser cloud restrictions affect document printing
P1/P2/P3 private fee levels require explicit mapping
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
Audit Zedmed data and design Freshsales custom field schema
We extract a full data inventory from Zedmed using the platform’s built‑in export tools, categorising patient records, practitioner profiles, appointment history, billing data, and clinical documents. We then design the Freshsales custom field schema — for example Medicare_Number__c, Bulk_Bill__c, Last_MBS_Item__c, Payer_Type__c, and any required pick‑list values — with appropriate field types and visibility settings before any data is loaded into the CRM.
Create Freshsales custom fields and map practitioner-to-user resolution
We create all required custom fields on the Contact and Account objects in Freshsales, set field‑level permissions, and generate a practitioner‑to‑user resolution report by matching Zedmed practitioner email addresses to Freshsales user accounts. Unmatched practitioners are flagged so your team can either create Freshsales users, assign records to a fallback owner, or update the email list in Zedmed before migration runs, ensuring every Contact has an owner.
Migrate practitioner and practice data before patient records
Freshsales requires Accounts to exist before Contacts (via the account_id lookup). We sequence the migration as follows: practitioners → Accounts, practices → Account hierarchies, then patient records → Contacts with account_id set to the corresponding practitioner or practice Account. Appointment records are loaded as Tasks linked to the Contact and owned by the matched practitioner user, preserving the appointment type, start/end times, and any custom flags.
Run a sample migration with field-level diff
A representative slice — typically 100–500 patient records, a subset of appointments, and a billing record per payer type — migrates first. We generate a field‑level diff comparing Zedmed source values against Freshsales destination fields so you can verify custom field mapping, appointment‑type subject lines, DNA flag settings, practitioner owner resolution, and any value‑mapping conversions before the full run commits.
Full migration with delta-pickup window and rollback plan
The full migration runs against Freshsales using bulk import for high‑volume records and API calls for records requiring custom field resolution. A delta‑pickup window of 24–48 hours captures any new or modified Zedmed records during cutover. All operations are logged in an audit trail, and a one‑click rollback reverts to the pre‑migration state if reconciliation reveals unexpected data divergence, ensuring minimal disruption to live data.
Platform deep dives
Zedmed
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 Zedmed 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
Zedmed: Not publicly documented.
Data volume sensitivity
Zedmed doesn't expose a bulk API — REST + parallelization used for high-volume runs.
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 Zedmed to Freshsales migration scoping. Not seeing yours? Book a call.
Walk through your Zedmed 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 Zedmed
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.