Na vsebino
Contact
Work Projects that prove what we can do.All services The full list in one placeContact Enquiry in 3 steps

Digitalization and Data

Data Migration Between Systems: Process and Risks

Replacing an ERP system, merging two systems, or moving to the cloud takes more than copying data across. Companies and public institutions must decide how to move customer, inventory, document, and financial data so it stays correct, connected, and accessible to everyone who needs it after the switch. Below we explain what the migration process involves, what risks it carries, and what you need to define before you start.

Published 16 September 2026

Tell us about your project All projects

What data migration between systems means

Data migration between systems means moving data from one information system to another while preserving its meaning, its links, and its usefulness in the new environment. Most often this happens when a company switches its ERP, CRM, or document system (DMS, ECM), merges systems after acquiring another organization, or moves operations to the cloud. The outcome must be a system where employees find the same data, the same order history, and the same links between customers, documents, and products as before — just in a different structure and on different infrastructure.

Migration is not simple file copying from one place to another. Data in the source system is often stored in a different structure, with different code lists, field labels, and entry rules than the target system uses. Before the transfer even begins, you need to determine which data is still active and used daily, which is archival, and which is no longer needed and not worth moving. This decision directly affects the scope of work, how long preparation takes, and how quickly the new system is ready for daily use.

For a decision-maker, migration is above all a project of risk and accountability, not just a technical task for the development team. An incorrectly transferred record about a customer, supplier, stock item, or contract can cause wrong invoicing, duplicate orders, lost communication history, or mismatched records between departments. The consequences often surface only months after the switch, when they are harder to fix. That is why migration must be planned as a standalone project with a clearly defined scope, responsibilities, review checkpoints, and sign-off criteria — not as a side effect of rolling out a new system.

When a company needs a data migration

The question of when data migration is needed comes up in practice when a company replaces a key system such as an ERP or CRM, merges two organizations, moves from on-premise infrastructure to the cloud, or retires a system its vendor no longer maintains. In all these cases, existing data does not disappear on its own — it has to be actively transferred, reshaped, and verified, or it stays locked inside the system the company is shutting down.

Leadership notices a similar need when customer, supplier, or production data is spread across several disconnected systems, causing duplicate data entry, mismatched records, or uncertainty about which record is correct. Consolidating into one system requires reviewing and reconciling data from every source before it is moved into the shared environment. Skip that step, and consolidation just relocates the existing mess into a new application without actually resolving it.

Migration is also needed when a company digitizes processes that ran manually or in spreadsheets for years and wants that data in a structured system with access control, an audit trail, and automated reporting. In the public sector, a similar need arises when launching a new information system or portal that must inherit records from older, often poorly documented applications. In both cases, the volume and quality of existing data is what determines how demanding the project will be.

  • change of ERP, CRM, or document management system (DMS/ECM)
  • merger or acquisition of another organization
  • move from on-premise infrastructure to the cloud
  • retirement of a system no longer maintained by its vendor
  • consolidation of data from multiple disconnected systems into one
  • digitization of manual processes and spreadsheets
  • launch of a new public-sector portal or information system

The migration process, step by step

The migration process starts with an analysis of the source data: where it is stored, in what structure, how much of it there is, who uses it, and what links exist between records. Only on the basis of that analysis can you decide which data is migrated in full, which is archived separately, and which is not migrated at all because it is no longer relevant. This step is often underestimated, even though it determines more than anything else whether the later phases go predictably or bring surprises.

Next comes field mapping between the source and target systems, deciding for every field where it goes, how it is transformed, and what happens if a value is missing or does not fit the new system's rules. In parallel, data cleansing removes duplicate records, fixes obvious errors, and standardizes code lists — for instance, customer, product, or department names that were entered inconsistently in the source system. The quality of this step directly determines whether the new system holds reliable data from day one or simply inherits the old errors.

Before the actual production transfer, a test migration runs in a separate test environment to check that data lands in the right place, that links between records survive, and that the system works correctly with them. The test environment does not use real personal data — it uses test or anonymized data sets instead, reducing the risk of unintentionally exposing data during testing. Only once the test migration produces the expected results does the production transfer get prepared, followed by validation in the live environment.

The final step is confirming the migration is complete: the customer or a designated group of users checks a sample of data against pre-agreed criteria, comparing record counts, key values, and how connected functions behave in the new system. Only after that sign-off can the source system be shut down or archived. It is worth documenting every step of the process, since that documentation later serves as evidence of what was migrated, what was deliberately left out and why — which also matters for audits or any later comparison of data.

  • analysis of source data and decisions on what to migrate
  • field mapping between source and target systems
  • data cleansing and standardization
  • test migration in a separate test environment
  • validation of test migration results
  • production data migration
  • acceptance testing and sign-off

Separate environments, and why they matter

