Odoo 19.0 Community · Persistent

hr.employee: fields, relations and API

The hr.employee model ("Employee") is a persistent model declared by the Employees module, then extended by 21 other modules. It exposes 199 fields, 179 of them declared directly on the model; 71 fields from other models point to it. Below you will find every field with its technical name, type, label and relations, followed by an Odoo 19 JSON-2 API call.

Model identity

Technical name
hr.employee
Label
Employee
Type
Persistent (models.Model)
SQL table
hr_employee
Origin module
Employees (hr)
Extended by
hr_attendance, hr_expense, hr_fleet, hr_gamification, hr_holidays, hr_holidays_attendance, hr_homeworking, hr_holidays_homeworking, hr_homeworking_calendar, hr_hourly_cost, hr_maintenance, hr_org_chart, hr_presence, hr_recruitment, hr_skills, hr_skills_slides, hr_timesheet, hr_work_entry, pos_hr, project_timesheet_holidays, sale_timesheet
Default order (_order)
name
Inherits from (mixins)
mail.thread.main.attachmentmail.activity.mixinresource.mixinavatar.mixinpos.load.mixin
Delegation (_inherits)
hr.version: fields of this model are also available, through version_id

Model fields

179 own fields, 14 inherited from mixins and 6 automatic ORM fields. Click a name to get a direct link to that field.

199 of 199 fields shown

Technical nameLabelTypeDetails
activeActiveboolean

related: resource_id.active

activity_date_deadlineActivity Date Deadlinedate
activity_exception_decorationActivity Exception Decorationselection

Values computed at runtime

activity_exception_iconActivity Exception Iconchar
activity_idsActivityone2many
activity_stateActivity Stateselection

Values computed at runtime

activity_summaryActivity Summarychar
activity_type_iconActivity Type Iconchar
activity_type_idActivity Typemany2one
activity_user_idActivity Usermany2one
allocation_countTotal number of days allocated.float
computed

added by Time Off (hr_holidays)

allocation_displayAllocation Displaychar
computed

added by Time Off (hr_holidays)

allocation_remaining_displayAllocation Remaining Displaychar
computed

added by Time Off (hr_holidays)

allocations_countTotal number of allocationsinteger
computed

added by Time Off (hr_holidays)

applicant_idsApplicantsone2many

inverse: employee_id

added by Recruitment (hr_recruitment)

attendance_idsAttendanceone2many

inverse: employee_id

added by Attendances (hr_attendance)

attendance_manager_idAttendance Approver

The user set in Attendance will access the attendance of the employee through the dedicated app and will be able to edit them.

many2one

added by Attendances (hr_attendance)

attendance_stateAttendance Statusselection
computed

Values: checked_out (Checked out), checked_in (Checked in)

added by Attendances (hr_attendance)

badge_idsEmployee Badges

All employee badges, linked to the employee either directly or through the user

one2many
computed

added by HR Gamification (hr_gamification)

bank_account_idsBank Accounts

Employee bank accounts to pay salaries

many2many
barcodeBadge ID

ID used for employee identification.

char
birthdayBirthdaydate
birthday_public_displayShow to all employeesboolean
birthday_public_display_stringPublic Date of Birthchar
computed
car_idsVehicles (private)one2many

inverse: driver_employee_id

added by Fleet History (hr_fleet)

category_idsTagsmany2many
certificateCertificate Levelselection

Values computed at runtime

certification_idsCertificationone2many
computed

added by Skills Management (hr_skills)

child_all_countIndirect Subordinates Countinteger
computed

added by HR Org Chart (hr_org_chart)

child_countDirect Subordinates Countinteger
computed

added by HR Org Chart (hr_org_chart)

child_idsDirect subordinatesone2many

inverse: parent_id

coach_idCoach

Select the "Employee" who is the coach of this employee. The "Coach" has no specific rights or responsibilities by default.

many2one
computed, stored
colorColor Indexinteger
company_country_codeCompany Country Codechar
read-only

related: company_country_id.code

company_country_idCompany Countrymany2one
read-only

related: company_id.country_id

company_idCompanymany2one
required
contract_date_endContract Date Enddate

related: version_id.contract_date_end

contract_date_startContract Date Startdate

related: version_id.contract_date_start

contract_type_idContract Typemany2one

related: version_id.contract_type_id

contract_wageContract Wagemonetary

related: version_id.contract_wage

country_of_birthCountry of Birthmany2one
courses_completion_textCourses Completion Textchar
computed

added by Skills e-learning (hr_skills_slides)

currency_idCurrencymany2one
read-only

related: company_id.currency_id

