Workers

Bulk Importing Workers

Import hundreds or thousands of workers from a spreadsheet, check every row in a preview before anything is saved, and update existing workers safely.

Talk to us Browse all guides

Last checked against the product:

Before You Start

Who can do this, and where.

Before you start

  • Agency console: the Admin access level or a super admin. Importing needs both "Add and change workers" and "Change pay and charge rates", so the Coordinator preset cannot import.
  • Client dashboard: the Manager role (tenant_manager) or Admin role (tenant_admin).
  • The client, its sites, and any cost codes and departments you name in the file already set up.

Agency console: Workforce > Import workers. Client dashboard: Workforce > Import workers.

The import reads a CSV file, checks every row on its own and shows you a preview. Nothing is saved until you confirm. It reads files from Excel in any common encoding, semicolon-separated files and quoted cells, and keeps accented names such as Łukasz, Ștefan and Rūta intact.

The Template

Start from ours.

Agency console: click Download CSV template. Client dashboard: click Download template. In Excel, save as "CSV UTF-8" to keep accents. Other encodings are converted and flagged in the preview.

Columns

Only the employee ID is always needed.

Column Notes
employee_id Badge or payroll number. Always required.
name Full name. Needed for a new worker.
client_name, location_name The client (agency console) and home site, by name. Or set a default on the upload screen.
email, phone Used for set-up links and messages. Phone must be a UK mobile for texts.
hourly_rate, charge_rate 11.44, £11.44 and 11,44 are all read as 11.44. A rate that is not a number is an error, never saved as blank.
job_role, start_date, preferred_language Dates as DD/MM/YYYY. Language is en, pl, ro or lt.
cost_code, department Must already exist.
pin Optional starting PIN, stored only as a one-way hash.
sms_opt_in Whether the worker has agreed to texts.
max_hours_per_week, hours_limit_reason, hours_limit_hard The weekly hours limit (for example 20), why (for example Student visa, term time) and whether it blocks booking (yes) or only warns (no). See Skills, Tickets and Hours Limits.
skills Skill names from the client's list, separated by commas, each with an optional expiry date in brackets, for example FLT counterbalance (31/03/2027), Banksman. They are added to the worker, never removed.

The first row must be the headings. Use any columns, in any order.

Import (Agency Console)

Two steps.

Upload and preview

Choose the CSV file. Optionally pick a Default client, Default site (new workers) and Default hourly rate (new workers). Tick Reactivate returning workers if inactive or dormant workers in the file should become active again. Click Preview import.

Check the preview

Every row shows whether it will be added, updated, left alone or skipped, with the reason for any error or warning. Tick Only rows with errors or warnings to focus on problems.

Import

Click Import (it shows how many rows will be written and how many skipped). Or click Start again.

Import (Client Dashboard)

Your own workers only.

Upload

Click Upload CSV and choose the file. Optionally pick a Default location (new workers) and tick Reactivate returning workers. Click Preview import.

Check the preview and import

Read the preview, then click Import, or Start again. location_name, cost_code and department must match yours; case does not matter.

How Rows Are Handled

Safe updates.

An existing employee_id at the same client is updated.
Employee IDs are unique within each client, not across TempClock. The same employee_id at another client is a different worker: it is never changed, and your file can add your own worker with that number, so you can keep your payroll numbers.
In the agency console, the preview warns when a new worker's employee_id is also used at another client, so you can check it is not the same person.
The same employee_id twice in one file for the same client is an error on the second row.
Blank cells never overwrite what is already stored, and columns you leave out are not touched.
A bad email, phone, rate, date, language, cost code, department or site makes the whole row an error, so it can be fixed rather than imported half right.
Rows with errors are skipped and every other row is saved. Fix the file and import it again: rows that have not changed are left alone.
Each import is written to the audit log.

After Importing

Next steps.

Send face set-up links to everyone at once with Workforce > Batch re-enroll (agency console only). See Face Enrolment.
Print badge cards on Workforce > Badges.
Workers who say no to face clock-in set a PIN from their link. See Worker PINs.

Limits

Worth knowing.

Up to 10,000 rows per file. In the agency console the preview lists the first 2,000 rows.
The client dashboard imports into your own client only.

Troubleshooting

Common problems.

Problem What to do
Accents look wrong in the preview Save from Excel as "CSV UTF-8" and upload again.
Every row says the client is missing Add a client_name column, or choose a Default client.
A returning leaver was not reactivated Tick Reactivate returning workers and import the row again.

Know who turned up, and pay every hour right.

Face-verified clock-ins, live geofencing and payroll-ready timesheets in one system. Tell us how your shifts run and we will show you how it fits.

Hosted in the EU · Your largest site live first, with us alongside · No app needed to clock in