One of the fundamental rules of migration is keeping development, test, and production environments separate. The development environment is where the transfer and transformation process is built, the test environment checks whether that process works as planned, and the production environment is what employees and customers use every day. Mix these up — for instance by testing directly against production data — and the risk of an unintended outage or data damage rises sharply.

It is equally important that real personal data never be used in the test environment. Test or anonymized data sets are prepared instead, matching the real data's structure without exposing actual customers, employees, or business partners. This matters both for security and for legal reasons, since it reduces the risk of unauthorized access to sensitive data, or of it leaking outside the controlled environment, during development or testing.

Every change to the transfer process goes through review and testing before it reaches production, just like any other software change. That means the migration process is not run once, unchecked — it is tried out, fixed where needed, and only then repeated against the real data. For the customer, this means fewer surprises at cutover, because problems are caught and fixed in the test environment rather than after they have already affected daily operations.

Risks in data migration

The central risk in migration is data loss or corruption during transfer — some records fail to move, links between them break during transformation, or newer data gets overwritten by older data. These errors are not always immediately visible. A record can look complete yet be missing its link to an order, a document, or a customer, and that only surfaces once someone actually tries to use that link in day-to-day work.

Another risk is mismatched formats and rules between the source and target systems: dates, tax numbers, currencies, product codes, or document statuses can be recorded differently in each system. If this is not caught in time, data can transfer successfully on a technical level yet be substantively wrong, something users only discover during daily work — an invoice with the wrong date, or a report that does not add up.

Business disruption during the transition is also a risk, whether the source system stops working before the target is fully ready, or employees simply do not know, during the transition, which system currently holds the valid data. This is especially sensitive in production, finance, and procurement, where even a brief loss of access to correct stock, pricing, or payment data directly affects ongoing business and customer or partner trust.

The last major risk category is organizational: if responsibilities across departments are not clearly assigned, no one may end up confirming that migrated data is correct, or each department checks only its own part and misses the links between departments. Risk also rises if employees are not informed in time and keep working in the old system during the transition, creating two parallel, unsynchronized versions of the same data.

  • data loss or corruption during transfer
  • broken links between records (orders, documents, customers)
  • mismatched formats, code lists, and rules between systems
  • duplicate records
  • business disruption during the transition
  • unclear departmental ownership of sign-off
  • parallel work in both the old and new systems

How to reduce migration risk

Migration risk is not eliminated with a single control, but with a sequence of checks running through the entire process. The first step is a thorough analysis of the source data before transfer, since most errors later discovered in production actually originate in the source data — duplicate records or mismatched code lists, for example. The earlier these are caught, the cheaper and faster they are to fix, before they reach the new system.

The second key measure is testing: manual and automated verification of migrated data, testing of APIs and links between systems, regression testing to make sure new functionality does not break existing behavior, and acceptance testing against pre-agreed criteria carried out by the customer or their team. For more demanding projects, it is worth involving independent QA, separate from the development team that built the transfer process, since that kind of review more often catches errors the developers themselves would overlook.

The third measure is gradualness: rather than moving all data and all departments at once, it is often safer to migrate a smaller, well-controlled portion of the data first, verify it works, and then continue with the rest. Running the old and new systems in parallel for a short period, with ongoing comparison of results, lets you catch discrepancies before the source system is switched off for good and stops being available as a reference.

Data ownership and responsibilities

Before a cross-system migration starts, it must be clear who owns the data and who is responsible for each part of the process. Source code and data belong to the customer, not the implementation partner, which means that at project close the customer must receive access rights, passwords, and documentation that let them fully control the system and its data even after the engagement ends. That holds whether the migration was carried out entirely in-house or with an external partner.

Beyond ownership, you also need to name a project lead, assign responsibilities to individual teams, agree on how the customer and the implementation partner communicate, and set a format for regular progress reporting. On projects that span multiple departments — for example, migrating sales, finance, and production data at the same time — it matters that each department names someone to confirm their portion of the data is correct. Without that, sign-off risks becoming a formality rather than a genuine check of content.

A migration project can be delivered as a whole or broken into stages — customer data first, then inventory data, then financial records, for instance. Whatever the scope, the same rule applies: the customer needs a clear, ongoing view of what has already been migrated, what is in progress, and what is still pending, since that is what allows them to make informed decisions and adjust priorities as the work proceeds.

Taking over an existing or unfinished system

An implementation partner is often brought in when a project is not starting from scratch, but rather taking over an existing or even unfinished system that another provider began. In that case, the first step is always a review — of the source code, architecture, infrastructure, and existing data — before anyone assesses what can be continued and what needs to be fixed or rebuilt. This review is essential because every decision that follows, including how the data gets migrated, depends on what was actually done before.

Taking over an unfinished system is often riskier for the customer than starting fresh, since the existing data may already contain errors, incomplete migrations, or partially transformed records that need to be understood before work continues. That is why the review at takeover cannot be purely technical — it also has to answer which data is currently valid, which is a leftover from a previous, abandoned attempt, and which records exist in parallel in multiple versions with no clear answer as to which one is correct.

