Employee data model

View field support, webhooks, and list parameters for each integration on the Supported Integrations page.

FieldTypeRequiredDescription
idstringNo
created_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
updated_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
namestringNo
first_namestringNo
last_namestringNo
emailsHrisEmail[]No
emails[].emailstringYes
emails[].typeenumNoValues: WORK, HOME, OTHER
titlestringNo
job_idstringNothe hris_job (position) this employee holds; their primary job when they hold more than one
manager_idstringNo
employment_statusenumNoValues: ACTIVE, INACTIVE
genderenumNoValues: MALE, FEMALE, INTERSEX, TRANS, NON_BINARY
telephonesHrisTelephone[]No
telephones[].telephonestringYes
telephones[].typeenumNoValues: WORK, HOME, OTHER, FAX, MOBILE
date_of_birthstring (date-time)NoYYYYMM/DD
employee_numberstringNothe company's ID for this employee
hired_atstring (date-time)NoThe employee's start date (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
terminated_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
termination_reasonstringNo
marital_statusenumNoValues: MARRIED, SINGLE
employment_typeenumNoValues: FULL_TIME, PART_TIME, CONTRACTOR, INTERN, CONSULTANT, VOLUNTEER, CASUAL, SEASONAL, FREELANCE, OTHER
addressobjectNo
address.address1stringNo
address.address2stringNo
address.citystringNo
address.regionstringNo
address.region_codestringNo
address.postal_codestringNo
address.countrystringNo
address.country_codestringNoISO 2-digit country code
language_localestringNo
currencystringNo
timezonestringNo
image_urlstringNoThis link expires after 1 hour.
company_idstringNo(reference to HrisCompany)
pronounsstringNo
employee_rolesenumNoValues: ADMIN, MANAGER, RECRUITER, SALESREP, INTERVIEWER, USER, EMPLOYEE
compensationHrisCompensation[]No
compensation[].typeenumNoValues: SALARY, BONUS, STOCK_OPTIONS, EQUITY, OTHER, HOURLY, COMMISSION
compensation[].amountnumberNo
compensation[].currencystringNo
compensation[].frequencyenumNoValues: ONE_TIME, DAY, QUARTER, YEAR, HOUR, MONTH, WEEK, BIWEEKLY, SEMIMONTHLY
compensation[].group_idstringNo(reference to HrisGroup)
compensation[].notesstringNo
salutationstringNoMr. Mrs. Ms.
biostringNo
ssn_sinstringNo
groupsHrisGroup[]NoWhich groups/teams/units that this employee/user belongs to. May not have all of the Group fields present, but should have id, name, or email.
groups[].idstringNo
groups[].created_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
groups[].updated_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
groups[].namestringNo
groups[].descriptionstringNo
groups[].parent_idstringNo
groups[].typeenumNoValues: TEAM, GROUP, DEPARTMENT, DIVISION, BUSINESS_UNIT, BRANCH, SUB_DEPARTMENT, PAY_GROUP
groups[].user_idsstring[]No(reference to HrisEmployee)
groups[].manager_idsstring[]No
groups[].is_activebooleanNo
groups[].company_idstringNo(reference to HrisCompany)
groups[].pay_frequencyenumNopay cycle when type is PAY_GROUP Values: ONE_TIME, DAY, QUARTER, YEAR, HOUR, MONTH, WEEK, BIWEEKLY, SEMIMONTHLY
groups[].next_paid_atstring (date-time)Nonext pay date when type is PAY_GROUP (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
locationsHrisLocation[]No
locations[].idstringNo
locations[].created_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
locations[].updated_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
locations[].namestringNo
locations[].descriptionstringNo
locations[].addressHrisLocation_addressNo
locations[].address.address1stringNo
locations[].address.address2stringNo
locations[].address.citystringNo
locations[].address.regionstringNo
locations[].address.region_codestringNo
locations[].address.postal_codestringNo
locations[].address.countrystringNo
locations[].address.country_codestringNoISO 2-digit country code
locations[].parent_idstringNo
locations[].external_identifierstringNo
locations[].telephonesHrisTelephone[]No
locations[].telephones[].telephonestringYes
locations[].telephones[].typeenumNoValues: WORK, HOME, OTHER, FAX, MOBILE
locations[].timezonestringNo
locations[].currencystringNo
locations[].language_localestringNo
locations[].is_activebooleanNo
locations[].is_hqbooleanNoif this location is the headquarters of the company
locations[].company_idstringNo(reference to HrisCompany)
metadataHrisMetadata[]No
metadata[].idstringNo
metadata[].valueobjectNo
metadata[].namespacestringNo
metadata[].formatenumNoValues: TEXT, NUMBER, DATE, BOOLEAN, FILE, TEXTAREA, SINGLE_SELECT, MULTIPLE_SELECT, MEASUREMENT, PRICE, YES_NO, CURRENCY, URL
metadata[].extra_dataobjectNo
metadata[].slugstringNo
storage_quota_allocatednumberNo
storage_quota_usednumberNo
storage_quota_availablenumberNo
relationshipsHrisEmployeerelationship[]Nothe employee's personal relationships (eg. emergency contacts, spouse, dependants, ...)
relationships[].namestringNo
relationships[].first_namestringNo
relationships[].last_namestringNo
relationships[].emailsHrisEmail[]No
relationships[].emails[].emailstringYes
relationships[].emails[].typeenumNoValues: WORK, HOME, OTHER
relationships[].telephonesHrisTelephone[]No
relationships[].telephones[].telephonestringYes
relationships[].telephones[].typeenumNoValues: WORK, HOME, OTHER, FAX, MOBILE
relationships[].addressHrisEmployeerelationship_addressNo
relationships[].address.address1stringNo
relationships[].address.address2stringNo
relationships[].address.citystringNo
relationships[].address.regionstringNo
relationships[].address.region_codestringNo
relationships[].address.postal_codestringNo
relationships[].address.countrystringNo
relationships[].address.country_codestringNoISO 2-digit country code
relationships[].typeenumNoValues: EMERGENCY, SPOUSE, CHILD, PARENT, SIBLING, FRIEND, OTHER
relationships[].is_dependentbooleanNo
relationships[].is_beneficiarybooleanNo
relationships[].start_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
relationships[].end_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
has_mfabooleanNodoes the user/employee have multi-factor authentication enabled
timeoff_days_totalnumberNoTotal time off allowance for the current leave period, in days (when reported by the provider)
timeoff_days_usednumberNoTime off days used or booked in the current leave period (when reported by the provider)
flsa_statusenumNoUS Fair Labor Standards Act classification Values: EXEMPT, NON_EXEMPT, SALARIED_NONEXEMPT, OWNER
pay_frequencyenumNohow often the employee is paid (eg. BIWEEKLY) Values: ONE_TIME, DAY, QUARTER, YEAR, HOUR, MONTH, WEEK, BIWEEKLY, SEMIMONTHLY

TypeScript

TypeScript
export type HrisEmployee = {
	id?: string;
	created_at?: string-time; // (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	updated_at?: string-time; // (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	name?: string;
	first_name?: string;
	last_name?: string;
	emails?: [];
	title?: string;
	job_id?: string; // the hris_job (position) this employee holds; their primary job when they hold more than one
	manager_id?: string;
	employment_status?: 'ACTIVE' | 'INACTIVE';
	gender?: 'MALE' | 'FEMALE' | 'INTERSEX' | 'TRANS' | 'NON_BINARY';
	telephones?: [];
	date_of_birth?: string-time; // YYYYMM/DD
	employee_number?: string; // the company's ID for this employee
	hired_at?: string-time; // The employee's start date (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	terminated_at?: string-time; // (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	termination_reason?: string;
	marital_status?: 'MARRIED' | 'SINGLE';
	employment_type?: 'FULL_TIME' | 'PART_TIME' | 'CONTRACTOR' | 'INTERN' | 'CONSULTANT' | 'VOLUNTEER' | 'CASUAL' | 'SEASONAL' | 'FREELANCE' | 'OTHER';
	address?: {
		address1?: string; 
		address2?: string; 
		city?: string; 
		region?: string; 
		region_code?: string; 
		postal_code?: string; 
		country?: string; 
		country_code?: string; // ISO 2-digit country code 
	};
	language_locale?: string;
	currency?: string;
	timezone?: string;
	image_url?: string; // This link expires after 1 hour. 
	company_id?: string; // (reference to HrisCompany)
	pronouns?: string;
	employee_roles?: ( 'ADMIN' | 'MANAGER' | 'RECRUITER' | 'SALESREP' | 'INTERVIEWER' | 'USER' | 'EMPLOYEE' )[];
	compensation?: [];
	salutation?: string; // Mr. Mrs. Ms.
	bio?: string;
	ssn_sin?: string;
	groups?: []; // Which groups/teams/units that this employee/user belongs to.  May not have all of the Group fields present, but should have id, name, or email.
	locations?: [];
	metadata?: [];
	storage_quota_allocated?: number;
	storage_quota_used?: number;
	storage_quota_available?: number;
	relationships?: []; // the employee's personal relationships (eg. emergency contacts, spouse, dependants, ...)
	has_mfa?: boolean; // does the user/employee have multi-factor authentication enabled
	timeoff_days_total?: number; // Total time off allowance for the current leave period, in days (when reported by the provider)
	timeoff_days_used?: number; // Time off days used or booked in the current leave period (when reported by the provider)
	flsa_status?: 'EXEMPT' | 'NON_EXEMPT' | 'SALARIED_NONEXEMPT' | 'OWNER'; // US Fair Labor Standards Act classification
	pay_frequency?: 'ONE_TIME' | 'DAY' | 'QUARTER' | 'YEAR' | 'HOUR' | 'MONTH' | 'WEEK' | 'BIWEEKLY' | 'SEMIMONTHLY'; // how often the employee is paid (eg. BIWEEKLY)
	raw?: any;
} 

Zod

Zod
import { z } from 'zod';

export const ZodHrisEmployee = z.object({
	id: z.string().optional(),
	created_at: z.string-time().optional().describe("(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	updated_at: z.string-time().optional().describe("(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	name: z.string().optional(),
	first_name: z.string().optional(),
	last_name: z.string().optional(),
	emails: z.array().optional(),
	title: z.string().optional(),
	job_id: z.string().optional().describe("the hris_job (position) this employee holds; their primary job when they hold more than one"),
	manager_id: z.string().optional(),
	employment_status: z.enum("ACTIVE", "INACTIVE").optional(),
	gender: z.enum("MALE", "FEMALE", "INTERSEX", "TRANS", "NON_BINARY").optional(),
	telephones: z.array().optional(),
	date_of_birth: z.string-time().optional().describe("YYYYMM/DD"),
	employee_number: z.string().optional().describe("the company's ID for this employee"),
	hired_at: z.string-time().optional().describe("The employee's start date (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	terminated_at: z.string-time().optional().describe("(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	termination_reason: z.string().optional(),
	marital_status: z.enum("MARRIED", "SINGLE").optional(),
	employment_type: z.enum("FULL_TIME", "PART_TIME", "CONTRACTOR", "INTERN", "CONSULTANT", "VOLUNTEER", "CASUAL", "SEASONAL", "FREELANCE", "OTHER").optional(),
	address: z.object({
			address1: z.string().optional(),
			address2: z.string().optional(),
			city: z.string().optional(),
			region: z.string().optional(),
			region_code: z.string().optional(),
			postal_code: z.string().optional(),
			country: z.string().optional(),
			country_code: z.string().optional().describe("ISO 2-digit country code")
}).optional(),
	language_locale: z.string().optional(),
	currency: z.string().optional(),
	timezone: z.string().optional(),
	image_url: z.string().optional().describe("This link expires after 1 hour. "),
	company_id: z.string().optional().describe("(reference to HrisCompany)"),
	pronouns: z.string().optional(),
	employee_roles: z( 'ADMIN' | 'MANAGER' | 'RECRUITER' | 'SALESREP' | 'INTERVIEWER' | 'USER' | 'EMPLOYEE' ).optional(),
	compensation: z.array().optional(),
	salutation: z.string().optional().describe("Mr. Mrs. Ms."),
	bio: z.string().optional(),
	ssn_sin: z.string().optional(),
	groups: z.array().optional().describe("Which groups/teams/units that this employee/user belongs to.  May not have all of the Group fields present, but should have id, name, or email."),
	locations: z.array().optional(),
	metadata: z.array().optional(),
	storage_quota_allocated: z.number().optional(),
	storage_quota_used: z.number().optional(),
	storage_quota_available: z.number().optional(),
	relationships: z.array().optional().describe("the employee's personal relationships (eg. emergency contacts, spouse, dependants, ...)"),
	has_mfa: z.boolean().optional().describe("does the user/employee have multi-factor authentication enabled"),
	timeoff_days_total: z.number().optional().describe("Total time off allowance for the current leave period, in days (when reported by the provider)"),
	timeoff_days_used: z.number().optional().describe("Time off days used or booked in the current leave period (when reported by the provider)"),
	flsa_status: z.enum("EXEMPT", "NON_EXEMPT", "SALARIED_NONEXEMPT", "OWNER").optional().describe("US Fair Labor Standards Act classification"),
	pay_frequency: z.enum("ONE_TIME", "DAY", "QUARTER", "YEAR", "HOUR", "MONTH", "WEEK", "BIWEEKLY", "SEMIMONTHLY").optional().describe("how often the employee is paid (eg. BIWEEKLY)"),

});

Python

Python
import dataclasses

@dataclasses.dataclass
class HrisEmployeeEmployment_status(str, Enum):
	ACTIVE = 'ACTIVE'
	INACTIVE = 'INACTIVE'

@dataclasses.dataclass
class HrisEmployeeGender(str, Enum):
	MALE = 'MALE'
	FEMALE = 'FEMALE'
	INTERSEX = 'INTERSEX'
	TRANS = 'TRANS'
	NON_BINARY = 'NON_BINARY'

@dataclasses.dataclass
class HrisEmployeeMarital_status(str, Enum):
	MARRIED = 'MARRIED'
	SINGLE = 'SINGLE'

@dataclasses.dataclass
class HrisEmployeeEmployment_type(str, Enum):
	FULL_TIME = 'FULL_TIME'
	PART_TIME = 'PART_TIME'
	CONTRACTOR = 'CONTRACTOR'
	INTERN = 'INTERN'
	CONSULTANT = 'CONSULTANT'
	VOLUNTEER = 'VOLUNTEER'
	CASUAL = 'CASUAL'
	SEASONAL = 'SEASONAL'
	FREELANCE = 'FREELANCE'
	OTHER = 'OTHER'

@dataclasses.dataclass
class HrisEmployeeEmployee_roles(str, Enum):
	ADMIN = 'ADMIN'
	MANAGER = 'MANAGER'
	RECRUITER = 'RECRUITER'
	SALESREP = 'SALESREP'
	INTERVIEWER = 'INTERVIEWER'
	USER = 'USER'
	EMPLOYEE = 'EMPLOYEE'

@dataclasses.dataclass
class HrisEmployeeFlsa_status(str, Enum):
	EXEMPT = 'EXEMPT'
	NON_EXEMPT = 'NON_EXEMPT'
	SALARIED_NONEXEMPT = 'SALARIED_NONEXEMPT'
	OWNER = 'OWNER'

@dataclasses.dataclass
class HrisEmployeePay_frequency(str, Enum):
	ONE_TIME = 'ONE_TIME'
	DAY = 'DAY'
	QUARTER = 'QUARTER'
	YEAR = 'YEAR'
	HOUR = 'HOUR'
	MONTH = 'MONTH'
	WEEK = 'WEEK'
	BIWEEKLY = 'BIWEEKLY'
	SEMIMONTHLY = 'SEMIMONTHLY'

@dataclasses.dataclass
class PropertyHrisEmployeeAddress:
	address1: Optional[str]
	address2: Optional[str]
	city: Optional[str]
	region: Optional[str]
	region_code: Optional[str]
	postal_code: Optional[str]
	country: Optional[str]
	"""ISO 2-digit country code"""
	country_code: Optional[str]

@dataclasses.dataclass
class HrisEmployee:
	id: Optional[str]
	"""(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	created_at: Optional[str]
	"""(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	updated_at: Optional[str]
	name: Optional[str]
	first_name: Optional[str]
	last_name: Optional[str]
	emails: Optional[PropertyHrisEmployeeEmails]
	title: Optional[str]
	"""the hris_job (position) this employee holds; their primary job when they hold more than one"""
	job_id: Optional[str]
	manager_id: Optional[str]
	employment_status: Optional[HrisEmployeeEmployment_status]
	gender: Optional[HrisEmployeeGender]
	telephones: Optional[PropertyHrisEmployeeTelephones]
	"""YYYYMM/DD"""
	date_of_birth: Optional[str]
	"""the company's ID for this employee"""
	employee_number: Optional[str]
	"""The employee's start date (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	hired_at: Optional[str]
	"""(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	terminated_at: Optional[str]
	termination_reason: Optional[str]
	marital_status: Optional[HrisEmployeeMarital_status]
	employment_type: Optional[HrisEmployeeEmployment_type]
	address: Optional[PropertyHrisEmployeeAddress]
	language_locale: Optional[str]
	currency: Optional[str]
	timezone: Optional[str]
	"""This link expires after 1 hour. """
	image_url: Optional[str]
	"""(reference to HrisCompany)"""
	company_id: Optional[str]
	pronouns: Optional[str]
	employee_roles: Optional[List[HrisEmployeeEmployee_roles]]
	compensation: Optional[PropertyHrisEmployeeCompensation]
	"""Mr. Mrs. Ms."""
	salutation: Optional[str]
	bio: Optional[str]
	ssn_sin: Optional[str]
	"""Which groups/teams/units that this employee/user belongs to.  May not have all of the Group fields present, but should have id, name, or email."""
	groups: Optional[PropertyHrisEmployeeGroups]
	locations: Optional[PropertyHrisEmployeeLocations]
	metadata: Optional[PropertyHrisEmployeeMetadata]
	storage_quota_allocated: Optional[int]
	storage_quota_used: Optional[int]
	storage_quota_available: Optional[int]
	"""the employee's personal relationships (eg. emergency contacts, spouse, dependants, ...)"""
	relationships: Optional[PropertyHrisEmployeeRelationships]
	"""does the user/employee have multi-factor authentication enabled"""
	has_mfa: Optional[bool]
	"""Total time off allowance for the current leave period, in days (when reported by the provider)"""
	timeoff_days_total: Optional[int]
	"""Time off days used or booked in the current leave period (when reported by the provider)"""
	timeoff_days_used: Optional[int]
	"""US Fair Labor Standards Act classification"""
	flsa_status: Optional[HrisEmployeeFlsa_status]
	"""how often the employee is paid (eg. BIWEEKLY)"""
	pay_frequency: Optional[HrisEmployeePay_frequency]
Are we missing anything? Let us know
Was this page helpful?