# Task library

Mechanic's **task library** is a compendium of e-commerce automation tasks and documentation, written by the Mechanic community and the Mechanic core team. [Hosted on GitHub](https://github.com/lightward/mechanic-tasks), everything is open-sourced under the highly permissive [MIT license](https://github.com/lightward/mechanic-tasks/blob/master/LICENSE), making all library tasks appropriate for re-use and modification.

**To browse the task library, visit** [**tasks.mechanic.dev**](https://tasks.mechanic.dev/)**.**

## Popular automations merchants install first

If you already know the automation you want Mechanic to handle, start with a task that's close:

* **Keep bundle and shared-SKU inventory aligned** — maintain bundle stock with [Maintain inventory for a product bundle](https://tasks.mechanic.dev/maintain-inventory-for-a-product-bundle), or sync variants with [Sync inventory for shared SKUs](https://tasks.mechanic.dev/sync-inventory-for-shared-skus).
* **Move, hide, publish, or sort products by rule** — move sold-out products with [Move out-of-stock products to the end of a collection](https://tasks.mechanic.dev/move-out-of-stock-products-to-the-end-of-a-collection), hide them with [Hide out-of-stock products](https://tasks.mechanic.dev/hide-out-of-stock-products), or publish new products automatically with [Auto-publish new products](https://tasks.mechanic.dev/auto-publish-new-products).
* **Fulfill or manage orders automatically** — fulfill digital or no-shipping items with [Auto-fulfill items that don't require shipping](https://tasks.mechanic.dev/auto-fulfill-items-that-dont-require-shipping), or close stale pending orders with [Cancel and close unpaid orders after x hours/days](https://tasks.mechanic.dev/cancel-and-close-unpaid-orders-after-two-days).
* **Tag wholesale, VIP, discount, or matching-product orders** — copy customer tags with [Auto-tag orders based on customer account tags](https://tasks.mechanic.dev/auto-tag-orders-based-on-customer-account-tags), copy discount codes with [Auto-tag orders by discount code](https://tasks.mechanic.dev/auto-tag-orders-by-discount-code), or tag orders that contain a matching product with [Auto-tag orders that contain a matching product](https://tasks.mechanic.dev/auto-tag-orders-that-contain-a-matching-product).
* **Email customers at the right moment** — email customers when an order is tagged with [Email customers when their order is tagged](https://tasks.mechanic.dev/email-customer-when-order-tagged), when tracking appears with [Email the customer when tracking numbers are added to their order](https://tasks.mechanic.dev/email-the-customer-when-tracking-numbers-are-added-to-their-order), or after they buy a product with [Email customers after purchasing a certain product](https://tasks.mechanic.dev/product-order-email).
* **Export CSV or PDF reports** — email order data with [Email a CSV export of orders](https://tasks.mechanic.dev/email-a-csv-export-of-orders), create PDF invoices with [Send a PDF invoice when an order is created](https://tasks.mechanic.dev/send-a-pdf-invoice-when-an-order-is-created), or build from a PDF example like [Generate a simple product catalog PDF](https://tasks.mechanic.dev/generate-a-simple-product-catalog-pdf).

These are starting points, not limits. Once installed, a task can be configured, copied, modified, or used as a pattern for something custom.

## Installing a task

1. Navigate to the **Add task** page in the Mechanic app to find a task that fits your needs. You can also browse [tasks.mechanic.dev](https://tasks.mechanic.dev/) to explore the library.
2. In the app, click **Install this task** to add the task to your Mechanic account
3. Configure any task options (settings fields) as needed
4. Click **Save** to activate the task

Once installed, a library task is your own copy. You can modify the code, change options, or adjust subscriptions to fit your specific requirements.

{% hint style="info" %}
When building a new task, it's often easier to start from an existing library task and modify it, rather than writing a task from scratch. Searching [tasks.mechanic.dev](https://tasks.mechanic.dev/) is a good place to start.
{% endhint %}

{% hint style="warning" %}
Mechanic support covers **unmodified** tasks from the task library. Once you modify a library task's code, it becomes a custom task, and support is limited to platform-level issues. For help with custom tasks, see [Get help with a custom task](/custom-help.md)
{% endhint %}

## What's in the library

The library includes hundreds of tasks covering common Shopify automation patterns, including:

* **Tagging** — auto-tag orders, customers, and products based on conditions
* **Notifications** — send emails, Slack messages, or other alerts on Shopify events
* **Inventory** — monitor stock levels, sync inventory across locations
* **Order management** — fulfill, cancel, or modify orders automatically
* **Product management** — publish, hide, or update products based on rules
* **Data feeds** — generate scheduled CSV or email reports
* **Integrations** — connect with external services like Google Sheets, Airtable, and more

## Contributing and requesting

**The Mechanic community can request new tasks – see** [**Requesting**](/resources/task-library/requesting.md)**.**

**The task library is open for contributions, by way of pull requests – see** [**Contributing**](/resources/task-library/contributing.md)**.**


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://learn.mechanic.dev/resources/task-library.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
