CRM migration

Migrate from Teleos to Freshsales

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

Teleos logo

Teleos

Source

Freshsales

Destination

Freshsales logo

Compatibility

100%

12 of 12

objects map 1:1 between Teleos and Freshsales.

Complexity

BStandard

Timeline

5–10 business days

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Teleos is a veterinary practice management system — built around clients, patients, appointments, prescriptions, and invoices. Freshsales is a sales CRM built around Leads, Contacts, Accounts, Deals, and custom modules. The two platforms share almost no native object equivalents, which means this migration leans heavily on Freshsales custom fields and custom objects rather than standard field mapping. FlitStack AI maps each Teleos entity to its Freshsales counterpart: Teleos clients become Contacts with address and contact-method fields preserved; Teleos patients become a custom object (Patient__c) linked to the Contact record; Teleos appointments become Freshsales Tasks or Events with the patient and veterinarian linked via lookup fields; Teleos invoices become custom field blocks on the Contact or a custom Invoice object. Prescription records, vaccination history, and treatment plans move as structured custom fields on the Patient object. The Freshsales API (1000–5000 requests/hour depending on plan tier) drives the migration load. We sequence the migration to resolve foreign keys — accounts and contacts load first, then the Patient custom object is created with lookups to the Contact record, then appointments and invoice history follow. A field-level diff runs against a 50–100 record sample before the full cutover commits. Workflows, automation rules, and prescription-alert sequences from Teleos do not have Freshsales equivalents and must be rebuilt manually.

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

Teleos logo

Teleos

What's pushing teams away

  • No publicly documented API or developer portal blocks any meaningful integration with central group reporting, BI tools, or modern marketing automation.
  • Corporate veterinary groups consolidating onto cloud-native platforms like Provet Cloud or ezyVet move away to gain multi-site reporting and centralised configuration.
  • Small UK supplier with limited public review corpus and a 3-10 employee footprint raises long-term support continuity concerns for buyers making multi-year commitments.
  • No free trial or freemium tier means buyers cannot evaluate the product without committing to a sales conversation, which loses deals to self-serve cloud competitors.
  • Integrations are largely UK-vertical specific (Vet-XML, Clover POS, T-VoIP) and limited outside that ecosystem, making it a poor fit for practices expanding internationally or adopting non-UK toolchains.

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

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

Teleos

Client

maps to

Freshsales

Contact

1:1
Fully supported

Teleos clients map directly to Freshsales Contacts. The client name splits into FirstName and LastName on the Contact record. Email, phone, address, and billing contact fields map to their Freshsales equivalents. If the client record contains both a home and mobile phone, the secondary maps to Contact.secondary_phone__c.

Teleos

Client Address Block

maps to

Freshsales

Contact Address Fields

1:1
Fully supported

Street, city, state, postal code, and country on the Teleos client record map to Freshsales Contact address fields. Multiple address types (billing vs. shipping) stored in Teleos collapse to the primary address on the Freshsales Contact; the secondary address type is stored in a custom field if needed.

Teleos

Patient

maps to

Freshsales

Patient__c (Custom Object)

1:1
Fully supported

Teleos patients have no Freshsales native equivalent. We create a Patient__c custom object linked to the Contact record via a lookup field (Client__c). Species, breed, date of birth, weight, microchip number, and insurance policy number become custom fields on Patient__c. Medical history and vaccination records are stored as formatted text fields or linked Notes attachments.

Teleos

Appointment

maps to

Freshsales

Task / Event

1:1
Fully supported

Teleos appointments carry patient, veterinarian, procedure type, and clinical notes. These map to Freshsales Events (for scheduled appointments with start/end times) or Tasks (for follow-up items). The patient context is preserved via the Patient__c lookup on the Event or Task record. Veterinarian assignment resolves by email match to Freshsales users.

Teleos

Prescription Record

maps to

Freshsales

Prescription__c (Custom Object)

1:1
Fully supported

Teleos prescriptions — medication name, dosage, frequency, start and end dates, refills remaining, and prescriber — become a Prescription__c custom object linked to the Patient__c record. We preserve the original prescription date as a custom datetime field since Freshsales has no native prescription entity.

Teleos

Invoice

maps to

Freshsales

Invoice__c (Custom Object)

1:1
Fully supported

Teleos invoices with line items, totals, payment status, and due dates become an Invoice__c custom object linked to the Contact record. Invoice line items are stored as a long-text custom field in JSON format for reference, since Freshsales has no native invoice line-item table. Payment status maps to a custom pick-list field.

