---
title: "Webhook Events"
description: "Explore all Webhook events in Contentstack Documentation for branches, content types, entries, assets, and more. Stay updated with the latest changes."
url: "https://www.contentstack.com/docs/headless-cms/webhook-events"
product: "Contentstack"
doc_type: "guide"
audience:
  - developers
  - admins
version: "current"
last_updated: "2026-08-05"
---

# Webhook Events

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.

## Events at a Glance

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:

*   **Scoping**: Most 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.

## 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.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

## 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

## Global Fields

**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.

## 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

**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.

## 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

## Entry Environment

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.

## Entry Variants

**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.

## Entry Variant Comments

**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.

**Note**: Webhook 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.

**Note**: Webhook conditions cannot be set for events related to specific entry discussions.

## Entry Variant Workflows

**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.

## Taxonomy

**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

## Taxonomy Publish

**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.

**Note**: Taxonomy 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.

## 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-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.

## Assets

**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

## 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.