Import from Vacation Tracker
Move from Vacation Tracker with a Users export and an optional leave history report — CSV or Excel, previewed before anything is written.
Updated 13 October 2026
Rotaleave reads Vacation Tracker exports directly — CSV or Excel. Importing is admin-only, from Settings → Data → Import / Migrate, the People page’s Import / Migrate button, or during onboarding on the Your people step — set Source to Vacation Tracker.
Get your Vacation Tracker exports
- Log in to Vacation Tracker as an admin.
- From the Exports / Reports page, download a Users export — required.
- Optionally download a Leave history report for the date range you want to bring across.
Vacation Tracker has no self-serve API, so the file export is the supported route.
What comes across
| Column | Becomes in Rotaleave |
|---|---|
| identifies the person (must be unique) | |
| Name | Name (split into first/last) |
| Department | Department |
| Location | Team |
| Role | Role (Administrator becomes admin, Approver becomes manager, User becomes employee) |
| Status | Active, or archived for inactive users |
| Start Date (users file) | Start date |
| Leave Type | Leave type (created if missing) |
| Start Date / End Date (leave file) | Leave dates |
| Part of Day | Half-day/day-part |
| Status (leave file) | Approved, pending, denied (declined) or cancelled; other statuses, such as expired, are skipped with a warning |
| Request ID | used to keep re-runs safe |
One quirk worth knowing: Vacation Tracker sets quotas per leave type, so no annual allowance is imported — your organisation’s default allowance applies until you set allowances and opening adjustments. Remaining balances are never imported either.
Working days: the file has none, so everyone starts on Monday to Friday, full days — unless their department already has a default working-hours template in Rotaleave, in which case they get that. Set proper working hours templates afterwards.
Leave types: new ones are created as needing approval, and whether each comes off the allowance is guessed from its name. Only a type called exactly Sick, Sickness, Sick leave, Unpaid, Unpaid leave, Bank holiday or Personal/carer’s is set not to (capitals don’t matter); every other name, such as Sickness absence or Maternity, is set to come off the allowance. The preview lists every guess as a warning, so read them before you import.
Preview, then import
- Upload the Users file (and the leave history file if you have one).
- Click Preview — nothing is written yet. You get Created / Updated / Skipped counts per entity plus warnings for anything the importer didn’t recognise.
- The Import button stays disabled until a preview exists, and while the preview shows row errors — the dry run isn’t optional, by design.
- Happy with the counts? Click Import and look for “Import complete.”
![]()
The import is refused if it would leave an organisation with no trial or subscription with more than 10 people, and it can’t be committed from the practice company.
Running it again
People are matched by email and leave records by their request id, so re-importing the same or a corrected file updates rather than duplicates. Nothing is duplicated, but an update puts the file’s values back over what you changed in Rotaleave. This applies just as much to a first import into an organisation that already has people:
- People. A matched person’s name, role, department, home team (from Location) and start date are taken from the file again, and any personal allowance you set is cleared back to your organisation’s default, because the file carries none. A blank start date in the file blanks it in Rotaleave, and the allowance unit goes back to your organisation’s unit. Their working days are reset to their department’s default working-hours template, or to Monday to Friday if the department has none.
- Roles, including yours. Role is set from the file’s Role column every time: Administrator becomes admin, Approver becomes manager, and User, a blank or anything the importer doesn’t recognise becomes employee (so does everyone, if the file has no Role column). If your own email is in the Users file and your row isn’t marked Administrator, importing takes away your admin role in Rotaleave — and if you were the only admin, nobody in the organisation can give it back. Check your own row before you import.
- Archived or not. Status follows the file’s Status column. Someone you archived in Rotaleave who is active in the file is un-archived (back to invited, and counting as a seat); someone the file marks as inactive is archived.
- Department managers. Every department named in the file has all its managers removed, because the file names none (an Approver gets the manager role, but isn’t made the manager of a department). Put them back under Settings → People & structure → Departments afterwards.
- Leave types. A leave type in the leave history file with the same name as one you already have is overwritten: colour, whether it comes off the allowance (guessed from the name, as above), needs approval (set to yes), private (set to no) and removes presence (set to yes).
Iterate until the preview is clean.
After the import
- Set allowances and opening adjustments — see the quirk above.
- Decide your bank holiday policy.
- Invite everyone when you’re ready. Importing sends no invitations itself, but it doesn’t stay silent: anyone imported as a current member of staff who hasn’t accepted is automatically emailed a reminder with a sign-up link 2 days after the import, then at 7, 14, 30, 60, 90 and 120 days. The reminders stop once the person accepts, is archived or uses the unsubscribe link in the email, and none are sent while the organisation is closing. People imported as archived get none. There’s no setting to hold the reminders back, so import when you’re ready for people to hear from Rotaleave.