Odoo 20.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 191 fields, 162 of them declared directly on the model; 207 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 20 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, phone_validation, base_import, calendar, contacts, sales_team, crm, im_livechat, crm_livechat, project, gamification, google_calendar, google_gmail, hr, hr_attendance, hr_calendar_google, hr_gamification, hr_holidays, hr_recruitment, website, website_profile, website_slides, point_of_sale, lunch, mail_bot, mass_mailing, mass_mailing_sms, microsoft_account, microsoft_calendar, microsoft_outlook, stock, sale_stock, project_hr_skills, project_todo, website_sale, web_unsplash, website_forum
Default order (_order)
name, login
Inherits from (mixins)
bus.listener.mixinmail.threadmail.activity.mixinpos.load.mixin
Delegation (_inherits)
res.partner: fields of this model are also available, through partner_id

Model fields

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

191 of 191 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

added by Employees (hr)

all_employee_idsRelated employees from all companiesone2many

inverse: user_id

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

added by Employees (hr)

barcodeBarcodechar

added by Employees (hr)

birthdayBirthdaydate

added by Employees (hr)

birthday_public_displayBirthday Public Displayboolean

added by Employees (hr)

bronze_badgeBronze badges countinteger
computed

added by Gamification (gamification)

calendar_idsCalendarone2many
computed

added by Calendar (calendar)

calendar_user_idsCalendar Userone2many

inverse: user_id

added by Calendar (calendar)

can_edit_roleCan Edit Roleboolean
computed

added by Discuss (mail)

category_idsCategorymany2many

added by Employees (hr)

cityCitychar

related: partner_id.city

added by Website profile (website_profile)

companies_countNumber of Companiesinteger
computed
company_idCompany

The default company for this user.

many2one
required
company_idsCompaniesmany2many
country_idCountrymany2one

related: partner_id.country_id

added by Website profile (website_profile)

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)

department_idDepartmentmany2one

related: employee_id.department_id

added by Employees (hr)

device_idsUser devicesone2many

inverse: user_id

digest_idsDigestsmany2many

added by KPI Digests (digest)

emailEmailchar

related: partner_id.email

email_domain_placeholderEmail Domain Placeholderchar
computed
emergency_contactEmergency Contactchar

added by Employees (hr)

emergency_phoneEmergency Phonechar

added by Employees (hr)

employee_bank_account_idsEmployee Bank Accountmany2many

added by Employees (hr)

employee_countEmployee Countinteger
computed

added by Employees (hr)

employee_idCompany employeemany2one
read-onlycomputed

added by Employees (hr)

employee_idsRelated employeeone2many

inverse: user_id

added by Employees (hr)

employee_public_idsRelated employee (public)one2many
read-only

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)

followed_project_idsFollowed Projectmany2many

added by Project (project)

friday_location_idFriday Locationmany2one

added by Employees (hr)

goal_idsGoalone2many

inverse: user_id

added by HR Gamification (hr_gamification)

gold_badgeGold badges countinteger
computed

added by Gamification (gamification)

google_account_emailGoogle Account Emailchar

related: res_users_settings_id.google_account_email

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 Statusselection
computed

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

added by Discuss (mail)

image_1920Image 1920binary

related: partner_id.image_1920

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

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

added by Employees (hr)

langLangselection

related: partner_id.lang

last_lunch_location_idLast Lunch Locationmany2one

added by Lunch (lunch)

leave_date_toLeave Date Todate

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_account_emailMicrosoft Account Emailchar

related: res_users_settings_id.microsoft_account_email

added by Outlook Calendar (microsoft_calendar)

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

added by Employees (hr)

monday_location_idMonday Locationmany2one

added by Employees (hr)

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

How notifications for document messages and system updates are delivered: - By email: 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)

offline_sinceOffline sincedatetime
computed

added by Discuss (mail)

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)

owned_calendar_idsOwned Calendarone2many
computed

added by Calendar (calendar)

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

added by Employees (hr)

presence_idsPresenceone2many

inverse: user_id

added by Discuss (mail)

primary_calendar_idPrimary Calendarmany2one
computed, stored

added by Calendar (calendar)

private_cityPrivate Citychar

added by Employees (hr)

private_country_idPrivate Countrymany2one

added by Employees (hr)

private_emailPrivate Emailchar

added by Employees (hr)

private_phonePrivate Phonechar

added by Employees (hr)

private_state_idPrivate Statemany2one

added by Employees (hr)

private_streetPrivate Streetchar

added by Employees (hr)

private_street2Private Street2char

added by Employees (hr)

private_zipPrivate Zipchar

added by Employees (hr)

project_role_idsProject Rolesmany2many

added by Project (project)

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: light_user (Light), regular_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)

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_idSaturday Locationmany2one

added by Employees (hr)

session_idsUser sessionsone2many

inverse: user_id

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), inactive (Inactive)

added by Signup (auth_signup)

sunday_location_idSunday Locationmany2one

added by Employees (hr)

thursday_location_idThursday Locationmany2one

added by Employees (hr)

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_idTuesday Locationmany2one

added by Employees (hr)

tzTzselection

related: partner_id.tz

tz_offsetTimezone offsetchar
computed
view_group_hierarchyTechnical field for user group settingjson
visa_expireVisa Expiredate

added by Employees (hr)

websiteWebsitechar

related: partner_id.website

added by Website profile (website_profile)

website_descriptionWebsite Descriptionhtml

related: partner_id.website_description

added by Website profile (website_profile)

website_idWebsitemany2one

related: partner_id.website_id

added by Website (website)

website_publishedWebsite Publishedboolean

related: partner_id.website_published

added by Website profile (website_profile)

wednesday_location_idWednesday Locationmany2one

added by Employees (hr)

work_contact_idWork Contactmany2one

added by Employees (hr)

work_emailWork Emailchar

added by Employees (hr)

work_location_idWork Locationmany2one

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

added by Employees (hr)

writable_calendar_idsWritable Calendarone2many
computed

added by Calendar (calendar)

activity_calendar_event_idNext Activity Calendar Eventmany2one
computed

inherited from mail.activity.mixin

activity_date_deadlineNext Activity Deadlinedate
read-onlycomputed

inherited from mail.activity.mixin

activity_exception_decorationActivity Exception Decoration

Type of the exception activity on record.

selection
computed

Values: warning (Alert), danger (Error)

inherited from mail.activity.mixin

activity_exception_iconIcon

Icon to indicate an exception activity.

char
computed

inherited from mail.activity.mixin

activity_idsActivitiesone2many

inverse: res_id

inherited from mail.activity.mixin

activity_plans_idsActivity Plansmany2many
computed

inherited from mail.activity.mixin

activity_stateActivity State

Status based on activities Overdue: Due date is already passed Today: Activity date is today Planned: Future activities.

selection
computed

Values: overdue (Overdue), today (Today), planned (Planned)

inherited from mail.activity.mixin

activity_summaryNext Activity Summarychar

related: activity_ids.summary

inherited from mail.activity.mixin

activity_type_iconActivity Type Iconchar

related: activity_ids.icon

inherited from mail.activity.mixin

activity_type_idNext Activity Typemany2one

related: activity_ids.activity_type_id

inherited from mail.activity.mixin

activity_user_idResponsible Usermany2one
read-onlycomputed

inherited from mail.activity.mixin

has_messageHas Messageboolean
computed

inherited from mail.thread

message_attachment_countAttachment Countinteger
computed

inherited from mail.thread

message_follower_idsFollowersone2many

inverse: res_id

inherited from mail.thread

message_has_errorMessage Delivery error

If checked, some messages have a delivery error.

boolean
computed

inherited from mail.thread

message_has_error_counterNumber of errors

Number of messages with delivery error

integer
computed

inherited from mail.thread

message_has_sms_errorSMS Delivery error

If checked, some messages have a delivery error.

boolean
computed

inherited from mail.thread

message_idsMessagesone2many

inverse: res_id

inherited from mail.thread

message_is_followerIs Followerboolean
computed

inherited from mail.thread

message_needactionAction Needed

If checked, new messages require your attention.

boolean
computed

inherited from mail.thread

message_needaction_counterNumber of Actions

Number of messages requiring action

integer
computed

inherited from mail.thread

message_partner_idsFollowers (Partners)many2many
computed

inherited from mail.thread

my_activity_date_deadlineMy Activity Deadlinedate
read-onlycomputed

inherited from mail.activity.mixin

rating_idsRatingsone2many

inverse: res_id

inherited from mail.thread

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 20 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 20.0)</a>

Sources

Data verified on September 25, 2026 · Odoo 20.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.