Website Builder

Create your stunning Website, that is Responsive & SEO friendly

Easy • No credit card required • Instant access


To establish a system that is integrated into the company's management, you need to start with a current list of collaborators.

Notes: Do not confuse employees and users

For Odoo, “employee” represents all of the physical people who have a work contract with the company. This includes all types of contracts: contracts with both fixed and indeterminate time periods, and also independent and freelance service contracts.

A “user” is a physical person who is given access to the company's systems. Most employees are users but some users are not employees: external partners can have access to parts of the system.

Here are some examples of functions which depend on the accuracy of the employee list:

  • the cost of a service, which depends on the employee's working contract,
  • project planning, which depends on the work pattern of the project contributors,
  • the client billing rate, which probably depends on the employee's job function,
  • the chain of command, or responsibilities, which is related to the hierarchical structure of the company.

Link employees and Odoo users

To define a new employee in Odoo, use the menu Human Resources > Human Resources > Employees.

service employee form

Form describing an employee

Start by entering the employee's name in Name and the employee category i.e. Tags. You can then create a new user of the Odoo system linked to this employee by filling in a new User form through the Related User field. And the company that this employee works for in Company.

Even if the employee is not a user, it is best if you create a system access for most of your staff just so that you can control their access rights from the outset (and you can do that through this field if you need to).

If the employee has a user account on the system, you always link his or her user account to the employee form.

Creating this link enables automatic completion to be done on the Employee field in the relevant forms, such as services and expense records.

Then enter the employee's address.

This appears in the partner contact form in Odoo. Since employees are people that have contracts with your company, it is logical that they have entries like any other partner in your database. So enter the name of the employee as a new partner Name and the address. Then all of the functions that apply to a partner can also be applied to an employee. This is particularly useful for tracking debits and credits in the accounts – so you can track salary payments, for example.

To help employees encode and validate timesheets and attendances, you can install hr_timesheet_sheet by going to the menu Settings > Modules > Local Modules. You can then set both an analytic journal and linked a product to an employee in the HR Settings tab of employee form. If you do it that way, then this information can be used to track services. For now, just complete the form with the following information:

  • Analytic Journal: usually a Timesheet Journal.
  • Product: a service product that describes how this employee would be charged out, for example as Service on Timesheet.

At the top right of the form you can find button which will lead you to the Timesheets associated with that employee.

Define employees' billing prices and costs

To be able to use the timesheets at all, you must first define those employees who are system users. The employee definition forms contain the information necessary to use that sheet, such as the job title, and hourly costs.

Two fields will be of particular interest to you for managing timesheets: the Analytic Journal and the Product.

All the analytic entries about the costs of service times will be stored in the analytic journal. These enable you to isolate the cost of service from other company costs, such as the purchase of raw materials, expenses receipts and subcontracting. You can use different journals for each employee to separate costs by department or by function.

The employee is also associated with a product in your database in Odoo. An employee is linked with a product, so they can be 'bought' (subcontracting) or 'invoiced' (project management). You have to create a product for each job type in your company.

The following information is important in the product form:

  • Name: Secretary , Salesperson or Project Manager.
  • Product Type: Service.
  • Unit of Measure: Hour or Day.
  • Cost Price.
  • Sale Price.
  • Costing Method: either Standard Price or Average Price.

When the Costing Method is Average Price in the Product form, you can have a button Update, beside the Cost Price field, that opens up a wizard for changing the cost price.

In summary, each company employee corresponds, in most cases, to:

  • A Partner.
  • A Employee form.
  • A System User.

And each company job position corresponds to a Product.

By default, the hourly cost of an employee is given by the standard cost of the product linked to that employee. But if you install the hr_contract module, it is possible to manage contracts differently. The hourly cost of the employee is then automatically calculated from their employment contract when they enter their timesheet data.

To do this, the software uses a factor defined in the contract (for example, contract type, wages, working schedule, etc). Ideally, this factor should take into account the salary costs, taxes, insurances and other overheads associated with pay.

Define employee categories

You must create and assign employee categories for employees in order to be able to assign and manage leave and allocation requests by category. You can define employee categories from Human Resources > Configuration > Employee Tags. For a new category, define its name in Category. A category may also be assigned a Parent Category.

employee categories

Example of categories defined for employees

To link an employee to a category, open the employee form through Human Resources > Human Resources > Employees. In the Tags, you can assign more than one category to an employee.

employee assign category

Assign categories to an employee in the Employee form

Now, when you create a new leave or allocation request from the menuitems under Human Resources > Leaves, if your Allocation Mode is By Employee Category, then you must choose a pre-defined Category. The request will then be applicable to all those employees who belong to the category selected. For example, you can create an allocation request for employees belonging to the Trainee category, entitling them to fewer leaves than the rest of the employees.

Define contract types

If you install the hr_contract module you can link contract details to the employee record. Go to the menu Settings > Configuration > Human Resources.And then tick the Record contracts per employee.

config wiz contract

Install hr_contract

Define new contract types at Human Resources > Configuration > Contract > Contract Types

hr contract type list

Contract Types list

Using Human Resources > Human Resources > Contracts you can create and edit contracts.

service hr contract

Definition of a working contract for a given employee

You can enter information about the employment contract for the employee, such as:

  • Employee: Employee for whom you want to define a contract.
  • Job Title: Select job position.
  • Contract Type: Select one from pre-defined contract types.
  • Working Schedule: For example 45 Hours/Week.
  • Duration: Start date and end date, since the employee started working where Start date is mandatory.
  • Wage: Basic salary of the employee.
  • Trial Period Duration: Start date & End date for the contract trial period, if any.
  • Work Permit tab: Information regarding the Visa No, Visa Expire date and Work Permit No.

Manage attendance (Sign in / Sign out)

In some companies, staff have to sign in when they arrive at work and sign out again at the end of the day. If each employee has been linked to a system user, then they can sign into Odoo by clicking on the icon at top-right.

sign in out

Sign In/Out

If an employee has forgotten to sign out on leaving, the system proposes that they sign out manually and type in the time that they left when they come in again the next day. This gives you a simple way of managing forgotten sign-outs.

Find employee attendance details from their forms in Human Resources > Human Resources > Employees.

To get the detail of attendances from an employee's form in Odoo, you can use the available reports:

  • Attendances By Month.
  • Attendances By Week.
  • Attendance Error Report.

The last report highlights errors in attendance data entry. It shows you whether an employee has entered the time of entry or exit manually and the differences between the actual and expected sign out time and the sign in time.

The first and second report shows the attendance data for the selected month and week respectively.


Odoo has more than 4,500 open source business apps.

Launch Odoo and make your company a better place.