ERP migration

Migrate from TechnologyOne to Odoo ERP

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

TechnologyOne logo

TechnologyOne

Source

Odoo ERP

Destination

Odoo ERP logo

Compatibility

83%

10 of 12

objects map 1:1 between TechnologyOne and Odoo ERP.

Complexity

BStandard

Timeline

6-10 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Migrating from TechnologyOne to Odoo ERP is a multi-phase project that begins with the structural reality of TechnologyOne's single-tenanted CiA architecture. Each customer environment runs an isolated dataset with no multi-tenant API covering all objects simultaneously; we negotiate direct dataset access or use the Business View API for financials and the ITP API for invoice operations, scoping each module's environment separately because many customers run both the legacy CI interface and CiA in parallel. We map the general ledger account hierarchy, preserve account codes and balance mappings, extract open AP and AR records with payment arrangements, transfer fixed-asset depreciation schedules with method reconciliation, migrate employee compensation history with effective-dated sequencing, and extract ECM documents and custom fields via EzeScan CMIS-compatible endpoints. Odoo's modular application model means we activate only the relevant apps (Accounting, Inventory, HR, Asset Management, Documents) during migration rather than forcing a bundled suite. Workflows, automations, XlOne reports, and CI-role configurations do not migrate; we deliver written inventories of each for the customer's admin to rebuild in Odoo's studio or via a system integrator.

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

TechnologyOne logo

TechnologyOne

What's pushing teams away

  • Customers report that the user interface, particularly the CI legacy interface, feels dated compared to modern SaaS ERP alternatives, driving preference for cleaner UX platforms like NetSuite or Workday.
  • The monolithic bundled model means organisations pay for modules they may not use; customers seeking modular per-user or per-transaction pricing find the model inflexible and costly at scale.
  • Limited public API documentation and a historically API-light architecture make integrations with modern third-party tools difficult, pushing technical teams toward more open platforms.
  • Gartner Peer Insights scores are modest at 3.6 stars with a small review pool, indicating lower customer satisfaction and advocacy compared to competitors in the ERP space.
  • Upgrade cycles from CI to CiA have required significant consulting effort and custom role rebuilding, creating churn among customers who want a cleaner migration path.

Choosing

Odoo ERP logo

Odoo ERP

What's pulling them in

  • Modular pay-as-you-grow model with 80+ apps under one database — teams start with CRM and add Accounting, Inventory, or Manufacturing without switching platforms.
  • Free Community edition lets businesses validate Odoo fit before committing to Enterprise licensing costs that scale with user count.
  • Lowest per-user pricing among mid-market ERPs, with a published free tier for one app and Standard plans starting around $24.90 per user per month.
  • Native integration between modules — a confirmed Sales Order automatically updates inventory, invoicing, and accounting without manual re-entry.
  • Strong Odoo Gold Partner ecosystem provides local implementation support, reducing risk for companies without in-house developers.

Object mapping

How TechnologyOne objects map to Odoo ERP

Each row shows how a TechnologyOne object lands in Odoo ERP, including any object-level transformations, lookup resolution, or schema-design dependencies.

Typical mapping — final map is confirmed during the sample migration step.

TechnologyOne

Chart of Accounts / General Ledger

maps to

Odoo ERP

Account (Accounting)

1:1
Fully supported

TechnologyOne's GL account hierarchy with fund accounting and account codes maps to Odoo's Accounting > Chart of Accounts structure. We extract the full account tree via Business View API or direct dataset access, preserving parent-child relationships and account type classifications. Fund ledger splits in TechnologyOne map to separate Odoo account groups or analytic accounts depending on the customer's reporting requirements. Odoo's country-specific chart of accounts templates (AU, NZ) provide a baseline; the customer's custom account codes and fund structures are added during import.

TechnologyOne

Customers (Debtors)

maps to

Odoo ERP

Contact / Customer (Accounting)

1:1
Fully supported

TechnologyOne customer master records including contact details, payment terms, credit limits, and custom fields map to Odoo Contact records with the Customer flag enabled. Payment terms (Net 30, EOM) migrate to Odoo's Payment Term lines. Credit limits and custom debtor fields transfer to custom fields on the Contact model. We deduplicate by customer code or ABN where applicable.

TechnologyOne

Suppliers (Creditors)

maps to

Odoo ERP

Contact / Vendor (Accounting)

1:1
Fully supported

TechnologyOne supplier master records map to Odoo Contact records with the Vendor flag enabled. Payment terms, bank details, and custom fields migrate similarly to the customer mapping. Tax registration numbers (ABN for AU) transfer to the Contact's Tax ID field.

TechnologyOne

