Employee Self Service Portal
by Odoo DevHouse https://apps.odoo.com/apps/modules/browse?author=Odoo%20DevHouse$ 350.00
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Attendances (hr_attendance)
• CRM (crm) • Employees (hr) • Expenses (hr_expense) • Payroll (hr_payroll) • Time Off (hr_holidays) • Discuss (mail) • Calendar (calendar) • Contacts (contacts) • Invoicing (account) • Employee Contracts (hr_contract) |
| Lines of code | 3672 |
| Technical Name |
employee_self_service_portal |
| License | OPL-1 |
| Website | https://apps.odoo.com/apps/modules/browse?author=Odoo%20DevHouse |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Attendances (hr_attendance)
• CRM (crm) • Employees (hr) • Expenses (hr_expense) • Payroll (hr_payroll) • Time Off (hr_holidays) • Discuss (mail) • Calendar (calendar) • Contacts (contacts) • Invoicing (account) • Employee Contracts (hr_contract) |
| Lines of code | 3672 |
| Technical Name |
employee_self_service_portal |
| License | OPL-1 |
| Website | https://apps.odoo.com/apps/modules/browse?author=Odoo%20DevHouse |
Employee Self-Service Portal
Give every employee a dedicated portal to view payslips, submit expenses, request leave, track attendance, manage CRM leads, and update their profile - all from one secure, mobile-friendly hub. No backend access required.
In standard Odoo, employees need internal user access to view their own payslips, submit expenses, check attendance logs, or request leave. This forces HR teams to handle every inquiry manually - or grant backend access that exposes too much.
- Employees constantly email HR asking for copies of their payslips
- Leave balance inquiries flood the HR inbox every week
- Expense submissions require HR to walk employees through the backend UI
- Attendance logs are invisible to the employee without full Odoo access
- Granting internal-user rights exposes sensitive company data to all staff
- No single place for employees to see their skills, certifications, or bank info
This module adds a complete Employee Self-Service Portal to Odoo's website. HR grants a portal user account with a single click from the employee form. The employee then logs into a secure, role-isolated portal that shows only their own data across ten functional areas - payslips, expenses, attendance, leave, CRM, skills, certifications, bank details, and personal profile.
- One-Click Portal Access: Grant or revoke portal access for any employee directly from the HR employee form - Self-Service Portal tab
- Unified ESS Dashboard: A personal hub linking all portal sections - profile, attendance, payslips, expenses, leaves, CRM, skills, certifications, bank
- Personal Profile: Employees view and update work email, phone, birthday, gender, and marital status - read-only fields for sensitive HR data
- Attendance Log: Full check-in / check-out history with GPS location capture for each session
- Payslips: View all historical payslips month-by-month; download PDF directly from the portal
- Expense Submission: Employees create and submit expenses with product category, amount, date, and description - no backend access needed
- Leave Requests: Submit, track, and view the status of all time-off requests; see approved, pending, and refused leaves at a glance
- CRM Activity Portal: Employees assigned to CRM leads can view, create, and edit their assigned leads and scheduled activities
- Skills & Experience: View the full skills matrix (skill type, level, progress bar) and work experience resume lines
- Certifications & Education: Education history (certificate level, field of study, school) and certification timeline from the HR resume
- Bank Account Info: Employees view their registered bank account number and bank name on file with HR
- Fully Data-Isolated: Every portal query is scoped to the logged-in employee - no cross-employee data leakage by design
- Standard Odoo Integration: Uses native
hr.employee,hr.payslip,hr.expense,hr.leave,hr.attendance- no custom models
Step 1 - Grant Portal Access from the Employee Form
Open any employee record -> Self-Service Portal tab -> click Grant Portal Access. Odoo automatically creates a portal user linked to the employee's work email. The toggle turns green instantly.
Step 2 - Employee Logs In to the Portal Dashboard
The employee visits the portal URL and logs in with their work email. The ESS Dashboard greets them with quick-access tiles to every section.
Step 3 - Personal Profile: View & Edit Key Details
Employees can view their work information, identity documents, personal details, private address, and emergency contact. They can edit work email, phone, birthday, gender, and marital status directly.
Personal profile overview - work info, identity documents, private address, and emergency contact
Edit mode - employees update work email, phone, birthday, gender, and marital status directly from the portal
Step 4 - Attendance Log with Check-In / Check-Out History
Every check-in and check-out is displayed in a clean table. Employees can also check in directly from the portal with optional GPS location capture.
Step 5 - Payslips: View & Download All Monthly Payslips
Employees see all their payslips listed by month and year. A single click opens the payslip detail and allows downloading the PDF - no need to ask HR.
Payslips list - all months at a glance with status badges
Payslip detail - January 2026 with full salary breakdown and earnings/deductions lines
Payslip detail - May 2026, employees download the PDF directly with one click
Step 6 - Expenses: Submit & Track Expense Claims
Employees create new expense claims with category, amount, date, and notes - and submit them for approval directly from the portal. All submitted and approved expenses are visible in one list.
Expenses list - all claims with status (draft, submitted, approved, posted)
Submit expense form - employees fill in category, amount, currency, date, and notes and hit Submit without touching the Odoo backend
Step 7 - Leave Requests: Request Time Off & Track Balances
Submit new leave requests by selecting type, dates, and reason. Approved, pending, and refused leaves are colour-coded for instant status recognition.
Leave requests list - approved, pending, and refused leaves colour-coded at a glance
New leave request form - choose leave type, pick date range, add a reason, and submit in seconds
Approved leave detail - employee sees dates, type, and green Approved status badge
Pending leave detail - awaiting manager approval, shown with amber Pending badge
Step 8 - CRM: View & Manage Assigned Leads
Sales employees see all CRM leads assigned to them, with stage, expected revenue, and activity status. They can create new leads and log follow-up activities without entering the Odoo backend.
CRM leads overview - stage, expected revenue, and last activity for each assigned lead
Full pipeline view - leads across New, Qualified, Proposition, and Won stages all visible in one list
Create new lead form - employees enter contact name, company, expected revenue, stage, and close date without backend access
Edit lead - update stage, revenue, and schedule follow-up activities for Pan Marine
Qualified lead detail - ABC Corp at Proposition stage with scheduled activities visible
Step 9 - Skills & Work Experience
The experience page lists every skill with its type, level, and a visual progress bar. Below it, the employee's full work experience timeline is displayed from their HR resume.
Step 10 - Certifications & Education History
Education level, field of study, and school name are shown at the top. Below, all certifications and training records from the HR resume are listed with start/end dates and descriptions.
Step 11 - Bank Account Information
Employees can view the bank account details HR has on file for them - account number, bank name, and account holder - with a clear prompt to contact HR if details need updating.
Installation & Configuration
- Copy to addons path: Place
employee_self_service_portalin yourextra-addonsdirectory - Dependencies: Requires
portal,hr,hr_attendance,hr_payroll,hr_holidays,hr_expense,crm - Update app list: Settings -> Activate Developer Mode -> Apps -> Update App List
- Install: Search Employee Self Service Portal -> Install
- Grant access: Open any employee form -> Self-Service Portal tab -> click Grant Portal Access
- Share credentials: Send the portal URL and the employee's work email / password to the employee
Granting Portal Access
Navigate to Employees -> [Employee Name] -> Self-Service Portal tab. Click Grant Portal Access. Odoo creates a portal user using the employee's work email and links it to the employee record. The ESS Portal Access toggle turns green. Share the portal login URL with the employee.
Revoking Portal Access
On the same tab, click Revoke Portal Access (red button, only visible when access is active). The portal user is deactivated and the employee can no longer log into the portal.
What Employees Can Do
- View and edit their personal profile (name, work email, phone, birthday, gender, marital status)
- Check in and check out with optional GPS - view full attendance history
- Download all their payslips as PDF
- Create, submit, and track expense claims
- Submit new leave requests and view all time-off balances
- View and manage their assigned CRM leads and activities
- View their skills, experience timeline, certifications, and education
- View their registered bank account on file with HR
Security & Data Isolation
Every portal route is restricted with auth='user' and all data queries are filtered to employee_id = current_user.employee_id. An employee cannot see any other employee's data - not their payslips, not their attendance, not their expenses. Security rules enforce this at the record-rule level.
Prerequisite: Work Email Required
The employee must have a Work Email set before granting portal access - this becomes their portal login. Odoo will show a clear error message if the work email is missing.
Internal Users vs Portal Users
If the employee already has an internal Odoo user account, the Grant Portal Access button will show a warning and block the action. Internal users have full backend access - this module is designed for employees who should only see the portal, not the full Odoo interface.
Mid-Size Companies
50â500 employees. HR team overwhelmed by payslip requests, leave balance questions, and expense tracking. This portal deflects 80 % of routine HR inquiries.
Field & Remote Teams
Employees without permanent office access can check in via GPS, view their schedules, submit expenses on the go, and request leave from any device.
Sales Teams with CRM
Sales reps assigned to CRM leads can manage their pipeline and log activities through the portal without needing full Odoo CRM backend access.
HR Compliance & Audit
Employees can verify their own records (certifications, education, personal data) and flag discrepancies to HR - keeping data accurate without HR doing full data entry reviews.
Multi-Country Operations
Works with any Odoo-supported locale. No country-specific fields - uses only standard hr.employee fields, making it fully generic for global deployment.
Payroll-Heavy Environments
Integrate with Odoo Payroll so employees always have the latest salary slip available for download - reducing payslip distribution effort to zero.
Reduce HR Workload
Eliminate recurring email requests for payslips, leave balances, and expense status. Employees find the answers themselves in under 30 seconds.
No Extra Odoo Licenses
Portal users are free in Odoo - no internal user license cost. Give the entire workforce self-service access without increasing your license spend.
Improved Employee Experience
Employees feel empowered when they can manage their own HR data. Transparent access to payslips, leave, and expenses builds trust and reduces admin friction.
Full Security Control
HR retains complete control: grant and revoke access with one click. Strict data isolation ensures employees only ever see their own records - enforced at both the route and record-rule level.
Need Assistance or a Feature Request?
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module