TrainGrid User Guide

Preparing Your Employee Import File

Format a CSV for TrainGrid's employee import: every supported column, which fields are required, and tips for a clean first import.


You can add your whole roster at once by importing a CSV file (a spreadsheet saved as .csv). TrainGrid reads your column headers automatically, so in most cases you can export from your HR or payroll system and upload it as-is.

Accepted columns

Only First Name and Last Name are required. Everything else is optional but recommended. TrainGrid recognizes the common name each column goes by, so you don't have to rename your headers.

Tip: Don't have a matching column? On the Map columns step you can point each TrainGrid field at any column in your file by hand. And if you'd rather start fresh, click Download template on the upload screen for a ready-made file with all the right headers.

Accepted date formats

For Hire Date, TrainGrid accepts the formats you're likely already using:

Leave the Hire Date blank if you don't have it — that's fine.

Tips for a clean import

  1. Employee numbers are optional, but helpful. If your people have unique employee or badge numbers, include them — TrainGrid uses them to recognize the same person on future imports. If you don't have them, just leave the column blank.
  2. Same names are never a problem. Two people named "John Smith" are kept as two separate employees. TrainGrid never merges people by name alone. If they're in different departments, they always stay distinct.
  3. Re-importing is safe. Uploading the same file again won't create duplicates. Rows that match an existing employee (by number, email, or name + department) are updated, not doubled.
  4. New departments and positions are created for you. If a department or position in your file doesn't exist yet, TrainGrid adds it automatically. Locations are created too when you are an Administrator or Manager and your plan has room for another site (Starter and Professional include one location); otherwise use a location name that already exists under Administration → Locations, or leave the cell blank, and the preview tells you before you import.
  5. Preview before you commit. The Preview & import step shows exactly what will be added, flags any rows with errors (which are skipped, never guessed at), and points out same-name employees so nothing surprises you.
  6. Prefix employee numbers with a division short form (optional). If your divisions have short forms (Administration → Divisions), the Preview & import step offers "Prefix employee numbers with a division short form", listing each active division as "SHORTFORM · Name". Leave it on "No prefix" to import the numbers exactly as they are in the file. Choose a division and its short form is added in front of every employee number in the file with nothing in between (MLT + 1234 = MLT1234); the Number column shows the final value before you import, and the duplicate check runs on the final numbers. Numbers that already start with that short form are left as they are, so re-importing a file you exported from TrainGrid never adds the prefix twice (the option tells you how many numbers were left unchanged, and each is marked "unchanged" in the Number column); blank numbers stay blank (the "Assign internal employee numbers" option, if ticked, still gives them a TG- number without the prefix); a number that would be longer than 50 characters is flagged as an error and skipped. If a row's original number already belongs to one of your employees (you loaded the roster without prefixes and are uploading the same file with one), the review step flags it with the existing person listed underneath and "Same person" pre-selected, so a re-upload never doubles your roster; choose "Different person" only when the row really is someone new. If you simply want those existing people to carry the new prefix, tick Renumber matching employees with the prefix (under the prefix option; needs the Manage employees permission): each matching row then changes the existing person's number on their own record (1001 becomes MLT1001, training history untouched, one audit entry per change) instead of asking; the row reads "Renumbers <name>: 1001 → MLT1001" before you import, and the Done screen counts them under Renumbered. A number that was taken by someone else between the preview and the import is reported as skipped, never forced. The prefix is an option on the import, not a column in your file — a "Division" column header is still read as the Location column.

Example file

First NameLast NameEmployee NumberDepartmentLocationHire Date
JaneDoe10245PackagingMain Plant2024-03-18
AmirKhan10246SanitationMain Plant2023-11-02
RosaMendezShippingWest Plant5/9/2022
Note: Imports handle up to 2,000 rows at a time. If your roster is larger, split it into a few files — re-importing is safe, so there's no risk of overlap.