Update an employee
Update an employee: name, email addresses (emails, replaced whole; email and personalEmail are deprecated), phone, gender, picture, manager, employment type, job title, teams, work location, legal entity, home address, start date and termination date. Only the provided fields are changed; omitted fields are left untouched.
teams replaces the full set of teams. job, workLocation, legalEntity and teams accept either an existing reference id or a name — a new reference is created when the name does not match an existing one.
For an employee synchronised from a connected HRIS, the fields that HRIS keeps in sync cannot be changed here: the request is refused with FIELDS_MANAGED_BY_HRIS and the list of refused fields, and nothing is written — change them in the HRIS. employmentType is never synced.
terminationDate sets the last day only. It starts no offboarding, and no operation of this API starts one: an admin starts it from the employee in the Primo cockpit, and an employee synchronised from an HRIS gets it from the sync. When an offboarding is already open, its termination date follows; clearing the date while it is open is refused with OFFBOARDING_OPEN.
Authorizations
Use your Primo API key in the Authorization header as Bearer <API_KEY>.
Path Parameters
Body
First name of the employee
1Last name of the employee
1Deprecated — use emails instead. Only added to emails.
^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$Deprecated — use emails instead. Only added to emails; null changes nothing.
^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$Every email address of the employee, replaced whole. An address another employee holds refuses the update (409).
20^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$Phone number of the employee
Gender of the employee
MALE, FEMALE, OTHER, PREFER_NOT_TO_DISCLOSE URL of the employee profile picture
ID of the manager employee
Employment type of the employee
INTERNAL, CONTRACTOR Job title. Created if it does not exist yet.
Teams the employee belongs to. Replaces the current set. Teams are created if they do not exist yet.
Work location. Created if it does not exist yet.
Legal entity. Created if it does not exist yet.
Personal (home) address of the employee. Replaces the whole address; null removes it.
First day of the employee (YYYY-MM-DD); null clears it.
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$Last day of the employee (YYYY-MM-DD). When an offboarding is open, its termination date follows. Null clears it, refused while an offboarding is open.
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$Response
Deprecated — use emails on getEmployee. Primary address of the employee, derived from emails; null when they have none.
Teams the employee belongs to. Empty only when no team is assigned — group by name to count per team.
Job titles held by the employee. Empty only when no job title is assigned.
Employee groups the employee belongs to.
Null when the employee has no onboarding.
PENDING, SCHEDULED, IN_PROGRESS, CLOSED, CANCELED Null when the employee has no offboarding.
PENDING, SCHEDULED, IN_PROGRESS, CLOSED, CANCELED When the last MDM enrollment request was emailed to the employee (ISO 8601). Null if none ever was.
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$Whether the built-in enrollment reminder job is allowed to re-send to this employee.
Where the employee stands in the built-in enrollment reminder cycle. See the tool description for what each value means.
NEVER_SENT, REMINDER_CYCLE_ACTIVE, REMINDER_CYCLE_STALLED, REMINDERS_DISABLED Ids of the devices assigned to the employee.
Ids of the accessories assigned to the employee.
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$Every email address the employee is known by, the work and personal ones included. A new SaaS account is created with one of them: pass it as email to provisionSaasIdentity or createSaasProvisioningIntent.
Employment type of the employee
INTERNAL, CONTRACTOR Whether the employee works remotely. Derived from the absence of a work location: an employee with no assigned work location has no office to deliver equipment to and is treated as remote.
Office the employee is attached to. Null for a remote employee.
Legal entity employing them.
Id of the manager employee.
Employment start date (ISO 8601).
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$Employment end date (ISO 8601).
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$Deprecated — use emails instead. Personal address of the employee, derived from emails: the first one on none of the company's domains, other than the primary address. Null when there is none.
Personal (home) address of the employee, when known. Use it as the HOME shipping address when ordering equipment for a remote employee. Null when the employee record has no address — ask for one instead of composing it.