Skip to main content
Advanced Import / Export Templating — Save reusable, named import and export templates that map spreadsheet columns to any Od — 1/1Illustrative preview

Save reusable, named import and export templates that map spreadsheet columns to any Odoo model's fields,

run validation with error-row reporting, and schedule recurring loads. Built to order and supported by

ECOSIRE for Odoo 17, 18, and 19.

What is Advanced Import / Export Templating?

Save reusable, named import and export templates that map spreadsheet columns to any Odoo model's fields, run validation with error-row reporting, and schedule recurring loads. Built to order and supported by ECOSIRE for Odoo 17, 18, and 19. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.

Key Features

Named, reusable `ir.import.template` records storing target model, mapping, transforms and validation rules as saved configuration
Column-to-field mapping for any model in the registry, including custom addons, with drag-or-select UI in an OWL wizard
Related-field mapping via dot-notation (`partner_id/name`) and external-ID / XML-ID resolution for relational links
Declarative per-column transforms: trim, case-fold, default-on-empty, date-format normalization, regex replace, and boolean/selection value maps
Optional per-field Python expression hook (server-side, permission-gated) for genuinely irregular source data
Two-phase dry-run: every row validated against field types, required fields and selection domains before any write commits
Downloadable error-row report (row number, column, value, failure reason) rendered as a QWeb report — no silent batch aborts
CSV and XLSX support on both import and export, with configurable delimiter, encoding and header row
Export templates that pin selected fields, filters and ordering so recurring extracts are reproducible
Scheduled recurring imports and exports via `ir.cron` / automated actions with per-run logging and status
Full XML-RPC / JSON-RPC callability so external ETL or third-party systems can trigger a validated load
`ir.model.access.csv` + record rules scoping template ownership and execute rights by security group
Batch/chunked commits with savepoints so a large load can partially succeed and report the exact failed rows
Built and tested against Odoo 17.0, 18.0 and 19.0, Community and Enterprise, with edition-specific field notes

Built to order, done for you

No DIY setup — a working app, built, installed and supported by ECOSIRE.

  1. 1

    You order

    Start with a one-time build price. We scope it with you at kickoff.

  2. 2

    We build & install

    ECOSIRE builds, configures and installs it on your Odoo.

  3. 3

    Go live + support

    You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.

Technical Specifications

Odoo Compatibility
Odoo 17, Odoo 18, Odoo 19
Editions
Enterprise & Community
License
Licence confirmation required
Python Requirement
Python 3.10+
Database
PostgreSQL 12+

About this Product

Data managers moving into or syncing with Odoo hit the same wall every migration cycle: the native Import tool is stateless. You rebuild the column-to-field mapping by hand for every file, re-tick "Don't import" on the same junk columns, and re-explain to a colleague which sheet feeds res.partner versus product.template. When a load half-fails, Odoo aborts the batch with a single terse error instead of telling you which of the 4,000 rows was bad. There is no way to save a mapping, no way to transform values on the way in (trim, upper-case, map "Yes/No" to booleans, look up an external ID), and no way to run the same export on a schedule. For teams doing repeated onboarding, multi-entity consolidation, or nightly syncs, that native ceiling turns a five-minute job into an afternoon.

Advanced Import / Export Templating is a build-to-order Odoo module that turns those one-off mappings into first-class, reusable records. We add an ir.import.template model (and matching export template) that stores the target model, the column-to-field mapping, per-field transforms, and validation rules as saved configuration you name once and reuse forever. Mappings target any model in the registry — including your custom addons — and support related fields via parent_id/name dot-notation and external-ID resolution (__export__/XML IDs) so relational links resolve correctly instead of failing silently. Transforms are declarative (trim, case, date-format normalization, default-on-empty, regex replace, boolean/selection value maps) with a hook for a Python expression when a client's data is genuinely messy.

Technically, the module is a clean Odoo addon: a proper __manifest__.py, models built on models.Model with fields and @api.depends computes where derived state is needed, an OWL/XML wizard for the upload-preview-validate-commit flow, and ir.model.access.csv plus record rules so template ownership and execution are permission-scoped (import/export can be gated by group). Validation runs in a dry-run pass first: every row is checked against field types, required fields, selection domains, and your custom rules, and failures are collected into a downloadable error-row report (row number, column, value, reason) rendered via a QWeb report — so you fix the source file, not guess. Both CSV and XLSX are supported on read and write. Recurring jobs are wired through ir.cron / automated actions so a template can pull a file from a configured location (or push an export) on a schedule, and every run is logged. The same templates are callable over XML-RPC / JSON-RPC, so an external ETL or another system can trigger a validated load programmatically.

Because this is build-to-order, ECOSIRE builds the module against your exact Odoo version (17.0, 18.0, or 19.0), your edition (Community or Enterprise — we note where Enterprise-only fields or studio models affect mapping), and your real target models and file formats. We start with a short scoping call to confirm the models, the transforms your data actually needs, and where scheduled files land. Typical delivery is one working week from confirmed scope. You get installable source, a UAT pass on your staging database with a rollback plan, documentation, a training session for your data team, and a post-go-live support window — not a black-box zip.

What you get

  • Installable module source code built for your exact Odoo version (17.0/18.0/19.0) and edition
  • Installation and configuration on your environment, including scheduled-job and file-location setup
  • Technical documentation: model reference, transform catalog, security groups, and XML-RPC usage
  • End-user guide plus a live training session for your data / migration team
  • UAT on a staging database with a documented rollback plan before production go-live
  • Post-go-live support window for defect fixes and mapping adjustments
  • Git repository handover with full commit history and tagged release
  • Sample templates preloaded for your primary target models (e.g. partners, products)

