# List of webhook events

Webhooks are triggered by any changes in the store data, no matter their source. For example, if a new order was placed in the store through REST API call, you still receive the `order.created` webhook.

Find a full list of available webhook events with the following details below:

* Webhook event
* Trigger conditions
* Access scope required to receive webhooks for this event
* Link to REST API call allowing you to receive full details about the affected item/entity.

### `profile.updated`

Triggers when any general store settings are updated, for example, selected currency, language, and email notification settings.

Access scope required: `read_store_profile`

Related REST API call: [Get store profile](/api-reference/rest-api/store-profile/get-store-profile.md)

### `profile.subscriptionStatusChanged`

Triggers when the store subscription plan is changed, for example, the store becomes suspended or the store owner upgrades the plan.

Access scope required: `read_store_profile`

### `order.created`

Triggers when a new order is placed in the store. Supports both orders made at the checkout and orders created with REST API.

Access scope required: `read_orders`

Related REST API: [Get order](/api-reference/rest-api/orders/get-order.md)

### `order.updated`

Triggers when any order data is updated.

Access scope required: `read_orders`

Related REST API: [Get order](/api-reference/rest-api/orders/get-order.md)

### `order.deleted`

Triggers when an order is deleted from the store.

Access scope required: `read_orders`

### `unfinished_order.created`

Triggers when a customer leaves an abandoned cart on the storefront.

Access scope required: `read_orders`

Related REST API: [Get abandoned cart](/api-reference/rest-api/orders/abandoned-carts/get-abandoned-cart.md)

### `unfinished_order.updated`

Triggers when abandoned cart details are changed.

Access scope required: `read_orders`

Related REST API: [Get abandoned cart](/api-reference/rest-api/orders/abandoned-carts/get-abandoned-cart.md)

### `unfinished_order.deleted`

Triggers when an abandoned cart is deleted from the store.

Access scope required: `read_orders`

### `product.created`

Triggers when a new product is added to the store.

Access scope required: `read_catalog`

Related REST API: [Get product](/api-reference/rest-api/products/get-product.md)

### `product.updated`

Triggers when any product details are changed including product stock (quantity available for purchase).

Access scope required: `read_catalog`

Related REST API: [Get product](/api-reference/rest-api/products/get-product.md)

### `product.deleted`

Triggers when a product is deleted from the store.

Access scope required: `read_catalog`

### `category.created`

Triggers when a new category is created in the store.

Access scope required: `read_catalog`

Related REST API: [Get category](/api-reference/rest-api/categories/get-category.md)

### `category.updated`

Triggers when any details in an existing category are updated in the store.

Access scope required: `read_catalog`

Related REST API: [Get category](/api-reference/rest-api/categories/get-category.md)

### `category.deleted`

Triggers when a category is deleted from the store.

Access scope required: `read_catalog`

### `customer.created`

Triggers when a new customer is created. Includes cases when Ecwid automatically creates accounts for new customers when they place an order in the store.

Access scope required: `read_customers`

Related REST API: [Get customer](/api-reference/rest-api/customers/get-customer.md)

### `customer.updated`

Triggers when any details of an existing customer are updated in the store.

Access scope required: `read_customers`

Related REST API: [Get customer](/api-reference/rest-api/customers/get-customer.md)

### `customer.deleted`

Triggers when a customer is deleted from the store.

Access scope required: `read_customers`&#x20;

### `customer_group.created`

Triggers when a new customer group is added to the store through Ecwid admin or API call.

Access scope required: `read_customers`&#x20;

Related REST API: [Get customer group](/api-reference/rest-api/customers/customer-groups/get-customer-group.md)

### `customer_group.updated`

This triggers when an existing customer group is updated, such as when a new customer is added to it.

Access scope required: `read_customers`&#x20;

Related REST API: [Get customer group](/api-reference/rest-api/customers/customer-groups/get-customer-group.md)

### `customer_group.deleted`

Triggers when a customer group is deleted from the store. Customers from the deleted group move to a default one.&#x20;

Access scope required: `read_customers`&#x20;

### `discount_coupon.created`

Triggers when a new discount coupon is created in the store.

Access scope required: `read_discount_coupons`

