# Event topics list

Mechanic supports a variety of [**event topics**](https://learn.mechanic.dev/core/events/topics), each a classification of an [**event**](https://learn.mechanic.dev/core/events). Each [**task**](https://learn.mechanic.dev/core/tasks) can signal its interest in specific topics by using [**subscriptions**](https://learn.mechanic.dev/core/tasks/subscriptions).

This page is a complete index of pre-defined topics, organized by the event topic's **domain**.

{% hint style="info" %}
Incoming events may be selectively filtered out using [event filters](https://learn.mechanic.dev/platform/events/filters).
{% endhint %}

## Mechanic

### Actions

* **mechanic/actions/perform**\
  Occurs when an action has been performed, regardless of its success or failure. A task may subscribe to this topic to be notified when each of its actions have been performed, so that the task may then respond to the results. To skip emitting this follow-up for a specific action, set `__perform_event: false` on that action.

### Emails

* **mechanic/emails/received**\
  Occurs when Mechanic receives an email sent to the store's dedicated email address. (A store at example.myshopify.com can receive email at <example@mail.usemechanic.com>.)

### Errors

{% hint style="info" %}
Learn more about [error handling](https://learn.mechanic.dev/platform/error-handling).
{% endhint %}

* **mechanic/errors/action**

  Occurs when an action fails.
* **mechanic/errors/event**\
  Occurs when an event run fails.
* **mechanic/errors/task**\
  Occurs when a task run fails.

### Scheduler

* **mechanic/scheduler/10min**\
  Runs every 10 minutes.
* **mechanic/scheduler/15min**\
  Runs every 15 minutes.
* **mechanic/scheduler/20min**\
  Runs every 20 minutes. (You see where this is going.)
* **mechanic/scheduler/30min**\
  Runs every 30 minutes.
* **mechanic/scheduler/hourly**\
  Runs every hour, on the hour.
* **mechanic/scheduler/daily**\
  Runs at midnight, in the store's local timezone.
* **mechanic/scheduler/monday**\
  Runs every Monday at midnight, in the store's local timezone. (Note: this would be at the end of Sunday evening). Each named weekday is supported.
* **mechanic/scheduler/monthly**\
  Runs at midnight on the 1st of the month, in the store's local timezone.

{% hint style="info" %}
More specific times can be achieved by subscribing to an event topic with a delay (e.g. "mechanic/scheduler/daily+5.hours"). There is no limit to the length of the delay, including delaying longer than the scheduler interval itself (e.g. "mechanic/scheduler/daily+100.hours"). To learn more, see [Subscriptions](https://learn.mechanic.dev/core/tasks/subscriptions).
{% endhint %}

### User

Not to be confused with the [User event domain](#user) (for custom, developer-defined events like `user/foo/bar`), `mechanic/user` topics are for tasks that are run on demand — either from a button in the Mechanic app, or via [Shopify admin action links](https://learn.mechanic.dev/core/shopify/admin-action-links). [Run links](https://learn.mechanic.dev/platform/integrations/run-links) are available for these topics.

* **mechanic/user/trigger**\
  When used, adds a "Run task" button to the task itself. This button generates a new event, to which only this task will respond.
* **mechanic/user/text**\
  When used, adds a "Run task" button to the task itself. This button prompts the user with a multi-line text box. When submitted, an event is generated, to which only this task will respond. The event contains the user's input in its data, making user's input available in `event.data`.
* **mechanic/user/form**\
  When used, adds a "Run task" button to the task itself. When Run Task button is clicked they are presented with form that contains any [task options](https://learn.mechanic.dev/core/tasks/options) that have the `_userform` flag. When submitted, an event is generated, to which only this task will respond. See [User Form](https://learn.mechanic.dev/core/tasks/user-form) for details. The user's input is available in Liquid as `input.<name>`.

The following mechanic/user topics are typically used with [Shopify admin action links](https://learn.mechanic.dev/core/shopify/admin-action-links), and are documented there more fully.

* **mechanic/user/collection**\
  Occurs when a user sends a collection to Mechanic
* **mechanic/user/customer**\
  **mechanic/user/customers**\
  Occurs when a user sends one or more customers to Mechanic
* **mechanic/user/draft\_order**\
  **mechanic/user/draft\_orders**\
  Occurs when a user sends one or more draft orders to Mechanic
* **mechanic/user/order**\
  **mechanic/user/orders**\
  Occurs when a user sends one or more orders to Mechanic
* **mechanic/user/variant**\
  **mechanic/user/variants**\
  Occurs when a user sends one or more product variants to Mechanic
* **mechanic/user/product**\
  **mechanic/user/products**\
  Occurs when a user sends one or more products to Mechanic

## Shopify

These events are generated by Shopify webhooks, and are automatically configured for you by Mechanic. Tasks subscribing to Shopify events receive [Liquid environment variables](https://learn.mechanic.dev/core/tasks/code/environment-variables), containing data from the webhook.

{% hint style="warning" %}
Mechanic does not support Shopify event topics that are scoped to an individual app. For example, Shopify only sends product\_listings/add events to the app responsible for the relevant sales channel, and only sends subscription\_contracts/create events to the app responsible for the relevant customer subscriptions. This scoping renders topics like these irrelevant for apps like Mechanic.
{% endhint %}

{% hint style="info" %}
For a description of each topic's behavior, see Shopify's documentation:

<https://shopify.dev/docs/api/webhooks>
{% endhint %}

* shopify/carts/create
* shopify/carts/update
* shopify/channels/delete
* shopify/checkout\_and\_accounts\_configurations/update
* shopify/checkouts/create
* shopify/checkouts/delete
* shopify/checkouts/update
* shopify/collections/create
* shopify/collections/delete
* shopify/collections/update
* shopify/companies/create
* shopify/companies/delete
* shopify/companies/update
* shopify/company\_contact\_roles/assign
* shopify/company\_contact\_roles/revoke
* shopify/company\_contacts/create
* shopify/company\_contacts/delete
* shopify/company\_contacts/update
* shopify/company\_locations/create
* shopify/company\_locations/delete
* shopify/company\_locations/update
* shopify/customer/joined\_segment
* shopify/customer/left\_segment
* shopify/customer/tags\_added
* shopify/customer/tags\_removed
* shopify/customer\_account\_settings/update
* shopify/customer\_groups/create
* shopify/customer\_groups/delete
* shopify/customer\_groups/update
* shopify/customers/create
* shopify/customers/delete
* shopify/customers/disable
* shopify/customers/enable
* shopify/customers/merge
* shopify/customers/purchasing\_summary
* shopify/customers/update
* shopify/customers\_email\_marketing\_consent/update
* shopify/customers\_marketing\_consent/update
* shopify/delivery\_promise\_settings/update
* shopify/discounts/create
* shopify/discounts/delete
* shopify/discounts/redeemcode\_added
* shopify/discounts/redeemcode\_removed
* shopify/discounts/update
* shopify/disputes/create
* shopify/disputes/update
* shopify/domains/create
* shopify/domains/destroy
* shopify/domains/update
* shopify/draft\_orders/create
* shopify/draft\_orders/delete
* shopify/draft\_orders/update
* shopify/finance\_app\_staff\_member/delete
* shopify/finance\_app\_staff\_member/grant
* shopify/finance\_app\_staff\_member/revoke
* shopify/finance\_app\_staff\_member/update
* shopify/finance\_kyc\_information/update
* shopify/fulfillment\_events/create
* shopify/fulfillment\_events/delete
* shopify/fulfillment\_holds/added
* shopify/fulfillment\_holds/released
* shopify/fulfillment\_orders/cancellation\_request\_accepted
* shopify/fulfillment\_orders/cancellation\_request\_rejected
* shopify/fulfillment\_orders/cancellation\_request\_submitted
* shopify/fulfillment\_orders/cancelled
* shopify/fulfillment\_orders/fulfillment\_request\_accepted
* shopify/fulfillment\_orders/fulfillment\_request\_rejected
* shopify/fulfillment\_orders/fulfillment\_request\_submitted
* shopify/fulfillment\_orders/fulfillment\_service\_failed\_to\_complete
* shopify/fulfillment\_orders/hold\_released
* shopify/fulfillment\_orders/line\_items\_prepared\_for\_local\_delivery
* shopify/fulfillment\_orders/line\_items\_prepared\_for\_pickup
* shopify/fulfillment\_orders/merged
* shopify/fulfillment\_orders/moved
* shopify/fulfillment\_orders/order\_routing\_complete
* shopify/fulfillment\_orders/placed\_on\_hold
* shopify/fulfillment\_orders/rescheduled
* shopify/fulfillment\_orders/scheduled\_fulfillment\_order\_ready
* shopify/fulfillment\_orders/split
* shopify/fulfillments/create
* shopify/fulfillments/update
* shopify/inventory\_items/create
* shopify/inventory\_items/delete
* shopify/inventory\_items/update
* shopify/inventory\_levels/connect
* shopify/inventory\_levels/disconnect
* shopify/inventory\_levels/update
* shopify/inventory\_shipments/add\_items
* shopify/inventory\_shipments/create
* shopify/inventory\_shipments/delete
* shopify/inventory\_shipments/mark\_in\_transit
* shopify/inventory\_shipments/receive\_items
* shopify/inventory\_shipments/remove\_items
* shopify/inventory\_shipments/update\_item\_quantities
* shopify/inventory\_shipments/update\_tracking
* shopify/inventory\_transfers/add\_items
* shopify/inventory\_transfers/cancel
* shopify/inventory\_transfers/complete
* shopify/inventory\_transfers/ready\_to\_ship
* shopify/inventory\_transfers/remove\_items
* shopify/inventory\_transfers/update\_item\_quantities
* shopify/locales/create
* shopify/locales/destroy
* shopify/locales/update
* shopify/locations/activate
* shopify/locations/create
* shopify/locations/deactivate
* shopify/locations/delete
* shopify/locations/update
* shopify/markets/create
* shopify/markets/delete
* shopify/markets/update
* shopify/markets\_backup\_region/update
* shopify/metafield\_definitions/create
* shopify/metafield\_definitions/delete
* shopify/metafield\_definitions/update
* shopify/order\_transactions/create
* shopify/orders/cancelled
* shopify/orders/create
* shopify/orders/delete
* shopify/orders/edited
* shopify/orders/fulfilled
* shopify/orders/link\_requested
* shopify/orders/paid
* shopify/orders/partially\_fulfilled
* shopify/orders/risk\_assessment\_changed
* shopify/orders/shopify\_protect\_eligibility\_changed
* shopify/orders/updated
* shopify/payment\_schedules/due
* shopify/payment\_terms/create
* shopify/payment\_terms/delete
* shopify/payment\_terms/update
* shopify/product\_feeds/create
* shopify/product\_feeds/full\_sync
* shopify/product\_feeds/full\_sync\_finish
* shopify/product\_feeds/incremental\_sync
* shopify/product\_feeds/update
* shopify/products/create
* shopify/products/delete
* shopify/products/update
* shopify/profiles/create
* shopify/profiles/delete
* shopify/profiles/update
* shopify/publications/delete
* shopify/refunds/create
* shopify/returns/approve
* shopify/returns/cancel
* shopify/returns/close
* shopify/returns/decline
* shopify/returns/process
* shopify/returns/reopen
* shopify/returns/request
* shopify/returns/update
* shopify/reverse\_deliveries/attach\_deliverable
* shopify/reverse\_fulfillment\_orders/dispose
* shopify/segments/create
* shopify/segments/delete
* shopify/segments/update
* shopify/shop/update
* shopify/tax\_partners/update
* shopify/tax\_summaries/create
* shopify/tender\_transactions/create
* shopify/themes/create
* shopify/themes/delete
* shopify/themes/publish
* shopify/themes/update
* shopify/variants/in\_stock
* shopify/variants/out\_of\_stock

## User

The User event domain is for custom, user-generated events, having any subject and verb (e.g. "user/foo/bar"). As with all events, a User event topic must use the standard three-part topic form, but only the "user/" prefix is mandatory.

Mechanic allows developers several ways to generate custom User events:

* The [Event action](https://learn.mechanic.dev/core/actions/event) can be used with any User event topic
* [Webhooks](https://learn.mechanic.dev/platform/webhooks) may be configured to generate events using any User event topic

## Third-party

### Appstle Subscriptions

* **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/success** — Occurs when billing for a subscription is successful.
* **appstle\_subscriptions/billings/failure** — Occurs when billing for a subscription fails.
* **appstle\_subscriptions/billings/interval\_change** — Occurs when billing for a subscription changes.

Learn more about the Appstle Subscriptions integration [here](https://learn.mechanic.dev/platform/integrations/appstle-subscriptions).

### Judge.me

* **judgeme/review/created** — Occurs when new Judge.me reviews are received. Requires enabling the Mechanic integration within Judge.me; see [Judge.me's integration announcement](https://blog.judge.me/blog/new-integration-mechanic-app).
* **judgeme/review/updated** — Occurs when Judge.me reviews are updated. Requires enabling the Mechanic integration within Judge.me; see [Judge.me's integration announcement](https://blog.judge.me/blog/new-integration-mechanic-app).

### Locksmith

* **locksmith/sessions/ping** — Occurs when a user gains access to a resource on an online store using [Locksmith](https://apps.shopify.com/locksmith?utm_source=mechanic\&utm_medium=learn-mechanic-dev). Learn more [here](#locksmith).

### Report Toaster

* **report\_toaster/reports/create** — Occurs when a Report Toaster report has been created and is available for download. Learn more [here](https://learn.mechanic.dev/platform/integrations/report-toaster#event-topics).
* **report\_toaster/reports/fail** — Occurs when a requested Report Toaster report has failed. Learn more [here](https://learn.mechanic.dev/platform/integrations/report-toaster#event-topics).

### Additional apps

Mechanic invites third-party app developers to develop Mechanic integrations, making it easy for developers to use our services together. If you're an app developer interested in this, email <team@usemechanic.com>.

{% hint style="info" %}
Third-party services can often be connected to Mechanic using [webhooks](https://learn.mechanic.dev/platform/webhooks).
{% endhint %}
