Skip to main content
Grow CRM fires six distinct event keys for client records: client.created, client.updated, client.deleted, client.sundry, client.activity, and client.imported. Use these events to keep external systems in sync whenever a client is created, edited, annotated, or deleted, and to handle bulk-import completions as a single batched notification rather than a flood of individual creation events.
The webhook envelope structure, delivery semantics, retry behaviour, and signature verification conventions are documented in Introduction and Verification. Those rules apply to every event on this page and are not repeated here.

The client object

Every event key except client.deleted carries the full client object. For client.created it appears flat directly inside data; for client.updated and client.sundry it is nested under data.client.
integer
The client’s primary key (client_id).
string
The client’s company or display name.
string | null
Free-text description; null when not set.
string
Either active or suspended.
string | null
Primary contact phone number; null when not set.
string | null
Client website URL; null when not set.
object
{ id, name } — the client category assigned in Grow CRM.
object
Billing address only — street, city, state, zip, country. No shipping address or VAT number on this shape.
object
created and updated, both ISO 8601 timestamps with microseconds (…T…Z).
array of strings
Tag titles attached to the client.

client.created

Grow CRM fires client.created immediately after a new client record is saved. data is the full client object shown above.
Clients created through a bulk import do not trigger client.created. Use client.imported instead to capture those records.

client.updated

Grow CRM fires client.updated whenever a significant field on the client changes. Inspect data.change to determine what changed; data.client always carries the complete, up-to-date client object.

client.sundry

Grow CRM fires client.sundry for minor, cosmetic field edits that don’t warrant a full client.updated signal. Inspect data.field to identify which field changed; data.client carries the full client object — it is not a partial diff.

client.activity

Grow CRM fires client.activity whenever a child record attached to a client is created, updated, or deleted. Use data.type and data.action together to identify the exact operation; data.item describes the child record.
Clients have no comments feature. Unlike projects, leads, and tasks, client.activity never carries type: "comment".

client.deleted

Grow CRM fires client.deleted after the client record is permanently removed. Because the record no longer exists, data contains only the client’s id.

client.imported

Grow CRM fires client.imported once when a bulk client import job completes. Imported clients do not individually fire client.created. See Imports for the batch shape, batching rules, and the fields common to every import event. Each record inside data.records carries the following fields:
batch_count tells you the total number of delivery batches for this import run. Wait until you have received all batch_count payloads sharing the same import_ref before treating the import as fully processed.