How to track variants metafield updates using webhooks or something?

Topic summary

Main issue: Need to detect updates to product variant metafields (custom data fields on variants) via Shopify webhooks to validate values and forward them to another service.

What was tried:

  • Subscribed to products/update with includeFields: [“variants”] and metafieldNamespaces: [“custom”], HTTP delivery to /api/webhooks. Code logs variant payload on callbacks.

Observed behavior:

  • products/update triggers for product changes and variant core fields (title/price/etc.).
  • It does not fire on variant metafield updates; appears to trigger only on initial creation of a variant metafield (first call).
  • Confirmed by others: products/update works for product metafield changes but not variant metafields.
  • inventory_items/update also does not fire on variant metafield updates.

Status/outcome:

  • No webhook identified that reliably triggers on variant metafield updates.
  • Participants are asking if such a webhook exists or for alternate approaches; discussion remains unresolved with open question about supported event/topic for variant metafield updates.
Summarized with AI on December 19. AI used: gpt-5.

I need to track an event when a merchant was changed variant metafield to check the value and push something to another host.

export default {
  PRODUCTS_UPDATE: {
    deliveryMethod: DeliveryMethod.Http,
    callbackUrl: "/api/webhooks",
    includeFields: [
      "variants"
    ],
    metafieldNamespaces: [
      "custom"
    ],
    callback: async (topic, shop, body, webhookId) => {
      console.log('--- Product update ---');
      const payload = JSON.parse(body);
      console.log(payload.variants);
      console.log('--- /Product update ---');
    },
  },
};

I’m trying to create the webhook for it. But the PRODUCTS_UPDATE topic works for product internal changes (title/description/options/product metafields and etc.), and even for variant title/description/price/etc changes but not for the variants metafields. Only for the first their call, I suppose when the metafield is created.

Does someone know how to expand the webhook to track variant metafield or you know another way?

3 Likes

+1 having the same issue.

products/update webhook is not triggered by variant metafield updates, but it is by product metafield updates

1 Like

Same issue here. inventory_items/update webhook doesn’t do it either. Is there any webhook that triggers on variant metafield update?