Time Sync Webhook
Approved time is sent when it is approved by a manager, by the member submitting their timesheet, or by auto-approval. A later change sends it again, and un-approving, hiding, deleting, splitting or merging it away sends a delete.
Activities or daily totals
Each activity: time_entries.upsert and time_entries.delete, one record per piece of work, for project and task tools. Daily totals: time_totals.upsert and time_totals.delete, one record per person, day, project, client and category, for timesheet, payroll, PSA and ERP systems. One record per request by default, batches of up to 100.
Your response
Respond with { "external_ref": "..." } to store your record id. Timeglass sends it back on every later upsert and delete. Reject what a person has to fix with an error such as unlinked_project. Respond with 5xx for temporary problems and Timeglass retries.
Reference
Route time on project.external_id, category.external_id and the descriptions. Moved or edited activities arrive as another upsert with the same id. Time on unlinked projects is sent with project.external_id null. Treat deletes you can't match as success. Don't sync a default code such as GEN as a category too.
Webhooks overview · Clients & projects sync · Time sync · REST API