Import payroll history
Bring past payments over from the Google Sheets payroll, matched to each employee.
What it's for
Before this app, payroll lived in a Google Sheet. Import payroll history copies those past payments into the app, so each person's pay history and the payroll reports are complete. Each imported row becomes a payment on the right week, with an activity note saying it was imported.
Before you start
- You're signed in as an Administrator.
- The people in the sheet have employee profiles here.
- The sheet has at least the columns Employee Name, Amount Paid and Date. Notes, Status and Week start are optional.
Testing on shared data
There is no undo for an import. While testing, import only one or two rows for your made-up employee, on a week agreed with the owner.
Steps
Open the import page
Go to People → Payroll, click Reports, then Import history. The title is Import payroll history: "Bring past payments over from the Google Sheets payroll."
Paste or upload the sheet
In 1. Paste or upload the sheet:
- Source name: a name to recognise this import later, for example "Payroll 2026 (Google Sheets)". Left empty, it becomes "Google Sheets payroll" (or the file name when you upload a file).
- Sheet data: in Google Sheets, select the rows including the header row, copy them and paste them here. Or click Upload file to pick a .csv or .tsv file.
A small sheet looks like this:
| Employee Name | Amount Paid | Date | Notes |
|---|---|---|---|
| Jane Example | 410.50 | 9/18/2026 | Week of 9/14 |
Click Preview (uploading a file previews it at once). Up to 100 payments per import.
Match the employees
In 2. Review and match employees you see how many payments and their total, for example "3 payments · $1,325.25", and "Rows already in payroll for the same employee and week are skipped, never overwritten."
Each row shows Row (its row number in the sheet), Name in sheet, Employee, Amount, Paid date, Week and Status. Rows whose name matches exactly one profile are matched for you. For the others, a red box says how many rows need an employee: pick the person in Choose employee… on each highlighted row.
Import
Click Import followed by the number of payments, for example Import 3 payments. The button stays greyed out while a row has no employee. It reads Importing… while it works.
What you should see
- A card Import complete, for example "Imported 2 payments; 1 skipped as duplicates.", with the buttons See payroll reports and Import another sheet.
- On Payroll reports, the import appears under Recent imports, and the imported weeks appear in Payroll history.
- On the Payroll page for that week, the imported payment shows its amount as Other pay. Its Activity says "Imported from history".
How the sheet is read
- Column names can be written in any case. The app also accepts "Employee" or "Name"; "Amount", "Paid Amount" or "Payment Amount"; "Paid Date" or "Payment Date"; "Note" or "Pay Period"; "Payment Status"; "Week of" or "Payroll Week". Any other column is added to the note.
- Dates can be written 2026-09-18, 9/18/2026, 9/18/26 or 9-18-2026. Amounts can include a dollar sign and commas, such as $1,200.00.
- Name matching ignores capitals, accents and punctuation, and must match exactly one profile (its preferred name, or first and last name).
- Status: a status containing "skip" becomes Skipped; "pending" or "open" becomes Pending; "approv" becomes Approved; anything else, or no Status column, becomes Paid.
- Week: the Week column (moved back to its Monday), else a "Week of 3/4" in the note, else the week of the paid date.
- The whole amount is recorded as other pay.
- A person who already has a payment on that week (or appears twice for the same week in the sheet) is skipped.
Test checklist
Good to know
Known issues
- Rows the app can't read (no name, no date, or an amount such as "abc") are left out of the preview without a message. Compare the number of payments in step 2 with your sheet.