Mechanic now supports custom Shopify webhooks.
This gives advanced users a new way to receive Shopify webhook events in Mechanic, with Shopify filtering deliveries before they arrive, customizing payload fields, including metafields, and routing events onto custom
user/...
event topics.
This also unlocks something new for Mechanic: Shopify metaobject webhook event topics.
You can now create custom Shopify webhooks for:
shopify/metaobjects/create
shopify/metaobjects/update
shopify/metaobjects/delete
Each metaobject webhook uses a
type:
filter, so you can subscribe to the exact metaobject definition your task cares about. This filter is required by Shopify.
What this is good for:
  • receiving only matching Shopify webhook deliveries
  • routing product updates to one specific task instead of triggering every task subscribed to
    shopify/products/update
  • including known metafields directly in the webhook payload
  • subscribing to Shopify metaobject events
A practical example: product updates.
With a regular
shopify/products/update
subscription, every enabled task listening to that topic receives every product update. If you have 20 product-update tasks, all 20 are triggered, and each task has to decide whether the update matters.
With a custom Shopify webhook, Shopify can filter first, and Mechanic can route only the matching deliveries to a purpose-specific
user/...
topic, like
user/products/active_update
. That gives you a cleaner one-to-one path from a Shopify event to the task or workflow that should respond.
Most Shopify-triggered tasks should still use regular
shopify/...
subscriptions. Custom Shopify webhooks are for cases where Shopify-side filtering, payload customization, metafields, or metaobject events matter before the event reaches Mechanic.
A few gotchas:
  • Shopify webhook filters are not exactly the same as Shopify Admin search queries.
  • Payload customization does not make a webhook unique. Shopify only allows one enabled webhook for the same Shopify topic and filter, you can work around this with neutral filters like
    id:*
    and
    created_at:*
    .
  • Metaobject webhooks require a concrete type: filter.
We also cleaned up Mechanic’s Settings area, removing the old tab layout and making the growing set of settings easier to scan and navigate.
Learn more: