This area covers everything you do once, at the start: naming and configuring your workspace, applying your branding, and building the organizational taxonomies (divisions, locations, departments, positions, course categories, task types, training providers, custom fields) that every employee record, course and report will reference. You will return here occasionally to add a site, a job title or a provider, but the bulk of this work happens before you import employees and courses.
In this section: Recommended setup order · Configure organization settings · Set the email log retention window · Upload the organization logo · Set the accent colour · Create a location · Create a division · Create a department · Create a position and declare its required training · Create a course category · Create a task type · Add a training provider · Export, import and template for admin lists · Define custom employee fields
Recommended setup order
Sets up a new workspace in the order that avoids rework: each list is referenced by the ones that come after it, so building them top-down means every dropdown is already populated when you need it.
Where: Sidebar → Administration (under the Organization group) → the pill navigation across the top: Overview · Users · Permissions · Divisions · Locations · Departments · Positions · Categories · Task types · Training providers · Custom fields · Audit log · Integrations · Alerts · Email log · Settings · Billing · Before you start: A role with organization-management access (the Administration entry only appears in the sidebar for such roles).
- Open Sidebar → Administration → Settings and set the organization name, timezone and due-soon window (see "Configure organization settings").
- On the same page, upload your logo and pick an accent colour (see "Upload the organization logo" and "Set the accent colour").
- Click Locations in the pill navigation and create each site (see "Create a location").
- If you operate regions, click Divisions, create them, then edit each location and set its "Division (optional)" — divisions are an optional layer and can be skipped.
- Click Departments and create departments, scoping each to a location where relevant (departments are also created automatically during employee CSV import, so this can be partial).
- Click Positions and add job titles; add "Required training" per position once courses exist.
- Click Categories and Task types and set up the two course groupings with colours and sort order.
- Click Training providers and add the external trainers, colleges and certification bodies you use.
- Click Custom fields and define any employee fields unique to your operation (badge numbers, union locals).
- Only now create courses (Sidebar → Courses) and import employees (Sidebar → Employees) — their forms will offer everything you just built. On success, every picker in the course and employee forms shows your own taxonomy instead of empty dropdowns.
Good to know:
- Divisions are optional; single-site organizations can ignore them entirely.
- Departments can be created implicitly by the employee CSV importer, so a complete department list is not a prerequisite for importing employees.
- Position "Required training" references courses, so that one sub-step waits until the course catalog exists.
Configure organization settings
Sets the three workspace-wide basics: the organization name shown to your team and auditors, the timezone all scheduling runs on, and how many days before a due date an assignment turns amber "Due soon".
Where: Sidebar → Administration → Settings pill → "General" card (page title "Organization settings") · Before you start: Organization-management access; users without it are redirected to the dashboard.
| Option | What it does |
|---|---|
| Organization name | Shown in the app header and on printed reports for auditors; required, up to 120 characters. |
| Due-soon window (days) | Assignments due within this many days show as amber "Due soon" everywhere (matrix, lists, dashboard); must be 1–90, default 7. |
| Timezone | Used for reminder scheduling and the weekly supervisor summary; default America/Toronto. Individual locations can override it (see Create a location). |
- In the sidebar, click Administration.
- Click the Settings pill in the admin navigation. The page "Organization settings" opens.
- In the "General" card, edit "Organization name".
- Set "Due-soon window (days)" — a number from 1 to 90.
- Pick a "Timezone" from the dropdown (North American zones plus UTC).
- Click "Save settings". Success shows the toast "Organization settings saved." and the note under the card title reminds you the change applies to everyone in the organization.
Good to know:
- The "Save settings" button stays disabled until something actually changes.
- An out-of-range due-soon value is rejected client-side with "Due-soon window must be between 1 and 90 days."
- The right-hand "Plan" card on this page shows the current plan, trial end date and days remaining; the "Manage plan & billing" link appears only for users with billing access.
- The "Notifications" card here is a pointer only — alert schedules and recipients are configured on the Alerts page.
Set the email log retention window
Chooses how long the record of every email TrainGrid sends (invitations, alerts, digests) is kept in Administration → Email log before automatic purging.
Where: Sidebar → Administration → Settings pill → "Scheduled compliance report" card → the "Keep email log for" dropdown below the divider · Before you start: Organization-management access.
| Option | What it does |
|---|---|
| Keep email log for | Retention window for email-log entries: 30 / 60 / 90 / 180 days; default 90. Older entries are removed automatically by a daily purge. |
- Open Administration → Settings.
- Scroll to the "Scheduled compliance report" card and find the "Keep email log for" dropdown beneath the divider.
- Pick 30, 60, 90 or 180 days. There is no Save button — the choice saves immediately, and success shows a toast like "Email log kept for 90 days."
Good to know:
- Retention affects only the log, not delivery — emails still send regardless of the setting.
- A failed save reverts the dropdown to the last confirmed value, so the UI never claims a window that wasn't stored.
Upload the organization logo
Puts your company mark in the app sidebar and header and on printed reports and sign-in sheets — your brand in front of your team and auditors.
Where: Sidebar → Administration → Settings pill → "Branding" card · Before you start: Organization-management access; a PNG, JPG or WEBP file up to 2 MB.
| Option | What it does |
|---|---|
| Upload logo / Replace logo | Sets or swaps the logo; accepts PNG, JPG or WEBP up to 2 MB, displayed at roughly 48 px tall on reports. No logo by default — the TrainGrid mark is used instead. |
| Remove | Opens the "Remove report logo?" confirmation; confirming with "Remove logo" reverts printed reports to showing just the organization name. |
- Open Administration → Settings and scroll to the "Branding" card.
- Click "Upload logo" (reads "Replace logo" if one is already set) and choose your file.
- Wait for the preview tile to update. Success shows the toast "Logo updated. It now appears across the app and on reports." and the sidebar immediately shows your mark with the organization name.
Good to know:
- A wrong file type shows "Logo must be a PNG, JPG or WEBP image."; an oversized file names its size and the 2 MB maximum.
- One canonical logo file is kept per organization — replacing overwrites it, so old logo files never accumulate against your storage quota.
- The logo also appears on every email TrainGrid sends (digests, invitations).
Set the accent colour
Tints buttons, links and highlights across the whole workspace with your brand colour, with a live preview before you commit.
Where: Sidebar → Administration → Settings pill → "Accent colour" card · Before you start: Organization-management access.
| Option | What it does |
|---|---|
| Preset swatches | One-click brand colours; the selected swatch shows a check mark. |
| Custom colour | A native colour picker plus a hex text input; invalid hex text outlines the field red and blocks saving with "Enter a valid hex colour like #4f46e5." |
| Use default | Returns to TrainGrid's default indigo (#4f46e5); saving after this shows "Reset to the default accent." |
| Save accent | Commits the previewed colour for all users; disabled until the selection differs from what is saved. |
- Open Administration → Settings and scroll to the "Accent colour" card.
- Click one of the preset swatches, or use the "Custom colour" picker / type a hex value like #4f46e5 into the text box.
- Watch the whole page re-tint instantly — this is a preview only.
- Click "Save accent". Success shows the toast "Accent colour updated." and the colour now applies for everyone in the organization.
Good to know:
- Navigating away without saving reverts the preview — a stale tint is never left behind.
- Text contrast on tinted elements is computed automatically from the colour you pick.
Create a location
Adds a site (plant, warehouse, office) that employees are assigned to and users can be scoped to. Each location can carry its own timezone for reminder scheduling and can be grouped under a division.
Where: Sidebar → Administration → Locations pill → "New location" button (top right of the list) · Before you start: Organization-management access. Create divisions first if you want to group sites (optional).
| Option | What it does |
|---|---|
| Name | Required site name shown in every location picker and filter. |
| Address (optional) | Free-text address shown in the Locations table. |
| Division (optional) | Groups this site under a division; defaults to "No division". Inactive divisions remain selectable on a location that already uses them, marked "(inactive)". |
| Timezone | Defaults to "Same as organization"; a site-specific zone changes only which local day this site's reminder emails fire on. |
| Active (table switch) | Toggling off hides the location from pickers while keeping all history; the table shows an "Inactive" badge. |
- Open Administration → Locations.
- Click "New location". The "New location" dialog opens.
- Enter a "Name" (e.g. Main Plant).
- Optionally fill "Address (optional)" (street, city, province).
- Optionally pick a "Division (optional)" — defaults to "No division".
- Leave "Timezone" as "Same as organization (…)" unless this site is in a different zone, in which case pick one.
- Click "Create location". Success shows the toast "<name> created." and the site appears in the table with columns Name · Division · Address · Timezone · Employees · Active.
Good to know:
- When divisions exist, the table groups locations under their division (ungrouped sites sink to the bottom); a location whose Timezone column reads "Same as organization" inherits the org zone.
- Delete (trash icon) is blocked while employees or departments reference the location: the dialog "<name> is in use" states the counts and offers "Deactivate" instead. Only an unreferenced location can be permanently deleted via "Delete location".
- Editing (pencil icon) opens the same dialog titled "Edit <name>" with "Save changes".
Create a division
Adds an optional layer above locations — group sites into regions (e.g. "West Region") so a user can be scoped to a whole division at once.
Where: Sidebar → Administration → Divisions pill → "New division" button · Before you start: Organization-management access. Entirely optional — skip for single-region organizations.
| Option | What it does |
|---|---|
| Name | Required division name; the only field on the form. |
| Active (table switch) | Toggling off hides the division from pickers while keeping history; an "Inactive" badge shows in the table. |
- Open Administration → Divisions.
- Click "New division".
- Enter a "Name" (e.g. West Region).
- Click "Create division". Success shows the toast "<name> created." and the division appears in the table with columns Name · Locations · Active.
- Attach sites to it by editing each location and setting its "Division (optional)" field.
Good to know:
- A division with locations cannot be deleted: the dialog "<name> is in use" tells you to move the locations to another division (or "No division") first, or offers "Deactivate". An empty division deletes permanently via "Delete division".
- The Locations column counts how many sites belong to each division.
Create a department
Adds a department that appears on employee records, the training matrix and compliance reports. A department can be tied to one location or span all of them.
Where: Sidebar → Administration → Departments pill → "New department" button · Before you start: Organization-management access. Create locations first if you want site-scoped departments.
| Option | What it does |
|---|---|
| Name | Required department name. |
| Location | Scopes the department to one site; default "All locations" leaves it unscoped. Only active locations are offered (plus the department's current one when editing). |
| Active (table switch) | Toggling off hides the department from pickers while keeping history. |
- Open Administration → Departments.
- Click "New department".
- Enter a "Name" (e.g. Sanitation).
- Pick a "Location" — defaults to "All locations", meaning the department isn't tied to a single site.
- Click "Create department". Success shows the toast "<name> created." and the department appears in the table with columns Name · Location · Employees · Active.
Good to know:
- Departments are also created automatically during employee CSV import, so the list can grow without visiting this page.
- A department with employees cannot be deleted — the "is in use" dialog offers "Deactivate" instead; an empty one deletes permanently via "Delete department".
Create a position and declare its required training
Adds job titles employees can hold, and — per position — declares which courses that role requires. The requirements drive the Workforce Competency report, which buckets every employee in the role by whether they meet them.
Where: Sidebar → Administration → Positions pill → "New position" button; requirements live in each row's "Required training" column · Before you start: Organization-management access. Courses must exist before requirements can be added (the picker lists the active course catalog).
| Option | What it does |
|---|---|
| Name | Required job title; renaming updates employee records automatically. |
| Required training (Add / ×) | Course requirements for the role; courses whose assessments are competency-required carry a small "competency" tag on their badge. Empty by default. |
| Active (table switch) | Toggling off hides the position from pickers while keeping history. |
- Open Administration → Positions.
- Click "New position", enter a "Name" (e.g. Machine Operator), and click "Create position". Success shows the toast "<name> created."
- In the new row's "Required training" column (reads "No requirements" at first), click "Add".
- In the "Choose a course" dropdown, pick a course (pickers read "CODE — Title") and click "Add". Success shows the toast "Requirement added." and a course-code badge appears in the column.
- Repeat for each required course; click the × on a badge to remove one (toast "Requirement removed.").
- Verify the result under Sidebar → Reports → "Workforce Competency", which checks every employee in the role against these requirements.
Good to know:
- Requirements are stored against the course family, so activating a new course version never drops what the role requires.
- In the Workforce Competency report a waived required course counts as met — a documented waiver is a decision, not a gap.
- A position held by employees cannot be deleted — the "is in use" dialog offers "Deactivate"; an empty one deletes permanently via "Delete position".
Create a course category
Adds a colour-coded category (e.g. Safety, Quality, GMP) that groups courses across the catalog, matrix and dashboard.
Where: Sidebar → Administration → Categories pill → "New category" button · Before you start: Organization-management access.
| Option | What it does |
|---|---|
| Name | Required category name. |
| Color | One of eight preset swatches used to colour-code courses everywhere in the app; defaults to Red (the first preset). |
| Sort order | Non-negative number (0–999) controlling ordering in category lists; defaults to one past the current highest. |
- Open Administration → Categories.
- Click "New category".
- Enter a "Name" (e.g. Food Safety).
- Click a "Color" swatch — eight presets: Red, Blue, Purple, Teal, Amber, Green, Pink, Gray.
- Adjust "Sort order" if needed (pre-filled with the next number; lower numbers appear first in category lists).
- Click "Create category". Success shows the toast "<name> created." and the row appears with columns Order · Name · Color · Courses.
Good to know:
- A category used by courses cannot be deleted — the "is in use" dialog offers "Rename" (or move the courses first); an unused one deletes permanently via "Delete category".
- Categories and Task types are deliberately distinct groupings: categories are subject areas, task types are training methods.
Create a task type
Adds a colour-coded task type (e.g. Toolbox Talk, Practical, Assessment) that organizes courses by training method or subject — a second axis, distinct from categories.
Where: Sidebar → Administration → Task types pill → "New task type" button · Before you start: Organization-management access.
| Option | What it does |
|---|---|
| Name | Required task type name. |
| Color | One of eight preset swatches (Red, Blue, Purple, Teal, Amber, Green, Pink, Gray); defaults to Red. |
| Sort order | Non-negative number (0–999); lower numbers appear first in task type lists; defaults to one past the current highest. |
- Open Administration → Task types.
- Click "New task type".
- Enter a "Name" (e.g. Toolbox Talk).
- Click a "Color" swatch (same eight presets as categories).
- Adjust "Sort order" if needed.
- Click "Create task type". Success shows the toast "<name> created." and the row appears with columns Order · Name · Color · Courses.
Good to know:
- A task type used by courses cannot be deleted — the "is in use" dialog offers "Rename" or asks you to move the courses first; an unused one deletes permanently via "Delete task type".
- Task types also power the task-type filter in the training list (e.g. filtering to toolbox talks).
Add a training provider
Builds the directory of external trainers, colleges and certification bodies, so external training records can name who delivered them. The Records column shows how many training records reference each provider.
Where: Sidebar → Administration → Training providers pill → "New provider" button · Before you start: Organization-management access.
| Option | What it does |
|---|---|
| Name | Required provider name shown in the Provider picker on training records. |
| Type | Free-text classification (e.g. Certification body); optional. |
| Contact | Free-text contact person/details; optional. |
| Website | Optional URL; rendered as a clickable link in the table when it parses as an http(s) address. |
| Active | Available when editing (and as the table switch): inactive providers stay on existing records but are hidden from pickers. New providers start active. |
- Open Administration → Training providers.
- Click "New provider". The "New training provider" dialog opens.
- Enter a "Name" (e.g. Ontario Safety Council) — the only required field.
- Optionally fill "Type" (free text — training company, college, certification body), "Contact" and "Website".
- Click "Create provider". Success shows the toast "<name> created."; new providers start active and immediately appear in the record-level Provider picker. The table shows Name · Type · Contact · Website · Records · Active.
Good to know:
- Deactivating never strips a provider from history — records that already name it keep displaying it.
- A provider named by training records cannot be deleted — the "is in use" dialog states the record count and offers "Deactivate"; an unreferenced one deletes permanently via "Delete provider".
Export, import and template for admin lists
Every admin list (Divisions, Locations, Departments, Positions, Course categories, Task types, Training providers) has Export / Template / Import buttons in the page header, so a taxonomy can be moved between workspaces or bulk-loaded from a spreadsheet. Import is deliberately additive-only: it can never rename or delete what you already have.
Where: Sidebar → Administration → any of the seven list pills → "Export", "Template" and "Import" buttons beside the page title · Before you start: Import requires organization-management access; Export requires the export-data capability. A CSV with a "name" header column (exactly what Export and Template produce).
| Option | What it does |
|---|---|
| Export | Downloads the list as CSV including every extra column (e.g. providers: contact, website, provider_type, active; locations: address, timezone, active; categories/task types: color, sort). Shows an info toast when the list is empty. |
| Template | Downloads a starter CSV with the header row and one example row for that list's accepted columns. |
| Import | Insert-only CSV upload, deduplicated by name (case-insensitive header matching); always preceded by the "Import N entries?" confirmation dialog. |
- Open the list you want to fill (e.g. Administration → Locations).
- Click "Template" to download a ready-made CSV: a header row plus one example row covering every accepted column for that list.
- Fill the CSV — one row per entry; only the name column is mandatory.
- Click "Import" and choose your file.
- Read the confirmation dialog "Import N entries?" — it names the file, previews up to 12 names, and states: names that already exist are skipped; this only adds entries, never renames or deletes, and there is no bulk undo.
- Click "Import" in the dialog. Success shows a toast like "5 added, 2 already existed." (or "Everything in that file already exists.") and the list refreshes.
- To back up or move a list, click "Export" — it downloads a CSV with full-field parity (a provider's contact/website/type survives the round trip).
Good to know:
- A file without a "name" column is rejected with an error naming the columns it did find — export first to see the expected format.
- Optional cells are forgiving: an unrecognized colour, sort or boolean value is simply dropped, never a reason to reject the row. A bad or missing location timezone is dropped and the site uses the organization default.
- Boolean columns accept true/yes/1/active and false/no/0/inactive; colours must be 6-digit hex like #4f7fd9; text extras are capped (e.g. 300 characters).
- Department exports include the location as a readable name for context only — importing does not resolve it, so an imported department lands unscoped ("All locations"). Location exports treat the division name the same way.
- There is no bulk delete, so an accidental import is cleaned up one row at a time — hence the confirmation dialog.
Define custom employee fields
Adds up to 20 organization-specific fields (badge numbers, union locals, contractor status) that appear on every employee's profile and in employee import and export.
Where: Sidebar → Administration → Custom fields pill (page title "Custom fields") → "Add a field" panel · Before you start: Organization-management access.
| Option | What it does |
|---|---|
| Label | The field name shown on employee profiles; required, up to 40 characters. |
| Type | Text, Number, Date or Dropdown; the type is fixed once created (editing offers only label and, for Dropdown, options). |
| Options (one per line) | Dropdown choices; shown only when Type is Dropdown, editable later via Edit. |
- Open Administration → Custom fields.
- In the "Add a field" panel, enter a "Label" (e.g. Badge number, up to 40 characters).
- Pick a "Type": Text, Number, Date or Dropdown.
- If you chose Dropdown, fill "Options (one per line)" (e.g. Full-time / Part-time / Contractor).
- Click "Add field". Success shows the toast "Custom field added." and the field is listed above with a type badge — it now appears on every employee profile, import and export.
Good to know:
- Maximum 20 custom fields; at the limit the add panel says so and asks you to remove one first.
- Existing fields can be edited inline ("Edit" → change the label or dropdown options → "Save") or removed via the trash button.
- Removing a field asks "Remove \"<label>\"?" and warns: values already saved on employees are kept but no longer shown — deletion hides data, it does not destroy it.