# Events

In Mechanic, an [event](https://learn.mechanic.dev/core/events) 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](https://learn.mechanic.dev/core/tasks) declare interest in events by adding [subscriptions](https://learn.mechanic.dev/core/tasks/subscriptions) 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](https://learn.mechanic.dev/core/shopify/admin-action-links) (`mechanic/user/order`, etc.)
* **Custom events** — events fired by tasks using the [Event action](https://learn.mechanic.dev/core/actions/event), 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 topics](https://learn.mechanic.dev/core/events/topics-1) — a complete index of all available event topics
* [Event filters](https://learn.mechanic.dev/platform/events/filters) — selectively skip events before they reach your tasks