Open AP Records

maps to

Odoo ERP

Vendor Bill (Account Move)

1:1
Fully supported

Open accounts payable records with payment arrangements, direct debit mandates, and prepayment schedules migrate as Odoo Vendor Bills (account.move records with move_type = 'in_invoice'). We sequence open items carefully to avoid triggering duplicate payment runs during import. Bulk transaction histories that span multiple fiscal periods are split into separate Vendor Bills by invoice date.

TechnologyOne

Open AR Records

maps to

Odoo ERP

Customer Invoice (Account Move)

1:1
Fully supported

Open accounts receivable records migrate as Odoo Customer Invoices (account.move with move_type = 'out_invoice'). Payment arrangements and direct debit schedules transfer to Odoo's Account Payment model. Historical invoice aging reports are preserved as analytic line entries for reporting continuity.

TechnologyOne

Fixed Assets

maps to

Odoo ERP

Asset (Accounting > Assets)

1:1
Mapping required

TechnologyOne asset registers with acquisition dates, depreciation schedules, and asset classifications map to Odoo Asset records. Depreciation methods (straight-line, reducing balance, units of production) require value-mapping reconciliation because Odoo's asset depreciation methods have specific configuration requirements. We extract the asset's NBV at the point of migration and set Odoo's asset value accordingly.

TechnologyOne

Employees

maps to

Odoo ERP

Employee (HR)

1:1
Mapping required

TechnologyOne HR module employee records including job titles, department assignments, compensation history, and effective-dated changes migrate to Odoo HR Employee records. Effective-dated changes require sequencing to preserve history in Odoo's employee activity log. We do not migrate payroll processing data that sits in a separate payroll system unless it is part of the HR module dataset.

TechnologyOne

Procurement: Purchase Orders

maps to

Odoo ERP

Purchase Order (Purchase)

1:1
Fully supported

TechnologyOne purchase orders and purchase requisitions with workflow states and approval histories map to Odoo Purchase Orders. Approval history migrates as internal notes or a custom activity log. Open Purchase Orders at cutover migrate with their current state; closed POs are documented for reporting continuity. Odoo requires the vendor Contact to exist before PO creation, so vendor import precedes PO import.

TechnologyOne

ECM Documents

maps to

Odoo ERP

Document (Documents) / Attachment

1:1
Fully supported

TechnologyOne ECM stores documents, document sets, compound documents, and custom document fields accessible via EzeScan CMIS-compatible endpoints. We extract document metadata and relationships, preserving the document's folder path as Odoo Tags or a custom Folder model. Custom ECM fields require pre-migration field-level audit against the live ECM environment because there is no self-documenting schema endpoint for custom fields. Document binary files migrate as attachments to the related Odoo record (Contact, Asset, PO, Invoice) where a relationship is identifiable.

TechnologyOne

Property and Rating Assessments

maps to

Odoo ERP

Contact / Property Model (custom)

lossy
Mapping required

TechnologyOne's Property and Rating module (specific to local government customers) stores assessments, charge runs, and fee schedules. The billing engine uses custom calculation rules that require transformation logic specific to each customer's rate schedule. We map ratepayer records to Odoo Contact, assessment balances to Account Move lines, and document the charge run structure for the customer's admin to configure in Odoo Accounting or a custom module.

TechnologyOne

Custom Properties

maps to

Odoo ERP

Custom Fields

lossy
Mapping required

TechnologyOne custom fields added to any standard object are discovered during the discovery phase via dataset query or EzeScan field audit. Each custom field is mapped individually to an Odoo custom field (via Studio on Enterprise, or Python ir.model.fields definition on Community/Standard). Field type mapping must be explicit: TechnologyOne string fields map to Odoo char or text; date fields map to Odoo date; lookup fields map to Odoo many2one or selection depending on the target model.

TechnologyOne

Users and Roles

maps to

Odoo ERP

Internal User / Portal User

1:1
Not supported

TechnologyOne user accounts and role-based security profiles are tied to the internal CiA identity layer and CI-role UI configuration. These do not migrate because they must be recreated in Odoo with Odoo's own user management, access rights groups, and multi-company setup. We document the TechnologyOne role hierarchy during discovery so the customer's Odoo administrator can rebuild access groups in Odoo Studio or via system configuration.

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.

TechnologyOne logo

TechnologyOne gotchas

High

CI-to-CiA hybrid environments complicate data scoping

High

Single-tenanted dataset requires direct database access

Medium

Custom document fields in ECM require manual discovery

Medium

XlOne and custom financial reports do not auto-migrate

Odoo ERP logo

Odoo ERP gotchas

High

