ERP migration
Field-level mapping, validation, and rollback between Flectra and Microsoft Dynamics 365 Business Central. We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Business Central.
Flectra
Source
Microsoft Dynamics 365 Business Central
Destination
Compatibility
12 of 15
objects map 1:1 between Flectra and Microsoft Dynamics 365 Business Central.
Complexity
BStandard
Timeline
6-9 weeks
Overview
Moving from Flectra to Microsoft Dynamics 365 is a platform-class migration that spans ERP, CRM, and project management objects across a protocol boundary. Flectra exposes data through its XML-RPC External API, which requires a non-standard serialization adapter we build into every migration pipeline. Dynamics 365 stores data in Microsoft Dataverse with REST-based APIs authenticated via OAuth 2.0 through Azure Active Directory. We handle the protocol translation layer, resolve Flectra's two-level product model (product.template as the master, product.product as variants) into D365 product hierarchies, and preserve multi-currency rates and fiscal positions that map to D365 fiscal configurations. Workflows, automations, and custom x_custom_model extensions do not migrate as code; we deliver a written inventory of every Flectra automation for your Dynamics 365 admin to rebuild in Power Automate or Dataverse workflows post-migration.
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.
Source platform
Flectra platform overview
Scorecard, SWOT, gotchas, and pricing for Flectra.
Destination platform
Microsoft Dynamics 365 Business Central platform overview
Scorecard, SWOT, gotchas, and pricing for Microsoft Dynamics 365 Business Central.
Data migration guide
The complete Dynamics 365 Business Central migration guide
Data model, import mechanisms, field mapping strategy, pitfalls, and cutover — by the engineers running it.
Destination checklist
Dynamics 365 Business Central migration checklist
Pre- and post-cutover tasks for moving onto Microsoft Dynamics 365 Business Central.
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 Microsoft Dynamics 365 Business Central, 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 (is_company=False)
Microsoft Dynamics 365 Business Central
Contact
1:1Flectra Contacts (res.partner with is_company=False) map directly to Dataverse Contact. The Flectra name field maps to fullname; email, phone, street, city, state, zip, country map to corresponding Contact fields. We resolve parent_id (the link to the Flectra company record) to the D365 Account ContactId during import. Address data in Flectra's partner fields maps to postaladdress and composes into the Contact address composite field in D365.
Flectra
res.partner (is_company=True)
Microsoft Dynamics 365 Business Central
Account
1:1Flectra Companies (res.partner with is_company=True) map to Dataverse Account. Fields including website, vat, industry_id, and comment transfer as Account Website, VAT, Industry, and Description. Flectra's child_ids relation (individual contacts belonging to the company) resolves to D365 Account's primarycontactid and the related contacts table. Company records are loaded before Contact records to satisfy the AccountId lookup requirement.
Flectra
sale.order
Microsoft Dynamics 365 Business Central
SalesOrderHeader or Opportunity
1:1Flectra sale.order maps to D365 SalesOrderHeader (Business Central) or Opportunity (Sales module) depending on which D365 app is licensed. Order state, date_order (order date), and origin document reference transfer directly. Flectra's partner_shipping_id and partner_invoice_id map to D365 ship-to and bill-to address lookups. We preserve the confirmed date and any origin document reference for audit trail.
Flectra
sale.order.line
Microsoft Dynamics 365 Business Central
SalesOrderLine
1:1Flectra sale.order.line maps to D365 SalesOrderLine. Product ID resolves via SKU match to D365 Item Number; product_uom_qty maps to Quantity; price_unit maps to UnitPrice. Flectra's tax_id on the line maps to D365 tax group assignment. Line-level discount and description fields transfer to the corresponding D365 line discount and line description fields.
Flectra
account.move (move_type=out_invoice)
Microsoft Dynamics 365 Business Central
SalesInvoice or CustInvoiceJournal
1:1Flectra customer invoices (account.move with move_type=out_invoice) map to D365 SalesInvoice in Business Central or CustInvoiceJournal in Finance. Flectra's payment_state (posted vs pending) maps to D365 status with the document status preserved as a custom field for reconciliation. Invoice lines (account.move.line) map to D365 InvoiceLines with account_id mapping to the appropriate G/L account in D365.
Flectra
product.template
Microsoft Dynamics 365 Business Central
Product Master (product.product or item master)
1:manyFlectra's product.template holds the product master (name, list_price, categ_id, type). This maps to the D365 item master or product record. The template-to-variant relationship (product.product records linked via product_tmpl_id) maps to D365's product variants using the Dimension framework (size, color, etc.) or by creating separate product records for each variant. We preserve attribute values from product.attribute.line during the split so that variant descriptions are accurate in D365.
Flectra
product.product (variants)
Microsoft Dynamics 365 Business Central
Product Variant
1:1Flectra product.product records map to D365 product variants under the parent product.template master. We match on the combination of product attributes (attribute_id + value_id) to map to D365 Dimension values. Standard cost, lst_price, and seller_ids (vendor pricelists) transfer as variant-level pricing and vendor data. If D365 uses a flat product model, variants become separate product records with a custom parent_product__c lookup field.
Flectra
purchase.order
Microsoft Dynamics 365 Business Central
PurchaseOrder
1:1Flectra purchase.order maps to D365 PurchaseOrder. Vendor (partner_id) resolves to the D365 Vendor Account. Order state (draft, sent, purchase, done, cancel) maps to D365 Status. Flectra's picking_ids (receipts linked to PO) map to D365 Receipts, though picking state may need to be reconstructed from Flectra's stock.picking records if PO and warehouse modules are active.
Flectra
purchase.order.line
Microsoft Dynamics 365 Business Central
PurchaseOrderLine
1:1Flectra purchase.order.line maps to D365 PurchaseOrderLine. Product ID resolves to D365 Item Number via SKU match; product_qty and price_unit transfer directly. Flectra's date_planned maps to the D365 ExpectedReceiptDate. Taxes and discounts on the line map to D365 tax and discount fields on the purchase line.
Flectra
project.project
Microsoft Dynamics 365 Business Central
msdyn_project or Project (Business Central/Project Service)
1:1Flectra project.project maps to D365 Project (Project Service Automation module or Business Central Projects). Project name, date, user_id (manager), and partner_id (customer) transfer as Project Name, StartDate, Project Manager, and Customer Account. Flectra's analytic_account_id maps to D365's analytical accounting structure if Finance is in scope.
Flectra
project.task
Microsoft Dynamics 365 Business Central
msdyn_projecttask or Task
1:1Flectra project.task maps to D365 ProjectTask under the parent Project. Stage_id maps to D365 Task Stage; user_id (assignee) resolves via email to D365 Resource; planned_hours and effective_hours transfer as Planned Hours and Actual Hours. Sub-tasks (child_ids) nest via the Parent Task lookup field in D365 Project Service. If the Project Service Automation module is not licensed, tasks migrate to Dataverse Task with a custom project__c lookup.
Flectra
hr.employee
Microsoft Dynamics 365 Business Central
BookableResource (HR or Project Service)
1:1Flectra hr.employee maps to D365 BookableResource (when Project Service Automation is in scope) or a custom Employee table in Dataverse. Fields including department_id, job_id, work_email, and mobile_phone transfer. Bank account details, emergency contact, and payroll data (if present in Flectra) migrate as custom fields or remain in Flectra HR if the HR module is not in scope for the D365 migration. Salary history typically resides in a separate payroll module not migrated.
Flectra
ir.attachment
Microsoft Dynamics 365 Business Central
Annotation (SharePoint or Dataverse)
1:1Flectra ir.attachment records with res_model and res_id linking to business objects migrate as D365 Annotations. Files export as base64-encoded binary and load as D365 Note documentbody with the original filename and mimetype preserved. The res_model and res_id resolve to the target D365 table and record ID during import so that the annotation attaches to the correct object. Large attachments (>120MB) may require SharePoint document management configuration in D365.
Flectra
Custom Fields (x_name on any model)
Microsoft Dynamics 365 Business Central
Custom Column (custom_<name>__c)
lossyFlectra custom fields (ir.model.fields with state='manual', x_name prefix) are enumerated during discovery via ir.model.fields reads through the XML-RPC API. We pre-create equivalent custom columns in the destination D365 Dataverse table using the column name with a __c suffix per Dataverse naming convention. Field type mapping: Char -> Text, Integer -> Whole Number, Float -> Decimal Number, Boolean -> Two Options, Date -> Date, Datetime -> Date and Time, Many2one -> Lookup, Many2many -> Multi-Select Option Set or related table. The mapping is validated in a Sandbox before production load.
Flectra
Fiscal Position (account.fiscal.position)
Microsoft Dynamics 365 Business Central
Tax Configuration / Fiscal Year Setup
lossyFlectra fiscal positions (account.fiscal.position) with their account_mapping rules (source account to destination account) are mapped to D365 Tax configurations or G/L Account mappings depending on the D365 module in scope. Multi-currency exchange rates from res.currency.rate transfer to D365 Currency Exchange Rates. The fiscal year configuration (account.fiscal.year) maps to the D365 Fiscal Calendar setup. These are loaded as configuration data before transactional records to ensure tax and account references resolve correctly.
| Flectra | Microsoft Dynamics 365 Business Central | Compatibility | |
|---|---|---|---|
| res.partner (is_company=False) | Contact1:1 | Fully supported | |
| res.partner (is_company=True) | Account1:1 | Fully supported | |
| sale.order | SalesOrderHeader or Opportunity1:1 | Fully supported | |
| sale.order.line | SalesOrderLine1:1 | Fully supported | |
| account.move (move_type=out_invoice) | SalesInvoice or CustInvoiceJournal1:1 | Fully supported | |
| product.template | Product Master (product.product or item master)1:many | Fully supported | |
| product.product (variants) | Product Variant1:1 | Fully supported | |
| purchase.order | PurchaseOrder1:1 | Fully supported | |
| purchase.order.line | PurchaseOrderLine1:1 | Fully supported | |
| project.project | msdyn_project or Project (Business Central/Project Service)1:1 | Fully supported | |
| project.task | msdyn_projecttask or Task1:1 | Fully supported | |
| hr.employee | BookableResource (HR or Project Service)1:1 | Fully supported | |
| ir.attachment | Annotation (SharePoint or Dataverse)1:1 | Fully supported | |
| Custom Fields (x_name on any model) | Custom Column (custom_<name>__c)lossy | Fully supported | |
| Fiscal Position (account.fiscal.position) | Tax Configuration / Fiscal Year Setuplossy | 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
Microsoft Dynamics 365 Business Central gotchas
Named-user licensing has no concurrent-use relief
API rate limits throttle large-volume migrations
Historical posted transactions require selective migration scoping
NAV-to-Business Central cloud migration requires partner coordination
Custom fields and AL extensions require separate migration handling
Pair-specific challenges
Migration approach
Discovery and Flectra environment assessment
We audit the source Flectra instance via XML-RPC across edition (Community vs Professional), active modules, record counts per object, custom fields on each model, active Server Actions and Workflows, and the current XML-RPC endpoint configuration (host, port, database, user credentials). We identify the target D365 environment (which D365 apps are licensed: Business Central, Finance, Sales, Project Service) and confirm the destination Dataverse API endpoint and authentication method. The discovery output is a written migration scope with a Flectra field-to-Dataverse column map for every object in scope.
XML-RPC adapter deployment and schema introspection
We deploy FlitStack AI's XML-RPC adapter within the migration pipeline and validate connectivity to the Flectra External API using the customer's provided credentials. We run an introspection pass via ir.model.fields to enumerate all standard and custom fields on each Flectra model, compare them against the D365 destination schema, and generate the field map. Any Flectra-specific fields with no D365 equivalent are flagged for custom column creation before data migration begins. The adapter is tested with a small sample set (50 records per object) before the full migration runs.
D365 destination schema configuration
We configure the destination D365 Dataverse environment with all required custom columns, lookup relationships, and option set values identified during discovery. This includes creating custom __c columns for each Flectra x_name custom field, setting up D365 product variants if the product template-to-variant decomposition is in scope, configuring currency exchange rates from Flectra's res.currency.rate data, and setting up the fiscal calendar if Flectra's fiscal year configuration is active. Schema changes deploy into a D365 Sandbox first for validation before any data loads into the production environment.
Sandbox migration and reconciliation
We run a full migration into the D365 Sandbox using production-like data volumes. The customer's team reconciles record counts against the Flectra source (Contacts in, Accounts in, Sales Orders in, Invoices in, Products in, Purchase Orders in, Project Tasks in), spot-checks 30-50 records per object for field-level accuracy, and validates that custom field data populated correctly in D365. Any mapping corrections, missing field translations, or validation rule conflicts are resolved in this phase. No production migration begins until the Sandbox sign-off is received from the customer's D365 administrator.
Production migration in dependency order
We run production migration in strict dependency order: Configuration data first (Currencies, Fiscal Calendars, Tax Codes, Product Categories), then master records (Accounts from Flectra Companies, Contacts from Flectra Contacts, Vendors, Employees), then transactional records (Sales Orders, Purchase Orders, Invoices), then project data (Projects, Tasks), then attachments (Annotations from ir.attachment), and finally Custom Objects last because they often have lookups to standard records already migrated. Each phase emits a row-count reconciliation report before the next phase begins. XML-RPC chunking (100-200 records per batch) and retry logic protect against timeout errors during large-phase loads.
Cutover, delta sync, and automation rebuild handoff
We freeze Flectra write access during the cutover window, run a final delta migration to capture any records modified during the migration window, then mark D365 as the system of record. We deliver the Flectra Workflow and Server Action inventory document to the customer's D365 admin team with recommended Power Automate equivalents for each automation. We support a one-week post-go-live window to resolve any data reconciliation issues. We do not rebuild Flectra automations as Power Automate flows within the migration scope; that is a separate engagement for the customer's D365 admin or a Microsoft partner.
Platform deep dives
Flectra
Source
Strengths
Weaknesses
Microsoft Dynamics 365 Business Central
Destination
Strengths
Weaknesses
Complexity grading
Standard ERP migration. All 8 core objects map 1:1 between Flectra and Microsoft Dynamics 365 Business Central.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Flectra and Microsoft Dynamics 365 Business Central.
Object compatibility
All 8 core objects map 1:1 between Flectra and Microsoft Dynamics 365 Business Central.
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 Microsoft Dynamics 365 Business Central migration scoping. Not seeing yours? Book a call.
Walk through your Flectra to Microsoft Dynamics 365 Business Central 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 Microsoft Dynamics 365 Business Central
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.