TimeTrackr Integration
1. Quoi ? — Definition et contexte
Section intitulée « 1. Quoi ? — Definition et contexte »TimeTrackr est une application desktop de suivi de temps. Quand vous demarrez un timer sur un projet et l’arretez, l’entree de temps doit atterrir dans Odoo comme timesheet. Deux webhooks N8N font le pont : l’un fournit la liste des projets et taches pour les menus deroulants du client, l’autre recoit les entrees de temps et les convertit en lignes analytiques Odoo.
Deux workflows
Section intitulée « Deux workflows »| Workflow | Nodes | Endpoint | Role |
|---|---|---|---|
| TimeTrackr Projects | 5 | GET /webhook/timetrackr-projects | Liste projets + taches pour dropdown |
| TimeTrackr Entries | 12 | POST /webhook/timetrackr-entries | Creation timesheets Odoo |
Flux de donnees
Section intitulée « Flux de donnees »2. Pourquoi ? — Enjeux et motivations
Section intitulée « 2. Pourquoi ? — Enjeux et motivations »Problemes resolus
Section intitulée « Problemes resolus »| Probleme | Sans integration | Avec integration |
|---|---|---|
| Double saisie | Timer + saisie manuelle Odoo | Automatique |
| Projets desynchronises | Listes differentes dans chaque app | Dropdown alimente par Odoo |
| Erreurs d’attribution | Mauvais projet ou mauvaise tache | Mapping par ID |
3. Comment ? — Mise en oeuvre technique
Section intitulée « 3. Comment ? — Mise en oeuvre technique »Authentification
Section intitulée « Authentification »Les deux endpoints utilisent un token dans le header HTTP :
| Header | Usage |
|---|---|
X-TimeTrackr-Token | Token partage entre le client desktop et N8N |
Les webhooks sont exposes via Caddy (acces externe autorise, contrairement aux webhooks internes).
Endpoint Projects
Section intitulée « Endpoint Projects »Le workflow recupere les projets Odoo ou x_github_sync_enabled = true, puis les taches actives (hors Done/Cancelled) groupees par projet. La reponse est un JSON exploitable directement par les menus deroulants du client.
Endpoint Entries
Section intitulée « Endpoint Entries »Le payload arrive sous forme de batch :
{ "version": 1, "entries": [ { "project_id": 5, "task_id": 42, "description": "Fix login bug", "duration": 1.5, "date": "2026-03-28", "username": "guillaume" } ]}Pour chaque entree, le workflow :
- Cherche l’employee ID dans la Data Table
timetrackr_user_mapping(guillaume→ employee 1) - Cree une ligne
account.analytic.linedans Odoo - Continue meme en cas d’erreur sur une entree (
continueOnFail)
4. Et si ? — Perspectives et limites
Section intitulée « 4. Et si ? — Perspectives et limites »Limites actuelles
Section intitulée « Limites actuelles »| Limite | Impact | Mitigation |
|---|---|---|
| Pas de sync inverse | Timesheets Odoo pas visibles dans TimeTrackr | TimeTrackr a sa propre vue |
| Mapping manuel | Ajouter chaque utilisateur a la Data Table | Un seul utilisateur actuellement |
Scenarios d’evolution
Section intitulée « Scenarios d’evolution »Si multi-utilisateurs :
- Auto-decouverte des employes Odoo
- Mapping par email plutot que par username
Pages liees
Section intitulée « Pages liees »Infrastructure
Section intitulée « Infrastructure »- Odoo 18 sur Docker — Timesheets et projets
Workflows
Section intitulée « Workflows »- Claude Code Telemetry — Autre source de timesheets automatiques