Product "events" object in GraphQL doesn't reflect inventory or product updates

We’re trying to track all changes made to a product using Shopify’s GraphQL Admin API, particularly through the Product object. We found the events connection and initially thought it would be useful for understanding what changes happened to a product over time.

However, we’ve noticed a couple of issues:

  1. Inventory updates (changes to inventory levels or restocks) are not captured in the events object.
  2. Even some product-level updates (e.g., changes to metafields, product options, or variant details) don’t always trigger a new event in the events list.

This makes it difficult to maintain a reliable audit trail or understand exactly what changed in a product and when in the update.

Ideally, we would love to have a consistent log of product-related changes — especially inventory and variant-level changes — accessible via GraphQL or through another API.

Is the recommended approach still to rely on webhooks and maintain a separate change log externally?

Appreciate any insight or workarounds others have found.