Teleos

Treatment Plan

maps to

Freshsales

Treatment_Plan__c (Custom Object) + Notes

1:1
Fully supported

Teleos treatment plans with procedure list, estimated cost, and status become a Treatment_Plan__c custom object linked to the Patient__c record. The plan narrative is stored as a formatted Notes attachment since Freshsales does not have a native clinical plan object.

Teleos

Vaccination Record

maps to

Freshsales

Vaccination__c (Custom Object)

1:1
Fully supported

Vaccination records — vaccine name, batch number, administration date, next due date, and administering staff — map to a Vaccination__c custom object linked to Patient__c. Next-due dates are preserved as custom date fields to support reminder workflow rebuilding in Freshsales.

Teleos

Product / Inventory Item

maps to

Freshsales

Product2

1:1
Fully supported

Teleos product catalog items including medications, vaccines, and consumables map to Freshsales Product2 records. The product name, unit price, and description field transfer directly. Teleos stock quantity and reorder thresholds map to a custom Number field (Stock_Quantity__c) on Product2 since Freshsales Products do not natively track inventory levels or generate low-stock alerts.

Teleos

Veterinarian / Staff User

maps to

Freshsales

Freshsales User

1:1
Fully supported

Teleos staff and veterinarian accounts resolve against Freshsales users by email match. If a Teleos staff member has no Freshsales user account, their records are assigned to a fallback owner and flagged for review. Teleos staff roles do not map to Freshsales profiles — those permissions are configured independently in the destination account after migration.

Teleos

Teleos Workflows / Automation Rules

maps to

Freshsales

No Equivalent

1:1
Fully supported

Teleos appointment reminders, prescription renewal alerts, and vaccination reminders have no Freshsales native equivalent. We export the Teleos workflow definitions as a structured reference document so your Freshsales admin can rebuild the logic using Freshsales Workflows on Pro/Enterprise plans. Each automation trigger and condition is documented for manual recreation.

Teleos

Document / Attachment

maps to

Freshsales

Freshsales Files

1:1
Fully supported

Teleos document attachments such as consent forms, lab results, and imaging files are re-uploaded to Freshsales Files and linked to the parent Contact or Patient__c record. File size limits from Freshsales apply; files exceeding 25MB are flagged for chunked upload or alternative storage with a reference link stored in Freshsales.

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.

Teleos logo

Teleos gotchas

High

Catalog website pointed at the wrong company

High

No public API forces export-driven extraction

Medium

Channel-based UI configuration is per-workstation

Medium

Vet-XML records require special handling

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

  • Patient clinical notes collapse into text fields with no native structure

    Freshsales has no native medical-record or patient-chart object. Teleos stores clinical notes, examination findings, and treatment narratives as free-text records. We move these as formatted Notes attachments or long-text custom fields on the Patient__c object. The hierarchical structure of Teleos clinical notes — problem list, assessment, plan — does not map to a structured Freshsales equivalent and must be reconstructed manually by the veterinary team in Freshsales after migration. This is a high-severity gotcha for practices that rely on clinical note history for regulatory compliance or continuity of care.

  • Teleos appointment reminders and prescription renewal alerts have no Freshsales Workflow counterpart

    Teleos includes built-in clinical automation — appointment reminder SMS/email, prescription renewal alerts, and vaccination due-date notifications. Freshsales Workflows on Pro and Enterprise can automate task creation and email alerts, but there is no pre-built clinical reminder construct. The logic from Teleos automations must be exported as a structured reference and rebuilt as Freshsales Workflows or Tasks with due-date triggers. We provide the export reference; the rebuild is a manual step your admin performs after the data lands. This is a high-severity gotcha for practices that depend on automated reminders for client compliance.

  • Freshsales inventory tracking on the Products module is read-only stock quantities

    Teleos product catalog includes active stock levels, reorder thresholds, and dispensing unit tracking. Freshsales Product2 records store a unit price and a description field, and a custom Number field can hold the stock quantity, but Freshsales does not have a native inventory management module that automatically decrements stock on invoices or generates reorder alerts. Practices that rely on Teleos stock-level reporting will need a custom solution or a third-party inventory app from the Freshworks Marketplace after migration.

  • Invoice line items stored as a text block rather than structured records

    Teleos invoices carry line items — product, quantity, unit price, subtotal — as structured rows. Freshsales Invoice__c is a custom object with no native line-item sub-object. We store Teleos line items as a JSON-formatted custom long-text field on the Invoice__c record. This preserves the data for reference but does not allow line-item level reporting inside Freshsales reports. If the practice needs line-item reporting in Freshsales, a separate custom line-item object must be designed and built post-migration.

  • Freshsales API rate limits cap migration throughput on lower plans

    Freshsales Growth plan limits API calls to 1,000 per hour, Pro to 2,000 per hour, and Enterprise to 5,000 per hour per account. Large Teleos instances with 50,000+ records may take multiple migration sessions to complete within rate-limit windows. We throttle requests to stay under the per-hour cap and resume automatically when the window resets. Practices on the Growth plan with high record volumes should consider upgrading to Pro or Enterprise for the migration window to reduce total migration time.

