Home
Changelog

new

Shopify API deprecation summaries now include specific GraphQL details, identifying individual deprecated fields, and surfacing Shopify's own annotations for them.
image
For tasks using soon-to-be-dropped Shopify API versions, deprecation alerts are displayed at the top of the store's Mechanic task list, along with the relevant timeframe for resolution.
image
Read more

new

Integration

Mechanic can now receive events from Appstle Subscriptions. You can enable the integration in Appstle Subscriptions:
image
After enabling the integration in the Appstle Subscriptions app, your events will be sent to Mechanic, and any tasks that subscribe to these event topics will receive the events:
Event topics
  • appstle_subscriptions/subscriptions/create
    - Occurs when a subscription is created.
  • appstle_subscriptions/subscriptions/activate
    - Occurs when a subscription is activated.
  • appstle_subscriptions/subscriptions/cancel
    - Occurs when a subscription is cancelled.
  • appstle_subscriptions/subscriptions/next_order_date_change
    - Occurs when the next order data of a subscription is changed.
  • appstle_subscriptions/subscriptions/pause
    - Occurs when a subscription is paused.
  • appstle_subscriptions/subscriptions/update
    - Occurs when a subscription is updated.
  • appstle_subscriptions/billings/create
    - Occurs when billing for a subscription is created.
  • appstle_subscriptions/billings/failure
    - Occurs when billing for a subscription fails.
  • appstle_subscriptions/billings/interval_change
    - Occurs when billing for a subscription changes.

new

Shopify regularly releases new webhook topics, and this routine doesn't normally warrant a Mechanic changelog entry. But, these specific topics signal something meaningfully new.
  1. Shopify's names for these topics are
    customer.tags_added
    and
    customer.tags_removed
    . Note that those terms are separated by dots, not slashes. Historically, Shopify has only ever named topics using slashes. (Over here in Mechanic, we're rolling with slashes anyway, for internal consistency:
    shopify/customer/tags_added
    , and
    shopify/customer/tags_removed
    .)
  2. These webhook payloads don't contain the entire Customer object's REST representation, which is a break from tradition with
    customers/create
    et al. Instead, they contain information styled à la GraphQL, instead of REST.
Screenshot 2023-07-05 at 3
Mechanic tasks have typically needed to work hard to determine the delta of a resource's attributes over time. This is the first time that Shopify has released a webhook
defining
the substance of a change*, which relieves task-writers of some specific headaches.
* Yes,
orders/edited
exists, but even then, its payload is the static content of an OrderEdit, not the delta of an Order.
Read more

new

When preparing events to send to apps like Mechanic, Shopify uses resource representations from specific versions of their REST Admin API.
Effective immediately, Shopify events in Mechanic now use resource representations from version 2023-07 of the REST Admin API.
Of the breaking REST changes documented, only one (1) is relevant for Shopify webhooks in Mechanic:
  • Removal of the delivery_category field on order shipping lines
Read more

new

Get actionable visibility into event, task, and action errors
Mechanic now creates error events when an error occurs during an event run, a task run, or an action run. Each run type has its own error event topic. You can subscribe to these error topics to take action based on these errors (e.g. to send an email letting you know an error has occurred).
Event topics
mechanic/errors/action
This occurs when an action run encounters an error. (Examples: a server connection failure during an FTP action, or a missing or invalid receipient email address during an Email action.)
mechanic/errors/event
This occurs when an event filter fails.
mechanic/errors/task
This occurs when a task run fails. (Examples: a task run exceeds Mechanic's memory limits, a Liquid parsing or rendering failure, or encountering an error object.)
Subscriptions
Any task may subscribe to error events.
If a task subscribes only to error events, it's qualified to receive all such error events, across all runs in the same Mechanic account.
If a task subscribes to other non-error topics, too, the task will only receive its own
mechanic/errors/task
and
mechanic/errors/action events
. It won't be able to receive
mechanic/errors/event
events.
Error reporter task
You can install our error reporter task here.

new

When preparing events to send to apps like Mechanic, Shopify uses resource representations from specific versions of their REST Admin API.
Effective immediately, Shopify events in Mechanic now use resource representations from version 2023-04 of the REST Admin API.
Shopify reports several breaking changes to REST representations for webhooks in this version, including:
  • Payment properties on the Order resource have been removed
  • Transaction will now return the total unsettled set amount
Read more

new

Historically, Mechanic has sent its required system notice messages to the store owner's email address, as recorded by Shopify.
The email recipient for these messages may now be customized, via the "System contact email" field in the store's Mechanic app settings. This value defaults to the store owner's email address.

new

The FTP action now supports host certificate verification for SFTP connections, via
"verify": true
and a configured
"known_hosts"
string. And, for FTPS connections, host certificate validation may now be electively skipped, using
"verify": false
.
Read more

new

Mechanic webhooks may now be configured with a choice of event data modes, determining the method by which webhook request data is translated into event data.
As an alternative to "Auto" (the default, and Mechanic's historically available behavior), webhooks may be set to use "Full request" mode. This new mode makes available most aspects of a request, including the query string, headers, request body, and useful interpreted versions of those values.
All Mechanic webhooks (including both event data modes) now also support file uploads, via multipart/form-data requests.
Read more
Load More