Skip to content
PynPyn

Employee File

Employee File turns a spreadsheet into your employee directory. Each row is one employee, each column a Pyn property, and every upload is an upsert by employee id: new rows are added, changed rows are updated. Pyn validates the file before anything is saved and tells you which rows and columns it could not read.

  • You are an admin or owner.
  • Prepare a CSV, XLS or XLSX whose column headers are the property names below. Download Sample File gives you a CSV with every column and five example rows.
  • Every row needs employeeId and primaryEmail. For employees in the US, Canada or Australia, give a timeZone or a postalCode with the country, or Pyn cannot place them in a zone.
The Installed view with the Employee File panel open, showing Download Sample File and Upload.
The Employee File integration under Installed, with the upload panel open.
  1. In Pyn, open Settings in the left navigation, then Available under Integrations.

  2. Select the Employee File tile; its cover reads File Upload. Pyn creates the integration and opens its panel: “Upload a spreadsheet of your employees to get started. Use the sample file to see the expected columns.”

  3. Select Download Sample File and build your file on it, keeping the header row.

  4. Select Upload and choose your file. The panel shows Uploading… while it validates and saves.

  5. On success it reads “Success! Uploaded n records. Head over to the Directory to see employees after processing completes. This can take a minute or two.”

If rows fail, the panel lists them under “There were n errors found in the uploaded file:” with the row and the problem, for example Unknown country: "Engalnd", Could not determine timezone from country "United States". Add a postal code or choose a time zone. or Invalid birthday format. Expected MM-dd, dd/MM, yyyy-MM-dd or ISO8601 datetime. Fix those rows and upload again; the valid rows were saved.

Column Required Notes
employeeId Yes Your stable id for the person; uploads match on it
primaryEmail Yes Work email, also used to match Slack and Google accounts
displayName, legalName, preferredName, jobTitle
personalEmail, secondaryEmail, avatarUri Personal email is used for pre-boarding
status active, inactive or leave
startDate, terminationDate, tenureDate yyyy-MM-dd
birthday MM-dd, dd/MM, yyyy-MM-dd or an ISO date-time
country, postalCode, timeZone Country as a name or ISO code; time zone as an IANA name such as Europe/London
businessUnit, department, division, location, team Become demographics and groups
managerId, buddyId, hrbpId, mentorId The employeeId of the related person

There is no scheduled refresh; the file is read when you upload it. The Advanced tab lists Fields in Employee File with a count per column. You can also add one person at a time with Add employee in Employees, which asks for Full name, Preferred name, Work email, Personal email, Start date, Country, Time zone and Manager, and adds them as an upcoming joiner.

Open Employees a minute or two after the upload. Active rows appear under Active, future start dates under Upcoming, and status of inactive under Inactive. Open a person to check their manager link.

There are no credentials. Upload a new file to change data; rows absent from a later file are left as they were. Deactivate keeps the data but ignores uploads; Activate re-enables them.

What you see What it means
“The uploaded file was empty” No data rows below the header, or the header row is missing.
A row error naming country or postalCode The country name was not recognised, or the postal code did not resolve to a zone. Add timeZone.
A manager is not linked managerId does not match any row’s employeeId.
Someone shows twice Their employeeId changed between uploads. Keep ids stable.