ERP migration
Field-level mapping, validation, and rollback between Flectra and Acumatica. We move data and schema; workflows are rebuilt natively in Acumatica.
Flectra
Source
Acumatica
Destination
Compatibility
13 of 15
objects map 1:1 between Flectra and Acumatica.
Complexity
BStandard
Timeline
72–96 hours of active migration time
Overview
Flectra and Acumatica share the same high-level ERP module categories — CRM, sales, purchasing, inventory, accounting, projects — but their underlying data models diverge significantly at the field level. Flectra uses snake_case field names (partner_id, sale_order_line_ids, product_uom_qty) derived from its Python object framework, while Acumatica uses PascalCase identifiers (CustomerID, OrderNbr, LineNbr) within a branch-scoped tenant architecture. Flectra models a Contact as a separate res.partner record with a category relationship; Acumatica collapses Customer into a single entity that can represent both a company and an individual, distinguished by the CustomerClassID. Flectra's project.task inherits directly from project.project; Acumatica separates Projects (PM302000) from Tasks (EP304000) into distinct screens with a parent–child link table. FlitStack AI handles all standard record types — Contacts, Companies, Sales Orders, Purchase Orders, Invoices, Products, Projects, Employees — plus Flectra custom objects and custom fields, mapping them to Acumatica custom fields (usr prefix) or extension DAC fields as appropriate. We do not migrate workflows, automated actions, or server-side modules; those must be rebuilt using Acumatica's Screen-based automation or PowerBI reporting layer. The migration runs via a combination of Acumatica's Import by Scenario (for bulk transactional loads) and the Acumatica REST API (for real-time validation and delta pickup), sequenced so that foreign-key dependencies resolve in the correct order: tax categories → inventory items → GL accounts → customers → purchase orders → sales orders → invoices → project tasks.
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 Flectra object lands in Acumatica, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Flectra
res.partner (company type)
Acumatica
Customer (AR303010)
1:1Flectra's company-type res.partner maps to Acumatica Customer. The Acumatica CustomerClassID defaults based on Flectra's partner category (e.g., 'CUSTOMER' vs 'VENDOR'). Primary address from Flectra's partner address record migrates as the Acumatica default address; additional addresses land as Address records linked via AddressID.
Flectra
res.partner (individual type)
Acumatica
Contact + Customer (AR303010)
many:1Flectra person-type partners with an email address create an Acumatica Contact record and optionally a Customer record if the individual is billable. The mapping merges Flectra's contact details (phone, email, title) with the partner's address to produce a Contact record linked to the corresponding Customer entity.
Flectra
crm.lead
Acumatica
Lead / Customer
1:manyFlectra CRM leads with status 'won' map to Acumatica Customers; leads with status 'new' or 'qualified' map to Acumatica Leads. Lost leads are not created in Acumatica but are preserved as a CSV export for reference. Lead source, rating, and expected revenue from Flectra's crm.lead become Lead.Source and Lead.QualifyDate fields.
Flectra
sale.order
Acumatica
Sales Order (SO301000)
1:1Flectra sale.order maps to Acumatica Sales Order. OrderNbr uses Flectra's name field as the order reference. The Acumatica branch is determined by Flectra's warehouse_id if set, otherwise defaults from the Acumatica configuration. Order lines map to SOLine with inventory ID lookup, quantity, and UOM from Flectra's sale_order_line.
Flectra
purchase.order
Acumatica
Purchase Order (PO301000)
1:1Flectra purchase.order maps to Acumatica Purchase Order. VendorID resolves from Flectra's partner_id (vendor type). PO type (Standard vs Blanket) defaults based on Flectra's po_type field. POLine maps InventoryID or Non-Stock items with the vendor's product SKU preserved as the vendorID cross-reference.
Flectra
account.invoice (customer)
Acumatica
AR Invoice (AR301000)
1:1Flectra customer invoices map to Acumatica AR Invoice. The invoice number (Flectra's move_name) becomes the DocNumber; the Flectra journal entry date maps to Acumatica's DocDate and FinPeriodID. Tax amounts from Flectra's invoice_line tax_ids create ARTran entries with the corresponding Acumatica tax zone applied.
Flectra
account.invoice (vendor)
Acumatica
AP Bill (AP301000)
1:1Flectra vendor bills map to Acumatica AP Bill. The vendor's Flectra partner_id resolves to an Acumatica Vendor record (AP202000). Bill lines map to APLine with either an InventoryID (for stocked items) or an ExpenseAccrualAccount for services. Prepayments in Flectra become AP Payment applications on the Acumatica side.
Flectra
product.product
Acumatica
Inventory Item (IN202500)
1:1Flectra product.product maps to Acumatica Inventory Item. The ItemID uses Flectra's default_code as the primary key. Item Class from Flectra's categ_id maps to Acumatica's ItemClassID. Costing method (standard, average, FIFO) is set per Acumatica inventory item based on Flectra's valuation field; UOM conversions are preserved via the Acumatica UOM class.
Flectra
project.project
Acumatica
Project (PM302000)
1:1Flectra project.project maps to Acumatica Project. The ProjectCD is derived from Flectra's project code or name. Project template flags from Flectra (use_tasks, billing_type) translate to Acumatica's Allow Billable flag and Project Type. Non-billable projects set Non-Project = TRUE in Acumatica.
Flectra
project.task
Acumatica
Project Task (PM304000)
1:1Flectra project.task is a sub-record of project.project; Acumatica stores tasks separately. Each Flectra task becomes an Acumatica PMTask record linked to the corresponding ProjectID. Task IDs from Flectra are preserved in PMTask.Note with a cross-reference to Flectra's task ID for traceability. Parent-child task hierarchies in Flectra map to PMTask.TaskCD parent links in Acumatica.
Flectra
stock.picking
Acumatica
Shipment / Receipt (SO302000 / PO302000)
1:1Flectra outgoing stock.picking maps to Acumatica Shipments (SO302000); incoming picking maps to Receipts (PO302000). The picking state (done, draft, cancel) maps to Acumatica status (Balanced, On Hold, Cancelled). Lot/serial numbers from Flectra's stock_move_line transfer as Acumatica LotSerialNbr on the corresponding shipment line.
Flectra
account.move (journal entries)
Acumatica
Journal Transaction (GL301000)
1:1Flectra account.move maps to Acumatica GL Journal. The Flectra move name becomes the BatchNbr. Each Flectra move_line maps to an Acumatica GLTran entry with the AccountCD, Sub, DebitAmt, and CuryDebitAmt fields populated. Branch is determined by Flectra's company_id or the journal's default branch.
Flectra
hr.employee
Acumatica
Employee (EP301000)
1:1Flectra hr.employee maps to Acumatica Employee. EmployeeID is derived from Flectra's work_email or employee number. Department from Flectra's department_id maps to Acumatica's Department. Employment status (active, terminated) translates to the Employee.Status field. Compensation data is preserved as custom fields if the source data exists.
Flectra
stock.location
Acumatica
Warehouse / Location (IN204000)
1:1Flectra stock.location maps to Acumatica Warehouse (or Location within a Warehouse). The Flectra location_type (internal, partner, inventory) determines whether this becomes an Acumatica Warehouse or a Location under an existing Warehouse. Multi-company Flectra locations with separate companies require Acumatica branch mapping.
Flectra
Flectra Custom Object (x_ model)
Acumatica
Acumatica Custom Table / DAC Extension
1:1Flectra custom models (created via Settings > Technical > Models) map to Acumatica custom tables via a Customization Project. FlitStack creates the SQL table, registers it as a DAC in the Acumatica project, and loads the data via Import by Scenario. Relationships to standard entities (Customer, Vendor) use Acumatica's key field reference pattern.
| Flectra | Acumatica | Compatibility | |
|---|---|---|---|
| res.partner (company type) | Customer (AR303010)1:1 | Fully supported | |
| res.partner (individual type) | Contact + Customer (AR303010)many:1 | Fully supported | |
| crm.lead | Lead / Customer1:many | Fully supported | |
| sale.order | Sales Order (SO301000)1:1 | Fully supported | |
| purchase.order | Purchase Order (PO301000)1:1 | Fully supported | |
| account.invoice (customer) | AR Invoice (AR301000)1:1 | Fully supported | |
| account.invoice (vendor) | AP Bill (AP301000)1:1 | Fully supported | |
| product.product | Inventory Item (IN202500)1:1 | Fully supported | |
| project.project | Project (PM302000)1:1 | Fully supported | |
| project.task | Project Task (PM304000)1:1 | Fully supported | |
| stock.picking | Shipment / Receipt (SO302000 / PO302000)1:1 | Fully supported | |
| account.move (journal entries) | Journal Transaction (GL301000)1:1 | Fully supported | |
| hr.employee | Employee (EP301000)1:1 | Fully supported | |
| stock.location | Warehouse / Location (IN204000)1:1 | Fully supported | |
| Flectra Custom Object (x_ model) | Acumatica Custom Table / DAC Extension1: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.
Flectra gotchas
XML-RPC API format requires non-standard serialization
No official migration utility or dedicated export tooling
Community edition lacks functional support and hosting
Large imports can trigger timeouts without batching
Acumatica gotchas
API user licenses cap concurrent sessions and request throughput
Multi-tenant filtering requires CompanyID awareness
Custom fields require separate discovery before field mapping
Notes and attachments use a separate linked table structure
Implementation timelines frequently run 3–9 months end-to-end
Pair-specific challenges
Migration approach
Inventory Flectra schema and build Acumatica destination plan
FlitStack AI reads Flectra's object model via its XML-RPC API and exports the full schema including custom fields, custom objects, and relationship metadata. We cross-reference each Flectra object against Acumatica's standard DACs and identify gaps. For each gap, we write an Acumatica Customization Project specification: which custom fields (Usr-prefixed) need to be created, which Acumatica branches need to be provisioned, and which numbering sequences need to be defined. This plan is reviewed with your Acumatica admin before any data moves.
Create branches, UOM classes, tax zones, and numbering sequences
With the Acumatica destination plan in hand, your Acumatica admin (or FlitStack on your behalf) creates the required branches in GL102000, UOM classes in IN202000, tax zones in TX102000, and numbering sequences in SM200540. Custom fields are published via a Customization Project. This step runs in parallel with Flectra data extraction so the destination schema is ready before the first import batch runs.
Extract, cleanse, and sequence Flectra data in foreign-key order
FlitStack extracts Flectra data in a strict load order: tax categories → inventory items → GL accounts → UOM classes → customers and vendors → contacts → purchase orders → sales orders → AR/AP invoices → project headers → project tasks → employee records → journal entries. This ordering ensures that when a sales order line references an InventoryID, that inventory item already exists in Acumatica. We apply data cleansing rules: deduplicating partner records by email, normalizing country codes to ISO, and resolving Flectra analytic_account_id references to Acumatica subaccounts.
Run sample migration with field-level diff on a representative record slice
A sample of 200–500 records — spanning customers, sales orders, invoices, and project tasks — is migrated first via Acumatica's Import by Scenario. FlitStack generates a field-level diff comparing source values against the destination values for each record, covering all mapped fields and documenting any fields that could not be mapped (e.g., Flectra custom fields with no Acumatica equivalent). You review the diff and approve the mapping before the full run commits.
Execute full migration with delta-pickup window and rollback readiness
The full migration runs against the configured Acumatica tenant. A delta-pickup window (typically 24–48 hours) begins at cutover and captures any Flectra records modified or created during the final hours of dual operation. All operations are logged in a FlitStack audit record. If reconciliation identifies missing or mismatched records, one-click rollback reverts the Acumatica tenant to its pre-migration state so the migration can be re-run with corrected mappings.
Platform deep dives
Flectra
Source
Strengths
Weaknesses
Acumatica
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 Flectra and Acumatica.
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
Flectra: Not publicly documented.
Data volume sensitivity
Flectra 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 Flectra to Acumatica migration scoping. Not seeing yours? Book a call.
Walk through your Flectra to Acumatica migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Flectra
Other ways to arrive at Acumatica
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.