Related REST API: [Get discount coupon](/api-reference/rest-api/discounts/discount-coupons/get-discount-coupon.md)

### `discount_coupon.updated`

Triggers when details of any discount coupon are updated in the store.

Access scope required: `read_discount_coupons`

Related REST API: [Get discount coupon](/api-reference/rest-api/discounts/discount-coupons/get-discount-coupon.md)

### `discount_coupon.deleted`

Triggers when a discount coupon is deleted from the store.

Access scope required: `read_discount_coupons`

### `promotion.created`

Triggers when a new promotion (advanced discount) is created in the store.

Access scope required: `read_promotion`

Related REST API: [Search promotions](/api-reference/rest-api/discounts/promotions/search-promotions.md)

### `promotion.updated`

Triggers when details of any promotion are updated in the store.

Access scope required: `read_promotion`

Related REST API: [Search promotions](/api-reference/rest-api/discounts/promotions/search-promotions.md)

### `promotion.deleted`

Triggers when a promotion is deleted from the store.

Access scope required: `read_promotion`

### `product_class.created`

Triggers when a new product type is created in the store.

Access scope required: `read_catalog`

Related REST API: [Get product type](/api-reference/rest-api/products/product-types-and-attributes/get-product-type.md)

### `product_class.updated`

Triggers when details (including attributes) of any product type are updated in the store.

Access scope required: `read_catalog`

Related REST API: [Get product type](/api-reference/rest-api/products/product-types-and-attributes/get-product-type.md)

### `product_class.deleted`

Triggers when a product type is deleted from the store.

Access scope required: `read_catalog`

### `review.created`

Triggers when a new product review is created in the store.

Access scope required: `read_reviews`

Related REST API: [Search product reviews](/api-reference/rest-api/products/product-reviews/search-product-reviews.md)

### `review.updated`

Triggers when any review details are updated in the store.

Access scope required: `read_reviews`

Related REST API: [Search product reviews](/api-reference/rest-api/products/product-reviews/search-product-reviews.md)

### `review.deleted`

Triggers when a product review is deleted from the store.

Access scope required: `read_reviews`

### `invoice.created`

Triggers when a new order tax invoice is generated in the store.

Access scope required: `read_invoices`

Related REST API: [Get tax invoices for order](/api-reference/rest-api/orders/order-invoices/get-tax-invoices-for-order.md)

### `invoice.deleted`

Triggers when an order tax invoice is deleted from the store.

Access scope required: `read_invoices`

### `application.installed`

Triggers when a new application is installed in the store.

Access scope required: `read_store_profile`

Related REST API: [Get app subscription status](/api-reference/rest-api/application/get-app-subscription-status.md)

### `application.uninstalled`

Triggers when an app is uninstalled from the store.

Access scope required: `read_store_profile`

### `application.subscriptionStatusChanged`

Triggers when app subscription status is changed in the store.

Access scope required: `read_store_profile`

Related REST API: [Get app subscription status](/api-reference/rest-api/application/get-app-subscription-status.md)

### `application.storageChanged`

Triggers when application storage for the app is updated in the store.

Access scope required: `read_store_profile`

Related REST API: [Get all app storage data](/api-reference/rest-api/application/get-all-app-storage-data.md)

### `customer.personalDataRemovalRequest`

Triggers when customers request to remove all personal data from the store.

Access scope required: `read_store_profile`

Related REST API: [Get customer](/api-reference/rest-api/customers/get-customer.md)

### `customer.personalDataExportRequest`

Triggers when customers request to share all personal data with them.

Access scope required: `read_store_profile`

Related REST API: [Get customer](/api-reference/rest-api/customers/get-customer.md)

### `profile.personalDataRemovalRequest`

Triggers when the store owner requests to remove all personal data from the application.

Access scope required: `read_store_profile`

Related REST API call: [Get store profile](/api-reference/rest-api/store-profile/get-store-profile.md)

### `profile.personalDataExportRequest`

Triggers when the store owner requests to share all personal data store in the application.

Access scope required: `read_store_profile`

Related REST API call: [Get store profile](/api-reference/rest-api/store-profile/get-store-profile.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.ecwid.com/webhook-automations/learn-ecwid-webhooks/list-of-webhook-events.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
