Skip to main content
PATCH
Update an employee
Key: Write Scope: Company

Authorizations

Authorization
string
header
required

Use your Primo API key in the Authorization header as Bearer <API_KEY>.

Path Parameters

employeeId
string
required

Body

application/json
firstName
string

First name of the employee

Minimum string length: 1
lastName
string

Last name of the employee

Minimum string length: 1
email
string<email>
deprecated

Deprecated — use emails instead. Only added to emails.

Pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
personalEmail
string<email> | null
deprecated

Deprecated — use emails instead. Only added to emails; null changes nothing.

Pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
emails
string<email>[]

Every email address of the employee, replaced whole. An address another employee holds refuses the update (409).

Maximum array length: 20
Pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
phone
string | null

Phone number of the employee

gender
enum<string> | null

Gender of the employee

Available options:
MALE,
FEMALE,
OTHER,
PREFER_NOT_TO_DISCLOSE
picture
string | null

URL of the employee profile picture

managerId
string | null

ID of the manager employee

employmentType
enum<string>

Employment type of the employee

Available options:
INTERNAL,
CONTRACTOR
job
object | null

Job title. Created if it does not exist yet.

teams
object[]

Teams the employee belongs to. Replaces the current set. Teams are created if they do not exist yet.

workLocation
object | null

Work location. Created if it does not exist yet.

Legal entity. Created if it does not exist yet.

address
object | null

Personal (home) address of the employee. Replaces the whole address; null removes it.

startDate
string<date> | null

First day of the employee (YYYY-MM-DD); null clears it.

Pattern: ^(?:(?:\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])))$
terminationDate
string<date> | null

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.

Pattern: ^(?:(?:\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

default - application/json
id
string
required
firstName
string
required
lastName
string
required
email
string | null
required
deprecated

Deprecated — use emails on getEmployee. Primary address of the employee, derived from emails; null when they have none.

teams
object[]
required

Teams the employee belongs to. Empty only when no team is assigned — group by name to count per team.

jobs
object[]
required

Job titles held by the employee. Empty only when no job title is assigned.

groups
object[]
required

Employee groups the employee belongs to.

onboardingStatus
enum<string> | null
required

Null when the employee has no onboarding.

Available options:
PENDING,
SCHEDULED,
IN_PROGRESS,
CLOSED,
CANCELED
offboardingStatus
enum<string> | null
required

Null when the employee has no offboarding.

Available options:
PENDING,
SCHEDULED,
IN_PROGRESS,
CLOSED,
CANCELED
lastEnrollmentRequestSentAt
string<date-time> | null
required

When the last MDM enrollment request was emailed to the employee (ISO 8601). Null if none ever was.

Pattern: ^(?:(?:\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))$
enrollmentReminderEnabled
boolean
required

Whether the built-in enrollment reminder job is allowed to re-send to this employee.

enrollmentReminderStatus
enum<string>
required

Where the employee stands in the built-in enrollment reminder cycle. See the tool description for what each value means.

Available options:
NEVER_SENT,
REMINDER_CYCLE_ACTIVE,
REMINDER_CYCLE_STALLED,
REMINDERS_DISABLED
deviceIds
string[]
required

Ids of the devices assigned to the employee.

accessoryIds
string[]
required

Ids of the accessories assigned to the employee.

createdAt
string<date-time>
required
Pattern: ^(?:(?:\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))$
updatedAt
string<date-time>
required
Pattern: ^(?:(?:\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))$
emails
string[]
required

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.

employmentType
enum<string>
required

Employment type of the employee

Available options:
INTERNAL,
CONTRACTOR
isRemote
boolean
required

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.

workLocation
object | null

Office the employee is attached to. Null for a remote employee.

Legal entity employing them.

managerId
string | null

Id of the manager employee.

startDate
string<date-time> | null

Employment start date (ISO 8601).

Pattern: ^(?:(?:\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))$
terminationDate
string<date-time> | null

Employment end date (ISO 8601).

Pattern: ^(?:(?:\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))$
personalEmail
string | null
deprecated

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.

address
object | null

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.