Spreadsheet Column Reference
Every column in Oho's import template, what it expects, and which ones are required. This is the reference behind the spreadsheet import walkthrough — use the walkthrough to run the import, and this page while you're filling the template in.
It applies to every file-based source, because they all read the same template: Excel, Google Sheets, and SFTP.
⬇ Download the Excel template (.xlsx)How to read this page
- Required columns are the ones Oho refuses a row without. Leave one blank and that row is skipped, and the skip is counted in your sync report.
- Recommended columns don't block the import, but leaving them blank costs you something concrete — the table says what.
- Optional columns can be left blank — leave the empty column in place rather than deleting it.
- Dates use
YYYY-MM-DD(for example2026-03-31). - Values shown in
codeare the values Oho accepts. Case doesn't matter — Oho normalises them as it reads, soactive,ActiveandACTIVEare the same value, as areWWCCandwwcc. The one exception is Worker Type, which is free text and is stored exactly as you type it. - Column headings aren't case-sensitive either, and a trailing
*is ignored. What matters is the wording — see the caution below.
The * markers in the downloaded template flag the columns you'll want filled in for a useful record. They're broader than the short list Oho actually refuses a row without — the Needed? column in the tables below is the accurate one.
Oho reads your columns by heading name. If a heading is renamed, moved, or removed, Oho can't map that column and those rows won't import. Add your data under the headings exactly as they come in the template.
The row directly under the headings on each sheet is a hint row describing what the column expects. Leave it in place — Oho skips it — and start your data on the row below.
The four sheets
| Sheet | What goes on it | Needed? |
|---|---|---|
| Workers | One row per person you employ or engage. | Yes |
| Applicants | One row per candidate you're still hiring, before they become a worker. | Optional |
| Credentials | One row per card or registration a worker holds. | Optional |
| Exemptions | One row per requirement a worker is formally excused from. | Optional |
Fill in the sheets you need and leave the others empty. Don't delete a sheet you're not using — leave it in place with just its headings.
Worker ID is the match key
Worker ID does two jobs, and both depend on you keeping it stable:
- It links a worker's Credentials and Exemptions rows to their Workers row. Oho never matches on email.
- It tells Oho a person on this run is someone it already has, so a re-import updates them instead of creating a duplicate.
Use the identifier the person already has in your HR or payroll system, use exactly the same value across all three sheets, and reuse it on every later run. A row with a blank Worker ID can't be linked; a credential or exemption row whose Worker ID doesn't appear on the Workers sheet is reported as an orphan rather than guessed at. More in Map your fields → Recognising the same person again.
Workers
One row per person. 19 columns. Only Worker ID and a name will stop a row importing.
| Column | Needed? | What it expects |
|---|---|---|
| Worker ID | Required | The person's unique ID from your HR or payroll system. Oho's match key — keep it stable. |
| Organisation | Optional | The Oho organisation the worker belongs to. A worker belongs to exactly one. |
| First Name | Required | Their given name. |
| Middle Name | Optional | Their middle name, if you hold it. |
| Last Name | Required | Their family name. |
| Recommended | Their email address. Without one Oho can't send this worker a check request or a reminder — they still import. | |
| Email Type | Optional | work or personal. Describes the address in Email. |
| Phone | Optional | International format, for example +61 2 1234 5678. |
| Date of Birth | Recommended | YYYY-MM-DD. Several registers match on it — see the note below. |
| Nationality | Optional | For example Australian. |
| Street Address | Optional | Street number and name. |
| City | Optional | Suburb or city. |
| State | Recommended | NSW, VIC, QLD, WA, SA, TAS, NT or ACT. Sets the worker's address — put the credential's own state on its own row. |
| Postcode | Optional | Four-digit Australian postcode. |
| Job Title | Optional | Their role, for example Case Manager. |
| Department | Optional | Their team or department. |
| Worker Type | Recommended | Free text, stored exactly as you type it. Use Employee, Contractor or Volunteer so the filter stays tidy. |
| Status | Recommended | ACTIVE, ON_LEAVE or TERMINATED, in any case. Blank counts as active. See Active vs. inactive. |
| Start Date | Optional | YYYY-MM-DD. |
Only two things: a blank Worker ID, or no name at all. Oho builds the worker's name from First Name, Middle Name and Last Name together, so a row with any one of them filled in will import. Fill in both First Name and Last Name anyway — name-matching at the issuing register compares against the full name Oho holds.
It's optional, but several credential checks match on date of birth at the issuing authority. A worker without one may not verify automatically even when their card details are correct.
Credentials
One row per card or registration. 9 columns, 3 of them required. A worker can have as many rows as they hold cards — repeat their Worker ID on each one.
| Column | Needed? | What it expects |
|---|---|---|
| Worker ID | Required | Must match a Worker ID on the Workers sheet — this is what links the credential to its holder. |
| Credential Type | Required | One of the codes in Credential Type values below. A code Oho doesn't recognise is skipped, not guessed at. |
| Reference Number | Required | The official ID or registration number, exactly as it appears on the card. |
| State | Recommended | The state or territory the credential was issued in. It picks the register Oho checks — without it a state-based card won't verify. |
| Issuing Authority | Optional | The body that issued it, for example Blue Card Services. |
| Country of Issue | Optional | Used for VEVO checks. |
| Issue Date | Optional | YYYY-MM-DD. |
| Expiry Date | Optional | YYYY-MM-DD. |
| Status | Recommended | ACTIVE, EXPIRED or PENDING, in any case. Blank counts as ACTIVE. |
A blank Worker ID, a blank Reference Number, or a Credential Type that's blank or not on the accepted list. Everything else imports — but a row with no State may sit unverified, because Oho uses the state to pick which register to check.
Credential Type values
These are the codes the Credential Type column accepts. Anything else is skipped with an "unknown credential type" warning in your sync report.
| Code | What it is | Oho verifies it |
|---|---|---|
wwcc | Working With Children Check. State names it — QLD is the Blue Card, NT the Ochre Card, TAS the WWVP Registration, ACT the WWVP Check. | NSW, VIC, QLD, WA, SA, TAS, NT. ACT capture-only |
wwvp | Working With Vulnerable People Registration, when you'd rather name it directly than as wwcc + TAS. | TAS |
ndws | NDIS Worker Screening Check, against the NDIS Quality and Safeguards Commission register. | Australia-wide |
ahpra | AHPRA registration — nurses, doctors, allied health. | Australia-wide |
teacher | Teacher registration. State picks the board — VIT, NESA, QCT and the state TRBs. | NSW, VIC, QLD, WA, SA, TAS, NT. ACT capture-only |
vevo | VEVO visa entitlement check with the Department of Home Affairs. | Australia-wide |
npc | A National Police Check you already hold from a prior system. See the note below. | Loaded as a completed check, not re-run |
passport | Passport. | No — recorded and tracked for expiry |
driverslicense | Driver's licence. Add the state in the State column. | No — recorded and tracked for expiry |
firstaid | First aid certificate. | No — recorded and tracked for expiry |
cpr | CPR certificate. | No — recorded and tracked for expiry |
driverslicense_act … driverslicense_wa | The same, with the state baked into the code. One per state and territory. | No — recorded and tracked for expiry |
| Your own custom credential codes | Anything you've defined yourself. Use the code Oho shows you, or the slugified name. | No — see Create a custom credential |
The Exemptions sheet takes a shorter list than Credentials: wwcc, wwvp, teacher, ahpra, ndws, npc, vevo, visaentitlement, righttowork, driverslicense, firstaid, cpr. It has no passport, and no per-state driverslicense_* — use driverslicense with the State column. As on the Credentials sheet, a code that isn't on the list is skipped.
"Oho verifies it" means Oho checks the number against the issuing register and keeps re-checking it. Everything else is stored, shown on the worker's profile, and tracked for expiry — Oho just can't confirm it with the issuer.
npc rows don't trigger a new police check. Oho loads them as a completed, historic check so the worker's record is accurate from day one. Two conditions: leave State blank or set it to AUS, and give the row an Issue Date — without one the row is skipped, because the check's expiry is calculated from it.
Credentials Oho doesn't verify still belong in your import — they count towards compliance and Oho tracks their expiry. If the type you need isn't listed, create it as a custom credential first, then use its code here.
Applicants
One row per candidate you're still considering. 7 columns. Fill this sheet in only if you want to bring a recruitment list in alongside your workforce — otherwise leave it blank.
| Column | Needed? | What it expects |
|---|---|---|
| Applicant ID | Required — key | Their unique ID in your ATS or HR system. Applicants are keyed on it, so a row without one is skipped. |
| Organisation | Recommended | The organisation they're being considered for. Leave it blank and the applicant imports unassigned. |
| First Name | Required | Their given name. |
| Last Name | Required | Their family name. |
| Recommended | Where Oho sends their Recruitment Check. Applicants with no email address import — you just can't send them a check. | |
| Phone | Optional | International format, for example +61 4 1234 5678. |
| External ID | Optional | A second reference of your own, for example an ATS reference. |
A blank Applicant ID, or no name in either name column. Note that Applicant ID carries no * in the template, unlike the other key columns — Oho keys applicants on it regardless, so treat it as required.
Applicants don't take credential rows — their credentials arrive when they complete a Recruitment Check. When you take an applicant on, you promote them to a worker and their credentials carry across. See Applicants.
Exemptions
An exemption records that a worker is formally excused from a requirement — a registered teacher exempt from holding a Queensland Blue Card, for example. Exemptions count towards compliance, so a properly exempt worker doesn't also need the underlying card.
The sheet takes the same 9 columns as Credentials, with two differences in meaning:
- Credential Type names the requirement the worker is excused from, rather than a card they hold.
- State is what makes the exemption specific —
wwcc+QLDis the Blue Card exemption.
The exact codes the Exemptions sheet takes are listed with the Credential Type values above.
Worker ID, Credential Type and Reference Number are required, exactly as on the Credentials sheet — and State matters just as much here, because it's what turns wwcc into the specific state exemption.
Use this sheet when you're loading a batch of known exemptions alongside your workforce. For one-off exemptions — and where you need to capture a reason and a review-by date — record them on the worker's profile instead: see Record an exemption.
When rows don't import
| What you see | Why | Fix |
|---|---|---|
| A column is ignored entirely | Its heading was renamed, moved, or deleted | Restore the heading exactly as the template has it |
| Some worker rows missing | Worker ID is blank, or the row has no name | Fill in Worker ID and at least one name column |
| Some credential rows missing | Worker ID, Reference Number or Credential Type is blank — or the Credential Type isn't one Oho accepts | Fill all three, and use an accepted Credential Type code |
| A credential has no worker | Its Worker ID isn't on the Workers sheet | Use the same Worker ID on both sheets |
| The same person imported twice | Their Worker ID changed between runs | Keep Worker ID stable for the life of the person's record |
| A value was rejected | It isn't one of the accepted values | Use one of the code values above. Case doesn't matter — spelling does |
More in Run and verify your first sync.
Related
- Import from Excel or Google Sheets — the full step-by-step walkthrough
- Map your fields — match keys, and value mapping for HRIS sources
- Connect Excel · Connect Google Sheets · Connect SFTP
- Workers — organisations, status, and matching