No rollback for CSV imports

High

External ID conflicts on re-import

Medium

Many2many field encoding in CSV imports

Medium

Large export timeouts require batching

Medium

Version schema drift between Odoo releases

Pair-specific challenges

  • CI-to-CiA hybrid environments require separate dataset scoping

    Many TechnologyOne customers operate with both the legacy CI interface and the newer CiA platform simultaneously. Each environment hosts a separate dataset, and not all modules may have migrated to CiA. We treat each module's environment as a separate data source during scoping, identify which modules are still on CI, and extract from the appropriate environment before mapping everything into Odoo. Failure to identify hybrid environments results in incomplete data extraction, particularly for procurement and property modules that lag behind the core financials migration.

  • Single-tenanted dataset requires negotiated access before extraction

    TechnologyOne's single-tenanted architecture means each customer environment is isolated with no multi-tenant API covering all objects. We negotiate direct dataset access or use the Business View API for financials and the ITP API for invoice operations. API rate limits and endpoint availability vary by module and by whether the customer has SaaS+ or on-premise deployment. We confirm access method and rate limits during the discovery call before any extraction begins.

  • Odoo field type constraints may reject TechnologyOne data formats

    Odoo's ORM enforces strict field types (char length limits, required relations, selection whitelist) that can reject TechnologyOne data during import if not pre-mapped. TechnologyOne stores some numeric codes as padded strings (e.g., GL account codes with leading zeros); these must be explicitly cast to Odoo's char fields rather than integer fields to preserve leading zeros. We validate field-type compatibility during the mapping phase and create Odoo custom fields before data import begins.

  • Depreciation method reconciliation between systems is non-trivial

    TechnologyOne fixed assets use depreciation methods specific to the asset module configuration. Odoo Asset Management supports a defined set of depreciation methods (straight-line over life, straight-line over period, declining balance, declining-balance-then-straight-line). Assets using non-standard or custom depreciation rules in TechnologyOne require manual reconciliation during the mapping phase, with the asset's net book value transferred as the Odoo asset's initial value and the depreciation method reconfigured in Odoo post-migration.

  • XlOne reports and custom financial documents do not auto-migrate

    Organisations using XlOne for financial reporting build complex spreadsheet definitions tied to TechnologyOne GL field names and dataset IDs. We do not migrate XlOne reports directly because they reference TechnologyOne-specific identifiers. Instead, we document every XlOne report during discovery and provide a remapping guide for the finance team to recreate reports in Odoo's Reporting application. The underlying general ledger data migrates, but the reporting layer must be rebuilt.

Migration approach

Six steps for a successful TechnologyOne to Odoo ERP data migration

  1. Discovery and TechnologyOne environment audit

    We audit the source TechnologyOne environment across all deployed modules (Financials, HR, Procurement, Asset Management, ECM, Property and Rating) and confirm whether each module runs on CI or CiA. We negotiate dataset access or API credentials (Business View API for financials, ITP API for invoices, EzeScan for ECM) and establish rate limits and endpoint availability per module. The discovery output is a written extraction plan listing every object to be migrated, its source environment, its access method, and any known hybrid environment flags.

  2. Odoo edition and app selection

    We recommend Odoo edition (Community vs Enterprise) and which apps to activate based on the modules in scope. Odoo Enterprise unlocks Studio for custom field creation without Python development; Odoo Community requires a system integrator or in-house developer for custom fields. We design the Odoo chart of accounts using the AU or NZ country template as a baseline and overlay the customer's TechnologyOne account hierarchy, fund structures, and account codes. We configure tax rates and payment terms to match TechnologyOne's configuration.

  3. Sandbox migration and data quality review

    We run a full migration into an Odoo sandbox environment using production-like data volume. The customer's finance lead reviews migrated account balances, open AP/AR totals, asset valuations, and employee record counts against the TechnologyOne source. Data quality issues including duplicate supplier records, mismatched payment terms, and inconsistent GL coding are resolved before production migration. Odoo field-type incompatibilities (padded strings, date formats, selection values) are corrected in the transform layer at this stage.

  4. Custom ECM field discovery and document mapping

    We query the TechnologyOne ECM environment via EzeScan CMIS endpoints or direct dataset access to enumerate all custom document fields. Any missed custom fields result in blank values in migrated documents, so we cross-reference the full field list against the live ECM environment before building the Odoo document mapping. Document binary files are extracted, renamed to a consistent convention, and attached to the relevant Odoo records (Contact, Asset, Purchase Order, Invoice) based on the TechnologyOne document relationship model.

  5. Production migration in dependency order

    We run production migration in dependency order: Vendors and Customers (Contact records) first, then Chart of Accounts, then open Vendor Bills and Customer Invoices, then Fixed Assets, then Employees, then Purchase Orders, then ECM documents and attachments. Each phase emits a row-count reconciliation report and a balance-check report (where applicable) before the next phase begins. We use Odoo's XML-RPC API with batch chunking for imports and coordinate with the customer's Odoo administrator to temporarily disable validation rules that could block import during the migration window.

  6. Cutover, validation, and reporting rebuild handoff

    We freeze TechnologyOne writes during cutover, run a final delta migration of any records modified during the migration window, and enable Odoo as the system of record. We validate GL balance totals, open AP/AR aging reports, asset register counts, and employee headcount against TechnologyOne's closing reports. We deliver the XlOne and custom financial report inventory to the finance team with a remapping guide. We deliver the TechnologyOne role hierarchy document for the Odoo administrator to rebuild access groups in Odoo. We support a one-week hypercare window for reconciliation issues. We do not rebuild CI-role configurations or CI workflow chains as Odoo automated actions within the migration scope.

