Data migration

Written By Jessica Moore (Super Administrator)

Updated at May 20th, 2026

Data migration refers to the process of transferring structured data from one system into SchemeServe so it can be used for quoting, policy administration, renewals, reporting, and bordereaux generation.

Follow these 8 steps when you are importing into SchemeServe:
 


Importing Multi-Page Data

When importing answers to MultiPage questions, similar to table questions, you may need to import multiple rows of data within a single field.

For example:
A property product where multiple properties must be recorded under one policy.

To import MultiPage data correctly:

Answers must be separated using double pipe separators in 1 cell to reflect each property's answers.

Format: Answer1||Answer2||Answer3

Example Format  

 

Important:
If a property's answer should be blank, you must still include the pipe separators to preserve the structure. Even unanswered fields must maintain positional formatting.


Importing Large Multi-Page Policies (15+ Pages)

If importing policies containing a large number of MultiPage entries (e.g. 15+):

It may be easier to:

  1. Import the case with minimal required information
  2. Manually complete MultiPage data on the renewal on the quote journey.

Minimum Required CSV Fields

At a minimum, complete:

  • Policy.InceptionDate
    Policy.ExpiryDate
    Policy.Status (set to On Cover if live)

Importing Dates & Status

Backdating Policies
If importing policies with inception dates in the past, you may need to enable backdating:

Admin → Schemes → Select Scheme → Advanced → Inception/Expiry Options

Allow back-dating of inception date

You may wish to disable this after import to prevent general backdating within the platform.


Running Rules at On Cover Stage

If rules should run at On Cover stage:

Set PolicyStatus to Quotation

Ensure RunRuleForStatusescolumn includes:
Quotation, Pending, On Cover

This ensures rules execute correctly during import.


Import Results Explained

Once processing completes, each batch will show:

Success
Import completed successfully.

Fails
Import did not complete.

Warnings
Import completed but certain fields require review. These are commonly related to empty columns - if this is on purpose, then you can ignore these warnings.

Action: Purge Data
Deletes all records created by that import batch.


Additional Columns

A. Record Type Column

You can manually add a column:

Policy.RecordType

This allows you to define the type of transaction:

First Premium, Adjustment (MTA), Renewal

Important Ordering Rule

If importing multiple records for the same client:

They must be in chronological order:

  • First Premium – 01/05/2018
  • MTA – 23/11/2018
  • Renewal – 01/05/2019

Incorrect order may cause transaction recording issues.

Policies are linked using:

Policy.ImportRef column - this is a ref created by you which links any number of records together using the same ref e.g Pol123

 

B. Multiple Insurer Cover Groups

If your scheme contains multiple cover groups:

Columns QQ to QU (or relevant columns) can be added

These specify the insurer per cover group

How to Identify IDs

Cover Group ID – Found on the Risk Groups (previously Cover Details) page of the question set
Insurer ID – Found in the URL when viewing the insurer record in admin
 

 


Most common mistakes

  • Your answers must match your answer options in SchemeServe exactly e.g.
    No Heating” vs “no heating”
  • Your statuses must match SchemeServe's exactly e.g.
    On Cover” vs “On cover”
  • Remember to enable back-dating in the settings if you are importing On Cover cases that incepted in the past
  • When importing multiple cases under the same client name, this will create multiple client users which may be undesired. In these instances it may be better to import one case under the client name and then manually enter the other policies so that they remain under the same profile.
     

Importing Records with Existing Premium Payments

When you import records where there is a premium applied, this will show on the case record screen as a payment outstanding. Most of the time this money has already been paid and therefore when imported needs to show that there is no money outstanding.

If this will be the case, you will need to add a reference in the column named:

ExternalPayment.PaymentReference

against each entry where the payment has already been collected. You can add a reference along the lines of Ref 1, Ref 2 etc.

You will then need to add an extra column (add it to the right of the ExternalPayment.PaymentReference) named:

ExternalPayment.PaymentDate

In this newly added column you will need to enter a date when payment was made. If you don’t know the date you can enter today’s date.

Once imported, this will then show the record as being up to date with no monies outstanding.


Importing Records with Multiple Policies under the same Client

If you have several policy records for the same client, you can import these so that each record is assigned under the same client reference.

To do this you will need to add two extra columns:

Client.ImportRef

Client.ExistingImportRef
 

You will need to enter a reference in the column ‘Client.ImportRef’ against the first record only and then the same reference number will need to be added in the column ‘Client.ExistingImportRef’ against the remaining records you want assigning to the same client. See example screenshot below:


Once the cases have been imported, you can see that the records are all assigned to the same client: