Odoo 19.0 Community · Persistent

res.users: fields, relations and API

The res.users model ("User") is a persistent model declared by the Base module, then extended by 52 other modules. It exposes 145 fields, 140 of them declared directly on the model; 195 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
res.users
Label
User
Type
Persistent (models.Model)
SQL table
res_users
Origin module
Base (base)
Extended by
web, base_setup, bus, web_tour, mail, auth_signup, resource, digest, auth_ldap, auth_oauth, auth_passkey, auth_password_policy, auth_totp, auth_totp_mail, auth_timeout, auth_totp_portal, contacts, phone_validation, base_import, calendar, sales_team, crm, im_livechat, crm_livechat, stock, sale_stock, gamification, google_calendar, google_gmail, hr, hr_attendance, hr_gamification, hr_holidays, hr_homeworking, hr_recruitment, website, website_profile, website_slides, project, point_of_sale, lunch, mail_bot, mass_mailing, mass_mailing_sms, microsoft_account, microsoft_calendar, microsoft_outlook, project_hr_skills, project_todo, web_unsplash, website_forum, website_sale_wishlist
Default order (_order)
name, login
Inherits from (mixins)
bus.listener.mixinpos.load.mixin
Delegation (_inherits)
res.partner: fields of this model are also available, through partner_id

Model fields

140 own fields, 0 inherited from mixins and 5 automatic ORM fields. Click a name to get a direct link to that field.

145 of 145 fields shown

Technical nameLabelTypeDetails
accesses_count# Access Rights

Number of access rights that apply to the current user

integer
computed
action_idHome Action

If specified, this action will be opened at log on for this user, in addition to the standard menu.

many2one
activeActiveboolean
active_partnerPartner is Activeboolean
read-only

related: partner_id.active

additional_noteAdditional Notetext

related: employee_id.additional_note

added by Employees (hr)

all_group_idsGroups and implied groupsmany2many
computed
api_key_idsAPI Keysone2many

inverse: user_id

auth_passkey_key_idsAuth Passkey Keyone2many

inverse: create_uid

added by Passkeys (auth_passkey)

badge_idsBadgesone2many

inverse: user_id

added by Gamification (gamification)

bank_account_idsBank Accountmany2many

related: employee_id.bank_account_ids

added by Employees (hr)

barcodeBarcodechar

related: employee_id.barcode

added by Employees (hr)

bronze_badgeBronze badges countinteger
computed

added by Gamification (gamification)

calendar_default_privacyCalendar Default Privacyselection
computed

Values: public (Public by default), private (Private by default), confidential (Internal users only)

added by Calendar (calendar)

can_edit_roleCan Edit Roleboolean
computed

added by Discuss (mail)

category_idsEmployee Tagsmany2many

related: employee_id.category_ids

added by Employees (hr)

companies_countNumber of Companiesinteger
computed
company_idCompany

The default company for this user.

many2one
required
company_idsCompaniesmany2many
create_dateCreate Datedatetime
read-only

added by Forum (website_forum)

create_employeeTechnical field, whether to create an employeeboolean

added by Employees (hr)

create_employee_idTechnical field, bind user to this employee on createmany2one

added by Employees (hr)

crm_team_idsSales Teamsmany2many
read-onlycomputed

added by Sales Teams (sales_team)

crm_team_member_idsSales Team Membersone2many

inverse: user_id

added by Sales Teams (sales_team)

device_idsUser devicesone2many

inverse: user_id

emailEmailchar

related: partner_id.email

email_domain_placeholderEmail Domain Placeholderchar
computed
emergency_contactEmergency Contactchar

related: employee_id.emergency_contact

added by Employees (hr)

emergency_phoneEmergency Phonechar

related: employee_id.emergency_phone

added by Employees (hr)

employee_bank_account_idsEmployee's Bank Accountsmany2many

related: employee_id.bank_account_ids

added by Employees (hr)

employee_countEmployee Countinteger
computed

added by Employees (hr)

employee_idCompany employeemany2one
computed

added by Employees (hr)

employee_idsRelated employeeone2many

inverse: user_id

added by Employees (hr)

employee_resource_calendar_idEmployee's Working Hoursmany2one
read-only

related: employee_id.resource_calendar_id

added by Employees (hr)

employee_skill_idsEmployee Skillone2many

related: employee_id.employee_skill_ids

added by Project - Skills (project_hr_skills)

favorite_lunch_product_idsFavorite Lunch Productmany2many

added by Lunch (lunch)

favorite_project_idsFavorite Projectsmany2many

added by Project (project)

friday_location_idFridaysmany2one

related: employee_id.friday_location_id

added by Remote Work (hr_homeworking)

goal_idsGoalone2many

inverse: user_id

added by HR Gamification (hr_gamification)

gold_badgeGold badges countinteger
computed

added by Gamification (gamification)

google_calendar_cal_idGoogle Calendar Calchar

related: res_users_settings_id.google_calendar_cal_id

added by Google Calendar (google_calendar)

google_calendar_rtokenGoogle Calendar Rtokenchar

related: res_users_settings_id.google_calendar_rtoken

added by Google Calendar (google_calendar)

google_calendar_sync_tokenGoogle Calendar Sync Tokenchar

related: res_users_settings_id.google_calendar_sync_token

added by Google Calendar (google_calendar)

google_calendar_tokenGoogle Calendar Tokenchar

related: res_users_settings_id.google_calendar_token

added by Google Calendar (google_calendar)

google_calendar_token_validityGoogle Calendar Token Validitydatetime

related: res_users_settings_id.google_calendar_token_validity

added by Google Calendar (google_calendar)

google_synchronization_stoppedGoogle Synchronization Stoppedboolean

related: res_users_settings_id.google_synchronization_stopped

added by Google Calendar (google_calendar)

group_idsGroups

Groups explicitly assigned to the user

many2many
groups_count# Groups

Number of groups that apply to the current user

integer
computed
has_access_livechatHas access to Livechatboolean
read-onlycomputed

added by Live Chat (im_livechat)

has_external_mail_serverHas External Mail Serverboolean
computed

added by Discuss (mail)

has_oauth_access_tokenHas OAuth Access Tokenboolean
computed

added by OAuth2 Authentication (auth_oauth)

im_statusIM Statuschar
computed

added by Discuss (mail)

is_hr_userIs Hr Userboolean
computed

added by Employees (hr)

is_in_callIs in callboolean

related: partner_id.is_in_call

added by Discuss (mail)

is_out_of_officeOut of Officeboolean
computed

added by Discuss (mail)

is_systemIs Systemboolean
computed

added by Employees (hr)

job_titleJob Titlechar

related: employee_id.job_title

added by Employees (hr)

karmaKarmainteger
computed, stored

added by Gamification (gamification)

karma_tracking_idsKarma Changesone2many

inverse: user_id

added by Gamification (gamification)

km_home_workKm Home Workinteger

related: employee_id.km_home_work

added by Employees (hr)

last_lunch_location_idLast Lunch Locationmany2one

added by Lunch (lunch)

leave_date_toLeave Date Todate

related: employee_id.leave_date_to

added by Time Off (hr_holidays)

livechat_channel_idsLivechat Channelmany2many

added by Live Chat (im_livechat)

livechat_expertise_idsLive Chat Expertise

When forwarding live chat conversations, the chatbot will prioritize users with matching expertise.

many2many
computed

added by Live Chat (im_livechat)

livechat_is_in_callLivechat Is In Call

Whether the user is in a call, only available if the user is in a live chat agent

boolean
computed

added by Live Chat (im_livechat)

livechat_lang_idsLivechat Languagesmany2many
computed

added by Live Chat (im_livechat)

livechat_ongoing_session_countNumber of Ongoing sessionsinteger
computed

added by Live Chat (im_livechat)

livechat_usernameLivechat Usernamechar
computed

added by Live Chat (im_livechat)

