Skip to main content

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

BlockNameConnection switchOn by defaultScopesTables read
baseBase fields—yes— (scopes base)jobInfo, employmentStatus
employee_numberEmployee #block_employee_numberyesemployee:identification—
personal_contactPersonal contactblock_personal_contactnoemployee:contact—
demographicsDemographicsblock_demographicsnoemployee:demographic—
private_addressPrivate addressblock_private_addressnosensitive_employee:address—
birth_national_idBirth date and national IDblock_birth_national_idnosensitive_employee:protected_info—
passportPassportblock_passportnoemployee:identificationemployeePassports
visa_permitVisa and work permitblock_visa_permitnoemployee:identificationemployeeVisas
emergency_contactPrimary emergency contactblock_emergency_contactnoemployee:emergency_contactsemergencyContacts
childrenNumber of childrenblock_childrennoemployee:dependent—
spouseSpouseblock_spousenoemployee:dependent—
photoPhotoflow_photonoemployee:photo—
custom_fieldsCustom fieldsblock_custom_fieldsnoemployee:custom_fields—
custom_tablesCustom tablesblock_custom_tablesnoemployee:custom_fields—
filesEmployee filesblock_filesnoemployee:file—
compensationCompensationflow_compensationnoemployee:compensationcompensation

Base fields (base)

KeyLEGEDSScopeOdoo 19 and 20Odoo 17 and 18
idemployeeIdideeidemployee:namehr.employee.bamboohr_idhr.employee.bamboohr_id
first_namefirstNamefirstNamefirstNameemployee:namehr.employee.namehr.employee.name
last_namelastNamelastNamelastNameemployee:namehr.employee.namehr.employee.name
middle_namemiddleNamemiddleName—employee:namehr.employee.legal_namehr.employee.name
preferred_namepreferredNamepreferredName—employee:namehr.employee.namehr.employee.name
display_namedisplayNamedisplayName—employee:namehr.employee.namehr.employee.name
work_emailworkEmailworkEmailemailemployee:contacthr.employee.work_emailhr.employee.work_email
work_phoneworkPhoneworkPhone—employee:contacthr.employee.work_phonehr.employee.work_phone
work_phone_extworkPhoneExtensionworkPhoneExtension—employee:contacthr.employee.work_phonehr.employee.work_phone
mobile_phonemobilePhonemobilePhonemobilePhoneemployee:contacthr.employee.mobile_phonehr.employee.mobile_phone
job_titlejobTitleNamejobTitlejobInformationJobTitleemployee:jobhr.version.job_idhr.employee.job_id
job_title_idjobTitleId——employee:jobhr.version.job_idhr.employee.job_id
departmentdepartmentNamedepartmentjobInformationDepartmentemployee:jobhr.version.department_idhr.employee.department_id
department_iddepartmentId——employee:jobhr.version.department_idhr.employee.department_id
divisiondivisionNamedivision—employee:jobhr.employee.category_idshr.employee.category_ids
division_iddivisionId——employee:jobhr.employee.category_idshr.employee.category_ids
locationlocationNamelocationjobInformationLocationemployee:jobhr.version.work_location_idhr.employee.work_location_id
location_idlocationId——employee:jobhr.version.work_location_idhr.employee.work_location_id
managerreportsToIdsupervisorEIdsupervisorEidemployee:jobhr.employee.parent_idhr.employee.parent_id
teamsteams——employee:jobhr.employee.category_idshr.employee.category_ids
statusstatusstatusstatusemployee:jobhr.employee.activehr.employee.active
hire_datehireDatehireDatehireDateemployee:jobhr.version.contract_date_starthr.employee.bamboohr_hire_date
original_hire_dateoriginalHireDateoriginalHireDate—employee:job—hr.employee.bamboohr_original_hire_date
termination_dateterminationDateterminationDate—employee:managementhr.version.departure_datehr.employee.departure_date
termination_typeterminationTypeId——employee:managementhr.version.departure_reason_idhr.employee.departure_reason_id
termination_reasonterminationReasonId——employee:managementhr.version.departure_reason_idhr.employee.departure_reason_id
employment_statusemploymentStatusId—employmentStatusemployee:jobhr.version.employee_typehr.employee.employee_type
employment_typeemploymentTypeemploymentType—employee:jobhr.version.contract_type_id—
contract_endcontractEndDatecontractEndDate—employee:jobhr.version.contract_date_end—
probation_endprobationEndDateprobationEndDate—employee:jobhr.version.trial_date_end—
timezonetimezone——employee:jobhr.employee.tzhr.employee.tz
standard_hours—standardHoursPerWeek—employee:jobhr.version.resource_calendar_idhr.employee.resource_calendar_id
include_in_payroll—includeInPayroll—employee:job——
last_changed—lastChanged—employee:jobhr.employee.bamboohr_last_changedhr.employee.bamboohr_last_changed

