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:
- Import the case with minimal required information
- Manually complete MultiPage data on the renewal on the quote journey.
Minimum Required CSV Fields
At a minimum, complete:
-
Policy.InceptionDatePolicy.ExpiryDatePolicy.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.
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.
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:


