Last updated

Webhook access

You can create and manage webhooks by calling the APIs via direct access or via a third-party application per user authorization (via OAuth). Here's how webhook ownership, management, and deactivation differ based on the way the webhook was created.

A webhook created via direct API access has these characteristics:

  • Ownership: The user who created it owns it.
  • Management: Only the webhook owner can manage it.
  • Deactivation: If the owner is deactivated, the webhook deactiveates. Note: Revoking the token the owner used when creating the webhook doesn't affect the webhook status.

A webhook that is created by a third-party application has these characteristics:

  • Ownership: The third-party app user who authorized the app to create the webhook owns the webhook.
  • Management: The webhook owner or the authorized third-party app can manage the webhook.
  • Deactivation: If the third-party app's permissions are revoked, the webhook permanently deactivates.

Scope and events

A webhook monitors specified events in a specified scope.

Scope

A Webhook object's scope attribute indicates the scope of the subscription. You specify the webhook scope when you create the webhook -- you cannot subsequently change the scope.

Note: For a webhook with scope set to sheet, you can limit the webhook to specific columns by specifying their IDs in an array property called subscope.

Events

A Webhook object's events attribute indicates the set of events that the webhook is subscribed to (that is, which events trigger a callback).

  • Events are represented as a dot-separated string in the format "object.event", where an asterisk (*) can be used to represent "all objects" or "all events".
  • Currently, *.* is the only supported value for the events attribute. This indicates a subscription to all objects in the scope, and all events for those objects.

Important: Sheet webhooks are automatically disabled on sheets that exceed 20,000 rows, 400 columns, or 500,000 cells (whichever comes first). Stay within the specified limits to keep your sheet webhooks enabled.

Note: When a row is deleted on a sheet, even if you are using a subscope to monitor columns only and the cell in that column for that row is empty, you will receive a "row.deleted" event.