| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Attendances (hr_attendance)
• Employees (hr) • Discuss (mail) |
| Lines of code | 2446 |
| Technical Name |
etimeoffice_integration |
| License | LGPL-3 |
| Website | https://www.webbycrown.com |
| Versions | 14.0 15.0 16.0 17.0 18.0 19.0 |
eTimeOffice Integration
Connect Odoo to eTimeOffice: pull punch data over the API, store daily attendance, optionally mirror to hr.attendance, and schedule automatic sync from Settings.
eTimeOffice — Overview
Attendance sync for Human Resources
eTimeOffice Integration calls the eTimeOffice HTTP API (default DownloadInOutPunchData) using Basic authentication. Responses are parsed into etimeoffice.user and daily etimeoffice.attendance records (check-in / check-out per day). Link each Odoo employee to an eTimeOffice employee code on the employee form so punches attach to the right person. Settings are stored in ir.config_parameter; scheduled sync runs through one ir.cron job per selected frequency (hourly, daily, weekly, or monthly). Optional Sync hr.attendance writes compatible check-in/out rows to Odoo’s standard attendance model.
Core capabilities:
Settings app: Corporate ID, username, password |
Configurable API URL (default eTimeOffice endpoint) |
Sync frequency: hourly / daily / weekly / monthly |
Integration on/off, last sync timestamp |
Scheduled sync: one active cron per frequency |
Test connection, manual sync wizard, test sync run |
Sync run logs (success / error / skipped, duration) |
eTimeOffice users & employee code mapping |
Daily attendance records (IN/OUT, work time) |
Optional sync to hr.attendance |
Menus: Configuration, Operations, My Attendance |
Python: requests (external dependency) |
Depends: base, hr |
Odoo 17.0 (see manifest) |
Technical highlights:
Basic auth string: corporate:username:password:true (Base64) |
HTTP retries via shared helper module |
Parses InOutPunchData JSON from API |
IST to UTC conversion for punch datetimes |
Unique daily row per eTimeOffice user per day |
Groups: eTimeOffice Administrator & User |
Key benefits
- Central configuration: All API and sync options live under Settings → eTimeOffice (General Settings app card).
- Flexible scheduling: Choose hourly, daily, weekly, or monthly automatic sync; saving settings enables the matching scheduled action and disables the others.
- Operational visibility: Sync run logs record trigger (cron, manual, test, API), outcome, duration, and processed record counts.
- HR-ready data: Store daily punches in the module’s attendance model; optionally mirror check-in/out to
hr.attendancefor standard Odoo workflows. - Employee mapping: Map eTimeOffice employee codes to Odoo employees so synced records attach to the correct people.
- Manual control: Test the API connection, run a manual sync with employee code and date range, or trigger a test sync to validate the scheduler.
- Dedicated menus: eTimeOffice root with Configuration, Operations (Users, Attendance Records), and My Attendance for users in the eTimeOffice User group.
- Lightweight stack: Depends only on
baseandhr; uses therequestslibrary for outbound HTTP.
Screenshots
Settings & API
eTimeOffice app in General Settings: credentials, frequency, sync options
Attendance records
Daily IN/OUT and work time from eTimeOffice
eTimeOffice Users
Users from the API; link to Odoo employees
Screenshots: screenshot_settings.png, screenshot_attendance.png, screenshot_users.png in etimeoffice_integration_16/static/description/.
2. Configuration & behaviour (detail)
1. Settings (General Settings → eTimeOffice)
Open Settings, enable the eTimeOffice app, and save. Main fields:
- Active — Turns integration and scheduled sync on or off.
- Corporate ID, Username, Password — Used to build the Basic authentication string for API calls.
- API URL — Default points to the eTimeOffice
DownloadInOutPunchDataendpoint (read-only in the UI). - Sync frequency — Selects which single
ir.cronjob stays active (hourly, daily, weekly, monthly). - Scheduled sync — Read-only status, next run, and shortcuts to open the matching scheduled action or list all eTimeOffice crons.
- Sync hr.attendance — When enabled, compatible check-in/out times are written to Odoo’s standard attendance model for linked employees.
- Last sync — Timestamp of the last successful automatic sync.
- Test Connection, Manual Sync (wizard with employee code and dates), Test Sync Frequency, and Sync run logs.
2. When data syncs
- Automatic — The active cron calls the API with a date range derived from the last sync (with a buffer). Punch data updates
etimeoffice.userandetimeoffice.attendance. - Manual — The wizard lets you choose employee code and
From/Todates for an on-demand sync. - Employees — Set the eTimeOffice employee code on Employees so synced punches link to the correct
hr.employee.
3. FAQs
1. What does eTimeOffice Integration do?
It connects Odoo to the eTimeOffice cloud API, downloads in/out punch data, and stores it as eTimeOffice users and daily attendance rows. You can optionally sync compatible times into Odoo’s hr.attendance model.
2. Where do I enter API credentials?
Go to Settings and open the eTimeOffice section under General Settings. Enter Corporate ID, username, and password, set sync frequency, then save. Use Test Connection to verify.
3. How do scheduled syncs work?
Saving settings enables exactly one ir.cron job matching your Sync frequency and disables the other eTimeOffice cron jobs. The integration must be Active. You can open the scheduled action from the settings screen to inspect next run time.
4. What is “Sync hr.attendance”?
When this option is on and an employee is linked, the module attempts to create or update standard hr.attendance records (check-in / check-out) for that day in addition to the eTimeOffice-specific attendance records.
5. Which Odoo version and dependencies?
This build targets Odoo 17 (see manifest version). Module dependencies: base and hr. The Python package requests must be available on the server.
6. Are there HTTP APIs for automation?
The module can expose JSON routes for manual sync and connection test (authenticated Odoo session). See the module README for path names under /etimeoffice_integration_16/....
Explore Our Other Addons
Advance Export Pro
Advanced export solution with API integration, smart field mapping, scheduled exports, and batch processing for any Odoo model.
View Addon
Advanced Import Pro
Universal multi-format import solution with API integration, smart field mapping, scheduled imports, and batch processing for any Odoo model.
View AddonContact & Support
Have Any Question ?
Sales : +91 (942) 867-7503
Please log in to comment on this module