Skip to content
PynPyn

Employee properties

An employee profile is a fixed set of properties plus any custom fields your HRIS adds. The key in the first column is the column header Pyn expects in an Employee File upload and the name a token uses.

Key Label Notes
displayName Display Name The full name shown everywhere.
preferredName Preferred Name Used by tokens such as the first name in a greeting.
legalName Legal Name For documents.
jobTitle Job Title
primaryEmail Primary Email Address The work address messages go to. Required on an upload.
personalEmail Personal Email Address Shown in italics in lists when there is no work address.
secondaryEmail Secondary Email Address
avatarUri Avatar Image A URL. Initials are shown when empty.
startDate Start Date Most recent or upcoming start. yyyy-MM-dd. Drives Onboarding and anniversary triggers and the Upcoming view.
terminationDate Termination Date yyyy-MM-dd.
tenureDate Tenure Date Original start for seniority, when it differs from Start Date.
probationEndDate Probation End Date Shown only when a source supplies it.
birthday Birthday MM-dd on the profile; an upload also accepts dd/MM and yyyy-MM-dd.
businessUnit, department, division, location, team Business Unit, Department, Division, Location, Team Free text. Department, Division, Location and Country are demographics from the start.
employmentType Employment Type Free text such as Full-Time or Contractor. A demographic from the start.
jobClass Job Class Free text; can be a demographic.
country Primary Country ISO code on the profile; an upload accepts a name.
postalCode Postal Code Used to resolve a time zone for the US, Canada and Australia.
timeZone Time Zone IANA name.
locale Locale BCP 47 tag such as en-US. Resolved from country when absent.
active Active status Active, Inactive, On Leave or Removed. status on an upload.
stage Lifecycle Worked out by Pyn; see below.
exempt Exempt Status Exempt or Non-Exempt (US).
workerType, employeeType, timeType Worker Type, Employee Type, Time Type Contingent Worker / Employee; Fixed Term / PEO / Regular; Full-Time / Part-Time. From Workday and ADP.
removed Removed Set when the person has gone from the source system.
returningEmployee Returning Employee Rehired after leaving (BambooHR).

An HRIS can add custom fields; they appear at the end of Details and in the Filters list. A string, boolean or single-select property can become a demographic: Create a demographic.

Relation Upload column Used for
Manager managerId The Manager recipient and tokens; the Managers relationship group.
Buddy buddyId The Buddy recipient; the Buddies group.
HRBP hrbpId The HRBP recipient and tokens; the HRBPs group.
Mentor mentorId The Mentors group.

Each upload column holds the other person’s employeeId from the same file. An HRIS supplies its own ids and Pyn matches them.

Every source record carries an external key: the system’s own id (a BambooHR employee id, a Workday worker id, your employeeId in an Employee File) and the person’s email. Pyn matches records to one profile on those keys, so a spreadsheet row and an HRIS record with the same work email become one employee. Signing in with an email that matches a profile links the user to it.

Values are merged source by source in this order, first wins: addendum (form answers and webhooks), Workday, BambooHR, ADP, Greenhouse, Ashby, Rippling, HiBob, Pyn Classic, Employee File, Sample Data, Slack. The Sources tab on a profile lists the records, and Disconnect on one removes it from the merge.

Pyn orders the start date, the termination date and today, and reads the stage from the order:

Dates Stage
Removed from the source Terminated, whatever the dates say.
Start date in the future (termination absent or earlier) Upcoming Joiner
Start date in the past, no termination or termination in the future, active in a source Current Active Employee
Start date in the past and the person is inactive Terminated; except within a day of the start date, when they stay Upcoming Joiner to cover an HRIS that has not caught up.
Termination date in the past Terminated
No dates at all Current Active Employee if active, else Terminated

“Active” means the source says so and that source is an employment system. Slack, Google Workspace and Microsoft 365 are not: a person known only to them reads as inactive. An active of leave keeps the person out of the Active view and in the Inactive Employees lifecycle group under the Lifecycle demographic.

  1. The time zone the source supplies, if it is a valid IANA name, a recognised abbreviation or a Windows time-zone name.
  2. Otherwise the country and postal code, for the US (ZIP), Canada and Australia.
  3. Otherwise the country, if it has a single time zone.
  4. Otherwise none. Messages to the person send in the workspace’s time zone from Settings > Account Settings, and an Employee File upload reports the row so you can add a time zone or postal code.