Skip to main content
Grow CRM emits three webhook event keys for the Timesheets resource: timesheet.created, timesheet.updated, and timesheet.deleted. Use these events to sync billable hours, update invoicing systems, and audit time records as they are created, edited, or removed. There is no .sundry or .activity key — a time entry has no minor fields and carries no child records.
The webhook envelope structure, delivery behaviour, and retry logic are documented in Introduction. Signature verification is covered in Verification. Those conventions apply to every event on this page and are not repeated here.
These events cover manually recorded time only. Time captured with the built-in task timer (start/stop on a task) does not fire them. 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

timesheet.created and timesheet.updated carry this shape — flat inside data for .created, or nested under data.timesheet for .updated.

timesheet.created

Fires when time is recorded in the Timesheets section. data is the full timesheet object.
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 batch event.

timesheet.updated

Fires on a significant change to a timesheet. Read data.change to determine what changed; data.timesheet contains the full timesheet object reflecting the new state.

timesheet.deleted

Fires after a timesheet is deleted. Because the record no longer exists at delivery time, data contains only the timesheet id.
Deletion is a checkbox selection, so removing several timesheets at once delivers one timesheet.deleted event per timesheet — not one event containing a list.