githubEdit

⛩️Introduction

Mechanic is a Shopify automation platform — hundreds of ready-to-use tasks plus a Liquid development environment for custom workflows.

Mechanic is a Shopify automation and development platform. Write Liquid code that responds to store events, queries the Shopify Admin API, calls external services, and performs complex multi-step workflows — with no servers to manage.

circle-info

Find Mechanic on the Shopify App Store: apps.shopify.com/mechanicarrow-up-right

Can Mechanic help me?

Mechanic gives you a task library with hundreds of ready-to-use automations — and a full development environment for building your own. Tasks are real code: Liquid with direct access to Shopify's GraphQL API, external HTTP services, and composable event-driven workflows. Here's how to tell if it fits your use case.

  1. Are you working on something Shopify-related?

    • Mechanic is only available for Shopify.

  2. Is what you're looking for already available from Mechanic's task libraryarrow-up-right?

    • We have hundreds of common scenarios already handled with pre-written, open-source, modifiable, off-the-shelf tasks.

  3. Is what you're trying to do something Shopify supports?

  4. Need something tailored to your store?

That list wasn't exactly a formal flowchart, but we hope it's helpful as you're evaluating Mechanic. :) The short version: Mechanic handles the workflows that are too complex for built-in Shopify tools, backed by a community that has collectively solved hundreds of distinct automation problems. (Join our community Slack workspace!)

circle-info

Got a question you need answered now? Join our Slack workspace.arrow-up-right 💬

How does Mechanic work?

Tasks, events, and actions

A developer writes tasks – Liquid code that responds to events, like a Shopify webhook, a manual trigger, a regular interval (e.g. hourly, daily), or an incoming email. Tasks use subscriptions to signal their interest in specific event types.

When a task receives an incoming event, it can choose to generate an action – an operation that has an effect.

  • The Shopify action makes changes to a Shopify store, like tagging, publishing, creating or deleting resources. It provides direct and complete access to Shopify's admin API, with support for both REST and GraphQL.

  • The Email action is for sending email. It supports custom templates, and attachments.

  • The FTP action is for uploading files to an FTP or SFTP server. These files may be generated by the task, or can be fetched from external locations.

  • The HTTP action performs any request, to any HTTP endpoint. This facilitates integration with third-party APIs.

  • The Files action generates a variety of file formats, including PDF, CSV, ZIP, and anything retrieved from a public URL. Files generated this way receive a temporary URL of their own, and can be fed into other tasks for further processing.

For a complete list of supported actions, see Actions.

Liquid

Tasks are written in Liquid – the template language created by Shopify. But Mechanic extends Liquid well beyond templating: tasks can loop through paginated API results, transform complex data structures, branch on conditions, emit events that trigger other tasks, and construct arbitrarily complex action sequences. In the same way that a Liquid theme receives browser requests and renders HTML, a Mechanic task receives events and renders actions (by defining them with JSON).

In Mechanic, Liquid is extended with filters for parsing JSON, generating CSV, computing HMACs, and manipulating complex data structures — including first-class support for arrays and hashes.

Run queues

Mechanic performs work using queues of runs, with no limit on how large each queue can become. If there is a sudden surge of incoming events for a Shopify store, the store's dedicated Mechanic queue could become delayed. This is an important difference between Mechanic and many other systems: in a high-traffic period, Mechanic will never refuse incoming events for a store; instead, it will process each one as soon as possible, by putting them into a run queue. The rate at which Mechanic processes work varies, depending on concurrency and the Shopify API rate limit.

Last updated

Was this helpful?