| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Employees (hr)
• Project (project) • Discuss (mail) |
| Lines of code | 1334 |
| Technical Name |
toggl_track_sync |
| License | LGPL-3 |
Toggl Track ↔ Odoo Timesheet Sync
Seamless two-way synchronization between Toggl Track and Odoo Timesheets
Key Features
← Pull: Toggl → Odoo
Automatically import your Toggl Track time entries as Odoo timesheet lines. Duration, description, date, and project are all mapped.
→ Push: Odoo → Toggl
Push timesheet lines created in Odoo back to Toggl Track. Keep both systems perfectly in sync.
⇄ Bidirectional Sync
Run both directions at once. Configurable conflict resolution: Toggl wins, Odoo wins, or newest wins.
⏱ Historical Import
Import years of historical data via Toggl's Reports API — no 90-day lookback limit. Automatic pagination and yearly chunking.
⚙ Project & Client Mapping
Map Toggl projects to Odoo projects and tasks. Auto-match Toggl clients to Odoo customers by name. Bulk fetch from Toggl with one click.
✎ Per-Employee Tokens
Each employee can use their own Toggl API token, or fall back to a company-wide default. Toggl user IDs are auto-populated on first sync.
⏰ Automated Cron Sync
Scheduled action runs at your configured interval (hourly by default). Set it and forget it — your timesheets stay in sync automatically.
☐ Full Audit Trail
Every sync operation is logged with timestamp, direction, employee, and counts of synced/skipped/failed entries. Error details included.
⚠ Smart Rate Limiting
Built-in rate limiting with automatic retry on 429/402 responses. Respects Toggl's leaky bucket and sliding window quotas.
✓ Duplicate Prevention
Unique index on Toggl entry IDs prevents any possibility of duplicate timesheet lines — even during concurrent syncs.
How It Works
1. Configure
Go to Settings → Toggl Track. Enter your Workspace ID and API token. Click Test Connection to verify, then Fetch Toggl Projects to import your project list.
2. Map Projects
Go to Timesheets → Toggl Track → Project Mappings. Assign each Toggl project to an Odoo project and task. Customers are auto-matched by name.
3. Sync
Use Timesheets → Toggl Track → Sync Now for manual sync, or let the hourly cron handle it. Choose pull, push, bidirectional, or historical import.
4. Monitor
Check Timesheets → Toggl Track → Sync Logs for a full history of every sync operation.
Technical Details
| Toggl API | v9 (time entries) + Reports API v3 (historical import) |
| Odoo Model | account.analytic.line (standard Timesheets) |
| Authentication | Toggl API token (Basic Auth) |
| Dependencies | hr_timesheet, project, hr, Python requests |
| Sync Directions | Pull, Push, Bidirectional, Historical Import |
| Conflict Resolution | Toggl wins / Odoo wins / Newest wins |
| Rate Limiting | 1 req/sec spacing, exponential backoff on 429, quota-aware on 402 |
Please log in to comment on this module