CRM migration
Field-level mapping, validation, and rollback between Teleos and Freshsales. We move data and schema; workflows are rebuilt natively in Freshsales.
Teleos
Source
Freshsales
Destination
Compatibility
12 of 12
objects map 1:1 between Teleos and Freshsales.
Complexity
BStandard
Timeline
5–10 business days
Overview
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.
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 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
Freshsales
Contact
1:1Teleos 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
Freshsales
Contact Address Fields
1:1Street, 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
Freshsales
Patient__c (Custom Object)
1:1Teleos 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
Freshsales
Task / Event
1:1Teleos 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
Freshsales
Prescription__c (Custom Object)
1:1Teleos 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
Freshsales
Invoice__c (Custom Object)
1:1Teleos 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
Freshsales
Treatment_Plan__c (Custom Object) + Notes
1:1Teleos 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
Freshsales
Vaccination__c (Custom Object)
1:1Vaccination 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
Freshsales
Product2
1:1Teleos 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
Freshsales
Freshsales User
1:1Teleos 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
Freshsales
No Equivalent
1:1Teleos 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
Freshsales
Freshsales Files
1:1Teleos 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.
| Teleos | Freshsales | Compatibility | |
|---|---|---|---|
| Client | Contact1:1 | Fully supported | |
| Client Address Block | Contact Address Fields1:1 | Fully supported | |
| Patient | Patient__c (Custom Object)1:1 | Fully supported | |
| Appointment | Task / Event1:1 | Fully supported | |
| Prescription Record | Prescription__c (Custom Object)1:1 | Fully supported | |
| Invoice | Invoice__c (Custom Object)1:1 | Fully supported | |
| Treatment Plan | Treatment_Plan__c (Custom Object) + Notes1:1 | Fully supported | |
| Vaccination Record | Vaccination__c (Custom Object)1:1 | Fully supported | |
| Product / Inventory Item | Product21:1 | Fully supported | |
| Veterinarian / Staff User | Freshsales User1:1 | Fully supported | |
| Teleos Workflows / Automation Rules | No Equivalent1:1 | Fully supported | |
| Document / Attachment | Freshsales Files1: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.
Teleos gotchas
Catalog website pointed at the wrong company
No public API forces export-driven extraction
Channel-based UI configuration is per-workstation
Vet-XML records require special handling
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 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.
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.
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.
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.
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
Teleos
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 Teleos 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
Teleos: Not applicable — no documented public API endpoints exist..
Data volume sensitivity
Teleos 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 Teleos to Freshsales migration scoping. Not seeing yours? Book a call.
Walk through your Teleos 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 Teleos
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.