After the review, the implementation partner and the customer jointly decide whether the existing migration is completed, corrected, or restarted, and what that means for the work the previous provider already did. That decision is made based on the actual state of the code, architecture, and data — not on a general estimate. What matters most for the customer is getting a clear, documented explanation of the reasoning behind the chosen path, since that is what lets them understand why the project may take longer than originally expected.

Support after migration

Data migration does not end when the system goes live, since the first problems often surface only once an entire department or the whole company is using the new system, not just a test group. That is why it is worth agreeing in advance who monitors the system in the first weeks after cutover, how issues get reported, and in what order they are handled. Without that agreement, small problems can pile up until they start disrupting daily work across several departments at once.

A support agreement should classify issues by severity. Class 1 covers an outage, where the system or a key part of it is not working, and gets the highest priority. Class 2 is a disruption, where the system works but a specific function does not, handled according to agreed priority. Class 3 is a minor defect with no business impact, scheduled into the next release, and Class 4 is a request — a change or upgrade — whose scope gets assessed and whose timing gets agreed separately.

Beyond fixing issues, an implementation partner can also take on broader oversight of the system after go-live, technical and security updates, and further development — adding features, for instance, that the customer deliberately deferred during migration. The scope of that support is defined per project, since it varies with the system's size, the number of users, and the criticality of the data it handles. There is no universal response time that applies equally to every customer — response times are set according to criticality and agreement.

  • Class 1 – outage: system or key part not working, highest priority
  • Class 2 – disruption: system works, a specific function does not
  • Class 3 – defect: minor issue with no business impact, scheduled for the next release
  • Class 4 – request: change or upgrade, scope assessed separately

How to choose an implementation partner for data migration

When choosing a partner for data migration, check whether they can break the project into clear phases — analysis, mapping, cleansing, test migration, production migration, and post-launch support — rather than simply promising to “move the data.” A partner who already describes in their proposal how they will verify the quality of migrated data and who will sign it off shows they understand where risk builds up in the process, not just the technical steps of the transfer itself.

A second important criterion is experience with projects that connect multiple systems at once, such as ERP, CRM, and document systems, and a solid understanding of how such connections work through APIs. For projects in regulated industries or the public sector, it is also worth checking whether the partner understands security, audit-trail, and compliance requirements, since these often dictate how the migration process must be documented and who has to sign off on the data before the transfer counts as complete.

For this kind of project, Epix and its specialist partner network assemble project teams from senior engineers, solution architects, data specialists, and QA engineers, based on which systems are being connected and how demanding the migration is. Within that network, staff hold certifications in cloud services, security, and project management, and quality- and information-security-management standards are part of how the delivery structure operates, not something owned by a single company in the network.

Finally, it is worth checking how a partner handles the question of price, since an exact migration price without a prior review of the data and systems is not a realistic estimate. Price is set after reviewing the requirements, scope, and technical complexity of the project, with a short upfront analysis breaking the scope into stages so each one can be estimated and delivered separately. A partner who quotes a fixed price before that kind of review usually does not yet know the real state of the data they will be working with.

Frequently asked questions

How long does a data migration between systems take?

There is no universal timeframe — it depends on the volume of data, the number of connected systems, the state of existing records, and testing requirements. A small, well-organized data set moves faster than data spread across several mismatched sources that first need cleansing and reconciliation. The exact scope of work and steps are defined after analyzing the source data and the systems the migration needs to align with.

What happens if data gets lost or damaged during migration?

This is exactly why migration runs in steps: a test migration into a separate environment first, then verification, and only then the production transfer — catching errors before they affect daily operations. The source system stays available until the transfer is confirmed against pre-agreed criteria, allowing comparison and correction of any discrepancies. That is why the source system should never be shut down before sign-off is complete.

Who owns the data after a migration between systems?

Data and source code always belong to the customer, never to the implementation partner. At project close, the customer receives documentation, access rights, and passwords giving them full control over the system and data, regardless of whether they continue the work themselves or with a different partner later. This applies both to new systems and to cases where a partner takes over an existing or unfinished project from another provider.

How do you choose a partner for data migration between systems?

Check whether the partner breaks the project into clear phases (analysis, mapping, cleansing, test and production migration, support), has experience connecting multiple systems through APIs, and understands the security and compliance requirements of your industry. For this type of project, Epix and its specialist partner network assemble a team based on the scope and complexity of the migration, with price set only after reviewing requirements and data.

Related

Planning a data migration between systems?

Tell us what you need. We will reply by email.

AdriaHuaweitelemachObčinaSevnicaSIGENERGY
  • 950+projects delivered since 2020
  • a monthahead of the contractual deadline for the Municipality of Sevnica
  • 7television episodes of Miss Slovenije 2025/26

Related solutions

Sounds like your project?

Send us the project description, your existing system, the tender documents or the event date.

Tell us about your projectTell us what you need

Or email info@epix.si