log_idsUser log entriesone2many

inverse: create_uid

loginLogin

Used to log into the system

char
required
login_dateLatest Logindatetime

related: log_ids.create_date

manual_im_statusIM status manually set by the userselection

Values: away (Away), busy (Do Not Disturb), offline (Offline)

added by Discuss (mail)

microsoft_calendar_rtokenMicrosoft Refresh Tokenchar

added by Microsoft Users (microsoft_account)

microsoft_calendar_sync_tokenMicrosoft Calendar Sync Tokenchar

related: res_users_settings_id.microsoft_calendar_sync_token

added by Outlook Calendar (microsoft_calendar)

microsoft_calendar_tokenMicrosoft User tokenchar

added by Microsoft Users (microsoft_account)

microsoft_calendar_token_validityMicrosoft Token Validitydatetime

added by Microsoft Users (microsoft_account)

microsoft_last_sync_dateMicrosoft Last Sync Datedatetime

related: res_users_settings_id.microsoft_last_sync_date

added by Outlook Calendar (microsoft_calendar)

microsoft_synchronization_stoppedMicrosoft Synchronization Stoppedboolean

related: res_users_settings_id.microsoft_synchronization_stopped

added by Outlook Calendar (microsoft_calendar)

mobile_phoneMobile Phonechar

related: employee_id.mobile_phone

added by Employees (hr)

monday_location_idMondaysmany2one

related: employee_id.monday_location_id

added by Remote Work (hr_homeworking)

nameNamechar

related: partner_id.name

new_passwordSet Password

Specify a value only when creating a user or if you're changing the user's password, otherwise leave empty. After a change of password, the user has to login again.

char
computed
next_rank_idNext Rankmany2one

added by Gamification (gamification)

notification_typeNotification

Policy on how to handle Chatter notifications: - By Emails: notifications are sent to your email address - In Odoo: notifications appear in your Odoo Inbox

selection
requiredcomputed, stored

Values: email (By Emails), inbox (In Odoo)

added by Discuss (mail)

oauth_access_tokenOAuth Access Token Storechar
read-only

added by OAuth2 Authentication (auth_oauth)

oauth_provider_idOAuth Providermany2one

added by OAuth2 Authentication (auth_oauth)

oauth_uidOAuth User ID

Oauth Provider user_id

char

added by OAuth2 Authentication (auth_oauth)

odoobot_failedOdoobot Failedboolean
read-only

added by OdooBot (mail_bot)

odoobot_stateOdooBot Statusselection
read-only

Values: not_initialized (Not initialized), onboarding_emoji (Onboarding emoji), onboarding_attachement (Onboarding attachment), onboarding_command (Onboarding command), onboarding_ping (Onboarding ping), onboarding_canned (Onboarding canned), idle (Idle), disabled (Disabled)

added by OdooBot (mail_bot)

out_of_office_fromOut Of Office Fromdatetime

added by Discuss (mail)

out_of_office_messageVacation Responderhtml

added by Discuss (mail)

out_of_office_toOut Of Office Todatetime

added by Discuss (mail)

outgoing_mail_server_idOutgoing Mail Servermany2one
computed

added by Discuss (mail)

outgoing_mail_server_typeOutgoing Mail Server Typeselection
requiredcomputed

Values: default (Default)

added by Discuss (mail)

partner_idRelated Partner

Partner-related data of the user

many2one
required
passwordPassword

Keep empty if you don't want the user to be able to connect on the system.

char
computed
phonePhonechar

related: partner_id.phone

pinPinchar

related: employee_id.pin

added by Employees (hr)

presence_idsPresenceone2many

inverse: user_id

added by Discuss (mail)

private_cityPrivate Citychar

related: employee_id.private_city

added by Employees (hr)

private_country_idPrivate Countrymany2one

related: employee_id.private_country_id

added by Employees (hr)

private_emailPrivate Emailchar

related: employee_id.private_email

added by Employees (hr)

private_phonePrivate Phonechar

