Odoo Connector for BambooHR
Synced fields
Generated from the connector's code (the same field table the module runs on). Only the fields of the blocks you turn on are requested from BambooHR.
Odoo 20 uses the Odoo 19 column with three exceptions: employment status goes to the employee type (employee_type_id), and employment type and SSN/SIN are not written, because Odoo 20 has no contract type or SSN field.
BambooHR names the same data differently depending on the API operation: LE = list-employees, GE = get-employee / update-employee, DS = employee dataset v2. They are read in the order LE, DS, GE. «—» means that operation does not return it (for DS, the name is resolved at run time with get-fields-from-dataset-v1_2, never guessed).
Blocks
| Block | Name | Connection switch | On by default | Scopes | Tables read |
|---|---|---|---|---|---|
base | Base fields | — | yes | — (scopes base) | jobInfo, employmentStatus |
employee_number | Employee # | block_employee_number | yes | employee:identification | — |
personal_contact | Personal contact | block_personal_contact | no | employee:contact | — |
demographics | Demographics | block_demographics | no | employee:demographic | — |
private_address | Private address | block_private_address | no | sensitive_employee:address | — |
birth_national_id | Birth date and national ID | block_birth_national_id | no | sensitive_employee:protected_info | — |
passport | Passport | block_passport | no | employee:identification | employeePassports |
visa_permit | Visa and work permit | block_visa_permit | no | employee:identification | employeeVisas |
emergency_contact | Primary emergency contact | block_emergency_contact | no | employee:emergency_contacts | emergencyContacts |
children | Number of children | block_children | no | employee:dependent | — |
spouse | Spouse | block_spouse | no | employee:dependent | — |
photo | Photo | flow_photo | no | employee:photo | — |
custom_fields | Custom fields | block_custom_fields | no | employee:custom_fields | — |
custom_tables | Custom tables | block_custom_tables | no | employee:custom_fields | — |
files | Employee files | block_files | no | employee:file | — |
compensation | Compensation | flow_compensation | no | employee:compensation | compensation |
Base fields (base)
| Key | LE | GE | DS | Scope | Odoo 19 and 20 | Odoo 17 and 18 |
|---|---|---|---|---|---|---|
id | employeeId | id | eeid | employee:name | hr.employee.bamboohr_id | hr.employee.bamboohr_id |
first_name | firstName | firstName | firstName | employee:name | hr.employee.name | hr.employee.name |
last_name | lastName | lastName | lastName | employee:name | hr.employee.name | hr.employee.name |
middle_name | middleName | middleName | — | employee:name | hr.employee.legal_name | hr.employee.name |
preferred_name | preferredName | preferredName | — | employee:name | hr.employee.name | hr.employee.name |
display_name | displayName | displayName | — | employee:name | hr.employee.name | hr.employee.name |
work_email | workEmail | workEmail | email | employee:contact | hr.employee.work_email | hr.employee.work_email |
work_phone | workPhone | workPhone | — | employee:contact | hr.employee.work_phone | hr.employee.work_phone |
work_phone_ext | workPhoneExtension | workPhoneExtension | — | employee:contact | hr.employee.work_phone | hr.employee.work_phone |
mobile_phone | mobilePhone | mobilePhone | mobilePhone | employee:contact | hr.employee.mobile_phone | hr.employee.mobile_phone |
job_title | jobTitleName | jobTitle | jobInformationJobTitle | employee:job | hr.version.job_id | hr.employee.job_id |
job_title_id | jobTitleId | — | — | employee:job | hr.version.job_id | hr.employee.job_id |
department | departmentName | department | jobInformationDepartment | employee:job | hr.version.department_id | hr.employee.department_id |
department_id | departmentId | — | — | employee:job | hr.version.department_id | hr.employee.department_id |
division | divisionName | division | — | employee:job | hr.employee.category_ids | hr.employee.category_ids |
division_id | divisionId | — | — | employee:job | hr.employee.category_ids | hr.employee.category_ids |
location | locationName | location | jobInformationLocation | employee:job | hr.version.work_location_id | hr.employee.work_location_id |
location_id | locationId | — | — | employee:job | hr.version.work_location_id | hr.employee.work_location_id |
manager | reportsToId | supervisorEId | supervisorEid | employee:job | hr.employee.parent_id | hr.employee.parent_id |
teams | teams | — | — | employee:job | hr.employee.category_ids | hr.employee.category_ids |
status | status | status | status | employee:job | hr.employee.active | hr.employee.active |
hire_date | hireDate | hireDate | hireDate | employee:job | hr.version.contract_date_start | hr.employee.bamboohr_hire_date |
original_hire_date | originalHireDate | originalHireDate | — | employee:job | — | hr.employee.bamboohr_original_hire_date |
termination_date | terminationDate | terminationDate | — | employee:management | hr.version.departure_date | hr.employee.departure_date |
termination_type | terminationTypeId | — | — | employee:management | hr.version.departure_reason_id | hr.employee.departure_reason_id |
termination_reason | terminationReasonId | — | — | employee:management | hr.version.departure_reason_id | hr.employee.departure_reason_id |
employment_status | employmentStatusId | — | employmentStatus | employee:job | hr.version.employee_type | hr.employee.employee_type |
employment_type | employmentType | employmentType | — | employee:job | hr.version.contract_type_id | — |
contract_end | contractEndDate | contractEndDate | — | employee:job | hr.version.contract_date_end | — |
probation_end | probationEndDate | probationEndDate | — | employee:job | hr.version.trial_date_end | — |
timezone | timezone | — | — | employee:job | hr.employee.tz | hr.employee.tz |
standard_hours | — | standardHoursPerWeek | — | employee:job | hr.version.resource_calendar_id | hr.employee.resource_calendar_id |
include_in_payroll | — | includeInPayroll | — | employee:job | — | — |
last_changed | — | lastChanged | — | employee:job | hr.employee.bamboohr_last_changed | hr.employee.bamboohr_last_changed |
Employee # (employee_number)
| Key | LE | GE | DS | Scope | Odoo 19 and 20 | Odoo 17 and 18 |
|---|---|---|---|---|---|---|
employee_number | employeeNumber | employeeNumber | employeeNumber | employee:identification | hr.employee.bamboohr_employee_number | hr.employee.bamboohr_employee_number |
Personal contact (personal_contact)
| Key | LE | GE | DS | Scope | Odoo 19 and 20 | Odoo 17 and 18 |
|---|---|---|---|---|---|---|
home_email | homeEmail | homeEmail | — | employee:contact | hr.employee.private_email | hr.employee.private_email |
home_phone | homePhone | homePhone | — | employee:contact | hr.employee.private_phone | hr.employee.private_phone |
Demographics (demographics)
| Key | LE | GE | DS | Scope | Odoo 19 and 20 | Odoo 17 and 18 |
|---|---|---|---|---|---|---|
gender | gender | gender | — | employee:demographic | hr.version.sex | hr.employee.gender |
marital | maritalStatus | maritalStatus | — | employee:demographic | hr.version.marital | hr.employee.marital |
nationality | nationalityId | nationality | — | employee:demographic | hr.version.country_id | hr.employee.country_id |
birthplace | birthplace | — | — | employee:demographic | hr.employee.place_of_birth | hr.employee.place_of_birth |
Private address (private_address)
| Key | LE | GE | DS | Scope | Odoo 19 and 20 | Odoo 17 and 18 |
|---|---|---|---|---|---|---|
address1 | addressLine1 | address1 | — | sensitive_employee:address | hr.version.private_street | hr.employee.private_street |
address2 | addressLine2 | address2 | — | sensitive_employee:address | hr.version.private_street2 | hr.employee.private_street2 |
city | city | city | — | sensitive_employee:address | hr.version.private_city | hr.employee.private_city |
state | stateId | state | — | sensitive_employee:address | hr.version.private_state_id | hr.employee.private_state_id |
zipcode | zipcode | zipcode | — | sensitive_employee:address | hr.version.private_zip | hr.employee.private_zip |
country | countryId | country | — | sensitive_employee:address | hr.version.private_country_id | hr.employee.private_country_id |
Birth date and national ID (birth_national_id)
| Key | LE | GE | DS | Scope | Odoo 19 and 20 | Odoo 17 and 18 |
|---|---|---|---|---|---|---|
birth_date | birthDate | dateOfBirth | — | sensitive_employee:protected_info | hr.employee.birthday | hr.employee.birthday |
national_id | nationalId | nationalId | — | sensitive_employee:protected_info | hr.version.identification_id | hr.employee.identification_id |
nin | nin | nin | — | sensitive_employee:protected_info | hr.version.identification_id | hr.employee.identification_id |
ssn | ssn | ssn | — | sensitive_employee:protected_info | hr.version.ssnid | hr.employee.ssnid |
sin | sin | sin | — | sensitive_employee:protected_info | hr.version.ssnid | hr.employee.ssnid |
Photo (photo)
| Key | LE | GE | DS | Scope | Odoo 19 and 20 | Odoo 17 and 18 |
|---|---|---|---|---|---|---|
photo_uploaded | — | isPhotoUploaded | — | employee:photo | — | — |
Compensation (compensation)
| Key | LE | GE | DS | Scope | Odoo 19 and 20 | Odoo 17 and 18 |
|---|---|---|---|---|---|---|
pay_rate | payRate | payRate | — | employee:compensation | hr.version.wage | — |
pay_type | payType | payType | — | employee:compensation | — | — |
paid_per | paidPer | paidPer | — | employee:compensation | — | — |
pay_schedule | payScheduleId | paySchedule | — | employee:compensation | — | — |
Never read
No switch on the connection requests them:
allergies, dietaryRestrictions, eeoJobCategory, eeoJobCategoryId, ethnicity, ethnicityId, finalDoseAdministrationDate, proofOfVaccination, vaccinationStatus, vaccinationStatusId, vaccineReceived, vaccineReceivedId, veteranStatus, veteranStatusId.
Scopes
Always (connected core): offline_access, public.integration, company:info, company:details, meta, field, job_organization, webhooks, webhooks.write, employee:name, employee:job, employee:management, employee:contact, report.
Only when the feature that needs them is on:
| Feature | Scopes |
|---|---|
employee_number | employee:identification |
passport | employee:identification |
visa_permit | employee:identification |
demographics | employee:demographic |
private_address | sensitive_employee:address |
birth_national_id | sensitive_employee:protected_info |
emergency_contact | employee:emergency_contacts |
children | employee:dependent |
spouse | employee:dependent |
photo | employee:photo |
photo_write | employee:photo.write |
files | employee:file |
files_write | employee:file.write |
company_files | company_file |
custom_fields | employee:custom_fields |
custom_fields_encrypted | employee:custom_fields_encrypted |
custom_tables | employee:custom_fields |
compensation | employee:compensation |
compensation_write | employee:compensation.write |
employee_write | employee:name.write, employee:job.write, employee:contact.write |
lists_write | field.write, job_organization.write |
education | employee:education |
education_write | employee:education.write |
assets | employee:assets |
assets_write | employee:assets.write |
time_off | time_off, time_off:requests, time_off:categories, time_off:policies |
time_off_requests_write | time_off:requests.write |
time_off_categories_write | time_off:categories.write |
time_off_write | time_off.write |
holidays | holidays |
holidays_write | holidays.write |
time_tracking | time_tracking:employees, time_tracking:configurations, time_tracking:timesheets, time_tracking:project, time_tracking, time_tracking:breaks, time_tracking:shift_differentials |
time_tracking_write | time_tracking:timesheets.write, time_tracking:project.write, time_tracking.write |
scheduling | scheduling:schedules, scheduling:shifts |
scheduling_write | scheduling:shifts.write |
hiring | hiring:applications |
hiring_write | hiring:applications.write |
onboarding | onboarding |
onboarding_write | onboarding.write |
training | training |
training_write | training.write |
goals | goal |
goals_write | goal.write |
benefits | benefit |
Never: email, employee, employee.write, employee:dependent:ssn, employee:payroll, employee:vaccination, sensitive_employee:creditcards, user, user:management.
Last updated: 7 October 2026.