Platform deep dives

Context on both ends of the pair

TechnologyOne logo

TechnologyOne

Source

Strengths

  • Deep vertical fit for Australian and New Zealand local government, education, and health sectors with pre-built compliance templates.
  • Single-tenanted dataset architecture provides strong data isolation and clear extraction boundaries.
  • Well-established finance module with solid chart of accounts and general ledger capabilities used by hundreds of councils.
  • Sector-specific pre-configured solutions like OneCouncil and OneEducation reduce initial configuration effort.
  • Strong cash position and no debt give the company financial stability, reducing vendor continuity risk.

Weaknesses

  • API-light architecture historically, with limited public API documentation, making programmatic data extraction harder than modern SaaS ERPs.
  • Legacy CI interface coexists with CiA, meaning customers often have hybrid environments that complicate migration scoping.
  • Monolithic bundled pricing model lacks flexibility for organisations wanting to pay per module or per user.
  • User interface and experience design lag behind modern ERP competitors, reducing user adoption in organisations with tech-savvy staff.
  • Limited ecosystem of third-party integrations compared to SAP, Oracle, or NetSuite.
Odoo ERP logo

Odoo ERP

Destination

Strengths

  • Modular architecture with 80+ apps sharing one database — add Sales, Accounting, Inventory, and Manufacturing incrementally.
  • Free Community edition for self-hosting with no per-user license cost, backed by an active open-source community.
  • Per-user pricing starting around $24.90/month on Standard, significantly lower than comparable ERPs like NetSuite or SAP.
  • Automatic workflow propagation across modules — a confirmed sales order updates inventory, triggers invoicing, and posts accounting entries without manual steps.
  • Odoo.sh provides a managed cloud hosting environment with CI/CD for custom module deployment and staging databases.

Weaknesses

  • Performance suffers under heavy customization — large implementations with many active modules require dedicated optimization.
  • No single-click migration between Odoo major versions; each release introduces ORM changes, deprecated API calls, and schema revisions requiring manual adaptation.
  • Per-user and per-module licensing costs can escalate unpredictably for growing teams adding multiple apps.
  • Steep learning curve with hundreds of configuration options across dozens of modules creates adoption friction and training requirements.
  • Support tiers on Enterprise have inconsistent response times, pushing some customers toward alternatives with more reliable SLAs.

Complexity grading

How hard is this migration?

Standard ERP migration. 1 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 TechnologyOne and Odoo ERP.

  • Object compatibility

    B

    1 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

    TechnologyOne: Not publicly documented. Customers receive rate limit details from their TechnologyOne project manager during integration onboarding, and limits vary by module and by whether the customer is on SaaS+ or self-hosted..

  • Data volume sensitivity

    B

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

Estimator

Estimate your TechnologyOne to Odoo ERP 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 TechnologyOne to Odoo ERP data migrations

Answers to the questions buyers ask most during TechnologyOne to Odoo ERP migration scoping. Not seeing yours? Book a call.

Can't find your answer?

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

Book a free 30 minute consultation

Migrations covering financials, AP/AR, fixed assets, employees, and documents for a single-entity organisation typically land between six and ten weeks. Migrations with multi-entity structures, large ECM document repositories, property/rating modules, or complex AP payment arrangements move to twelve to twenty weeks because of dataset scoping complexity, custom ECM field discovery, and depreciation method reconciliation. Timeline assumes the customer provides dataset access or API credentials within two weeks of discovery sign-off.

Adjacent paths

Related migrations to explore

Ready when you are

Move from TechnologyOne.
Land in Odoo ERP, 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