Skip to main content
NetSuiteSaaS Tools

Dynamics GP / NAV to NetSuite Migration

A build-to-order migration toolkit that moves your Dynamics GP or NAV estate into NetSuite

— masters, open items, history and dimension mapping.

ECOSIRE builds it for your chart of accounts after a scoping call.

Built to order

What is Dynamics GP / NAV to NetSuite Migration?

A build-to-order migration toolkit that moves your Dynamics GP or NAV estate into NetSuite — masters, open items, history and dimension mapping. ECOSIRE builds it for your chart of accounts after a scoping call. Built to order by ECOSIRE for Oracle NetSuite (build-to-order) — indicative price from $999.00 USD; request a quote for a scoped proposal.

Dynamics GP / NAV to NetSuite Migration — A build-to-order migration toolkit that moves your Dynamics GP or NAV estate into NetSuite — masters, open items, history and dimension mapping

What we build

  • SDF project delivered as an unmanaged bundle you own, deployed to your own NetSuite account
  • Staging custom records for customers, vendors, items, open AR, open AP, GL balances and history, each holding the source key, load status and error text
  • Dimension mapping custom record translating GP account segments and analytical accounting codes, or NAV global and shortcut dimensions, into Class, Department, Location, Subsidiary or Custom Segment
  • SuiteScript 2.1 RESTlets accepting extract payloads pushed from the source environment, with field, referential and currency validation on arrival
  • Map/Reduce load scripts per record type so large volumes complete without governance limits and any single stage can be re-run in isolation
  • Opening balances loaded as Journal Entries against your target chart of accounts, with per-account variance reporting
  • Open AR and AP loaded as individual Invoices and Bills, or as summarized Journals, depending on whether you need line-level history in NetSuite
  • Inventory opening quantities and costs loaded via Inventory Adjustment records, respecting the item's costing method and, where used, Inventory Detail for lot and serial numbers
  • OneWorld handling that maps each source company to a Subsidiary and sets subsidiary context on every created record
  • Historical exchange rates applied from the Currency Exchange Rate record at each transaction's own date rather than a single flat rate
  • Reconciliation saved searches comparing source-to-target totals by account, customer, vendor and item, plus a summary custom record for sign-off
  • Source-key custom fields on every migrated record so any NetSuite GL Impact line traces back to its originating GP or NAV document number

About this Product

The problem

A Dynamics GP or NAV estate that has run for a decade is not a database you can export and re-import. It is a set of accumulated decisions: an account string split across segments, analytical accounting dimensions that only three people fully understand, inventory valued under an averaging method that was changed once in 2014, and a receivables ledger where half the open items are partial applications against invoices that were themselves credited and re-raised.

When that estate moves to NetSuite, the mechanical part — customers, vendors, items — is the easy quarter of the work. The hard three quarters are: deciding what a GP analytical dimension becomes in NetSuite (a class, a department, a location, or a custom segment), reconciling a trial balance that has to tie to the penny on day one, carrying enough transaction history that the business can still answer questions about last year, and doing all of it while the legacy system is still taking orders.

Most migrations fail not at the load step but at the reconciliation step, when nobody can explain why the NetSuite AR aging is $14,000 different from the GP one and there is no audit trail from source row to target record.

What ECOSIRE builds

ECOSIRE builds you a migration toolkit as a SuiteCloud Development Framework (SDF) project deployed into your own NetSuite account. It is not a generic wizard — it is written against your actual GP or NAV schema and your actual target chart of accounts.

Staging layer

A set of custom records holds every extracted source row before anything touches a real NetSuite record: staging records for customers, vendors, items, open AR, open AP, GL opening balances, and historical transactions. Each staging record carries the source system key (GP customer number, NAV entry number), a status field, an error field, and a link to the NetSuite record it produced. This is what makes the migration auditable and re-runnable: you can re-load a single failed batch without touching the 40,000 rows that already succeeded.

Dimension mapping engine

A mapping custom record translates GP account segments and analytical accounting codes — or NAV global and shortcut dimensions — into NetSuite equivalents. The engine supports mapping a source dimension to a Class, Department, Location, Subsidiary, or a Custom Segment, and it supports composite rules where the target depends on two source values. Where GP used a segmented account string, the toolkit splits the string and routes each segment to its configured target, so your NetSuite account list stays flat and reportable instead of inheriting a 6,000-row combinatorial explosion.

Extraction and transform

SuiteScript 2.1 RESTlets accept extract payloads pushed from your source environment, so no inbound connection into your finance network is required. Payloads are validated on arrival — required fields, referential integrity against already-migrated masters, date and currency sanity — and rejected rows land in the staging error field with a readable message rather than silently disappearing.

Load engine

