# Core Concepts

- [Events](https://learn.mechanic.dev/core/events.md): Events are triggers that start Mechanic tasks — Shopify webhooks, schedules, or custom sources.
- [How event topics work](https://learn.mechanic.dev/core/events/topics.md): Reference for Mechanic event topics — Shopify webhook events, scheduled events, user-triggered events, and custom event topics.
- [Parent and child events](https://learn.mechanic.dev/core/events/parent-and-child-events.md)
- [Tasks](https://learn.mechanic.dev/core/tasks.md): Tasks are the building blocks of Shopify automation in Mechanic — Liquid code that responds to events and performs actions like tagging, emailing, and syncing data.
- [Subscriptions](https://learn.mechanic.dev/core/tasks/subscriptions.md): Configure Mechanic task subscriptions to respond to Shopify webhooks, scheduled events, and custom triggers — with optional time delays.
- [Code](https://learn.mechanic.dev/core/tasks/code.md): Write task code in Mechanic's Liquid environment — render actions, logs, and errors in response to events.
- [Environment variables](https://learn.mechanic.dev/core/tasks/code/environment-variables.md)
- [Action objects](https://learn.mechanic.dev/core/tasks/code/action-objects.md)
- [Error objects](https://learn.mechanic.dev/core/tasks/code/error-objects.md)
- [Log objects](https://learn.mechanic.dev/core/tasks/code/log-objects.md)
- [Options](https://learn.mechanic.dev/core/tasks/options.md): Add user-facing configuration to your Mechanic tasks — input fields, validation flags, and custom option types.
- [Custom validation](https://learn.mechanic.dev/core/tasks/options/custom-validation.md)
- [Previews](https://learn.mechanic.dev/core/tasks/previews.md): Test Mechanic tasks safely before they run on real data — preview actions, request Shopify permissions, and define sample events.
- [Defining preview events](https://learn.mechanic.dev/core/tasks/previews/events.md)
- [Stub data](https://learn.mechanic.dev/core/tasks/previews/stub-data.md)
- [Shopify API version](https://learn.mechanic.dev/core/tasks/shopify-api-version.md)
- [Permissions](https://learn.mechanic.dev/core/tasks/permissions.md): How Mechanic determines Shopify API access scopes from your task code — automatic detection and explicit declarations.
- [Advanced settings](https://learn.mechanic.dev/core/tasks/advanced-settings.md): Per-task configuration beyond code and options — documentation, JavaScript, and action sequencing.
- [Documentation](https://learn.mechanic.dev/core/tasks/advanced-settings/documentation.md)
- [JavaScript](https://learn.mechanic.dev/core/tasks/advanced-settings/javascript.md)
- [Perform action runs in sequence](https://learn.mechanic.dev/core/tasks/advanced-settings/perform-action-runs-in-sequence.md)
- [Import and export](https://learn.mechanic.dev/core/tasks/import-and-export.md): Share and back up Mechanic tasks as JSON — import individually or in bulk, and contribute to the task library.
- [User Form](https://learn.mechanic.dev/core/tasks/user-form.md): Create custom input forms for manually-triggered Mechanic tasks — collect user input and pass it to your task code.
- [Actions](https://learn.mechanic.dev/core/actions.md): Actions are how Mechanic tasks make changes — Shopify mutations, emails, HTTP requests, file generation, and more.
- [Cache](https://learn.mechanic.dev/core/actions/cache.md)
- [Echo](https://learn.mechanic.dev/core/actions/echo.md)
- [Email](https://learn.mechanic.dev/core/actions/email.md): Send automated transactional emails from Shopify using Mechanic — HTML templates, attachments, and custom sender domains.
- [Event](https://learn.mechanic.dev/core/actions/event.md)
- [Files](https://learn.mechanic.dev/core/actions/files.md)
- [FTP](https://learn.mechanic.dev/core/actions/ftp.md): Upload and download files via FTP, FTPS, or SFTP.
- [HTTP](https://learn.mechanic.dev/core/actions/http.md): Make HTTP requests from Mechanic tasks to call external APIs, send webhooks, and integrate Shopify with third-party services.
- [Shopify](https://learn.mechanic.dev/core/actions/shopify.md): Run Shopify GraphQL mutations from Mechanic tasks — create orders, update products, manage customers, and more via the Shopify action.
- [Integrations](https://learn.mechanic.dev/core/actions/integrations.md): Connect Mechanic tasks to third-party services — Airtable, Google Sheets, Slack, Shopify Flow, and more.
- [Airtable](https://learn.mechanic.dev/core/actions/integrations/airtable.md)
- [Flow](https://learn.mechanic.dev/core/actions/integrations/flow.md)
- [Google](https://learn.mechanic.dev/core/actions/integrations/google.md)
- [Google Drive](https://learn.mechanic.dev/core/actions/integrations/google-drive.md)
- [Google Sheets](https://learn.mechanic.dev/core/actions/integrations/google-sheets.md)
- [Report Toaster](https://learn.mechanic.dev/core/actions/integrations/report-toaster.md)
- [Slack](https://learn.mechanic.dev/core/actions/integrations/slack.md)
- [File generators](https://learn.mechanic.dev/core/actions/file-generators.md): Generate files from Mechanic tasks — PDF, CSV, ZIP, plaintext, and base64 formats for attachments and downloads.
- [Base64](https://learn.mechanic.dev/core/actions/file-generators/base64.md)
- [PDF](https://learn.mechanic.dev/core/actions/file-generators/pdf.md): Generate PDF files from HTML in Mechanic tasks — invoices, packing slips, receipts, and reports with modern CSS and web fonts.
- [Plaintext](https://learn.mechanic.dev/core/actions/file-generators/plaintext.md)
- [URL](https://learn.mechanic.dev/core/actions/file-generators/url.md)
- [ZIP](https://learn.mechanic.dev/core/actions/file-generators/zip.md)
- [Runs](https://learn.mechanic.dev/core/runs.md): Mechanic processes Shopify automations as runs — event runs, task runs, and action runs move through queues for reliable execution.
- [Scheduling](https://learn.mechanic.dev/core/runs/scheduling.md)
- [Concurrency](https://learn.mechanic.dev/core/runs/concurrency.md)
- [Ordering](https://learn.mechanic.dev/core/runs/ordering.md)
- [Retries](https://learn.mechanic.dev/core/runs/retries.md)
- [Reading and Writing to Shopify](https://learn.mechanic.dev/core/shopify.md): How Mechanic Shopify automation tasks read and write store data — inline GraphQL queries for reads, and Shopify actions for mutations.
- [Responding to events](https://learn.mechanic.dev/core/shopify/events.md): Respond to Shopify webhooks in Mechanic — subscribe to store activity and handle changes to orders, products, customers, and more.
- [Reconciling missing events](https://learn.mechanic.dev/core/shopify/events/reconciling-missing-events.md)
- [Reading data](https://learn.mechanic.dev/core/shopify/read.md): Read Shopify store data in Mechanic tasks — GraphQL queries and the shopify Liquid filter.
- [Liquid objects](https://learn.mechanic.dev/core/shopify/read/liquid-objects.md)
- [GraphQL in Liquid](https://learn.mechanic.dev/core/shopify/read/graphql-in-liquid.md): Query the Shopify GraphQL Admin API directly in Liquid using Mechanic's shopify filter — read orders, products, customers, and more inline during task execution.
- [The Shopify action](https://learn.mechanic.dev/core/shopify/read/the-shopify-action.md)
- [Writing data](https://learn.mechanic.dev/core/shopify/write.md)
- [Bulk operations](https://learn.mechanic.dev/core/shopify/bulk-operations.md)
- [Shopify admin action links](https://learn.mechanic.dev/core/shopify/admin-action-links.md): Use these access points within the Shopify admin to send resources like orders and customers to Mechanic for processing.
- [API rate limit](https://learn.mechanic.dev/core/shopify/api-rate-limit.md)
- [API versions](https://learn.mechanic.dev/core/shopify/api-versions.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/core.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.
