Comment on page
Event topics
A complete index
Mechanic supports a variety of event topics, each a classification of an event. Each task can signal its interest in specific topics by using subscriptions.
This page is a complete index of pre-defined topics, organized by the event topic's domain.
- 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.
- 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 [email protected].)
- mechanic/errors/actionOccurs when an action fails.
- mechanic/errors/event Occurs when an event run fails.
- mechanic/errors/task Occurs when a task run fails.
- 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.
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.
Not to be confused with events in the User domain, the mechanic/user event subject describes ways that the user expresses their intent – to Mechanic – to run the task. 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
.
The following mechanic/user topics are typically used with 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
These events are generated by Shopify webhooks, and are automatically configured for you by Mechanic. Tasks subscribing to Shopify events receive Liquid environment variables, containing data from the webhook.
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.
For a description of each topic's behavior, see Shopify's documentation:
Note that all topics are represented in the WebhookSubscriptionTopic enum documentation, but not all topics are covered in the REST resource documentation.
- shopify/carts/create
- shopify/carts/update
- shopify/channels/delete
- 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/tags_added
- shopify/customer/tags_removed
- 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/update
- shopify/customers_email_marketing_consent/update
- shopify/customers_marketing_consent/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/fulfillment_events/create
- shopify/fulfillment_events/delete
- 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/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/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/locales/create
- 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/order_transactions/create
- shopify/orders/cancelled
- shopify/orders/create
- shopify/orders/delete
- shopify/orders/edited
- shopify/orders/fulfilled
- shopify/orders/paid
- shopify/orders/partially_fulfilled
- 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/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/reopen
- shopify/returns/request
- 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/tender_transactions/create
- shopify/themes/create
- shopify/themes/delete
- shopify/themes/publish
- shopify/themes/update
- shopify/variants/in_stock
- shopify/variants/out_of_stock
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:
- 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/create — Occurs when billing for a subscription is created.
- appstle_subscriptions/billings/failure — Occurs when billing for a subscription fails.
- appstle_subscriptions/billings/interval_change — Occurs when billing for a subscription changes.
- 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.
- judgeme/review/updated — Occurs when Judge.me reviews are updated. Requires enabling the Mechanic integration within Judge.me; see Judge.me's integration announcement.
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 [email protected].
Last modified 1mo ago