Timesheets
New to webhooks? Start with Getting started (envelope, delivery, retries) and Verification (confirming a request came from Grow CRM). Those conventions apply to every event below and are not repeated here.Timesheets expose three keys:
timesheet.created, timesheet.updated, timesheet.deleted. There
is no .sundry or .activity — a time entry has no minor fields and no child records.
Manually-recorded time only
These events cover time entered through the Timesheets section. Time captured with the built-in task timer (start/stop on a task) does not fire them. That is deliberate: a running timer is not yet a completed record, and stop/start churn would produce a large volume of low-value deliveries. If you need timer-tracked hours, read them from the API rather than expecting a webhook.The timesheet object
.created and .updated carry this shape — flat for .created, nested under timesheet for
.updated:
timesheet.created
Fires when time is recorded in the Timesheets section.
One submission can create several timesheets — the form accepts a row per assigned task. Each
recorded row delivers its own timesheet.created event; there is no combined event.
timesheet.updated
Fires on a significant change. data.change tells you which; data.timesheet is the full object.
timesheet.deleted
Fires after the timesheet is deleted. data is just the id — the record no longer exists to
describe.
Deleting is a checkbox selection, so removing several timesheets at once delivers one event per
timesheet, not one event containing a list.
