InService Tracking — Migration Tool Guide

InService Tracking · Administrator Handbook

Bringing your records in: the Migration tool

A plain-English guide to the four tools on the Migration page. It shows you what each one does, the order to use them in, and worked examples you can copy — with a safety net so nothing is saved until you say so.

🗂️ 4 tools, one page 🛟 Dry Run first, always 🔑 Matched by Employee ID 👥 For office admins
Where to find it  ·  wp-admin → Tools → InService Migration   (…/wp-admin/tools.php?page=isv-migration)

What this page is for

When a company moves onto InService Tracking, you usually have two things to bring over from the old system: the people (their names, companies, roles) and their past training (which classes they finished, and when). The Migration page is where you load both, from a spreadsheet, in a few guided steps.

Think of it like moving into a new house. First the people get their keys (Tool 2). If your old boxes are labelled with codes, you tape up a “code → room” list so everything lands in the right place (Tool 1). You decide the move-in date that separates “old stuff” from “new stuff” (Tool 4). Then you carry in the boxes of history (Tool 3).

The one rule that keeps you safe

Every tool has a Dry Run setting, and it is on by default. A Dry Run previews what would happen and writes nothing. You read the results table, fix any flagged rows, and only when it looks right do you tick Commit and run it for real. Re-running is safe too — people are updated instead of duplicated, and a class already recorded on a given date is skipped.

The big picture

Four tools, used mostly in this order. You don’t always need all four.

1
Course crosswalk

Translate old class codes into the new course names.

Only if you use codes
2
Import users

Create the people, in their companies, with their roles.

4
Set the cutover date

Mark the line between old records and new training.

3
Import completions

Load each person’s past classes onto their transcript.

The tools are numbered 1–4 on the screen, but the natural working order is 1 → 2 → 4 → 3: set up the code list and the people before you bring the history in.

1

Course crosswalk

Set up once

What it does. Your old system may label classes with codes like 02.001 instead of names. This tool is a simple translation list: it tells InService that “02.001” means the course “01 – Ethics in Caregiving”. You only build it once per client, and only if your completion records use codes.

When to use
Only if your past-training spreadsheet uses old class codes. If it already uses the new course names or IDs, skip this tool entirely.
File columns
legacy_code, course  — where course can be the new course’s ID, its slug, or its exact title.
Example spreadsheet
legacy_code,course
02.001,01 - Ethics in Caregiving
02.002,02 - Infection Control and Practices
02.003,03 - Alzheimer's Disease & Dementia Awareness
From now on, whenever your completions file says 02.001, InService knows to credit the “01 – Ethics in Caregiving” course. Any code it can’t match is listed as UNRESOLVED so you can fix it.
2

Import users

The main step

What it does. Creates the people — each in the right company, with the right role and status. This is the tool you’ll use most, both for the first big move-in and for ongoing new hires. It does not send welcome emails; you invite people afterwards from their dashboard.

Good news for spreadsheets

Column order doesn’t matter, and any columns we don’t recognise are simply ignored — so you never have to strip your sheet down. Include everything you have.

Recommended header
employee_id,first_name,last_name,email,company,classification,position,job_title,status,hire_date

What each column means

ColumnIn plain wordsRequired?Example
employee_idTheir staff ID from the old system. It’s the key we use to match their past training later.Optional*100482
first_nameFirst name.YesMaria
last_nameLast name.YesGomez
emailUsed to log in and to send their invite. Required only if there’s no Employee ID.Optional*maria.g@email.com
companyThe company / location they belong to. Must match a company you’ve already created (by name or ID).YesSunrise Home Care
classificationNew Hire (goes through Pre-Service, then graduates) or Employee (an experienced caregiver).OptionalNew Hire
positionAccess level: Teams Manager, Team Leader, or Team Member (blank = Team Member).OptionalTeam Member
job_titleTheir job (Home Health Aide, CNA…). Used as the graduation target if target_role isn’t given.OptionalHome Health Aide
statusActive or Archived (blank = Active). Archived keeps all records but isn’t billed.OptionalActive
hire_dateDate they were hired. Drives due dates for new hires.Optional2026-03-15

* Each person needs either an Employee ID or an email — that’s how they log in. You can add a missing Employee ID later, but you’ll need it before importing that person’s past training in Tool 3.

Example spreadsheet
employee_id,first_name,last_name,email,company,classification,position,job_title,status,hire_date
100482,Maria,Gomez,maria.g@email.com,Sunrise Home Care,New Hire,Team Member,Home Health Aide,Active,2026-03-15
100483,James,Lee,james.lee@email.com,Sunrise Home Care,Employee,Team Leader,Caregiver,Active,2024-06-01
Maria is created as a New Hire in Sunrise Home Care and will start on the Pre-Service classes. James is created as a Team Leader who can manage his team. The results table shows one line per person — create, update, or error — before anything is saved.
Two optional extras for New Hires

