Webhooks notify an external service whenever a specific action occurs in your stack. This page lists every event you can subscribe a webhook to, grouped by resource. Each event, called a channel, is a dotted string, for example, content_types.entries.publish, that you select when you create a webhook. Use the matrix below to find the resource and action you need.
The following matrix summarizes the webhook events each resource emits. Use it to find the resource and action you need, then refer to the detailed table in that resource’s section for the exact topic strings.
| Resource | Create | Update | Publish | Unpublish | Delete | Other events |
| Branch | ✓ | | | | ✓ | Branch alias assigned / unassigned |
| Content Type | ✓ | ✓ | | | ✓ | |
| Global Field | ✓ | ✓ | | | ✓ | |
| Entry | ✓ | ✓ | ✓ | ✓ | ✓ | |
| Entry Comment | ✓ | ✓ | | | ✓ | |
| Entry Discussion | ✓ | | | | | resolve / reopen |
| Entry Workflow | | | | | | Workflow / stage change |
| Entry Variant | ✓ | ✓ | | | ✓ | |
| Entry Variant Comment | ✓ | ✓ | | | ✓ | |
| Entry Variant Discussion | ✓ | | | | | resolve / reopen |
| Entry Variant Workflow | | | | | | Workflow / stage change |
| Entry Variant – Environment | | | ✓ | ✓ | | Publish / unpublish to an environment |
| Asset | ✓ | ✓ | ✓ | ✓ | ✓ | |
| Taxonomy | ✓ | ✓ | | | ✓ | localize / unlocalize |
| Taxonomy Term | ✓ | ✓ | | | ✓ | localize / unlocalize |
| Taxonomy – Environment | | | ✓ | ✓ | | Publish / unpublish to an environment |
| Release | | | | | | deploy to an environment |
| Job (bulk publish) | | | ✓ | ✓ | | Bulk publish / unpublish completed |
Note The matrix shows which actions each resource emits. Two details it abstracts away:
- ScopingMost topics have "all" and "specific" variants. Insert a UID at the relevant level to target one resource, or omit it to subscribe to all. For example, content_types.{content_type_uid}.entries.{entry_uid}.update versus content_types.entries.update.
- Lifecycle suffixes: Publish and unpublish events emit .success and .fail variants, Jobs use .completed, Releases use .deploy.{status}, and Branch create and delete emit .initiated and .completed stages.
Refer to the resource-specific tables below for the exact topic strings.
| 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.initiated | Any new branch deletion is initiated 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 |
| branch_alias.assigned | A new branch alias is assigned to an existing branch |
| branch_alias.unassigned | Any branch alias is unassigned |
| 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 |
| Method | Description |
| global_fields.create | Any global field is created |
| global_fields.update | Any global field is updated |
| global_fields.delete | Any global field is deleted |
| global_fields.{global_fields_uid}.update | A specific global field is updated |
| global_fields.{global_fields_uid}.delete | A specific global field is deleted |
Note Global fields emit create, update, and delete events only. Because a global field is embedded within content types and is not published on its own, it does not emit publish or unpublish events.
| 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 |
Note For environment-specific publish and unpublish events, and for events scoped to a specific content type or entry, refer to the Entry Environment section below.
| 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 |
NoteYou cannot set webhook conditions that are triggered on events performed around a specific entry comment.
| 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 |
NoteYou cannot set webhook conditions that are triggered on events performed around a specific entry discussion.
| 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 |
These events trigger when an entry is published to or unpublished from an environment. They mirror the entry variant environment events, without the variant level.
| Method | Description |
| content_types.entries.environments.publish.success | Any entry in any content type is successfully published to any environment. |
| content_types.entries.environments.unpublish.success | Any entry in any content type is successfully unpublished from any environment. |
| content_types.entries.environments.{environment_uid}.publish.success | Any entry in any content type is successfully published to the specified environment. |
| content_types.entries.environments.{environment_uid}.unpublish.success | Any entry in any content type is successfully unpublished from the specified environment. |
| content_types.entries.environments.publish.fail | Any entry in any content type fails to publish to any environment. |
| content_types.entries.environments.unpublish.fail | Any entry in any content type fails to unpublish from any environment. |
| content_types.entries.environments.{environment_uid}.publish.fail | Any entry in any content type fails to publish to the specified environment. |
| content_types.entries.environments.{environment_uid}.unpublish.fail | Any entry in any content type fails to unpublish from the specified environment. |
| content_types.{content_type_uid}.entries.environments.publish.success | Any entry in the specified content type is successfully published to any environment. |
| content_types.{content_type_uid}.entries.environments.unpublish.success | Any entry in the specified content type is successfully unpublished from any environment. |
| content_types.{content_type_uid}.entries.environments.{environment_uid}.publish.success | Any entry in the specified content type is successfully published to the specified environment. |
| content_types.{content_type_uid}.entries.environments.{environment_uid}.unpublish.success | Any entry in the specified content type is successfully unpublished from the specified environment. |
| content_types.{content_type_uid}.entries.environments.publish.fail | Any entry in the specified content type fails to publish to any environment. |
| content_types.{content_type_uid}.entries.environments.unpublish.fail | Any entry in the specified content type fails to unpublish from any environment. |
| content_types.{content_type_uid}.entries.environments.{environment_uid}.publish.fail | Any entry in the specified content type fails to publish to the specified environment. |
| content_types.{content_type_uid}.entries.environments.{environment_uid}.unpublish.fail | Any entry in the specified content type fails to unpublish from the specified environment. |
| content_types.{content_type_uid}.entries.{entry_uid}.environments.publish.success | The specified entry is successfully published to any environment. |
| content_types.{content_type_uid}.entries.{entry_uid}.environments.unpublish.success | The specified entry is successfully unpublished from any environment. |
| content_types.{content_type_uid}.entries.{entry_uid}.environments.{environment_uid}.publish.success | The specified entry is successfully published to the specified environment. |
| content_types.{content_type_uid}.entries.{entry_uid}.environments.{environment_uid}.unpublish.success | The specified entry is successfully unpublished from the specified environment. |
| content_types.{content_type_uid}.entries.{entry_uid}.environments.publish.fail | The specified entry fails to publish to any environment. |
| content_types.{content_type_uid}.entries.{entry_uid}.environments.unpublish.fail | The specified entry fails to unpublish from any environment. |
| content_types.{content_type_uid}.entries.{entry_uid}.environments.{environment_uid}.publish.fail | The specified entry fails to publish to the specified environment. |
| content_types.{content_type_uid}.entries.{entry_uid}.environments.{environment_uid}.unpublish.fail | The specified entry fails to unpublish from the specified environment. |
| Method | Description |
| content_types.entries.variants.create | Any entry variant created for any entry in any content type. |
| content_types.entries.variants.update | Any entry variant updated for any entry in any content type. |
| content_types.entries.variants.delete | Any entry variant deleted from any entry in any content type. |
| content_types.{content_type_uid}.entries.variants.create | Any entry variant created for any entry in a specific content type. |
| content_types.{content_type_uid}.entries.variants.update | Any entry variant updated for any entry in a specific content type. |
| content_types.{content_type_uid}.entries.variants.delete | Any entry variant deleted from any entry in a specific content type. |
| content_types.{content_type_uid}.entries.{entry_uid}.variants.create | Any entry variant created for a specific entry in a specific content type. |
| content_types.{content_type_uid}.entries.{entry_uid}.variants.update | Any entry variant updated for a specific entry in a specific content type. |
| content_types.{content_type_uid}.entries.{entry_uid}.variants.delete | Any entry variant deleted from a specific entry in a specific content type. |
| content_types.{content_type_uid}.entries.{entry_uid}.variants.{variant_uid}.update | A specific entry variant updated for a specific entry in a specific content type. |
| content_types.{content_type_uid}.entries.{entry_uid}.variants.{variant_uid}.delete | A specific entry variant deleted from a specific entry in a specific content type. |
Note The {variant_uid} level supports update and delete only. A variant receives its UID when it is created, so there is no create event scoped to a specific variant.
| Method | Description |
| content_types.entries.variants.comments.create | Any comment created within any entry variant of any entry from any content type. |
| content_types.entries.variants.comments.update | Any comment updated within any entry variant of any entry from any content type. |
| content_types.entries.variants.comments.delete | Any comment deleted from any entry variant of any entry from any content type. |
| content_types.{content_type_uid}.entries.variants.comments.create | Any comment created within any entry variant of any entry from a specific content type. |
| content_types.{content_type_uid}.entries.variants.comments.update | Any comment updated within any entry variant of any entry from a specific content type. |
| content_types.{content_type_uid}.entries.variants.comments.delete | Any comment deleted from any entry variant of any entry from a specific content type. |
| content_types.{content_type_uid}.entries.{entry_uid}.variants.comments.create | Any comment created within any entry variant of a specific entry from a specific content type. |
| content_types.{content_type_uid}.entries.{entry_uid}.variants.comments.update | Any comment updated within any entry variant of a specific entry from a specific content type. |
| content_types.{content_type_uid}.entries.{entry_uid}.variants.comments.delete | Any comment deleted from any entry variant of a specific entry from a specific content type. |
| content_types.{content_type_uid}.entries.{entry_uid}.variants.{variant_uid}.comments.create | Any comment created within a specific entry variant of a specific entry from a specific content type. |
| content_types.{content_type_uid}.entries.{entry_uid}.variants.{variant_uid}.comments.update | Any comment updated within a specific entry variant of a specific entry from a specific content type. |
| content_types.{content_type_uid}.entries.{entry_uid}.variants.{variant_uid}.comments.delete | Any comment deleted from a specific entry variant of a specific entry from a specific content type. |
NoteWebhook conditions cannot be configured for actions performed on entry comments within specific entry variants.
Entry Variant Discussions
| Method | Description |
| content_types.entries.variants.discussions.create | Any discussion created within any entry variant of any entry from any content type. |
| content_types.{content_type_uid}.entries.variants.discussions.create | Any discussion created within any entry variant of any entry from a specific content type. |
| content_types.{content_type_uid}.entries.{entry_uid}.variants.discussions.create | Any discussion created within any entry variant of a specific entry from a specific content type. |
| content_types.{content_type_uid}.entries.{entry_uid}.variants.{variant_uid}.discussions.create | Any discussion created within a specific entry variant of a specific entry from a specific content type. |
| content_types.entries.variants.discussions.resolve | Any discussion resolved within any entry variant of any entry from any content type. |
| content_types.{content_type_uid}.entries.variants.discussions.resolve | Any discussion resolved within any entry variant of any entry from a specific content type. |
| content_types.{content_type_uid}.entries.{entry_uid}.variants.discussions.resolve | Any discussion resolved within any entry variant of a specific entry from a specific content type. |
| content_types.{content_type_uid}.entries.{entry_uid}.variants.{variant_uid}.discussions.resolve | Any discussion resolved within a specific entry variant of a specific entry from a specific content type. |
| content_types.entries.variants.discussions.reopen | Any resolved discussion reopened within any entry variant of any entry from any content type. |
| content_types.{content_type_uid}.entries.variants.discussions.reopen | Any resolved discussion reopened within any entry variant of any entry from a specific content type. |
| content_types.{content_type_uid}.entries.{entry_uid}.variants.discussions.reopen | Any resolved discussion reopened within any entry variant of a specific entry from a specific content type. |
| content_types.{content_type_uid}.entries.{entry_uid}.variants.{variant_uid}.discussions.reopen | Any resolved discussion reopened within a specific entry variant of a specific entry from a specific content type. |
NoteWebhook conditions cannot be set for events related to specific entry discussions.
| Method | Description |
| content_types.entries.variants.workflows.{workflow_uid} | Any stage of a specific workflow changed within any entry variant of any entry from any content type. |
| content_types.{content_type_uid}.entries.variants.workflows.{workflow_uid} | Any stage of a specific workflow changed within any entry variant of any entry from a specific content type. |
| content_types.{content_type_uid}.entries.{entry_uid}.variants.workflows.{workflow_uid} | Any stage of a specific workflow changed within any entry variant of a specific entry from a specific content type. |
| content_types.{content_type_uid}.entries.{entry_uid}.variants.{variant_uid}.workflows.{workflow_uid} | Any stage of a specific workflow changed within a specific entry variant of a specific entry from a specific content type. |
| content_types.entries.variants.workflows.{workflow_uid}.{workflow_stage_uid} | A specific workflow stage changed within any entry variant of any entry from any content type. |
| content_types.{content_type_uid}.entries.variants.workflows.{workflow_uid}.{workflow_stage_uid} | A specific workflow stage changed within any entry variant of any entry from a specific content type. |
| content_types.{content_type_uid}.entries.{entry_uid}.variants.workflows.{workflow_uid}.{workflow_stage_uid} | A specific workflow stage changed within any entry variant of a specific entry from a specific content type. |
| content_types.{content_type_uid}.entries.{entry_uid}.variants.{variant_uid}.workflows.{workflow_uid}.{workflow_stage_uid} | A specific workflow stage changed within a specific entry variant of a specific entry from a specific content type. |
Entry Variant Environments
| Method | Description |
| content_types.entries.variants.environments.publish.success | Any entry variant from any entry in any content type is successfully published to any environment. |
| content_types.entries.variants.environments.unpublish.success | Any entry variant from any entry in any content type is successfully unpublished from any environment. |
| content_types.entries.variants.environments.{environment_uid}.publish.success | Any entry variant from any entry in any content type is successfully published to a specific environment. |
| content_types.entries.variants.environments.{environment_uid}.unpublish.success | Any entry variant from any entry in any content type is successfully unpublished from a specific environment. |
| content_types.entries.variants.environments.publish.fail | Any entry variant from any entry in any content type failed to publish to any environment. |
| content_types.entries.variants.environments.unpublish.fail | Any entry variant from any entry in any content type failed to unpublish from any environment. |
| content_types.entries.variants.environments.{environment_uid}.publish.fail | Any entry variant from any entry in any content type failed to publish to a specific environment. |
| content_types.entries.variants.environments.{environment_uid}.unpublish.fail | Any entry variant from any entry in any content type failed to unpublish from a specific environment. |
| content_types.{content_type_id}.entries.variants.environments.publish.success | Any entry variant from any entry in a specific content type is successfully published to any environment. |
| content_types.{content_type_id}.entries.variants.environments.unpublish.success | Any entry variant from any entry in a specific content type is successfully unpublished from any environment. |
| content_types.{content_type_id}.entries.variants.environments.{environment_uid}.publish.success | Any entry variant from any entry in a specific content type is successfully published to a specific environment. |
| content_types.{content_type_id}.entries.variants.environments.{environment_uid}.unpublish.success | Any entry variant from any entry in a specific content type is successfully unpublished from a specific environment. |
| content_types.{content_type_id}.entries.variants.environments.publish.fail | Any entry variant from any entry in a specific content type failed to publish to any environment. |
| content_types.{content_type_id}.entries.variants.environments.unpublish.fail | Any entry variant from any entry in a specific content type failed to unpublish from any environment. |
| content_types.{content_type_id}.entries.variants.environments.{environment_uid}.publish.fail | Any entry variant from any entry in a specific content type failed to publish to a specific environment. |
| content_types.{content_type_id}.entries.variants.environments.{environment_uid}.unpublish.fail | Any entry variant from any entry in a specific content type failed to unpublish from a specific environment. |
| content_types.{content_type_id}.entries.{entry_uid}.variants.environments.publish.success | Any entry variant from a specific entry in a specific content type is successfully published to any environment. |
| content_types.{content_type_id}.entries.{entry_uid}.variants.environments.unpublish.success | Any entry variant from a specific entry in a specific content type is successfully unpublished from any environment. |
| content_types.{content_type_id}.entries.{entry_uid}.variants.environments.{environment_uid}.publish.success | Any entry variant from a specific entry in a specific content type is successfully published to a specific environment. |
| content_types.{content_type_id}.entries.{entry_uid}.variants.environments.{environment_uid}.unpublish.success | Any entry variant from a specific entry in a specific content type is successfully unpublished from a specific environment. |
| content_types.{content_type_id}.entries.{entry_uid}.variants.environments.publish.fail | Any entry variant from a specific entry in a specific content type failed to publish to any environment. |
| content_types.{content_type_id}.entries.{entry_uid}.variants.environments.unpublish.fail | Any entry variant from a specific entry in a specific content type failed to unpublish from any environment. |
| content_types.{content_type_id}.entries.{entry_uid}.variants.environments.{environment_uid}.publish.fail | Any entry variant from a specific entry in a specific content type failed to publish to a specific environment. |
| content_types.{content_type_id}.entries.{entry_uid}.variants.environments.{environment_uid}.unpublish.fail | Any entry variant from a specific entry in a specific content type failed to unpublish from a specific environment. |
| content_types.{content_type_id}.entries.{entry_uid}.variants.{variant_uid}.environments.publish.success | A specific entry variant from a specific entry in a specific content type is successfully published to any environment. |
| content_types.{content_type_id}.entries.{entry_uid}.variants.{variant_uid}.environments.unpublish.success | A specific entry variant from a specific entry in a specific content type is successfully unpublished from any environment. |
| content_types.{content_type_id}.entries.{entry_uid}.variants.{variant_uid}.environments.{environment_uid}.publish.success | A specific entry variant from a specific entry in a specific content type is successfully published to a specific environment. |
| content_types.{content_type_id}.entries.{entry_uid}.variants.{variant_uid}.environments.{environment_uid}.unpublish.success | A specific entry variant from a specific entry in a specific content type is successfully unpublished from a specific environment. |
| content_types.{content_type_id}.entries.{entry_uid}.variants.{variant_uid}.environments.publish.fail | A specific entry variant from a specific entry in a specific content type failed to publish to any environment. |
| content_types.{content_type_id}.entries.{entry_uid}.variants.{variant_uid}.environments.unpublish.fail | A specific entry variant from a specific entry in a specific content type failed to unpublish from any environment. |
| content_types.{content_type_id}.entries.{entry_uid}.variants.{variant_uid}.environments.{environment_uid}.publish.fail | A specific entry variant from a specific entry in a specific content type failed to publish to a specific environment. |
| content_types.{content_type_id}.entries.{entry_uid}.variants.{variant_uid}.environments.{environment_uid}.unpublish.fail | A specific entry variant from a specific entry in a specific content type failed to unpublish from a specific environment. |
| Method | Description |
| taxonomies.create | Any new taxonomy is created |
| taxonomies.update | Any existing taxonomy is updated |
| taxonomies.delete | Any taxonomy is deleted |
| taxonomies.{taxonomy_uid}.update | A specific taxonomy is updated |
| taxonomies.{taxonomy_uid}.delete | A specific taxonomy is deleted |
| taxonomies.terms.create | Any term is created in any taxonomy |
| taxonomies.terms.update | Any term is updated in any taxonomy |
| taxonomies.terms.delete | Any term is deleted from any taxonomy |
| taxonomies.{taxonomy_uid}.terms.created | Any term is created in a specific taxonomy |
| taxonomies.{taxonomy_uid}.terms.update | Any term is updated in a specific taxonomy |
| taxonomies.{taxonomy_uid}.terms.delete | Any term is deleted from a specific taxonomy |
| taxonomies.localize | Any taxonomy is localized |
| taxonomies.unlocalize | Any taxonomy is unlocalized |
| taxonomies.{taxonomy_uid}.localize | A specific taxonomy is localized |
| taxonomies.{taxonomy_uid}.unlocalize | A specific taxonomy is unlocalized |
| taxonomies.terms.localize | Any term in any taxonomy is localized |
| taxonomies.terms.unlocalize | Any term in any taxonomy is unlocalized |
| taxonomies.{taxonomy_uid}.terms.localize | Any term in a specific taxonomy is localized |
| taxonomies.{taxonomy_uid}.terms.unlocalize | Any term in a specific taxonomy is unlocalized |
| Method | Description |
| taxonomy.environments.publish.success | Any taxonomy is successfully published to any environment. |
| taxonomy.environments.unpublish.success | Any taxonomy is successfully unpublished from any environment. |
| taxonomy.environments.{environment_uid}.publish.success | Any taxonomy is successfully published to a specific environment. |
| taxonomy.environments.{environment_uid}.unpublish.success | Any taxonomy is successfully unpublished from a specific environment. |
| taxonomy.environments.publish.fail | Any taxonomy failed to publish to any environment. |
| taxonomy.environments.unpublish.fail | Any taxonomy failed to unpublish from any environment. |
| taxonomy.environments.{environment_uid}.publish.fail | Any taxonomy failed to publish to a specific environment. |
| taxonomy.environments.{environment_uid}.unpublish.fail | Any taxonomy failed to unpublish from a specific environment. |
| taxonomy.{taxonomy_uid}.environments.publish.success | A specific taxonomy is successfully published to any environment. |
| taxonomy.{taxonomy_uid}.environments.unpublish.success | A specific taxonomy is successfully unpublished from any environment. |
| taxonomy.{taxonomy_uid}.environments.{environment_uid}.publish.success | A specific taxonomy is successfully published to a specific environment. |
| taxonomy.{taxonomy_uid}.environments.{environment_uid}.unpublish.success | A specific taxonomy is successfully unpublished from a specific environment. |
| taxonomy.{taxonomy_uid}.environments.publish.fail | A specific taxonomy failed to publish to any environment. |
| taxonomy.{taxonomy_uid}.environments.unpublish.fail | A specific taxonomy failed to unpublish from any environment. |
| taxonomy.{taxonomy_uid}.environments.{environment_uid}.publish.fail | A specific taxonomy failed to publish to a specific environment. |
| taxonomy.{taxonomy_uid}.environments.{environment_uid}.unpublish.fail | A specific taxonomy failed to unpublish from a specific environment. |
NoteTaxonomy publish and unpublish are branch-level events, whereas the taxonomy and term create, update, and delete actions in the section above are scoped to the stack level. For this reason, these publish and unpublish events use the singular taxonomy. prefix, while the events in the section above use the plural taxonomies. prefix.
| 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-Based, Asset-Based, and Job-Based Webhook Events
| Differentiating Factors | Entry-Based and 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) |
| Publish/unpublish of single item | Webhook is triggered once | Webhook is triggered once |
| 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. |
Note Job events report the completed status only. When individual items in a bulk operation fail, the failure surfaces through the entry- or asset-level publish.fail and unpublish.fail events, not through a job event.
| Method | Description |
| assets.create | Any asset is created |
| assets.update | Any asset is updated |
| 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 | Any asset failed to unpublish |
| assets.{asset_uid}.environments.publish.success | A specific asset is successfully published to any environment |
| assets.{asset_uid}.environments.unpublish.success | A specific asset is successfully unpublished from any environment |
| assets.{asset_uid}.environments.{environment_uid}.publish.success | A specific asset is successfully published to a specific environment |
| assets.{asset_uid}.environments.{environment_uid}.unpublish.success | A specific asset is successfully unpublished from a specific environment |
| assets.{asset_uid}.environments.publish.fail | A specific asset failed to publish to any environment |
| assets.{asset_uid}.environments.unpublish.fail | A specific asset failed to unpublish from any environment |
| assets.{asset_uid}.environments.{environment_uid}.publish.fail | A specific asset failed to publish to a specific environment |
| assets.{asset_uid}.environments.{environment_uid}.unpublish.fail | A specific asset failed to unpublish from a specific environment |
| 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.