related: employee_id.private_phone

added by Employees (hr)

private_state_idPrivate Statemany2one

related: employee_id.private_state_id

added by Employees (hr)

private_streetPrivate Streetchar

related: employee_id.private_street

added by Employees (hr)

private_street2Private Street2char

related: employee_id.private_street2

added by Employees (hr)

private_zipPrivate Zipchar

related: employee_id.private_zip

added by Employees (hr)

property_warehouse_idDefault Warehousemany2one
company-dependent

added by Sales and Warehouse Management (sale_stock)

rank_idRankmany2one

added by Gamification (gamification)

res_users_settings_idSettingsmany2one
computed
res_users_settings_idsRes Users Settingsone2many

inverse: user_id

resource_calendar_idDefault Working Hoursmany2one

related: resource_ids.calendar_id

added by Resource (resource)

resource_idsResourcesone2many

inverse: user_id

added by Resource (resource)

roleRoleselection
computed

Values: group_user (User), group_system (Administrator)

role_idsUser Roles

Users are notified whenever one of their roles is @-mentioned in a conversation.

many2many

added by Discuss (mail)

rules_count# Record Rules

Number of record rules that apply to the current user

integer
computed
sale_team_idUser Sales Team

Main user sales team. Used notably for pipeline, or to set sales team in invoicing or subscription.

many2one
read-onlycomputed, stored

added by Sales Teams (sales_team)

saturday_location_idSaturdaysmany2one

related: employee_id.saturday_location_id

added by Remote Work (hr_homeworking)

shareShare User

External user with limited access, created only for the purpose of sharing data.

boolean
computed, stored
signatureEmail Signaturehtml
computed, stored
silver_badgeSilver badges countinteger
computed

added by Gamification (gamification)

stateStatusselection
computed

Values: new (Invited), active (Confirmed)

added by Signup (auth_signup)

sunday_location_idSundaysmany2one

related: employee_id.sunday_location_id

added by Remote Work (hr_homeworking)

thursday_location_idThursdaysmany2one

related: employee_id.thursday_location_id

added by Remote Work (hr_homeworking)

totp_enabledTwo-factor authenticationboolean
computed

added by Two-Factor Authentication (TOTP) (auth_totp)

totp_last_counterTotp Last Counterinteger

added by Two-Factor Authentication (TOTP) (auth_totp)

totp_secretTotp Secretchar
computed

added by Two-Factor Authentication (TOTP) (auth_totp)

totp_trusted_device_idsTrusted Devicesone2many

inverse: user_id

added by Two-Factor Authentication (TOTP) (auth_totp)

tour_enabledOnboardingboolean
computed, stored

added by Tours (web_tour)

tuesday_location_idTuesdaysmany2one

related: employee_id.tuesday_location_id

added by Remote Work (hr_homeworking)

tz_offsetTimezone offsetchar
computed
view_group_hierarchyTechnical field for user group settingjson
visa_expireVisa Expiredate

related: employee_id.visa_expire

added by Employees (hr)

website_idWebsitemany2one

related: partner_id.website_id

added by Website (website)

wednesday_location_idWednesdaysmany2one

related: employee_id.wednesday_location_id

added by Remote Work (hr_homeworking)

work_contact_idWork Contactmany2one

related: employee_id.work_contact_id

added by Employees (hr)

work_emailWork Emailchar

related: employee_id.work_email

added by Employees (hr)

work_location_idWork Locationmany2one

related: employee_id.work_location_id

added by Employees (hr)

work_location_nameWork Location Namechar

related: employee_id.work_location_name

added by Employees (hr)

work_location_typeWork Location Typeselection

related: employee_id.work_location_type

added by Employees (hr)

work_phoneWork Phonechar

related: employee_id.work_phone

added by Employees (hr)

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/res.users/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","login","notification_type","partner_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}/res.users/search_read",
    headers=headers,
    json={"domain": [], "fields": ["name","company_id","login","notification_type","partner_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/res-users">res.users (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.