Add a target_role column to say which role a New Hire graduates into (e.g. Home Care Aide, Driver) — that sub-group must already exist under the company, otherwise it falls back to Caregivers. Columns like target_hours, department and shift are still accepted if present, but are no longer required.

3

Import completions

Past training

What it does. Loads each person’s finished classes from the old system onto their InService transcript, with the real completion dates — so their record is audit-complete from day one. Run this after the people exist (Tool 2), because it matches on Employee ID + company.

File columns
employee_id, company, legacy_code, completed_on, score
Two ways to name the class
Use legacy_code (translated by the crosswalk from Tool 1), or replace it with a course column holding the course’s name, slug, or ID.
Safe to re-run
A completion already recorded on the same date is skipped, so you can run the file again without creating duplicates.
Example spreadsheet
employee_id,company,legacy_code,completed_on,score
100482,Sunrise Home Care,02.001,2024-06-14,92
100482,Sunrise Home Care,02.002,2024-06-14,88
100483,Sunrise Home Care,02.001,2023-11-02,95
Maria gets credit for Ethics in Caregiving (92%) and Infection Control (88%), both completed 14 Jun 2024, and they appear on her printable transcript. James gets his 2023 Ethics completion. Each row is reported as record, skip (already there), or error.
4

Legacy vs current dataset

One date

What it does. This isn’t an importer — it’s a single date setting. Training completed before this date is labelled Legacy (brought over from the old system); anything on or after it counts as current. Both show together on transcripts and reports, so nothing is hidden — the old records just carry a small “legacy” tag so auditors can tell them apart.

What to set
Your go-live / cutover date for that client (for example, the day they started on InService).
When
Set it once, before or around the time you import completions, so past records tag themselves automatically.
Example
Cutover date  =  2026-08-01
A class finished on 2024-06-14 shows a small Legacy tag on the transcript. A class finished on 2026-08-15 shows as current training. No data changes — only the label.

Do it in this order

A calm, repeatable routine for a new client. Dry Run each step, read the table, then Commit.

  1. Create the companies first. Before importing anyone, make sure each company / location group exists (the company column must match it exactly). Otherwise those rows are flagged “Company not found”.
  2. Tool 1 — Course crosswalk (only if your history uses codes). Upload the legacy_code,course list and fix any UNRESOLVED lines.
  3. Tool 2 — Import users. Dry Run the people file, review every row, then Commit. Your people now exist with the right roles.
  4. Tool 4 — Set the cutover date to the client’s go-live date, so past training tags as Legacy.
  5. Tool 3 — Import completions. Dry Run the history file, review, then Commit. Transcripts are now complete.
You can split it over time

You don’t have to do it all at once. It’s perfectly fine to onboard the people this week and import their past training next week — the tools are built to be run again safely.

Questions & quick fixes

A row says “Company not found” — what now?
The company value in that row doesn’t match a company group in InService. Create that company first (or correct the spelling / use its ID), then re-run. Only the unmatched rows are skipped — the rest still import.
Some caregivers don’t have an email address.
That’s fine — give them an Employee ID instead. They can log in with their Employee ID and password. A person only needs one of the two (email or Employee ID).
Can I run the same file twice by mistake?
Safely, yes. People are updated rather than duplicated, and a completion already recorded on the same date is skipped. When in doubt, Dry Run and read the results table first.
Do I need the Course crosswalk (Tool 1)?
Only if your past-training file uses old class codes like 02.001. If your file already lists the new course names or IDs, skip Tool 1 and use a course column in Tool 3 instead.
What’s the difference between “New Hire” and “Employee”?
A New Hire is put through the Pre-Service (“– P”) classes and automatically graduates into their caregiver role once they finish them. An Employee is an experienced caregiver added straight in, with no Pre-Service.
Someone left the company — should I delete them?
No — set their status to Archived. That keeps all their training records for audits and stops them being billed, and you can restore them if they’re rehired.
Where do I actually upload these files?
In wp-admin, go to Tools → InService Migration. Each tool has its own file box and its own Commit checkbox. Leave Commit unticked for a Dry Run.

Word list

A few terms used above, in one line each.

Employee ID
A person’s staff number from the old system. Used to match their history and as a login.
Company / group
A client company or location. People and courses are organised under it.
Classification
New Hire (does Pre-Service) or Employee (experienced caregiver).
Position
Access level: Teams Manager, Team Leader, or Team Member.
Pre-Service
The new-hire classes (marked “– P”) that must be finished before caregiving begins.
Inservice
The ongoing yearly training (the numbered 01–12 classes).
Transcript
A person’s printable record of every class and date — what auditors ask for.
Crosswalk
The translation list from old class codes to new course names.
Dry Run
A preview that writes nothing. On by default.
Commit
The checkbox that saves the import for real.
Legacy vs current
Whether a completion came from the old system (before the cutover date) or is new.
Archived
A kept-but-inactive person: records preserved, not billed, restorable.
InService Tracking — Migration Tool Guide Tip: use your browser’s Print → “Save as PDF” for an offline copy.