Job data model
View field support, webhooks, and list parameters for each integration on the Supported Integrations page.
| Field | Type | Required | Description |
|---|---|---|---|
id | string | No | |
created_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
updated_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
name | string | No | the job or position title |
description | string | No | |
code | string | No | the integration's job code or position number, when it differs from id |
is_active | boolean | No | |
employment_type | enum | No | Values: FULL_TIME, PART_TIME, CONTRACTOR, INTERN, CONSULTANT, VOLUNTEER, CASUAL, SEASONAL, FREELANCE, OTHER |
company_id | string | No | (reference to HrisCompany) |
groups | HrisGroup[] | No | the groups (departments, teams, organizations) this job belongs to. May not have all of the Group fields present, but should have id and name |
groups[].id | string | No | |
groups[].created_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
groups[].updated_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
groups[].name | string | No | |
groups[].description | string | No | |
groups[].parent_id | string | No | |
groups[].type | enum | No | Values: TEAM, GROUP, DEPARTMENT, DIVISION, BUSINESS_UNIT, BRANCH, SUB_DEPARTMENT, PAY_GROUP |
groups[].user_ids | string[] | No | (reference to HrisEmployee) |
groups[].manager_ids | string[] | No | |
groups[].is_active | boolean | No | |
groups[].company_id | string | No | (reference to HrisCompany) |
groups[].pay_frequency | enum | No | pay cycle when type is PAY_GROUP Values: ONE_TIME, DAY, QUARTER, YEAR, HOUR, MONTH, WEEK, BIWEEKLY, SEMIMONTHLY |
groups[].next_paid_at | string (date-time) | No | next pay date when type is PAY_GROUP (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
locations | HrisLocation[] | No | where this job is worked. May not have all of the Location fields present, but should have id and name |
locations[].id | string | No | |
locations[].created_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
locations[].updated_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
locations[].name | string | No | |
locations[].description | string | No | |
locations[].address | object | No | |
locations[].address.address1 | string | No | |
locations[].address.address2 | string | No | |
locations[].address.city | string | No | |
locations[].address.region | string | No | |
locations[].address.region_code | string | No | |
locations[].address.postal_code | string | No | |
locations[].address.country | string | No | |
locations[].address.country_code | string | No | ISO 2-digit country code |
locations[].parent_id | string | No | |
locations[].external_identifier | string | No | |
locations[].telephones | HrisTelephone[] | No | |
locations[].telephones[].telephone | string | Yes | |
locations[].telephones[].type | enum | No | Values: WORK, HOME, OTHER, FAX, MOBILE |
locations[].timezone | string | No | |
locations[].currency | string | No | |
locations[].language_locale | string | No | |
locations[].is_active | boolean | No | |
locations[].is_hq | boolean | No | if this location is the headquarters of the company |
locations[].company_id | string | No | (reference to HrisCompany) |
parent_id | string | No | the hris_job this job reports to (position hierarchy) |
users | HrisEmployee[] | No | the employees currently holding this job. May not have all of the Employee fields present, but should have id and name |
users[].id | string | No | |
users[].created_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
users[].updated_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
users[].name | string | No | |
users[].first_name | string | No | |
users[].last_name | string | No | |
users[].emails | HrisEmail[] | No | |
users[].emails[].email | string | Yes | |
users[].emails[].type | enum | No | Values: WORK, HOME, OTHER |
users[].title | string | No | |
users[].job_id | string | No | the hris_job (position) this employee holds; their primary job when they hold more than one |
users[].manager_id | string | No | |
users[].employment_status | enum | No | Values: ACTIVE, INACTIVE |
users[].gender | enum | No | Values: MALE, FEMALE, INTERSEX, TRANS, NON_BINARY |
users[].telephones | HrisTelephone[] | No | |
users[].telephones[].telephone | string | Yes | |
users[].telephones[].type | enum | No | Values: WORK, HOME, OTHER, FAX, MOBILE |
users[].date_of_birth | string (date-time) | No | YYYYMM/DD |
users[].employee_number | string | No | the company's ID for this employee |
users[].hired_at | string (date-time) | No | The employee's start date (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
users[].terminated_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
users[].termination_reason | string | No | |
users[].marital_status | enum | No | Values: MARRIED, SINGLE |
users[].employment_type | enum | No | Values: FULL_TIME, PART_TIME, CONTRACTOR, INTERN, CONSULTANT, VOLUNTEER, CASUAL, SEASONAL, FREELANCE, OTHER |
users[].address | object | No | |
users[].address.address1 | string | No | |
users[].address.address2 | string | No | |
users[].address.city | string | No | |
users[].address.region | string | No | |
users[].address.region_code | string | No | |
users[].address.postal_code | string | No | |
users[].address.country | string | No | |
users[].address.country_code | string | No | ISO 2-digit country code |
users[].language_locale | string | No | |
users[].currency | string | No | |
users[].timezone | string | No | |
users[].image_url | string | No | This link expires after 1 hour. |
users[].company_id | string | No | (reference to HrisCompany) |
users[].pronouns | string | No | |
users[].employee_roles | enum | No | Values: ADMIN, MANAGER, RECRUITER, SALESREP, INTERVIEWER, USER, EMPLOYEE |
users[].compensation | HrisCompensation[] | No | |
users[].compensation[].type | enum | No | Values: SALARY, BONUS, STOCK_OPTIONS, EQUITY, OTHER, HOURLY, COMMISSION |
users[].compensation[].amount | number | No | |
users[].compensation[].currency | string | No | |
users[].compensation[].frequency | enum | No | Values: ONE_TIME, DAY, QUARTER, YEAR, HOUR, MONTH, WEEK, BIWEEKLY, SEMIMONTHLY |
users[].compensation[].group_id | string | No | (reference to HrisGroup) |
users[].compensation[].notes | string | No | |
users[].salutation | string | No | Mr. Mrs. Ms. |
users[].bio | string | No | |
users[].ssn_sin | string | No | |
users[].groups | HrisGroup[] | No | 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. |
users[].groups[].id | string | No | |
users[].groups[].created_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
users[].groups[].updated_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
users[].groups[].name | string | No | |
users[].groups[].description | string | No | |
users[].groups[].parent_id | string | No | |
users[].groups[].type | enum | No | Values: TEAM, GROUP, DEPARTMENT, DIVISION, BUSINESS_UNIT, BRANCH, SUB_DEPARTMENT, PAY_GROUP |
users[].groups[].user_ids | string[] | No | (reference to HrisEmployee) |
users[].groups[].manager_ids | string[] | No | |
users[].groups[].is_active | boolean | No | |
users[].groups[].company_id | string | No | (reference to HrisCompany) |
users[].groups[].pay_frequency | enum | No | pay cycle when type is PAY_GROUP Values: ONE_TIME, DAY, QUARTER, YEAR, HOUR, MONTH, WEEK, BIWEEKLY, SEMIMONTHLY |
users[].groups[].next_paid_at | string (date-time) | No | next pay date when type is PAY_GROUP (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
users[].locations | HrisLocation[] | No | |
users[].locations[].id | string | No | |
users[].locations[].created_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
users[].locations[].updated_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
users[].locations[].name | string | No | |
users[].locations[].description | string | No | |
users[].locations[].address | object | No | |
users[].locations[].address.address1 | string | No | |
users[].locations[].address.address2 | string | No | |
users[].locations[].address.city | string | No | |
users[].locations[].address.region | string | No | |
users[].locations[].address.region_code | string | No | |
users[].locations[].address.postal_code | string | No | |
users[].locations[].address.country | string | No | |
users[].locations[].address.country_code | string | No | ISO 2-digit country code |
users[].locations[].parent_id | string | No | |
users[].locations[].external_identifier | string | No | |
users[].locations[].telephones | HrisTelephone[] | No | |
users[].locations[].telephones[].telephone | string | Yes | |
users[].locations[].telephones[].type | enum | No | Values: WORK, HOME, OTHER, FAX, MOBILE |
users[].locations[].timezone | string | No | |
users[].locations[].currency | string | No | |
users[].locations[].language_locale | string | No | |
users[].locations[].is_active | boolean | No | |
users[].locations[].is_hq | boolean | No | if this location is the headquarters of the company |
users[].locations[].company_id | string | No | (reference to HrisCompany) |
users[].metadata | HrisMetadata[] | No | |
users[].metadata[].id | string | No | |
users[].metadata[].value | object | No | |
users[].metadata[].namespace | string | No | |
users[].metadata[].format | enum | No | Values: TEXT, NUMBER, DATE, BOOLEAN, FILE, TEXTAREA, SINGLE_SELECT, MULTIPLE_SELECT, MEASUREMENT, PRICE, YES_NO, CURRENCY, URL |
users[].metadata[].extra_data | object | No | |
users[].metadata[].slug | string | No | |
users[].storage_quota_allocated | number | No | |
users[].storage_quota_used | number | No | |
users[].storage_quota_available | number | No | |
users[].relationships | HrisEmployeerelationship[] | No | the employee's personal relationships (eg. emergency contacts, spouse, dependants, ...) |
users[].relationships[].name | string | No | |
users[].relationships[].first_name | string | No | |
users[].relationships[].last_name | string | No | |
users[].relationships[].emails | HrisEmail[] | No | |
users[].relationships[].emails[].email | string | Yes | |
users[].relationships[].emails[].type | enum | No | Values: WORK, HOME, OTHER |
users[].relationships[].telephones | HrisTelephone[] | No | |
users[].relationships[].telephones[].telephone | string | Yes | |
users[].relationships[].telephones[].type | enum | No | Values: WORK, HOME, OTHER, FAX, MOBILE |
users[].relationships[].address | HrisEmployeerelationship_address | No | |
users[].relationships[].address.address1 | string | No | |
users[].relationships[].address.address2 | string | No | |
users[].relationships[].address.city | string | No | |
users[].relationships[].address.region | string | No | |
users[].relationships[].address.region_code | string | No | |
users[].relationships[].address.postal_code | string | No | |
users[].relationships[].address.country | string | No | |
users[].relationships[].address.country_code | string | No | ISO 2-digit country code |
users[].relationships[].type | enum | No | Values: EMERGENCY, SPOUSE, CHILD, PARENT, SIBLING, FRIEND, OTHER |
users[].relationships[].is_dependent | boolean | No | |
users[].relationships[].is_beneficiary | boolean | No | |
users[].relationships[].start_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
users[].relationships[].end_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
users[].has_mfa | boolean | No | does the user/employee have multi-factor authentication enabled |
users[].timeoff_days_total | number | No | Total time off allowance for the current leave period, in days (when reported by the provider) |
users[].timeoff_days_used | number | No | Time off days used or booked in the current leave period (when reported by the provider) |
users[].flsa_status | enum | No | US Fair Labor Standards Act classification Values: EXEMPT, NON_EXEMPT, SALARIED_NONEXEMPT, OWNER |
users[].pay_frequency | enum | No | how often the employee is paid (eg. BIWEEKLY) Values: ONE_TIME, DAY, QUARTER, YEAR, HOUR, MONTH, WEEK, BIWEEKLY, SEMIMONTHLY |
compensation | HrisCompensation[] | No | pay attached to the job itself (eg. an hourly rate) |
compensation[].type | enum | No | Values: SALARY, BONUS, STOCK_OPTIONS, EQUITY, OTHER, HOURLY, COMMISSION |
compensation[].amount | number | No | |
compensation[].currency | string | No | |
compensation[].frequency | enum | No | Values: ONE_TIME, DAY, QUARTER, YEAR, HOUR, MONTH, WEEK, BIWEEKLY, SEMIMONTHLY |
compensation[].group_id | string | No | (reference to HrisGroup) |
compensation[].notes | string | No |
Are we missing anything? Let us know