CRM migration
Field-level mapping, validation, and rollback between Teleos and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.
Teleos
Source
Odoo CRM
Destination
Compatibility
12 of 12
objects map 1:1 between Teleos and Odoo CRM.
Complexity
BStandard
Timeline
48–72 hours
Overview
Teleos structures its data around contacts, companies, cases, and appointments optimized for veterinary workflows. Odoo CRM uses crm.lead for both leads and opportunities, res.partner for contacts and companies, and calendar.event for scheduling — with accounting handled through the account.move model when the Odoo Accounting module is active. The migration carries Teleos contacts into Odoo res.partner records, Teleos cases into crm.lead with custom fields for case-specific details, and appointments into calendar.event. Odoo's modular architecture means your team can layer in inventory, project management, and point-of-sale as the practice grows. We map custom Teleos fields to Odoo ir.model.fields, resolve owners by email match to Odoo users, and re-upload attachments to Odoo ir.attachment. Workflows, email templates, and reporting configurations cannot migrate — they require manual rebuild using Odoo Studio or the automation framework. The migration runs against Odoo's XML-RPC API with batched inserts and a delta-pickup window capturing any records modified during 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 Teleos object lands in Odoo CRM, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Teleos
Contact
Odoo CRM
res.partner
1:1Teleos contacts map to Odoo res.partner records. The Teleos flat name field splits into firstname and lastname in Odoo. Company-linked contacts use the partner_id field to link to the parent company partner. Contacts marked as companies in Teleos map with partner_share=True and is_company=True.
Teleos
Company
Odoo CRM
res.partner (is_company=True)
1:1Teleos company or practice records map to Odoo res.partner with is_company=True. Address fields (street, city, state, zip, country) map to Odoo's address fields. Child contacts (staff, veterinarians) link via parent_id to the company partner including phone, email, and website where available.
Teleos
Case
Odoo CRM
crm.lead
1:1Teleos cases translate to Odoo crm.lead records with type='opportunity' for active patient cases and type='lead' for new inquiries. Case status maps to crm.stage using value mapping per stage name. Patient name from Teleos becomes a custom field (x_patient_name) on crm.lead.
Teleos
Appointment
Odoo CRM
calendar.event
1:1Teleos appointments map to Odoo calendar.event with start_datetime and stop_datetime preserved. The practitioner or veterinarian links to res.partner (user_id in calendar.event). Patient and case links use calendar.event's res_model and res_id pointing to crm.lead. Location details are stored in the location field for venue reference.
Teleos
Invoice
Odoo CRM
account.move
1:1Teleos invoices migrate to Odoo account.move records when the Accounting module is active. Line items become account.move.line records. Partner field maps to res.partner. Invoice status (draft, posted, paid) uses Odoo's state field. Payment records map to account.payment when payment data exists.
Teleos
Custom Field: Patient/Pet
Odoo CRM
Custom field on res.partner
1:1Teleos pet or patient records attached to contacts migrate as custom char fields (x_pet_name, x_pet_species, x_pet_breed) on res.partner. If Teleos stores pets as separate records with N:1 links to contacts, we create the custom fields and populate them from the linked Teleos pet record.
Teleos
Attachment/File
Odoo CRM
ir.attachment
1:1Teleos file attachments on cases, contacts, or invoices re-upload to Odoo ir.attachment linked to the corresponding res.partner, crm.lead, or account.move record. File name and content are preserved; Odoo's attachment limit applies (default 25MB per file). Files larger than 25MB are flagged for splitting or external hosting.
Teleos
Note
Odoo CRM
mail.message
1:1Teleos notes on contacts, cases, or appointments map to Odoo mail.message records attached to the corresponding record. Message type='comment'. Original create date and author preserved using message's date and author_id fields. Attachments within notes are also migrated to ir.attachment linked to each message.
Teleos
Tag/Category
Odoo CRM
crm.tag
1:1Teleos case categories or contact tags map to Odoo crm.tag records. Multiple tags per crm.lead use the tag_ids many2many field. We create missing tags during migration and map them by name with case-insensitive matching. Tag hierarchy, if present in Teleos, is preserved as a custom field for reference.
Teleos
Owner/User
Odoo CRM
res.users
1:1Teleos owner assignments resolve by email match against Odoo res.users records. Unmatched owners are flagged before migration; records can be assigned to a fallback user or held pending Odoo user creation. Active status in Teleos maps to active=True in Odoo.
Teleos
Custom Object
Odoo CRM
Custom model via ir.model
1:1Any Teleos custom objects beyond standard contacts, cases, and appointments require Odoo custom model creation via Settings > Technical > Models before migration. We deliver a model creation plan with field definitions, and then migrate data using Odoo's XML-RPC API for custom models.
Teleos
Workflow/Automation
Odoo CRM
Not migrated
1:1Teleos workflows, sequences, automated reminders, and trigger rules do not migrate. Odoo's automation architecture (Studio, server actions, automated actions) is fundamentally different. We export Teleos workflow definitions as a reference document for your Odoo admin to rebuild. This document includes trigger conditions, action steps, and expected outcomes for each workflow.
| Teleos | Odoo CRM | Compatibility | |
|---|---|---|---|
| Contact | res.partner1:1 | Fully supported | |
| Company | res.partner (is_company=True)1:1 | Fully supported | |
| Case | crm.lead1:1 | Fully supported | |
| Appointment | calendar.event1:1 | Fully supported | |
| Invoice | account.move1:1 | Fully supported | |
| Custom Field: Patient/Pet | Custom field on res.partner1:1 | Fully supported | |
| Attachment/File | ir.attachment1:1 | Fully supported | |
| Note | mail.message1:1 | Fully supported | |
| Tag/Category | crm.tag1:1 | Fully supported | |
| Owner/User | res.users1:1 | Fully supported | |
| Custom Object | Custom model via ir.model1:1 | Fully supported | |
| Workflow/Automation | Not migrated1: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
Odoo CRM gotchas
Odoo.sh version gating blocks assisted migrations from trial
Enterprise modules fail to install on Community after database restore
Custom module view inheritance breaks between Odoo major versions
Custom fields risk losing their application context on Community
API access for Community is gated behind the Custom Plan
Pair-specific challenges
Migration approach
Audit Teleos data model and API capabilities
FlitStack AI connects to Teleos via API using your provided credentials and inventories all standard objects (contacts, companies, cases, appointments, invoices), custom fields, and attachment references. If Teleos API rate limits are restrictive, we recommend a direct database export or staged CSV approach. We also assess whether Teleos stores pet/patient records as separate objects or as contact properties, and identify any N:1 or N:N relationships that require Odoo custom field creation.
Design Odoo target schema and create custom fields
Before data moves, your Odoo administrator (or our team) creates the custom fields identified during audit — patient name, species, case number, original create dates — on crm.lead and res.partner. If the Accounting module is active, we validate the chart of accounts is configured. We deliver a field creation checklist with exact field names, types, and help text so the schema is ready before validation runs.
Resolve owners by email match and validate partner relationships
FlitStack AI matches Teleos owner and assigned_to fields against Odoo res.users by email. Unmatched owners are flagged in a pre-migration report — your team creates the corresponding Odoo users or assigns a fallback owner before the run. For company-contact relationships, we apply the primary-company rule (most recently modified Teleos company becomes parent_id) and surface secondary associations for manual follow-up and reconciliation.
Run sample migration with field-level diff
A representative slice migrates first — typically 100–500 records spanning contacts, cases, appointments, and invoices. We generate a field-level diff between the Teleos source and the Odoo destination so you can verify patient field mapping, stage assignment, owner resolution, and attachment linking before the full run commits. Sample migration runs against your staging Odoo environment by default and data integrity checks.
Execute full migration with delta-pickup window
Full migration runs against your production Odoo environment. A delta-pickup window (typically 24–48 hours) captures any Teleos records created or modified during the cutover period so Odoo reflects Teleos final state at go-live. Audit log records every insert, update, and skip. One-click rollback reverts all migration operations if reconciliation fails. We deliver a post-migration reconciliation report comparing record counts, field population rates, and attachment counts between Teleos and Odoo.
Platform deep dives
Teleos
Source
Strengths
Weaknesses
Odoo CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 1 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 Odoo CRM.
Object compatibility
1 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 Odoo CRM migration scoping. Not seeing yours? Book a call.
Walk through your Teleos to Odoo CRM 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 Odoo CRM
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.