current_date_versionCurrent Date Versiondate

related: current_version_id.date_version

current_employee_skill_idsCurrent Employee Skillone2many
computed

added by Skills Management (hr_skills)

current_leave_idCurrent Time Off Typemany2one
computed

added by Time Off (hr_holidays)

current_leave_stateCurrent Time Off Statusselection
computed

Values: confirm (Waiting Approval), refuse (Refused), validate1 (Waiting Second Approval), validate (Approved), cancel (Cancelled)

added by Time Off (hr_holidays)

current_version_idCurrent Versionmany2one
computed, stored
date_endDate Enddate

related: version_id.date_end

date_startDate Startdate

related: version_id.date_start

department_colorDepartment Colorinteger

related: department_id.color

added by HR Org Chart (hr_org_chart)

direct_badge_idsDirect Badge

Badges directly linked to the employee

one2many

inverse: employee_id

added by HR Gamification (hr_gamification)

display_attendancesDisplay Attendancesboolean
computed

added by Attendances (hr_attendance)

display_certification_pageDisplay Certification Pageboolean
computed

added by Skills Management (hr_skills)

display_extra_hoursDisplay Extra Hoursboolean

related: company_id.hr_attendance_display_overtime

added by Attendances (hr_attendance)

driving_licenseDriving Licensebinary
emailEmailchar

related: user_id.email

email_sentEmail Sentboolean

added by Employee Presence Control (hr_presence)

emergency_contactEmergency Contactchar
emergency_phoneEmergency Phonechar
employee_cars_countCarsinteger
computed

added by Fleet History (hr_fleet)

employee_propertiesPropertiesproperties
employee_skill_idsSkillsone2many

inverse: employee_id

added by Skills Management (hr_skills)

equipment_countEquipment Countinteger
computed

added by Maintenance - HR (hr_maintenance)

equipment_idsEquipmentone2many

inverse: employee_id

added by Maintenance - HR (hr_maintenance)

exceptional_location_idCurrent

This is the exceptional, non-weekly, location set for today.

many2one
computed

added by Remote Work (hr_homeworking)

expense_manager_idExpense Approver

Select the user responsible for approving "Expenses" of this employee. If empty, the approval is done by an Administrator or Approver (determined in settings/users).

many2one
computed, stored

added by Expenses (hr_expense)

filter_for_expenseFilter For Expenseboolean

added by Expenses (hr_expense)

friday_location_idFridaymany2one

added by Remote Work (hr_homeworking)

goal_idsEmployee HR Goalsone2many
computed

added by HR Gamification (hr_gamification)

has_badgesHas Badgesboolean
computed

added by HR Gamification (hr_gamification)

has_messageHas Messageboolean
has_multiple_bank_accountsHas Multiple Bank Accountsboolean
computed
has_subscribed_coursesHas Subscribed Coursesboolean
computed

added by Skills e-learning (hr_skills_slides)

has_timesheetHas Timesheetboolean
computed

added by Task Logs (hr_timesheet)

has_work_entriesHas Work Entriesboolean
computed

added by Work Entries (hr_work_entry)

has_work_permitWork Permitbinary
hourly_costHourly Costmonetary

added by Employee Hourly Wage (hr_hourly_cost)

hours_last_monthHours Last Monthfloat
computed

added by Attendances (hr_attendance)

hours_last_month_displayHours Last Month Displaychar
computed

added by Attendances (hr_attendance)

hours_last_month_overtimeHours Last Month Overtimefloat
computed

added by Attendances (hr_attendance)

hours_previously_todayHours Previously Todayfloat
computed

added by Attendances (hr_attendance)

hours_todayHours Todayfloat
computed

added by Attendances (hr_attendance)

hr_icon_displayHr Icon Displayselection
computed

Values: presence_present (Present), presence_out_of_working_hour (Off-Hours), presence_absent (Absent), presence_archive (Archived), presence_undetermined (Undetermined)

hr_presence_stateHr Presence Stateselection
computed

Values: present (Present), absent (Absent), archive (Archived), out_of_working_hour (Off-Hours)

hr_presence_state_displayHr Presence State Displayselection

Values: out_of_working_hour (Off-Hours), present (Present), absent (Absent)

added by Employee Presence Control (hr_presence)

id_cardID Card Copybinary
im_statusIm Statuschar

related: user_id.im_status

ip_connectedIp Connectedboolean

added by Employee Presence Control (hr_presence)

is_absentAbsent Todayboolean
computed

added by Time Off (hr_holidays)

is_currentIs Currentboolean

related: version_id.is_current

is_futureIs Futureboolean

related: version_id.is_future