Migration approach

Six steps for a successful Teleos to Freshsales data migration

  1. Audit Teleos data and design Freshsales custom object schema

    FlitStack AI extracts a full export of Teleos records — clients, patients, appointments, invoices, prescriptions, vaccinations, products, and attachments — and audits field completeness and duplicate rates. We then design the Freshsales custom object schema: Patient__c linked to Contact, Prescription__c and Vaccination__c linked to Patient__c, and Invoice__c linked to Contact. A schema setup plan is delivered before any data moves, so your Freshsales admin can pre-create the custom objects and fields in the destination account.

  2. Map and validate client-to-contact and patient-to-lookup foreign key chains

    Teleos clients map to Freshsales Contacts, and Teleos patients link to clients via a client_id foreign key. We resolve each client_id to the corresponding Freshsales Contact ID through email matching before creating Patient__c records. Any Teleos client record with no email match is flagged and assigned to a fallback Contact. This step ensures that every Patient__c, Prescription__c, and Invoice__c record lands with a valid foreign key on the first migration run.

  3. Migrate contacts, custom objects, and historical records in dependency order

    We sequence the migration: Contacts load first, then Patient__c records with Contact lookups, then Prescription__c and Vaccination__c with Patient__c lookups, then Events and Tasks for appointments, then Invoice__c records. This ordering respects Freshsales foreign-key constraints and avoids orphaned records. Attachments and files are uploaded in parallel using Freshsales Files and linked to the parent Contact or Patient__c record by ID.

  4. Run a sample migration and deliver a field-level diff for verification

    A representative sample — typically 50–100 records spanning clients, patients, appointments, and invoices — migrates first. We generate a field-level diff that compares every source field value against the destination field value so you can verify prescription dosages, appointment dates, invoice totals, and patient species data before the full cutover runs. You sign off on the sample before the full migration commits.

  5. Cut over with delta-pickup and deliver an audit log

    The full migration runs against Freshsales using scoped API access to Teleos. A delta-pickup window of 24–48 hours captures records created or modified during the cutover window. FlitStack logs every create and update operation in an audit trail. If reconciliation fails, one-click rollback reverts the Freshsales account to its pre-migration state. Post-migration, your admin rebuilds Teleos workflow logic using Freshsales Workflows — we provide the exported workflow definitions as a rebuild reference.

Platform deep dives

Context on both ends of the pair

Teleos logo

Teleos

Source

Strengths

  • 25+ years of continuous operation in the veterinary sector with stable, well-understood data structures.
  • Full feature set covering clinical, billing, and communication workflows in one platform.
  • Independent UK company with direct access to founders and senior staff.
  • 24/7 multi-channel customer support including live phone assistance.
  • Transparent pricing model with no public tiered plans that might restrict data export.

Weaknesses

  • No publicly documented API — all data extraction relies on in-product export tools.
  • Single verified review on major platforms makes independent quality assessment difficult.
  • Niche platform with limited third-party integrations compared to global veterinary software.
  • Small company footprint (3–10 employees) raises long-term support continuity questions.
  • No free trial or freemium entry tier listed on Capterra.
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 Teleos 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

    Teleos: Not applicable — no documented public API endpoints exist..

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most Teleos-to-Freshsales migrations complete in 5–10 business days for under 25,000 records. Practices with more than 100,000 records, complex invoice history, or more than 20 custom Teleos fields extend to 3–5 weeks. The Freshsales API rate limit (1,000/hour on Growth, 5,000/hour on Enterprise) governs throughput for large record volumes. The longest planning step is designing the Patient__c and Invoice__c custom object schema before data moves.

Adjacent paths

Related migrations to explore

Ready when you are

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