Map/Reduce scripts do the actual record creation, which is what lets the migration handle volume without governance failures. Separate Map/Reduce deployments handle Customers, Vendors, Items, Opening Balances (as Journal Entries), Open AR (as Invoices or a summarized Journal), Open AP, Inventory Adjustments for opening quantities and costs, and historical Sales and Purchase transactions. Each stage is independently runnable and independently re-runnable.

OneWorld handling

If you are on OneWorld, the toolkit maps each GP company database or NAV company to a Subsidiary, handles the intercompany accounts that GP kept in its own intercompany tables, and sets the correct subsidiary context on every created record. Currency handling covers both the transaction currency and the exchange rates in force at the historical dates, using the Currency Exchange Rate record rather than hard-coded rates.

Reconciliation reporting

Saved searches and a summary custom record compare source totals to loaded NetSuite totals by account, by customer, by vendor, and by item, at every stage. You get a variance report before go-live, not a surprise after it. Every created record carries a custom field pointing back to its source key, so any balance can be traced from the NetSuite GL Impact back to the GP journal number.

Cutover controls

A User Event script can lock migrated records against accidental edit during the parallel-run window, and a Scheduled script produces a daily delta report during that window so finance can see divergence between the two systems while both are live.

Who this is for

This is for finance and IT teams leaving a Dynamics GP or NAV installation that is at or near end of mainstream support, where the data volume and dimensional complexity are past the point where a spreadsheet-and-CSV migration is credible. It suits organisations with multiple companies, multiple currencies, meaningful inventory, and an auditor who will ask how opening balances were derived.

It is not for a five-user GP install with 200 customers and no history requirement — for that, NetSuite's standard CSV import is genuinely sufficient and we will tell you so on the call.

How delivery works

1. Scoping call. We walk your source system: GP or NAV version, number of companies, module footprint, analytical dimension usage, volume by table, and what history you actually need in NetSuite versus what can live in an archive. We look at your target NetSuite account: edition, OneWorld or not, existing chart of accounts, existing segments.

2. Fixed quote. You get a written scope naming the exact record types in scope, the dimension mapping approach, the history depth, and the reconciliation reports you will receive. The price is fixed against that scope. If the scope changes, we re-quote before building.

3. Build. ECOSIRE writes the SDF project — custom records, RESTlets, Map/Reduce scripts, saved searches, mapping tables — against your specification. Typical lead time is one working week depending on the number of record types and companies in scope.

4. Install in a test account. Everything is deployed to your NetSuite sandbox or a Release Preview account first. We run a full trial migration there with real extracted data, produce the reconciliation reports, and iterate on the mapping until the variances are explained or zero. You sign off on the trial before anything is deployed to production.

5. Production deployment. The same SDF project is deployed to your production account. The cutover run happens on your schedule, with the reconciliation reports produced as the migration proceeds so you are never waiting until the end to find out whether it worked.

6. Support window. Two weeks of go-live support covering defects, mapping adjustments discovered during the parallel run, and re-run assistance. You own the SDF project source in full — it is an unmanaged bundle in your account, and you or another developer can modify it without us.

Nothing here is pre-built and instantly downloadable. Every migration toolkit is written for one source estate and one target chart of accounts, because that is the only way the reconciliation ties.

How delivery works

  1. 1

    Scoping call

    A short call to confirm the workflow, your platform version and where the integration boundaries sit.

  2. 2

    Fixed quote

    You receive a written scope and a fixed price. Nothing is built until you approve it.

  3. 3

    Build and test

    We develop against a copy of your configuration and test it there. Typically two to four weeks.

  4. 4

    Install and support

    We install on your instance, hand over the source, and include two weeks of go-live support. Defects in the code we deliver are fixed free of charge.

What you get

  • Complete SDF project source: custom records, custom fields, RESTlets, Map/Reduce scripts, User Event scripts, saved searches and script deployments
  • Populated dimension mapping tables reflecting the mapping agreed during scoping, editable by your team afterwards
  • Installation into your NetSuite sandbox or Release Preview account, including role and permission configuration for the migration user
  • A full trial migration run in the test account with real extracted data, plus the resulting reconciliation and variance reports
  • Production deployment and cutover-run support on your scheduled date
  • Written runbook covering extract procedure, load sequence, re-run procedure, error triage and rollback, plus a mapping document explaining every dimension decision
  • Live handover training for your finance and IT team, and a two-week go-live support window for defects and mapping adjustments

Who this is for

Financial Controller

Owns the trial balance that has to tie on go-live day and will personally answer to the auditor for how opening balances were derived. The reconciliation reports and source-key traceability give them a defensible paper trail from every NetSuite balance back to the originating GP or NAV document.

ERP Project Manager

Is managing a cutover where the legacy system keeps trading until the last minute and every failed load costs a weekend. The re-runnable staging layer and per-stage Map/Reduce design mean a failure in one record type does not force a full reload of everything already migrated.

IT Applications Manager

Inherits whatever is built and has to maintain it after the consultants leave. Receiving the migration as an SDF project they own, with readable SuiteScript 2.1 and a documented mapping table, means they can adjust mappings or re-run a stage without a support call.

How Dynamics GP / NAV to NetSuite Migration Compares

CriterionECOSIRECustom BuildCompetitorNetSuite Native
Auditable source-key traceability from every NetSuite record back to its GP or NAV documentIncludedPartial supportPartial supportNot included
Re-runnable per-record-type staging layer that isolates failuresIncludedPartial supportPartial supportNot included
Configurable mapping of analytical dimensions to Custom Segments, Class, Department and LocationIncludedIncludedPartial supportNot included
Map/Reduce architecture sized for high-volume loads without governance failuresIncludedPartial supportPartial supportNot included
Built-in source-to-target reconciliation and variance reportingIncludedPartial supportPartial supportNot included
OneWorld multi-subsidiary and historical exchange-rate handlingIncludedPartial supportPartial supportPartial support
Delivered as SDF project source the customer owns and can modifyIncludedIncludedNot includedNot included
Fixed quote agreed before any build work beginsIncludedNot includedPartial supportNot included

Frequently asked questions

How long does the build take, and what happens before it starts?
one working week of build time after the scope is agreed, depending on how many record types, companies and history years are in scope. Nothing is pre-built — the toolkit is written against your source schema and your target chart of accounts. Before the build starts you have a scoping call and a written fixed quote naming exactly which record types, dimensions and history depth are included.
Which Dynamics versions and which NetSuite editions are supported?
On the source side we work with Dynamics GP 2013 through GP 18.x, and Dynamics NAV 2013 through NAV 2018. Business Central is a different extraction path and we scope it separately. On the target side the toolkit runs on any NetSuite edition that permits SuiteScript 2.1 and SuiteCloud Development Framework deployment, and it handles OneWorld multi-subsidiary accounts. We confirm both sides during the scoping call before quoting.
How do GP analytical accounting dimensions map into NetSuite?
There is no single right answer, which is why it is a mapping table rather than hard-coded logic. During scoping we go through each dimension and decide whether it becomes a Class, Department, Location, Subsidiary or a Custom Segment. Dimensions with a small stable value list and reporting significance usually become Custom Segments; ones that mirror physical sites become Locations. Segmented GP account strings are split so each segment routes to its configured target instead of multiplying your account list.
Can you migrate transaction history, or only open items and balances?
Both are supported, but they are different amounts of work and we price them separately. Open items and opening balances are always in scope. Historical transactions are loaded as closed Invoices, Bills, Sales Orders and Journal Entries where you need them queryable in NetSuite. Many clients migrate two to three years of history and archive the rest, because loading a decade of detail slows the cutover and rarely earns its cost. We will give you an honest recommendation at scoping.
Does this require opening a connection into our finance network?
No. The load side runs entirely inside NetSuite and receives data through RESTlets, which means your source environment pushes extracts outbound over HTTPS. There is no inbound connection to your GP or NAV server, no VPN requirement and no agent installed on your database host. If your security policy requires file-based transfer instead, we can scope a SuiteScript file-cabinet ingestion variant.
What happens if the trial migration does not reconcile?
That is the expected outcome of the first trial run, and it is why the trial exists. The variance reports show you exactly which accounts, customers or items differ and by how much. We iterate on the mapping and the transform rules in the test account until every variance is either zero or explained and accepted in writing. Production deployment does not happen until you sign off on the trial. Reconciliation iterations during the build window are included in the fixed quote.

Request a Quotation

Tell us about your Dynamics GP / NAV to NetSuite Migration 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.

Pairs well with

CRM Two-Way Sync (Salesforce)
Built to order

CRM Two-Way Sync (Salesforce)

A bidirectional NetSuite and Salesforce sync covering accounts, contacts, opportunities, quotes, orders and invoice status, with explicit conflict rules. Built to order for your two orgs.

From $999.00Starting point — quoted to your scope
View specification
Customer Invoice & Payment Portal
Built to order

Customer Invoice & Payment Portal

A build-to-order, branded self-service portal on your NetSuite account where customers view open invoices, download statements and pay online. Scoped, quoted and built for you — nothing here is a ready-made download.

From $999.00Starting point — quoted to your scope
View specification
Employee Self-Service & Leave Portal
Built to order

Employee Self-Service & Leave Portal

A build-to-order NetSuite self-service portal for leave requests, balances, timesheets, payslips and profile changes on any device. Scoped, quoted and built for your account, then installed in sandbox first.

From $999.00Starting point — quoted to your scope
View specification
EU VAT, OSS & Intrastat Reporting
Built to order

EU VAT, OSS & Intrastat Reporting

NetSuite-native EU VAT reporting built for your account: OSS return values, EC Sales Lists and Intrastat dispatches and arrivals derived from real transactions. Quoted and built to order.

From $999.00Starting point — quoted to your scope
View specification