# Events

In Mechanic, an [event](/core/events.md) represents something that happened — a new order, a scheduled timer firing, an incoming email, or a custom trigger. Events are the starting point for all automation: every task run begins with an event.

## How events work

Each event has a **topic** (like `shopify/orders/create`) and **data** (the payload from Shopify or another source). [Tasks](/core/tasks.md) declare interest in events by adding [subscriptions](/core/tasks/subscriptions.md) that match specific topics. When an event arrives, Mechanic runs every task that subscribes to that event's topic.

## Event sources

Events can come from several places:

* **Shopify webhooks** — triggered by activity in your store (orders, customers, products, fulfillments, etc.)
* **Mechanic scheduler** — timed events like `mechanic/scheduler/daily` or `mechanic/scheduler/hourly`
* **On-demand runs** — tasks run manually via the Mechanic app (`mechanic/user/trigger`, `mechanic/user/text`, `mechanic/user/form`) or via [Shopify admin action links](/core/shopify/admin-action-links.md) (`mechanic/user/order`, etc.)
* **Custom events** — events fired by tasks using the [Event action](/core/actions/event.md), enabling multi-step workflows
* **Incoming email** — emails sent to your store's Mechanic address trigger `mechanic/emails/received`
* **Error events** — `mechanic/errors/task`, `mechanic/errors/action`, and `mechanic/errors/event` fire when something goes wrong

## In this section

* [Event topic list](/platform/events/topics.md) — a complete index of all available event topics
* [Shopify topics](/platform/events/topics.md#shopify) — native Shopify webhook topics that tasks can subscribe to directly
* [Event filters](/platform/events/filters.md) — selectively skip events before they reach your tasks


---

# 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/platform/events.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.
