BookKeptevidence chain
Documentation

Importing your book

Most agencies arriving here keep the book in a spreadsheet somebody has maintained for years. The importer reads that spreadsheet's own headings rather than asking anybody to reshape it first.

Five files

Workers, clients, contacts, umbrella companies and placements. Each is an ordinary CSV, and each can be exported from a spreadsheet without editing.

Your headings, not ours

The importer maps common spelling variations to the fields it needs: a column headed "Surname", "Last name" or "Family name" all reach the same place. Where a heading is ambiguous it is left alone rather than guessed. "Company" on a workers file, for instance, is deliberately not mapped, because it might be the umbrella, the client or the worker's own limited company, and quietly picking one would produce a book that looks right and is wrong.

Every rename is reported. The result lists each heading it recognised and what it mapped it to, so nothing is silently reinterpreted. Two headings that would land on the same field are refused rather than merged.

Tell it once

Common variations are shared vocabulary, so they are built in. Your own are not. If your CRM exports "Cand Ref" and "Hirer Co", the import screen shows you every column it did not recognise, with the closest field already selected where there is an obvious one, and you confirm the reading. It is remembered per file, so the next import needs no confirmation at all and nobody has to rename columns in a spreadsheet first.

A saved mapping beats a built-in one: you telling us what your own column means outranks our guess about what it probably means. What was read as what is reported on every import, not only the first, and it is recorded in the audit chain alongside the hash of the file itself. The hash says what arrived; the mapping says how it was read, and both are needed to answer the question three years later.

A column nobody has claimed is ignored rather than guessed at, and a mapping can only point at a field the importer actually reads, so a mapping cannot quietly do nothing.

A dry run, always

Validation runs first and changes nothing: it reports how many rows would land, which rows would be refused and why, and what it renamed. Only then does the execute step write.

Rules are not relaxed for imported data. An umbrella placement still has to name a registered umbrella. A book that imports cleanly is a book that would have been accepted if it had been typed in.

Bringing your compliance position with you

The five files carry your people, your companies and your live placements. They also carry the four records that decide whether your compliance position arrives with you or starts empty, because an agency that has done the work should not look on its first morning like an agency that has not.

Right-to-work checksOn workers.csv: how the check was made and when. The date is the evidence, so it comes across as the date it really was. Without it the evidence pack reads "no checks recorded" for somebody you did check.
Umbrella evidenceOn umbrellas.csv: what you hold and when it expires. This is the joint and several liability defence, and without it your whole register reads as unassessed.
Self-billing agreementsOn workers.csv: the date the supplier agreed. HMRC Notice 700/62 wants the agreement before the first self-billed invoice, so without it billing is refused.
AWR weeks already servedOn placements.csv, and the one that matters most. See below.

What still does not come across is the working history itself: past timesheets, invoices already raised, and the rota behind them. Those stay where they are.

Tell it how many AWR weeks a worker has already served. The twelve-week clock counts approved weeks, and a placement that arrives mid-assignment has none of its history here. Left blank, the count would restart, and a worker two weeks from equal treatment would look like a worker with nine weeks of headroom. So placements.csv takes an AWR weeks already served column, and where you leave it blank the desk says not counted from here rather than showing a number it cannot stand behind.

Two smaller columns take what you already hold: the IR35 status you determined, carried across as it stands, and a phone for each client contact, which is how a stuck approval usually gets unstuck.

Every one of these is optional. Where you leave a column blank the record simply is not there, which is a different thing from a record that says nothing happened, and the product is careful about the difference.

Getting it back out

An offboarding bundle exports the whole tenant in the importer's own shape, with the documents and the audit chain, and the round trip is verified. It exists because your data being portable should be a property of the system rather than a favour. If you would rather not do the migration yourself, we do that too.

See it working

Try it on your own file

The importer's dry run changes nothing, so a real export from your spreadsheet is the fastest way to see whether this fits.

Start free Have it set up for you