Skip to main content
Back to Insights
Making ERP Migration Work Visible
Field Note

Making ERP Migration Work Visible

A kickoff turns ERP migration assumptions into a field-level handoff, with CSV design, sample data, and duplicate control made explicit.

8 MIN ERPIntegrationsData

The question is why a kickoff meeting matters in an ERP migration. On the surface, it is a coordination step: the internal team meets the client technical team, confirms the export source, and agrees on the next document to send. But what is at stake is larger than the meeting. The kickoff determines whether the migration becomes a controlled handoff or a long chain of assumptions.

From first principles, migration is not only about moving data. It is about preserving meaning as data changes systems. A journal entry in one platform may not carry the same structure, validation rules, or posting logic in another. A vendor bill may look simple until the receiving system needs subsidiary, currency, approval status, tax treatment, and line-level detail in a precise flat file format.

This is why the first useful artifact is rarely a diagram. It is usually a field-by-field mapping, with sample values, ownership, and enough specificity for technical teams to test reality against design.

The real work behind a kickoff

The migration discussed in the kickoff had a clear operational purpose: replace a legacy integration with NetSuite as the system receiving exports from the source platform. The current integration pattern was no longer the target state. The new path needed to support data exports from the source system into the ERP platform using CSV imports.

That sounds direct. It is not automatic.

Before the call, the internal migration team had already received initial export files from the source system. A preliminary mapping had been prepared for two important data types:

  • Journal entries
  • Vendor bills

Those two data sets are good early candidates because they expose many of the hard questions in ERP migration. They contain header and line data. They depend on master data. They require dates, accounts, entities, amounts, currencies, and memo fields to be interpreted consistently. They also tend to surface gaps in validation, sequencing, and duplicate control.

Progress had slowed because the same team was handling other regional migrations. This is common. ERP migration work often competes with other rollout, support, and close-cycle demands. The risk is not simply delay. The risk is that partially understood mapping work sits idle long enough for context to fade.

The kickoff helped restore that context.

Start with the handoff, not the tool

A frequent mistake in integration planning is to start with the transport mechanism. Teams ask whether the connection should be API-based, middleware-based, or file-based before they agree on what the data must mean when it lands.

In this case, the integration approach was confirmed as CSV import. That decision matters because it defines the shape of the work:

  • The source team must create flat files.
  • The ERP team must define required columns and accepted values.
  • The mapping must account for import templates and validation rules.
  • Error handling will happen through file review, import logs, and correction cycles.
  • Scheduling and ownership must be explicit because there is no live API contract enforcing the exchange.

CSV imports are not inferior to API integrations. They are different. They are often practical when the process is periodic, the data volume is manageable, and the receiving ERP has mature import tooling. But CSV imports require discipline. They turn ambiguity into rejected files.

That is why the client technical team asked for a field-by-field mapping document with sample data. They did not only need a list of fields. They needed enough detail to assess whether the source system could produce the required values and whether any customization would be needed.

What a useful mapping template contains

A migration mapping template should reduce interpretation. It should allow the client technical team to look at each field and answer a few direct questions:

  • Can we extract this value from the source system?
  • Is the value stored directly, derived, or transformed?
  • Is the field required by NetSuite?
  • What format does NetSuite expect?
  • Are there valid value lists or internal IDs to use?
  • Is this field at the header level or line level?
  • What sample data proves the pattern?

For journal entries, the mapping may need to distinguish between transaction-level fields and line-level fields. Examples include posting date, subsidiary, currency, exchange rate, account, debit amount, credit amount, department, class, location, and memo. The template should make it clear which values repeat across the transaction and which vary by row.

For vendor bills, the mapping often needs vendor identity, bill date, due date, reference number, expense or item lines, account coding, amounts, tax details, and approval or posting status. If the source system stores vendors by one identifier and NetSuite expects another, the mapping must show the crosswalk.

The best template also includes expected value types. A field labeled date is not enough. The team needs to know the date format. A field labeled vendor is not enough. The team needs to know whether it should be vendor name, external ID, or internal ID. A field labeled amount is not enough. The team needs to know sign convention, decimal precision, and whether credits are represented as negative amounts or separate columns.

This is where sample data matters. Sample data reveals the assumptions hidden in field names.

Deduplication is a design requirement

One important point from the call was the need for a deduplication key. The client technical team confirmed they could assign a unique ID per row to prevent duplicate imports.

This is a small detail with large consequences.

In file-based integrations, duplicate control cannot be treated as an afterthought. Files may be resent. Imports may fail halfway. A user may correct a file and run it again. A scheduled process may pick up the same export twice. Without a stable key, the receiving team must rely on manual review or fragile combinations of date, amount, and reference number.

A unique row ID gives the process a control point. It allows the ERP import process or reconciliation process to identify what has already been processed. It also supports troubleshooting. When a row fails, teams can refer to the same identifier across systems, files, logs, and conversations.

The key does not need to be complicated. It needs to be stable, unique, and included consistently. If the source system can generate it at export time, the mapping should show the field name, format, and scope. The team should also decide whether uniqueness applies across all files, per transaction type, or per export batch.

Bandwidth constraints are system constraints

The call also surfaced a practical constraint: progress had stalled because team capacity was absorbed by other regional migrations. This is not a side note. It is part of the system.

Migration planning often assumes that work moves forward as soon as the next task is known. In practice, tasks wait behind competing obligations, decision bottlenecks, calendar gaps, and review cycles. If those constraints are not visible, the project appears to drift even when the team is acting reasonably.

A good kickoff converts hidden constraints into explicit sequencing. In this case, the immediate sequence was clear:

  • Finalize the mapping template.
  • Include field types, expected value types, and sample data.
  • Review it internally with a colleague that afternoon.
  • Send it to the client technical team by end of day.
  • Give the client technical team three to four days to assess and respond.

This is a useful operating rhythm. It does not try to solve the full migration in one call. It identifies the next artifact, the owner, the deadline, and the expected response window.

The managed services transition angle

Replacing a legacy integration is also a managed services transition issue. Once NetSuite becomes the destination for these exports, the support model changes. The team must know who owns mapping updates, import failures, reruns, validation errors, and reconciliation.

If this is not defined early, the migration may go live technically while remaining operationally fragile. A file may fail because a new department code appears. A vendor may not match. A journal may reject because a period is closed. These are not unusual events. They are normal operating cases.

The mapping document can become the base of the future support model. It can show what each field means, where it comes from, what valid values are allowed, and who to contact when it fails. Over time, it can support onboarding, incident resolution, and change control.

This is why migration artifacts should be written for future operators, not only current builders.

What the kickoff accomplished

The value of the kickoff was not that every answer was settled. The value was that the team aligned on the next form of evidence.

The internal team had early files and a preliminary mapping. The client technical team needed a more complete field-level view to determine whether they could generate the extracts and whether customization would be required. The import method was confirmed as CSV. The flat file requirement was understood. The deduplication need was acknowledged. A unique row ID was feasible. The next action had an owner and a deadline.

That is enough progress for a kickoff when the system is complex.

The meeting moved the work from general agreement to testable detail. Once the mapping template is reviewed, the client technical team can assess extract feasibility. From there, the teams can move into sample file creation, import testing, exception handling, and reconciliation design.

Ultimately, ERP migration work succeeds when teams make assumptions visible early enough to correct them. A kickoff is not valuable because it starts the project formally. It is valuable because it creates a shared surface for decisions.

What this means for practitioners is simple: do not rush past the mapping layer. Field names, sample values, required formats, row identifiers, and ownership rules are the parts of the migration that determine whether the receiving system can trust the incoming data.

The takeaway is that a clean migration is built through small, explicit handoffs. In this case, the next handoff is a mapping template. If it is clear enough, it will do more than support an import. It will become the first operating document for the new ERP integration.