Built by WebbyCrown Solutions — Need setup, customization, or integration help? Talk to our team.
What Is eTimeOffice Integration?
HR teams using eTimeOffice for biometric or cloud-based time tracking face a manual process to get attendance data into Odoo. Punch records - daily check-ins, check-outs, and work times - need to be manually reconciled with Odoo HR attendance, creating data delays, reconciliation errors, and unreliable inputs for payroll, leave, and reporting workflows.
eTimeOffice Integration connects Odoo directly to the eTimeOffice cloud API and syncs employee punch data into structured daily attendance records automatically. HR teams configure credentials once from General Settings, schedule automatic syncs at hourly, daily, weekly, or monthly intervals, and map eTimeOffice employee codes to Odoo employee records - no coding required. Punch data flows into dedicated daily attendance records and optionally mirrors into standard hr.attendance for full Odoo workflow compatibility.
Key Benefits
Central API Configuration
Manage all eTimeOffice credentials, sync settings, and frequency from a single card in Odoo General Settings - no scattered configuration.
Flexible Sync Scheduling
Set hourly, daily, weekly, or monthly automatic sync - exactly one matching cron job activates per selected frequency with automatic deactivation of others.
Full Sync Visibility with Logs
Every sync run records its trigger source, outcome, duration, and processed record count so HR and IT teams can audit and troubleshoot without guesswork.
Accurate Employee Mapping
Map Odoo employees to eTimeOffice user codes so every synced punch attaches to the correct hr.employee record automatically.
HR-ReadyAttendance Data
Daily attendance records with IN/OUT punches are optionally mirrored to standard hr.attendance to support native Odoo attendance reports and workflows.
Manual Control and Testing
Test API credentials, run a manual sync with a specific date range, or trigger a test sync without waiting for the scheduled cron job.
Modules & Features
Centralize API Configuration in Settings
Manage all eTimeOffice integration settings from a single Settings card without scattered configuration.
- Enable or disable the integration at any time using the Active toggle in General Settings
- Store Corporate ID, Username, and Password securely in the eTimeOffice settings card
- Reference the eTimeOffice API URL in a read-only field - no manual entry needed
- Configure sync frequency directly from the same General Settings card
- View the last successful sync timestamp on the same screen for quick status confirmation
Flexible Sync Frequency Scheduling
Allow administrators to align attendance sync with operational needs.
- Select hourly, daily, weekly, or monthly sync frequency from the settings card
- Exactly one matching cron job activates per selected frequency
- Other eTimeOffice cron jobs disable automatically when the frequency setting changes
- Open the active scheduled action directly from the settings screen to review or adjust it
- View next run time and scheduled sync status in read-only fields without leaving settings
Manual Sync and Connection Testing
Give administrators full control over on-demand sync operations.
- Use the Test Connection action to verify Corporate ID, Username, and Password before going live
- Run a manual sync wizard with a specific employee code and date range for targeted data pulls
- Trigger a test sync run to validate the scheduler setup without waiting for the next cron cycle
- Reduce dependency on automatic cron timing for ad-hoc or urgent data needs
- Catch credential or configuration issues before they affect daily attendance operations
Employee Code Mapping forAccurate Attribution
Link Odoo employees to eTimeOffice user codes for consistent record alignment.
- Set the eTimeOffice employee code on each Odoo employee record from the employee form
- Attach synced punch records to the correct hr.employee automatically based on the mapped code
- Maintain a dedicated eTimeOffice user list pulled directly from the API
- Map API users to Odoo employees from a single screen in the eTimeOffice menu
- Reduce mismatched or unattributed attendance records caused by missing or incorrect employee links
DailyAttendance Records
Store one structured attendance record per user per day for clean reporting.
- Store one structured attendance record per eTimeOffice user per day - no duplicate daily rows
- Capture daily IN and OUT punch times from the synced eTimeOffice data
- Compute work time automatically based on the synced IN and OUT punch values
- Convert punch datetimes from IST to UTC automatically during sync
- Make daily attendance records available for HR analysis, reporting, and audit
Optional hr.attendance Mirror Sync
Keep standard Odoo attendance workflows in sync with eTimeOffice data.
- Enable the Sync hr.attendance option in the eTimeOffice settings card to activate mirroring
- Write compatible check-in and check-out times to the standard hr.attendance model
- Support standard Odoo attendance reports, leave integration, and native HR workflows
- Limit mirroring to employees who are linked through eTimeOffice code mapping
- Keep eTimeOffice daily records and Odoo hr.attendance consistent without manual reconciliation
Comprehensive Sync Run Logs
Monitor and audit every sync execution from a central log view.
- Record trigger source for every sync run: cron, manual, test, or API
- Capture outcome per run: success, error, or skipped - with no ambiguity
- Track duration and processed record counts for each individual run
- Review full historical sync activity from a central log view for troubleshooting
- Give HR and IT teams clear operational visibility into every data transfer event
Dedicated eTimeOffice Menus
Provide a clean navigation structure for administrators and users.
- A dedicated eTimeOffice root menu in Odoo keeps all features separate from native HR menus
- Access Configuration and Users under the Operations submenu
- Access Attendance Records under Operations to view and manage daily punch data
- My Attendance menu available for users assigned to the eTimeOffice User security group
- Improves discoverability and navigation for both administrators and end users
Role-Based Security Groups
Control access to eTimeOffice features with two dedicated security groups.
- eTimeOffice Administrator group provides full access to configuration, settings, and all records
- eTimeOffice User group provides access to personal attendance records only
- Sensitive API credentials and sync settings are restricted to the Administrator group
- Employees in the User group can view only their own attendance records
- Aligns access permissions with HR and IT governance requirements
Lightweight HTTP Integration with Retries
Connect to the eTimeOffice API with a focused, minimal technical footprint.
- Uses Basic authentication built from Corporate ID, Username, and Password for each API call
- Calls the eTimeOffice DownloadInOutPunchData endpoint to retrieve punch records
- Applies HTTP retries through a shared helper module to handle transient API failures
- Parses InOutPunchData JSON responses into structured daily attendance records
- Dependencies limited to base, hr, hr_attendance, mail, and the external requests library
Advanced Settings and Configuration
All eTimeOffice settings are managed from Settings → General Settings → eTimeOffice card. Administrators configure every option - from API credentials and sync frequency to hr.attendance mirroring - without code changes.
The settings card covers:
- Active toggle - enable or disable the integration
- Corporate ID, Username, and Password - API authentication
- eTimeOffice API URL - read-only reference field
- Sync frequency - hourly, daily, weekly, or monthly
- Sync hr.attendance - enable optional mirroring to standard attendance
- Last sync timestamp - read-only status field
- Active scheduled action link - view or adjust the cron job directly
How to Set Up eTimeOffice Integration
Install the App
Result: The eTimeOffice menu and settings card appear in Odoo.
Configure API Credentials
Result: API credentials are saved and the matching cron job activates.
Map Employee Codes
Result: Synced punch records will attach to the correct employees.
Test the Connection
Result: A confirmation confirms credentials are valid and the API is reachable.
Run Your First Sync
Result: Daily attendance records appear in eTimeOffice → Attendance Records.
Who Is This App For?
- HR managers handling attendance data from eTimeOffice biometric or cloud time tracking systems
- Payroll teams who need accurate daily punch records in Odoo without manual imports
- Odoo administrators integrating eTimeOffice data into HR and payroll workflows
- IT teams managing Odoo.sh or On Premise environments with eTimeOffice
- Odoo implementation partners setting up HR attendance integrations for clients
- Organizations using eTimeOffice for time tracking and Odoo for HR, payroll, or reporting
Changelog
v19.0.0 — Initial Release
- – Added eTimeOffice settings card with credentials and sync frequency
- – Implemented hourly, daily, weekly, and monthly cron jobs
- – Added Test Connection, Manual Sync wizard, and Test Sync Frequency actions
- – Implemented employee code mapping and eTimeOffice user list
- – Added daily attendance records with IN/OUT punches and work time calculation
- – Implemented optional hr.attendance mirror for mapped employees
- – Added sync run logs with trigger source, outcome, duration, and record counts
- – Implemented dedicated eTimeOffice menu structure
- – Added Administrator and User security groups
- – Implemented IST to UTC conversion and HTTP retries



