---
title: >-
  Metafield triggers and additional topics are now available for Events -
  Shopify developer changelog
description: >-
  Shopify’s developer changelog documents all changes to Shopify’s platform.
  Find the latest news and learn about new platform opportunities.
source_url:
  html: >-
    https://shopify.dev/changelog/metafield-triggers-and-additional-topics-are-now-available-for-events
  md: >-
    https://shopify.dev/changelog/metafield-triggers-and-additional-topics-are-now-available-for-events.md
metadata:
  effectiveApiVersion: ''
  affectedApi:
    - displayName: Events & webhooks
      handle: webhook
  primaryTag:
    displayName: API
    handle: api
  secondaryTag:
    displayName: Update
    handle: update
  indicatesActionRequired: false
  createdAt: '2026-07-09T13:55:26-04:00'
  postedAt: '2026-07-21T16:00:00-04:00'
  updatedAt: '2026-07-16T13:35:18-04:00'
  effectiveAt: '2026-07-31T12:00:00-04:00'
---

# Metafield triggers and additional topics are now available for Events

DateJuly 21, 2026

FlagsUpdate

SurfacesAPI

Affected APIs[Events & webhooks](https://shopify.dev/changelog?api_type=webhook)

Apps can now subscribe to events for [`Order`](https://shopify.dev/docs/api/events/latest/order), [`Collection`](https://shopify.dev/docs/api/events/latest/collection), [`InventoryItem`](https://shopify.dev/docs/api/events/latest/intentory-item), [`InventoryShipment`](https://shopify.dev/docs/api/events/latest/inventory-shipment), [`Location`](https://shopify.dev/docs/api/events/latest/location), and can subscribe to metafield changes on [`Product`](https://shopify.dev/docs/api/events/latest/product?accordionItem=producttriggers-product.metafield), [Order](https://shopify.dev/docs/api/events/latest/order), [`Customer`](https://shopify.dev/docs/api/events/latest/customer?accordionItem=customertriggers-customer.metafield), [`Collection`](https://shopify.dev/docs/api/events/latest/collection?accordionItem=collectiontriggers-collection.metafield) and [`Location`](https://shopify.dev/docs/api/events/latest/location). `ProductVariant` metafields are supported through the `Product` topic.

This gives apps a precise way to react to more objects and custom data changes. Apps can target the fields that matter in `triggers`, query the resource that changed, and avoid subscribing to every resource update just to diff payloads in their event handler.

Both `$app` metafields and regular metafields are supported. Access control still applies, so an app must have access to the metafield to subscribe to changes and receive the queried data. For example, an app can subscribe to two targeted product metafields in `shopify.app.toml` and use `query_variables` to fetch the metafield that actually changed:

```shell
[events]
api_version = "unstable"

[[events.subscription]]
handle = "product_material_sync"
topic = "Product"
actions = ["update"]
triggers = [
  "product.metafield(namespace: 'custom', key: 'material').value",
  "product.metafield(namespace: '$app', key: 'sourcing_status').value"
]

uri = "/events/product"

query = """
query ProductMetafieldSync(
  $productId: ID!
  $metafieldNamespace: String!
  $metafieldKey: String!
) {
  product(id: $productId) {
    id
    title
    metafield(namespace: $metafieldNamespace, key: $metafieldKey) {
      namespace
      key
      value
      type
    }
  }
}
"""
```

When one of those metafields changes, apps receive the payload they designed:

```json
{
  "topic": "Product",
  "action": "update",
  "handle": "product_material_sync",
  "data": {
    "product": {
      "id": "gid://shopify/Product/1234567890",
      "title": "Canvas Tote",
      "metafield": {
        "namespace": "custom",
        "key": "material",
        "value": "Cotton",
        "type": "single_line_text_field"
      }
    }
  },
  "fields_changed": [
    "product.metafield(namespace: 'custom', key: 'material').value"
  ],
  "query_variables": {
    "productId": "gid://shopify/Product/1234567890",
    "metafieldNamespace": "custom",
    "metafieldKey": "material"
  }
}
```

If your subscription has no `triggers`, or subscribes to a parent trigger such as `product`, it can now receive events for metafield changes on supported resources too. To receive only specific metafield changes, add targeted metafield triggers for the namespace and key your app needs.

Events remain available in the `unstable` API version during developer preview. For topics that are not supported yet, continue using webhooks alongside Events in `shopify.app.toml`.

Learn more about

* Events: <https://shopify.dev/docs/apps/build/events>
* Order: <https://shopify.dev/docs/api/events/latest/order>
* Collection: <https://shopify.dev/docs/api/events/latest/collection>
* InventoryItem: <https://shopify.dev/docs/api/events/latest/intentory-item>
* InventoryShipment: <https://shopify.dev/docs/api/events/latest/inventory-shipment>
* Location: <https://shopify.dev/docs/api/events/latest/location>