is_in_contractIs In Contractboolean

related: version_id.is_in_contract

is_pastIs Pastboolean

related: version_id.is_past

is_subordinateIs Subordinateboolean
computed

added by HR Org Chart (hr_org_chart)

is_trusted_bank_accountIs Trusted Bank Accountboolean
computed
is_user_activeUser's activeboolean

related: user_id.active

langLangselection

Values computed at runtime

last_activityLast Activitydate
computed
last_activity_timeLast Activity Timechar
computed
last_attendance_idLast Attendancemany2one
computed, stored

added by Attendances (hr_attendance)

last_attendance_worked_hoursLast Attendance Worked Hoursfloat
computed

added by Attendances (hr_attendance)

last_check_inLast Check Indatetime

related: last_attendance_id.check_in

added by Attendances (hr_attendance)

last_check_outLast Check Outdatetime

related: last_attendance_id.check_out

added by Attendances (hr_attendance)

leave_date_fromFrom Datedate
computed

added by Time Off (hr_holidays)

leave_date_toTo Datedate
computed

added by Time Off (hr_holidays)

leave_manager_idTime Off Approver

Select the user responsible for approving "Time Off" of this employee. If empty, the approval is done by an Administrator or Approver (determined in settings/users).

many2one
computed, stored

added by Time Off (hr_holidays)

license_plateLicense Platechar
computed

added by Fleet History (hr_fleet)

manually_set_presenceManually Set Presenceboolean

added by Employee Presence Control (hr_presence)

manually_set_presentManually Set Presentboolean

added by Employee Presence Control (hr_presence)

message_attachment_countMessage Attachment Countinteger
message_follower_idsMessage Followerone2many
message_has_errorMessage Has Errorboolean
message_has_error_counterMessage Has Error Counterinteger
message_idsMessageone2many
message_is_followerMessage Is Followerboolean
message_main_attachment_idMessage Main Attachmentmany2one
message_needactionMessage Needactionboolean
message_needaction_counterMessage Needaction Counterinteger
message_partner_idsMessage Partnermany2many
mobile_phoneWork Mobilechar
mobility_cardMobility Cardchar

added by Fleet History (hr_fleet)

monday_location_idMondaymany2one

added by Remote Work (hr_homeworking)

my_activity_date_deadlineMy Activity Date Deadlinedate
nameEmployee Namechar

related: resource_id.name

newly_hiredNewly Hiredboolean
computed
overtime_idsOvertimeone2many

inverse: employee_id

added by Attendances (hr_attendance)

parent_idManagermany2one
permit_noWork Permit Nochar
phonePhonechar

related: user_id.phone

pinPIN

PIN used to Check In/Out in the Kiosk Mode of the Attendance application (if enabled in Configuration) and to change the cashier in the Point of Sale application.

char
place_of_birthPlace of Birthchar
primary_bank_account_idPrimary Bank Accountmany2one
computed
private_car_platePrivate Car Plate

If you have more than one car, just separate the plates by a space.

char
private_emailPrivate Emailchar
private_phonePrivate Phonechar
resource_calendar_idResource Calendarmany2one

related: version_id.resource_calendar_id

resource_idResourcemany2one
required
resume_line_idsResume linesone2many

inverse: employee_id

added by Skills Management (hr_skills)

ruleset_idRulesetmany2one

related: version_id.ruleset_id

added by Attendances (hr_attendance)

salary_distributionSalary Distributionjson
computed, stored
saturday_location_idSaturdaymany2one

added by Remote Work (hr_homeworking)

shareShareboolean

related: user_id.share

show_hr_icon_displayShow Hr Icon Displayboolean
computed
show_leavesAble to see Remaining Time Offboolean
computed

added by Time Off (hr_holidays)

skill_idsSkillmany2many
computed, stored

added by Skills Management (hr_skills)

structure_type_idStructure Typemany2one

related: version_id.structure_type_id

study_fieldField of Studychar
study_schoolSchoolchar
subordinate_idsSubordinates

Direct and indirect subordinates

one2many
computed

added by HR Org Chart (hr_org_chart)

subscribed_coursesSubscribed Coursesmany2many

related: user_partner_id.slide_channel_ids

added by Skills e-learning (hr_skills_slides)

sunday_location_idSundaymany2one

added by Remote Work (hr_homeworking)

thursday_location_idThursdaymany2one

added by Remote Work (hr_homeworking)

today_location_nameToday Location Namechar

added by Remote Work (hr_homeworking)

total_overtimeTotal Overtimefloat
computed

added by Attendances (hr_attendance)

trial_date_endTrial Date Enddate

related: version_id.trial_date_end