Who this is for

Data migration lead

Onboarding a new company onto Odoo who must load partners, products, BoMs and opening balances from legacy exports repeatedly during rehearsal cutovers — and needs saved, validated mappings so each dry run is identical and auditable, not hand-rebuilt.

ERP administrator running recurring syncs

Maintains a live Odoo instance that must ingest supplier price lists, stock feeds or CRM exports on a nightly cadence, and wants scheduled `ir.cron`-driven imports with error-row reporting instead of manual file-by-file uploads.

Multi-entity operations manager

Consolidates data across several companies or Odoo databases and needs reproducible export templates (pinned fields, filters, XLSX) plus programmatic XML-RPC triggering to feed BI or a parent system reliably.

Systems integrator / IT consultant

Delivers Odoo projects for clients and wants a documented, permission-scoped templating layer they can hand over with training, rather than writing bespoke import scripts per engagement.

How Advanced Import / Export Templating Compares

CriterionECOSIRECustom BuildCompetitorOdoo Native
Saved, reusable mappingsNamed import/export templates stored as records, reused and versionedPossible, but hand-built to your spec and maintained by youSome offer saved profiles, often limited to fixed modelsNone — mapping rebuilt on every file
Per-column transformsDeclarative catalog (trim, case, date-format, value maps) + Python hookWhatever you code; effort scales per transformBasic or none; rarely extensibleNone — raw values only
Validation & error reportingDry-run pass with downloadable per-row error reportOnly if you build itRow-level errors sometimes, quality variesSingle terse error, batch aborts
Scheduled recurring loads`ir.cron`-driven imports/exports with per-run loggingBuildable with extra cron/queue workOccasionally, usually export-onlyManual, file-by-file only
Custom & related modelsAny registry model, dot-notation + external-ID resolutionYes, per-model coding effortOften restricted to standard modelsSupported but no saved config
Fit to your Odoo version/editionBuilt for your exact 17/18/19 + Community/EnterpriseFully bespoke to your stackGeneric build, may lag versionsShips with core
Delivery modelBuild-to-order, one working week, UAT + rollback + trainingWeeks-to-months, you own scoping and QAInstant download, no fit guaranteeAlready installed
Support & handoverPost-go-live window + Git repo + docs + trainingInternal or contractor-dependentVendor ticket queue, genericCommunity forums only

Frequently Asked Questions about Advanced Import / Export Templating

How long until we can use it? Is this an instant download?

No — this is a build-to-order module, not an off-the-shelf apps.odoo.com download. After a short scoping call we build it against your exact Odoo version, edition and target models. Typical delivery is one working week from confirmed scope, depending on how many models and transforms your data needs.

Which Odoo versions and editions do you support?

We build and test against Odoo 17.0, 18.0 and 19.0, on both Community and Enterprise. During scoping we flag any Enterprise-only fields or Studio-created models that affect your mappings so nothing surprises you at go-live.

How is this different from Odoo's built-in Import tool?

Native import is stateless: you rebuild the mapping every file, get no saved templates, no per-column transforms, no scheduling, and a single terse error instead of per-row diagnostics. This module stores named import/export templates, adds declarative transforms, runs a dry-run validation pass with a downloadable error-row report, and supports recurring scheduled loads and XML-RPC triggering.

What happens to rows that fail validation?

Validation runs as a dry-run first pass. Every row is checked against field types, required fields and selection domains before anything commits, and failures are collected into a report showing row number, column, value and reason. With batch commits and savepoints you can choose to load the good rows and re-fix only the failed ones.

Can it import into our custom models and follow relational links?

Yes. Mappings target any model in the registry, including your own addons. Related fields resolve via dot-notation (e.g. `partner_id/name`) and external-ID / XML-ID lookups, so links to existing records connect correctly instead of failing silently.

Can external systems or a nightly job trigger imports?

Yes. Templates run on a schedule via `ir.cron` / automated actions with per-run logging, and they are fully callable over XML-RPC / JSON-RPC, so an external ETL pipeline or another system can trigger a validated load programmatically.

What about support and updates after delivery?

Every build includes a post-go-live support window for defect fixes and mapping adjustments, plus a Git repository handover with full history. Beyond the initial window we offer ongoing support and version-upgrade work (for example moving the module to a newer Odoo release) as a maintenance arrangement.

Request a quote

Advanced Import / Export Templating

Save reusable, named import and export templates that map spreadsheet columns to any Odoo model's fields, run validation with error-row reporting, and schedule recurring loads. Built to order and supported by ECOSIRE for Odoo 17, 18, and 19.

  • Named, reusable `ir.import.template` records storing target model, mapping, transforms and validation rules as saved configuration
  • Column-to-field mapping for any model in the registry, including custom addons, with drag-or-select UI in an OWL wizard
  • Related-field mapping via dot-notation (`partner_id/name`) and external-ID / XML-ID resolution for relational links
  • Declarative per-column transforms: trim, case-fold, default-on-empty, date-format normalization, regex replace, and boolean/selection value maps

Request a Quotation

Tell us about your Advanced Import / Export Templating requirements and we'll send pricing, licensing options and a tailored proposal — usually within one business day.

No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.