Employee # (employee_number)

KeyLEGEDSScopeOdoo 19 and 20Odoo 17 and 18
employee_numberemployeeNumberemployeeNumberemployeeNumberemployee:identificationhr.employee.bamboohr_employee_numberhr.employee.bamboohr_employee_number

Personal contact (personal_contact)

KeyLEGEDSScopeOdoo 19 and 20Odoo 17 and 18
home_emailhomeEmailhomeEmail—employee:contacthr.employee.private_emailhr.employee.private_email
home_phonehomePhonehomePhone—employee:contacthr.employee.private_phonehr.employee.private_phone

Demographics (demographics)

KeyLEGEDSScopeOdoo 19 and 20Odoo 17 and 18
gendergendergender—employee:demographichr.version.sexhr.employee.gender
maritalmaritalStatusmaritalStatus—employee:demographichr.version.maritalhr.employee.marital
nationalitynationalityIdnationality—employee:demographichr.version.country_idhr.employee.country_id
birthplacebirthplace——employee:demographichr.employee.place_of_birthhr.employee.place_of_birth

Private address (private_address)

KeyLEGEDSScopeOdoo 19 and 20Odoo 17 and 18
address1addressLine1address1—sensitive_employee:addresshr.version.private_streethr.employee.private_street
address2addressLine2address2—sensitive_employee:addresshr.version.private_street2hr.employee.private_street2
citycitycity—sensitive_employee:addresshr.version.private_cityhr.employee.private_city
statestateIdstate—sensitive_employee:addresshr.version.private_state_idhr.employee.private_state_id
zipcodezipcodezipcode—sensitive_employee:addresshr.version.private_ziphr.employee.private_zip
countrycountryIdcountry—sensitive_employee:addresshr.version.private_country_idhr.employee.private_country_id

Birth date and national ID (birth_national_id)

KeyLEGEDSScopeOdoo 19 and 20Odoo 17 and 18
birth_datebirthDatedateOfBirth—sensitive_employee:protected_infohr.employee.birthdayhr.employee.birthday
national_idnationalIdnationalId—sensitive_employee:protected_infohr.version.identification_idhr.employee.identification_id
ninninnin—sensitive_employee:protected_infohr.version.identification_idhr.employee.identification_id
ssnssnssn—sensitive_employee:protected_infohr.version.ssnidhr.employee.ssnid
sinsinsin—sensitive_employee:protected_infohr.version.ssnidhr.employee.ssnid

Photo (photo)

KeyLEGEDSScopeOdoo 19 and 20Odoo 17 and 18
photo_uploaded—isPhotoUploaded—employee:photo——

Compensation (compensation)

KeyLEGEDSScopeOdoo 19 and 20Odoo 17 and 18
pay_ratepayRatepayRate—employee:compensationhr.version.wage—
pay_typepayTypepayType—employee:compensation——
paid_perpaidPerpaidPer—employee:compensation——
pay_schedulepayScheduleIdpaySchedule—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:

FeatureScopes
employee_numberemployee:identification
passportemployee:identification
visa_permitemployee:identification
demographicsemployee:demographic
private_addresssensitive_employee:address
birth_national_idsensitive_employee:protected_info
emergency_contactemployee:emergency_contacts
childrenemployee:dependent
spouseemployee:dependent
photoemployee:photo
photo_writeemployee:photo.write
filesemployee:file
files_writeemployee:file.write
company_filescompany_file
custom_fieldsemployee:custom_fields
custom_fields_encryptedemployee:custom_fields_encrypted
custom_tablesemployee:custom_fields
compensationemployee:compensation
compensation_writeemployee:compensation.write
employee_writeemployee:name.write, employee:job.write, employee:contact.write
lists_writefield.write, job_organization.write
educationemployee:education
education_writeemployee:education.write
assetsemployee:assets
assets_writeemployee:assets.write
time_offtime_off, time_off:requests, time_off:categories, time_off:policies
time_off_requests_writetime_off:requests.write
time_off_categories_writetime_off:categories.write
time_off_writetime_off.write
holidaysholidays
holidays_writeholidays.write
time_trackingtime_tracking:employees, time_tracking:configurations, time_tracking:timesheets, time_tracking:project, time_tracking, time_tracking:breaks, time_tracking:shift_differentials
time_tracking_writetime_tracking:timesheets.write, time_tracking:project.write, time_tracking.write
schedulingscheduling:schedules, scheduling:shifts
scheduling_writescheduling:shifts.write
hiringhiring:applications
hiring_writehiring:applications.write
onboardingonboarding
onboarding_writeonboarding.write
trainingtraining
training_writetraining.write
goalsgoal
goals_writegoal.write
benefitsbenefit

Never: email, employee, employee.write, employee:dependent:ssn, employee:payroll, employee:vaccination, sensitive_employee:creditcards, user, user:management.

Last updated: 7 October 2026.