Here's a complete list of events available for Webhooks.
Branches
Method | Description |
branch.create.initiated | Any new branch creation is initiated on a stack |
branch.create.completed | Any new branch creation is completed on a stack |
branch.delete.completed | Any new branch deletion is completed on a stack |
branch.{branch_uid}.delete.initiated | A specific branch deletion is initiated on a stack |
branch.{branch_uid}.delete.completed | A specific branch deletion is completed on a stack |
Content Type
Method | Description |
content_types.create | New content type is created
|
content_types.update | Any content type is updated |
content_types.{contenttype_uid}.update | A specific content type is updated |
content_types.delete | Any content type is deleted |
content_types.{contenttype_uid}.delete | A specific content type is deleted |
Entries
Method | Description |
content_types.entries.create | Any entry is created |
content_types.{contenttype_uid}.entries.create | An entry is created within a content type
|
content_types.entries.update | Any entry is updated |
content_types.{contenttype_uid}.entries.update | An entry from a specific content type is updated |
content_types.{contenttype_uid}.entries.{entry_uid}.update | A specific entry of a specific content type is updated |
content_types.entries.publish | Any entry is published |
content_types.entries.publish.fail | Any entry failed to publish |
content_types.entries.unpublish | Any entry is unpublished |
content_types.entries.unpublish.fail | Any entry failed to unpublish |
content_types.entries.delete | Any entry is deleted |
content_types.{contenttype_uid}.entries.delete | Any entry from a specific content type is deleted |
content_types.{contenttype_uid}.entries.{entry_uid}.delete | A specific entry of a specific content type is deleted |
Entry Comments
Method | Description |
content_types.entries.comments.create | Any comment is created within any entry of any content type |
content_types.{contenttype_uid}.entries.comments.create | Any comment is created within any entry of a specific content type |
content_types.{contenttype_uid}.entries.{entry_uid}.comments.create | Any comment is created within a specific entry of a specific content type |
content_types.entries.comments.update | Any comment within any entry of any content type is updated |
content_types.{contenttype_uid}.entries.comments.update | Any comment within any entry of a specific content type is updated |
content_types.{contenttype_uid}.entries.{entry_uid}.comments.update | Any comment within a specific entry of a specific content type is updated |
content_types.entries.comments.delete | Any comment within any entry of any content type is deleted |
content_types.{contenttype_uid}.entries.comments.delete | Any comment within any entry of a specific content type is deleted |
content_types.{contenttype_uid}.entries.{entry_uid}.comments.delete | Any comment within a specific entry of a specific content type is deleted |
Note: You cannot set webhook conditions that are triggered on events performed around a specific entry comment.
Entry Discussions
Method | Description |
content_types.entries.discussions.create | Any discussion is created within any entry of any content type |
content_types.{contenttype_uid}.entries.discussions.create | Any discussion is created within any entry of a specific content type |
content_types.{contenttype_uid}.entries.{entry_uid}.discussions.create | Any discussion is created within a specific entry of a specific content type |
content_types.entries.discussions.resolve | Any discussion within any entry of any content type is resolved |
content_types.{contenttype_uid}.entries.discussions.resolve | Any discussion within any entry of a specific content type is resolved |
content_types.{contenttype_uid}.entries.{entry_uid}.discussions.resolve | Any discussion within a specific entry of a specific content type is resolved |
content_types.entries.discussions.reopen | Any discussion within any entry of any content type is reopened |
content_types.{contenttype_uid}.entries.discussions.reopen | Any discussion within any entry of a specific content type is reopened |
content_types.{contenttype_uid}.entries.{entry_uid}.discussions.reopen | Any discussion within a specific entry of a specific content type is reopened |
Note: You cannot set webhook conditions that are triggered on events performed around a specific entry discussion.
Entry Workflows
Method | Description |
content_types.{contenttype_uid}.entries.{entry_uid}.workflows.{workflow_uid} | Any stage of a specific workflow is changed within a specific entry of a specific content type |
content_types.{contenttype_uid}.entries.workflows.{workflow_uid} | Any stage of a specific workflow is changed within any entry of a specific content type
|
content_types.entries.workflows.{workflow_uid} | Any stage of a specific workflow is changed within any entry of any content type |
content_types.{contenttype_uid}.entries.{entry_uid}.workflows.{workflow_uid}.{workflow_stages_uid} | Specific stage of a specific workflow is changed within a specific entry of a specific content type |
content_types.{contenttype_uid}.entries.workflows.{workflow_uid}.{workflow_stages_uid} | Specific stage of a specific workflow is changed within any entry of a specific content type |
content_types.entries.workflows.{workflow_uid}.{workflow_stages_uid} | Specific stage of a specific workflow is changed within any entry of any content type |
content_types.entries.workflows | Any stage of any workflow is changed within any entry of any content type |
Jobs
Method | Description |
jobs.environments.publish.completed | Any bulk publish job in all environments is completed |
jobs.environments.unpublish.completed | Any bulk unpublish job in all environments is completed |
jobs.environments.{environment_name}.publish.completed | Any bulk publish job on specific environment is completed |
jobs.environments.{environment_name}.unpublish.completed | Any bulk unpublish job on specific environment is completed |
Difference Between Entry-/Asset-based and Job-based Webhook Events
Differentiating Factors | Entry-/Asset-based Publish/Unpublish Webhooks | Job-based Publish/Unpublish Webhooks |
How it functions | Triggers when an entry/asset is successfully published/unpublished/deleted/created on all/any environment | Triggers when a specific Job (Publish/Unpublish/Delete/Create) is completed on all/any environment |
Bulk publish/unpublish of “N” items | Webhook is triggered “N” times for bulk actions | Webhook is triggered only once at the end for bulk actions (irrespective of the number of items, i.e., for one or many) |
Webhook payload | Contains complete data about entry/asset (all the fields) | Contains only the summary of the job i.e., total count and its skipped, failed, success counts. |
Assets
Method | Description |
assets.delete | Any asset is deleted |
assets.{asset_uid}.delete | A specific asset is deleted |
assets.publish | Any asset is published |
assets.publish.fail | Any asset failed to publish |
assets.unpublish | Any asset is unpublished |
assets.unpublish.fail | All assets failed to unpublish |
Releases
Method | Description |
releases.environments.deploy | Any release deployed on all environments |
releases.environments.{environment_name}.deploy | Any release deployed on a specific environment |
releases.{release_uid}.environments.deploy | A specific release deployed on all environments |
releases.{release_uid}.environments.{environment_name}.deploy | A specific release deployed on a specific environment |
releases.environments.deploy.{status} | The status of any release deployed on any environment |
releases.{release_uid}.environments.deploy.{status} | The status of a specific release deployed on any environment |
releases.environments.{environment_name}.deploy.{status} | The status of any release deployed on a specific environment |
releases.{release_uid}.environments.{environment_name}.deploy.{status} | The status of a specific release deployed on a specific environment |
When a webhook is triggered for an entry or asset, because it was published/unpublished via a release, the webhook data of such as an event contains a 'source' key. This key contains the JSON data of the release (type, title, and UID) it was deployed through.
This is useful in cases where a lot depends on the webhook data. For example, in the case of static site generators, a build is generated every time an item (entry or asset) is published or unpublished. So, if a release is deployed with 200 items, it will generate a build 200 times, instead of just one time for the release. To avoid such cases, the developer can write custom code that ignores events whose response contains the source key. So, only one build will be generated for the whole release.