tuesday_location_idTuesdaymany2one

added by Remote Work (hr_homeworking)

tzTzselection

Values computed at runtime

user_idUsermany2one

related: resource_id.user_id

user_partner_idUser's partnermany2one

related: user_id.partner_id

version_idVersionmany2one
requiredcomputed
version_idsEmployee Versionsone2many
required

inverse: employee_id

version_revisionVersion Revisionchar
computed
versions_countVersions Countinteger
computed
visa_expireVisa Expiration Datedate
visa_noVisa Nochar
wednesday_location_idWednesdaymany2one

added by Remote Work (hr_homeworking)

work_contact_idWork Contactmany2one
work_emailWork Emailchar
computed, stored
work_entry_sourceWork Entry Sourceselection

related: version_id.work_entry_source

added by Work Entries (hr_work_entry)

work_entry_source_calendar_invalidWork Entry Source Calendar Invalidboolean

related: version_id.work_entry_source_calendar_invalid

added by Work Entries (hr_work_entry)

work_location_nameWork Location Namechar
computed
work_location_typeWork Location Typeselection
computed

Values: home (Home), office (Office), other (Other)

work_permit_expiration_dateWork Permit Expiration Datedate
work_permit_namework_permit_namechar
computed
work_permit_scheduled_activityWork Permit Scheduled Activityboolean
work_phoneWork Phonechar
computed, stored
activity_calendar_event_idNext Activity Calendar Eventmany2one
computed

inherited from mail.activity.mixin

avatar_1024Avatar 1024image
computed

inherited from avatar.mixin

avatar_128Avatar 128image
computed

inherited from avatar.mixin

avatar_1920Avatarimage
computed

inherited from avatar.mixin

avatar_256Avatar 256image
computed

inherited from avatar.mixin

avatar_512Avatar 512image
computed

inherited from avatar.mixin

image_1024Image 1024image

related: image_1920

inherited from image.mixin

image_128Image 128image

related: image_1920

inherited from image.mixin

image_1920Imageimage

inherited from image.mixin

image_256Image 256image

related: image_1920

inherited from image.mixin

image_512Image 512image

related: image_1920

inherited from image.mixin

message_has_sms_errorSMS Delivery error

If checked, some messages have a delivery error.

boolean
computed

inherited from mail.thread

rating_idsRatingsone2many

inverse: res_id

inherited from mail.thread

website_message_idsWebsite Messages

Website communication history

one2many

inverse: res_id

inherited from mail.thread

create_dateCreated ondatetime
read-onlyautomatic
create_uidCreated bymany2one
read-onlyautomatic
display_nameDisplay Namechar
read-onlycomputedautomatic
idIDinteger
read-onlyautomatic
write_dateLast Updated ondatetime
read-onlyautomatic
write_uidLast Updated bymany2one
read-onlyautomatic

Relations

Models linked from this model

Fields of other models pointing here

Reading this model through the API

Odoo 19 JSON-2 API call reading the first five records with real fields of the model. Replace the instance, database and API key with your own.

curl
curl -X POST "https://your-instance.odoo.com/json/2/hr.employee/search_read" \
  -H "Authorization: bearer $ODOO_API_KEY" \
  -H "X-Odoo-Database: your-db" \
  -H "Content-Type: application/json" \
  -d '{"domain":[],"fields":["name","company_id","resource_id","activity_type_id","activity_user_id"],"limit":5}'
Python (requests)
import requests

BASE_URL = "https://your-instance.odoo.com/json/2"
headers = {"Authorization": f"bearer {API_KEY}", "X-Odoo-Database": "your-db"}

res = requests.post(
    f"{BASE_URL}/hr.employee/search_read",
    headers=headers,
    json={"domain": [], "fields": ["name","company_id","resource_id","activity_type_id","activity_user_id"], "limit": 5},
)
res.raise_for_status()
print(res.json())
  • External API access requires Odoo's Custom plan.
  • XML-RPC and JSON-RPC will be removed in Odoo 22 (fall 2028): use JSON-2.
  • The access rights and record rules of the key's user apply.

Cite this tool

Writing a tutorial, internal documentation or a forum answer? Copy this link to send your readers to the up-to-date reference.

<a href="https://aidoo.ai/en/outils/explorateur-modeles-odoo/hr-employee">hr.employee (Odoo 19.0)</a>

Sources

Data verified on September 23, 2026 · Odoo 19.0 Community

Have an Odoo project, or want to put your ERP to work with AI? Let's talk

Implementation, custom module development, connecting Claude or ChatGPT to your data: tell us about your context and we will reply within 24 business hours.