ERP migration
Field-level mapping, validation, and rollback between Digit and Odoo ERP. We move data and schema; workflows are rebuilt natively in Odoo ERP.
Digit
Source
Odoo ERP
Destination
Compatibility
5 of 10
objects map 1:1 between Digit and Odoo ERP.
Complexity
BStandard
Timeline
5-8 weeks
Overview
Moving from DIGIT to Odoo ERP is a platform migration from a government-specific municipality ERP to a general-purpose commercial ERP. DIGIT organises data around Citizens linked to module records (PT, TL, PGR, FSM, HRMS), while Odoo uses Partners as the core contact entity with modules for Accounting, Inventory, CRM, Project, and Helpdesk. The most significant migration challenge is that DIGIT's citizen-centric model has no direct Odoo equivalent: we map Citizens to Partner records with custom fields and tags, and preserve the cross-module identifier chain so that property records, trade licences, grievances, and FSM requests remain linked to the same partner in Odoo. We extract DIGIT localisation files (JSON/CSV) during migration to preserve region-specific labels and configuration for application to the target Odoo instance. Demand registers (PT billing, FSM invoices) transform into Odoo Account Move records with tax and payment state preserved. We do not migrate DIGIT module configurations, module-specific business rules, or on-premises deployment settings as these are deployment artefacts requiring manual rebuild in Odoo.
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 Digit 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.
Digit
Citizen (PGR Module)
Odoo ERP
Partner (res.partner)
lossyDIGIT Citizens map to Odoo res.partner records. The DIGIT citizen_id becomes the partner's reference field. Citizen name, mobile, email, address, and household data map to Odoo partner fields. We create a custom field digit_citizen_id__c and a tag per DIGIT module (PT, TL, PGR, FSM) to preserve the cross-module association chain. Citizen-specific fields without Odoo equivalents (e.g., voter_id, ration_card) migrate as Char or Text custom fields on res.partner.
Digit
Property (PT Module)
Odoo ERP
Product or Custom Asset Model
1:1DIGIT PT property records (assessments, boundary data, owner associations, payment history) map to a custom Odoo model (e.g., asset.property) created during schema setup. We preserve the property identifier, boundary coordinates, assessment value, owner citizen_id link, and PT demand register payment status. If the Odoo deployment uses the Odoo Real Estate module (available in Community), property records map to that module's schema instead.
Digit
Trade Licence (TL Module)
Odoo ERP
Partner + Custom Field
lossyDIGIT TL trade licence records map to a res.partner with a commercial activity tag plus a custom licence model capturing licence_number, category, application_status, issue_date, and expiry_date. Citizen-to-business linkage is preserved by referencing the same partner record that was created from the DIGIT Citizen entity.
Digit
Complaint / Grievance (PGR Module)
Odoo ERP
Helpdesk Ticket
1:1DIGIT PGR complaints migrate to Odoo Helpdesk tickets. The complaint number, description, workflow state (open, assigned, resolved, closed), department assignment, citizen_id link, and action timeline migrate as ticket fields, stage values, and mail.message records respectively. We preserve the timeline ordering by setting ticket create_date to the original DIGIT complaint timestamp.
Digit
Field Service Request (FSM Module)
Odoo ERP
Project Task or FSM Service
1:1DIGIT FSM sanitation, drainage, and desludging service requests map to Odoo Project tasks (or the Odoo FSM app if installed). FSM request identifier, service type, routing, field worker assignment, asset association, and completion records migrate with workflow state mapped to Odoo task stage. Citizen_id linkage is preserved via the partner reference on the parent task.
Digit
Employee (HRMS Module)
Odoo ERP
Employee (hr.employee)
1:1DIGIT HRMS employee records map to Odoo hr.employee. Employee name, designation, department, mobile, email, and leave balance migrate. Role-permission mappings are deployment-specific and flagged for manual validation in Odoo's Access Rights configuration post-migration because Odoo's security model (record rules, groups) differs structurally from DIGIT's role-based module access.
Digit
Demand Register (PT Billing)
Odoo ERP
Account Move (Invoice)
1:manyDIGIT PT demand registers (billing demands with demand_amount, collected_amount, pending_amount, and status flags) transform into Odoo Account Move records. Each demand with partial payment state becomes an invoice with the paid amount recorded as a partial payment via a payment utility. Multiple demand periods for the same property aggregate into separate invoice entries linked to the property's partner owner.
Digit
FSM Invoice
Odoo ERP
Account Move
1:1DIGIT FSM invoices migrate as Odoo Account Move records with the FSM service request identifier preserved in the invoice reference field. Payment state (paid, partial, outstanding) transfers using Odoo's reconcile mechanism. The customer citizen reference links the invoice to the res.partner record created from the original DIGIT Citizen.
Digit
Localisation Files
Odoo ERP
Odoo Translation Files
lossyDIGIT deployment-specific localisation files (JSON/CSV containing region labels, boundary definitions, business rules, and module configurations) are extracted and mapped to Odoo's po file translation format. We validate that applied locales match the source system's regional settings and flag any DIGIT-specific business rules that have no Odoo configuration equivalent for manual review.
Digit
Module Cross-Reference
Odoo ERP
Partner Tags
lossyBecause DIGIT Citizens appear across PT, TL, PGR, and FSM modules, we tag each migrated res.partner with Odoo tags (PT Citizen, TL Licence Holder, PGR Complainant, FSM Service Recipient) to preserve the cross-module view. This allows Odoo users to filter partners by their service history without requiring a custom cross-module report.
| Digit | Odoo ERP | Compatibility | |
|---|---|---|---|
| Citizen (PGR Module) | Partner (res.partner)lossy | Fully supported | |
| Property (PT Module) | Product or Custom Asset Model1:1 | Fully supported | |
| Trade Licence (TL Module) | Partner + Custom Fieldlossy | Fully supported | |
| Complaint / Grievance (PGR Module) | Helpdesk Ticket1:1 | Fully supported | |
| Field Service Request (FSM Module) | Project Task or FSM Service1:1 | Fully supported | |
| Employee (HRMS Module) | Employee (hr.employee)1:1 | Fully supported | |
| Demand Register (PT Billing) | Account Move (Invoice)1:many | Fully supported | |
| FSM Invoice | Account Move1:1 | Fully supported | |
| Localisation Files | Odoo Translation Fileslossy | Fully supported | |
| Module Cross-Reference | Partner Tagslossy | 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.
Digit gotchas
DIGIT deployment environments vary in API accessibility
Cross-version migration requires localisation file management
Module silos complicate cross-module citizen views
Odoo ERP gotchas
No rollback for CSV imports
External ID conflicts on re-import
Many2many field encoding in CSV imports
Large export timeouts require batching
Version schema drift between Odoo releases
Pair-specific challenges
Migration approach
Deployment assessment and discovery
We assess the source DIGIT deployment's API accessibility, installed modules (PT, TL, PGR, FSM, HRMS), and index configuration. We enumerate all DIGIT modules in scope, their record counts, and the cross-module citizen_id references. We also inventory the localisation files, demand registers, and FSM invoice structures. On the Odoo side, we identify the target deployment (Odoo Online, Odoo.sh, or on-premise), confirm the modules to be activated, and assess the need for custom models (property, citizen-tagged partner) versus standard Odoo objects.
Citizen deduplication and cross-module linkage audit
We extract all DIGIT Citizen records and run a deduplication pass using mobile number and email as match keys. We produce a citizen_id consolidation map that resolves multiple DIGIT module records to their single canonical citizen. This map is the foundation for all subsequent module record migrations. We validate the consolidation with the customer's DIGIT administrator before proceeding.
Schema design and sandbox setup in Odoo
We design the target Odoo schema: custom fields on res.partner (digit_citizen_id__c, household fields), custom models for property records if the Real Estate module is not in use, module-specific partner tags, Odoo Helpdesk team and ticket types for PGR migration, and Project/Task structure for FSM migration. We also design the account move structure for demand register transformation, including tax accounts and payment reconciliation configuration. Schema deploys into a Sandbox org for validation before production.
Localisation file extraction and Odoo translation delivery
We extract the DIGIT localisation files (JSON/CSV) from the source deployment and map region-specific labels to Odoo po translation files. We deliver these as an Odoo translation module that the customer's admin installs to apply translated labels. Any DIGIT-specific boundary geometries or compliance rules are documented as configuration items requiring manual rebuild in Odoo.
Sandbox migration and reconciliation
We run a full migration into the Odoo Sandbox: Citizens (deduplicated, as res.partner), Employees (hr.employee), Properties (custom model), Trade Licences (partner + custom fields), PGR Complaints (Helpdesk tickets), FSM Requests (Project tasks), and demand registers (Account moves with payment reconciliation). The customer reconciles record counts, spot-checks cross-module linkages, and validates localisation labels. Sign-off on the sandbox migration is required before production.
Production migration in dependency order and cutover
We run production migration in record dependency order: Partners (canonical citizens), Employees, Properties, Trade Licences, Helpdesk Tickets, Project Tasks, and Account Moves. Each phase emits a row-count reconciliation report. We freeze DIGIT writes during cutover, run a final delta migration of any records modified during the window, and enable Odoo as the system of record. We deliver the localisation files, module linkage map, and a written inventory of DIGIT-specific business rules requiring manual Odoo rebuild.
Platform deep dives
Digit
Source
Strengths
Weaknesses
Odoo ERP
Destination
Strengths
Weaknesses
Complexity grading
Standard ERP 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 Digit and Odoo ERP.
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
Digit: Not publicly documented; varies by deployment configuration.
Data volume sensitivity
Digit exposes a bulk API — large-volume migrations stream efficiently.
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 Digit to Odoo ERP migration scoping. Not seeing yours? Book a call.
Walk through your Digit to Odoo ERP migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Digit
Other ways to arrive at Odoo ERP
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.