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.
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).
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.
Course crosswalk
Translate old class codes into the new course names.
Only if you use codesImport users
Create the people, in their companies, with their roles.
Set the cutover date
Mark the line between old records and new training.
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.
Course crosswalk
Set up onceWhat 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.
legacy_code,course
02.001,01 - Ethics in Caregiving
02.002,02 - Infection Control and Practices
02.003,03 - Alzheimer's Disease & Dementia Awareness
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.Import users
The main stepWhat 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.
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.
employee_id,first_name,last_name,email,company,classification,position,job_title,status,hire_date
What each column means
| Column | In plain words | Required? | Example |
|---|---|---|---|
| employee_id | Their staff ID from the old system. It’s the key we use to match their past training later. | Optional* | 100482 |
| first_name | First name. | Yes | Maria |
| last_name | Last name. | Yes | Gomez |
| Used to log in and to send their invite. Required only if there’s no Employee ID. | Optional* | maria.g@email.com | |
| company | The company / location they belong to. Must match a company you’ve already created (by name or ID). | Yes | Sunrise Home Care |
| classification | New Hire (goes through Pre-Service, then graduates) or Employee (an experienced caregiver). | Optional | New Hire |
| position | Access level: Teams Manager, Team Leader, or Team Member (blank = Team Member). | Optional | Team Member |
| job_title | Their job (Home Health Aide, CNA…). Used as the graduation target if target_role isn’t given. | Optional | Home Health Aide |
| status | Active or Archived (blank = Active). Archived keeps all records but isn’t billed. | Optional | Active |
| hire_date | Date they were hired. Drives due dates for new hires. | Optional | 2026-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.
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
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.
Import completions
Past trainingWhat 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 acoursecolumn 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.
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
Legacy vs current dataset
One dateWhat 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.
Cutover date = 2026-08-01
Do it in this order
A calm, repeatable routine for a new client. Dry Run each step, read the table, then Commit.
- Create the companies first. Before importing anyone, make sure each company / location group exists (the
companycolumn must match it exactly). Otherwise those rows are flagged “Company not found”. - Tool 1 — Course crosswalk (only if your history uses codes). Upload the
legacy_code,courselist and fix any UNRESOLVED lines. - Tool 2 — Import users. Dry Run the people file, review every row, then Commit. Your people now exist with the right roles.
- Tool 4 — Set the cutover date to the client’s go-live date, so past training tags as Legacy.
- Tool 3 — Import completions. Dry Run the history file, review, then Commit. Transcripts are now complete.
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?
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.
Can I run the same file twice by mistake?
Do I need the Course crosswalk (Tool 1)?
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”?
Someone left the company — should I delete them?
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?
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.