{"version":1,"pages":[{"id":"-MXYcOwV8BTdtxYIfST9","title":"Introduction","pathname":"/","siteSpaceId":"sitesp_q2azU","emoji":"26e9","description":"Mechanic is a Shopify automation platform — hundreds of ready-to-use tasks plus a Liquid development environment for custom workflows."},{"id":"7OYsKEdX2riryFpbvpJN","title":"Getting started","pathname":"/getting-started","siteSpaceId":"sitesp_q2azU","emoji":"1f680","description":"Install Mechanic and set up your first Shopify automation in minutes."},{"id":"LNkZGL60GjHublYJ8n27","title":"Hire a Mechanic Partner","pathname":"/hire-a-developer","siteSpaceId":"sitesp_q2azU","emoji":"1f913","description":"Find a Shopify automation developer to build or customize Mechanic tasks — browse Mechanic Partners or bring your own developer."},{"id":"-MXYcOtvhPpCQdQ5wXaq","title":"I need something custom!","pathname":"/custom","siteSpaceId":"sitesp_q2azU","emoji":"1f64b","description":"Build custom Shopify automations with Mechanic using Liquid, GraphQL, and HTTP — or hire a developer to build one for you."},{"id":"BGa0x0hfqr0bX2BGmwNN","title":"Get help with a custom task","pathname":"/custom-help","siteSpaceId":"sitesp_q2azU","emoji":"1f9d1-1f4bb","description":"Get help with your custom Mechanic task — community Slack, developer hiring, and partner matchmaking."},{"id":"LaxFkg5x3qNRzvLQd70u","title":"Using AI with Mechanic","pathname":"/ai","siteSpaceId":"sitesp_q2azU","emoji":"1f916","description":"Use AI tools to write and debug Shopify automation tasks in Mechanic — MCP server, Agent Skills, Sidekick, and ChatGPT."},{"id":"I3NmIn42e5GCCfeQyNWw","title":"Contact support","pathname":"/support","siteSpaceId":"sitesp_q2azU","emoji":"2753","description":"Get help with Mechanic — contact support, ask our AI assistant, join Slack, or hire a developer."},{"id":"-MXYcOtyokSyMiH3sPhw","title":"Task library","pathname":"/resources/task-library","siteSpaceId":"sitesp_q2azU","emoji":"1f9d1-1f4bb","description":"Browse and install hundreds of pre-built Mechanic tasks for common Shopify automation workflows.","breadcrumbs":[{"label":"Resources"}]},{"id":"-MXYcOtznLF9TvVehtvM","title":"Contributing","pathname":"/resources/task-library/contributing","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Resources"},{"label":"Task library","emoji":"1f9d1-1f4bb"}]},{"id":"-MkbzkrjMlo352zshHEs","title":"Requesting","pathname":"/resources/task-library/requesting","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Resources"},{"label":"Task library","emoji":"1f9d1-1f4bb"}]},{"id":"JhMUyuhuEmXalaxlEnrp","title":"Custom webhook imports","pathname":"/resources/task-library/custom-webhook-imports","siteSpaceId":"sitesp_q2azU","description":"Import files for library tasks that use custom Shopify webhooks","breadcrumbs":[{"label":"Resources"},{"label":"Task library","emoji":"1f9d1-1f4bb"}]},{"id":"otgaMt8GKGi4nJuAlLxQ","title":"Mechanic MCP Server","pathname":"/resources/mcp","siteSpaceId":"sitesp_q2azU","emoji":"1f916","description":"Connect your AI coding tool to Mechanic's task library and documentation.","breadcrumbs":[{"label":"Resources"}]},{"id":"63V7UmJxZFzAgNtKO1Dv","title":"Mechanic Agent Skills","pathname":"/resources/agent-skills","siteSpaceId":"sitesp_q2azU","emoji":"1f916","description":"Install Mechanic task-writing expertise into your AI coding tool.","breadcrumbs":[{"label":"Resources"}]},{"id":"-MXYcOu-4ikMGHgKCn1P","title":"Slack community","pathname":"/resources/slack","siteSpaceId":"sitesp_q2azU","emoji":"1f680","description":"Join the Mechanic Slack community to ask questions, share solutions, and connect with other developers and merchants.","breadcrumbs":[{"label":"Resources"}]},{"id":"-MXYcOu0hoEEGogCRhNl","title":"Tutorials","pathname":"/resources/tutorials","siteSpaceId":"sitesp_q2azU","emoji":"1f9e0","description":"Step-by-step guides for building Mechanic tasks — from your first automation to advanced patterns.","breadcrumbs":[{"label":"Resources"}]},{"id":"-MXYcOu5rtuSXTJnCIXu","title":"Video walkthroughs","pathname":"/resources/tutorials/video-walkthroughs","siteSpaceId":"sitesp_q2azU","description":"Video tutorials for common Mechanic tasks — auto-tagging, inventory sync, email automation, and more.","breadcrumbs":[{"label":"Resources"},{"label":"Tutorials","emoji":"1f9e0"}]},{"id":"-MXYcOu6Di4sR7v5j6WW","title":"Auto-tag orders by originating staff member","pathname":"/resources/tutorials/video-walkthroughs/auto-tag-orders-by-originating-staff-member","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Resources"},{"label":"Tutorials","emoji":"1f9e0"},{"label":"Video walkthroughs"}]},{"id":"-MXYcOu7sn0iS-rsYjVl","title":"Maintain a tag for orders processed today","pathname":"/resources/tutorials/video-walkthroughs/maintain-a-tag-for-orders-processed-today","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Resources"},{"label":"Tutorials","emoji":"1f9e0"},{"label":"Video walkthroughs"}]},{"id":"-MXYcOu8klnAt9pCPEse","title":"Auto-tag orders with their tracking numbers","pathname":"/resources/tutorials/video-walkthroughs/auto-tag-orders-with-their-tracking-numbers","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Resources"},{"label":"Tutorials","emoji":"1f9e0"},{"label":"Video walkthroughs"}]},{"id":"-MXYcOu9MiYsHIN_ytGD","title":"Sync inventory for shared SKUs","pathname":"/resources/tutorials/video-walkthroughs/sync-inventory-for-shared-skus","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Resources"},{"label":"Tutorials","emoji":"1f9e0"},{"label":"Video walkthroughs"}]},{"id":"-MXYcOuAamBUSo0yu5T_","title":"Auto-tag products when their SKU(s) change","pathname":"/resources/tutorials/video-walkthroughs/auto-tag-products-when-their-sku-s-change","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Resources"},{"label":"Tutorials","emoji":"1f9e0"},{"label":"Video walkthroughs"}]},{"id":"-MXYcOuBjfVnShFc6I8R","title":"Auto-publish new products","pathname":"/resources/tutorials/video-walkthroughs/auto-publish-new-products","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Resources"},{"label":"Tutorials","emoji":"1f9e0"},{"label":"Video walkthroughs"}]},{"id":"-MXYcOuCZvDJdNG__gUO","title":"Email a report of customers who haven't ordered in X days","pathname":"/resources/tutorials/video-walkthroughs/email-a-report-of-customers-who-havent-ordered-in-x-days","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Resources"},{"label":"Tutorials","emoji":"1f9e0"},{"label":"Video walkthroughs"}]},{"id":"-MXYcOuDGpoagvquAacx","title":"Upgrading a Mechanic task: Adding a time delay","pathname":"/resources/tutorials/video-walkthroughs/upgrading-a-mechanic-task-adding-a-time-delay","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Resources"},{"label":"Tutorials","emoji":"1f9e0"},{"label":"Video walkthroughs"}]},{"id":"-MXYcOuEnSQGqsN_lETg","title":"Email the customer when tracking numbers are added to their order","pathname":"/resources/tutorials/video-walkthroughs/email-the-customer-when-tracking-numbers-are-added-to-their-order","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Resources"},{"label":"Tutorials","emoji":"1f9e0"},{"label":"Video walkthroughs"}]},{"id":"-MXYcOuFBJIL_lCETgKi","title":"Adding an optional time delay to your Mechanic task","pathname":"/resources/tutorials/video-walkthroughs/adding-an-optional-time-delay-to-your-mechanic-task","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Resources"},{"label":"Tutorials","emoji":"1f9e0"},{"label":"Video walkthroughs"}]},{"id":"-MXYcOuGq7xHBNZYdZYu","title":"Delete all orders","pathname":"/resources/tutorials/video-walkthroughs/delete-all-orders","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Resources"},{"label":"Tutorials","emoji":"1f9e0"},{"label":"Video walkthroughs"}]},{"id":"-MXYcOuHktktChQIEVtO","title":"Send an email when a specific product is shipped","pathname":"/resources/tutorials/video-walkthroughs/send-an-email-when-a-specific-product-is-shipped","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Resources"},{"label":"Tutorials","emoji":"1f9e0"},{"label":"Video walkthroughs"}]},{"id":"-MXYcOuISBd3IjuCtKOU","title":"Send recurring reminders about unpaid orders","pathname":"/resources/tutorials/video-walkthroughs/send-recurring-reminders-about-unpaid-orders","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Resources"},{"label":"Tutorials","emoji":"1f9e0"},{"label":"Video walkthroughs"}]},{"id":"-MXYcOuJ7NTbx3JtRHN_","title":"Send an email when a product's price goes below its cost","pathname":"/resources/tutorials/video-walkthroughs/send-an-email-when-a-products-price-goes-below-its-cost","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Resources"},{"label":"Tutorials","emoji":"1f9e0"},{"label":"Video walkthroughs"}]},{"id":"-MXYcOuKXDDlBOBiBZ-a","title":"Auto-tag customers by sales channel","pathname":"/resources/tutorials/video-walkthroughs/auto-tag-customers-by-sales-channel","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Resources"},{"label":"Tutorials","emoji":"1f9e0"},{"label":"Video walkthroughs"}]},{"id":"-MXYcOuLOvUwpgUqXzr2","title":"Creating products in bulk","pathname":"/resources/tutorials/video-walkthroughs/creating-products-in-bulk","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Resources"},{"label":"Tutorials","emoji":"1f9e0"},{"label":"Video walkthroughs"}]},{"id":"82vgebEUyBbnFlmP4DiH","title":"Your first custom task","pathname":"/resources/tutorials/your-first-custom-task","siteSpaceId":"sitesp_q2azU","description":"Build your first Mechanic task from scratch — a step-by-step tutorial for auto-tagging high-value Shopify orders.","breadcrumbs":[{"label":"Resources"},{"label":"Tutorials","emoji":"1f9e0"}]},{"id":"-MYXXQEQ4H_t5DxcO3-a","title":"Creating a Mechanic webhook","pathname":"/resources/tutorials/creating-a-mechanic-webhook","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Resources"},{"label":"Tutorials","emoji":"1f9e0"}]},{"id":"-MYXerElUHmN6G0am5Zt","title":"Practicing writing tasks","pathname":"/resources/tutorials/practicing-writing-tasks","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Resources"},{"label":"Tutorials","emoji":"1f9e0"}]},{"id":"-MXYcOu1VMkh5oWLzOB0","title":"Triggering tasks from a contact form","pathname":"/resources/tutorials/triggering-tasks-from-a-contact-form","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Resources"},{"label":"Tutorials","emoji":"1f9e0"}]},{"id":"1PKPqMedToidvfnqfk4t","title":"Creating scheduled CSV feeds","pathname":"/resources/tutorials/creating-scheduled-csv-feeds","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Resources"},{"label":"Tutorials","emoji":"1f9e0"}]},{"id":"7YDpu7KwN4kmBCH9NP4b","title":"Running bulk operation mutations","pathname":"/resources/tutorials/bulk-operation-mutations","siteSpaceId":"sitesp_q2azU","description":"Run Shopify bulk operation mutations from a Mechanic task using staged JSONL uploads.","breadcrumbs":[{"label":"Resources"},{"label":"Tutorials","emoji":"1f9e0"}]},{"id":"KJTnLdTSCsU0KcMM5nPb","title":"Fetching data from a shared Google sheet","pathname":"/resources/tutorials/fetching-data-from-a-shared-google-sheet","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Resources"},{"label":"Tutorials","emoji":"1f9e0"}]},{"id":"g4Nm7K2Bt24PeU6hwkcx","title":"Query analytics data with ShopifyQL","pathname":"/resources/tutorials/query-analytics-data-with-shopifyql","siteSpaceId":"sitesp_q2azU","description":"Analytics is a powerful reporting tool available to all merchants on Shopify. Mechanic can utilize the same ShopifyQL queries that generate those reports.","breadcrumbs":[{"label":"Resources"},{"label":"Tutorials","emoji":"1f9e0"}]},{"id":"xRjdCT9Tl4fdp2PEnZtA","title":"Converting tasks from Shopify REST to GraphQL","pathname":"/resources/converting-tasks-from-shopify-rest-to-graphql","siteSpaceId":"sitesp_q2azU","emoji":"1f3c6","description":"Step-by-step guides for migrating Mechanic tasks from Shopify's deprecated REST API to GraphQL.","breadcrumbs":[{"label":"Resources"}]},{"id":"av6A5uthV24DS7YoIhmz","title":"Conversion: Single resource lookups","pathname":"/resources/converting-tasks-from-shopify-rest-to-graphql/conversion-single-resource-lookups","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Resources"},{"label":"Converting tasks from Shopify REST to GraphQL","emoji":"1f3c6"}]},{"id":"yONETFwZgSKo0CjkPHT9","title":"Conversion: Resource loops to paginated queries","pathname":"/resources/converting-tasks-from-shopify-rest-to-graphql/conversion-resource-loops-to-paginated-queries","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Resources"},{"label":"Converting tasks from Shopify REST to GraphQL","emoji":"1f3c6"}]},{"id":"7xrtpJItXAQUY7An2Xzl","title":"Conversion: Connections from a resource","pathname":"/resources/converting-tasks-from-shopify-rest-to-graphql/conversion-connections-from-a-resource","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Resources"},{"label":"Converting tasks from Shopify REST to GraphQL","emoji":"1f3c6"}]},{"id":"Dr2k9CanM40S2Us6rzA0","title":"Conversion: Metafield lookups from a resource","pathname":"/resources/converting-tasks-from-shopify-rest-to-graphql/conversion-metafield-lookups-from-a-resource","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Resources"},{"label":"Converting tasks from Shopify REST to GraphQL","emoji":"1f3c6"}]},{"id":"Ah8EUSWLCVUFmtkCCzNp","title":"Conversion: Resource lookups in task option fields","pathname":"/resources/converting-tasks-from-shopify-rest-to-graphql/conversion-resource-lookups-in-task-option-fields","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Resources"},{"label":"Converting tasks from Shopify REST to GraphQL","emoji":"1f3c6"}]},{"id":"-MXYcOuOx2xN39lJq2B4","title":"Events","pathname":"/core/events","siteSpaceId":"sitesp_q2azU","description":"Events are triggers that start Mechanic tasks — Shopify webhooks, schedules, or custom sources.","breadcrumbs":[{"label":"Core Concepts"}]},{"id":"-MXYcOuPwxRKpcQD5Hp6","title":"How event topics work","pathname":"/core/events/topics","siteSpaceId":"sitesp_q2azU","description":"Reference for Mechanic event topics — Shopify webhook events, scheduled events, user-triggered events, and custom event topics.","breadcrumbs":[{"label":"Core Concepts"},{"label":"Events"}]},{"id":"-MXYcOuUe1xrqmlp_WC1","title":"Parent and child events","pathname":"/core/events/parent-and-child-events","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Core Concepts"},{"label":"Events"}]},{"id":"-MXYcOuVwmdxiGqKBihK","title":"Tasks","pathname":"/core/tasks","siteSpaceId":"sitesp_q2azU","description":"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.","breadcrumbs":[{"label":"Core Concepts"}]},{"id":"-MXYcOuWrrzwT79ljmFy","title":"Subscriptions","pathname":"/core/tasks/subscriptions","siteSpaceId":"sitesp_q2azU","description":"Configure Mechanic task subscriptions to respond to Shopify webhooks, scheduled events, and custom triggers — with optional time delays.","breadcrumbs":[{"label":"Core Concepts"},{"label":"Tasks"}]},{"id":"-MXYcOuXBBgb1C8iEXjt","title":"Code","pathname":"/core/tasks/code","siteSpaceId":"sitesp_q2azU","description":"Write task code in Mechanic's Liquid environment — render actions, logs, and errors in response to events.","breadcrumbs":[{"label":"Core Concepts"},{"label":"Tasks"}]},{"id":"-MXYcOuYw7_5GrOLS8LW","title":"Environment variables","pathname":"/core/tasks/code/environment-variables","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Core Concepts"},{"label":"Tasks"},{"label":"Code"}]},{"id":"-MXYcOuZIdrX8kJjNUFk","title":"Action objects","pathname":"/core/tasks/code/action-objects","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Core Concepts"},{"label":"Tasks"},{"label":"Code"}]},{"id":"-MXYcOu_rXgw2_I1IIsW","title":"Error objects","pathname":"/core/tasks/code/error-objects","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Core Concepts"},{"label":"Tasks"},{"label":"Code"}]},{"id":"-MXYcOua1H23rjEmu-6F","title":"Log objects","pathname":"/core/tasks/code/log-objects","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Core Concepts"},{"label":"Tasks"},{"label":"Code"}]},{"id":"-MXYcOubIRslzj-bDb8G","title":"Options","pathname":"/core/tasks/options","siteSpaceId":"sitesp_q2azU","description":"Add user-facing configuration to your Mechanic tasks — input fields, validation flags, and custom option types.","breadcrumbs":[{"label":"Core Concepts"},{"label":"Tasks"}]},{"id":"-MXYcOuc6ArjQkalN2ra","title":"Custom validation","pathname":"/core/tasks/options/custom-validation","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Core Concepts"},{"label":"Tasks"},{"label":"Options"}]},{"id":"-MXYcOudphQw4Ny33gPt","title":"Previews","pathname":"/core/tasks/previews","siteSpaceId":"sitesp_q2azU","description":"Test Mechanic tasks safely before they run on real data — preview actions, request Shopify permissions, and define sample events.","breadcrumbs":[{"label":"Core Concepts"},{"label":"Tasks"}]},{"id":"9gfkITh23r65DFLdgWiI","title":"Defining preview events","pathname":"/core/tasks/previews/events","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Core Concepts"},{"label":"Tasks"},{"label":"Previews"}]},{"id":"-MXYcOuew5cI-5NgbMTd","title":"Stub data","pathname":"/core/tasks/previews/stub-data","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Core Concepts"},{"label":"Tasks"},{"label":"Previews"}]},{"id":"-MXYcOufZYeFrCK1-jtF","title":"Shopify API version","pathname":"/core/tasks/shopify-api-version","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Core Concepts"},{"label":"Tasks"}]},{"id":"vUUMF3MzV9HY1SZVSxJz","title":"Permissions","pathname":"/core/tasks/permissions","siteSpaceId":"sitesp_q2azU","description":"How Mechanic determines Shopify API access scopes from your task code — automatic detection and explicit declarations.","breadcrumbs":[{"label":"Core Concepts"},{"label":"Tasks"}]},{"id":"-MXYcOugoGZLLMjMrtae","title":"Advanced settings","pathname":"/core/tasks/advanced-settings","siteSpaceId":"sitesp_q2azU","description":"Per-task configuration beyond code and options — documentation, JavaScript, and action sequencing.","breadcrumbs":[{"label":"Core Concepts"},{"label":"Tasks"}]},{"id":"-MXYcOuh3o_AqTafgfGN","title":"Documentation","pathname":"/core/tasks/advanced-settings/documentation","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Core Concepts"},{"label":"Tasks"},{"label":"Advanced settings"}]},{"id":"-MXYcOuilx6ePURuHRm2","title":"JavaScript","pathname":"/core/tasks/advanced-settings/javascript","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Core Concepts"},{"label":"Tasks"},{"label":"Advanced settings"}]},{"id":"-MXYcOujIzDO87xIA8wk","title":"Perform action runs in sequence","pathname":"/core/tasks/advanced-settings/perform-action-runs-in-sequence","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Core Concepts"},{"label":"Tasks"},{"label":"Advanced settings"}]},{"id":"-MXYcOukMVi_3zdwF74l","title":"Import and export","pathname":"/core/tasks/import-and-export","siteSpaceId":"sitesp_q2azU","description":"Share and back up Mechanic tasks as JSON — import individually or in bulk, and contribute to the task library.","breadcrumbs":[{"label":"Core Concepts"},{"label":"Tasks"}]},{"id":"WmWsGFqSsSuhvJ6vV8Je","title":"User Form","pathname":"/core/tasks/user-form","siteSpaceId":"sitesp_q2azU","description":"Create custom input forms for manually-triggered Mechanic tasks — collect user input and pass it to your task code.","breadcrumbs":[{"label":"Core Concepts"},{"label":"Tasks"}]},{"id":"-MXYcOulF4erjwdpdNPW","title":"Actions","pathname":"/core/actions","siteSpaceId":"sitesp_q2azU","description":"Actions are how Mechanic tasks make changes — Shopify mutations, emails, HTTP requests, file generation, and more.","breadcrumbs":[{"label":"Core Concepts"}]},{"id":"-MXYcOuncVRcOk5N41xq","title":"Cache","pathname":"/core/actions/cache","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Core Concepts"},{"label":"Actions"}]},{"id":"-MXYcOuowdK8gWNJ8u5C","title":"Echo","pathname":"/core/actions/echo","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Core Concepts"},{"label":"Actions"}]},{"id":"-MXYcOupJinu5QKAATjy","title":"Email","pathname":"/core/actions/email","siteSpaceId":"sitesp_q2azU","description":"Send automated transactional emails from Shopify using Mechanic — HTML templates, attachments, and custom sender domains.","breadcrumbs":[{"label":"Core Concepts"},{"label":"Actions"}]},{"id":"-MXYcOuq--A61HLowz6I","title":"Event","pathname":"/core/actions/event","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Core Concepts"},{"label":"Actions"}]},{"id":"-MXYcOur9Z-oTm7q0XIx","title":"Files","pathname":"/core/actions/files","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Core Concepts"},{"label":"Actions"}]},{"id":"-MXYcOusGqSqBR7DjsJo","title":"FTP","pathname":"/core/actions/ftp","siteSpaceId":"sitesp_q2azU","description":"Upload and download files via FTP, FTPS, or SFTP.","breadcrumbs":[{"label":"Core Concepts"},{"label":"Actions"}]},{"id":"-MXYcOutS_tKXHca0U3Z","title":"HTTP","pathname":"/core/actions/http","siteSpaceId":"sitesp_q2azU","description":"Make HTTP requests from Mechanic tasks to call external APIs, send webhooks, and integrate Shopify with third-party services.","breadcrumbs":[{"label":"Core Concepts"},{"label":"Actions"}]},{"id":"FjOlRFdaVB27u6pmYj15","title":"Shopify","pathname":"/core/actions/shopify","siteSpaceId":"sitesp_q2azU","description":"Run Shopify GraphQL mutations from Mechanic tasks — create orders, update products, manage customers, and more via the Shopify action.","breadcrumbs":[{"label":"Core Concepts"},{"label":"Actions"}]},{"id":"-MXYcOv7meE_izJFYtJL","title":"Integrations","pathname":"/core/actions/integrations","siteSpaceId":"sitesp_q2azU","description":"Connect Mechanic tasks to third-party services — Airtable, Google Sheets, Slack, Shopify Flow, and more.","breadcrumbs":[{"label":"Core Concepts"},{"label":"Actions"}]},{"id":"9nQ9JmJ1WnLmLLmbjFLM","title":"Airtable","pathname":"/core/actions/integrations/airtable","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Core Concepts"},{"label":"Actions"},{"label":"Integrations"}]},{"id":"QeOec9CvWhEGBG4Bx6tN","title":"Flow","pathname":"/core/actions/integrations/flow","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Core Concepts"},{"label":"Actions"},{"label":"Integrations"}]},{"id":"xznPSKzLcOE3wSX3aIXE","title":"Google","pathname":"/core/actions/integrations/google","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Core Concepts"},{"label":"Actions"},{"label":"Integrations"}]},{"id":"86rYZyTXNJzRfexK2wKs","title":"Google Drive","pathname":"/core/actions/integrations/google-drive","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Core Concepts"},{"label":"Actions"},{"label":"Integrations"}]},{"id":"C3l0hlStJnqvTcdCIhLw","title":"Google Sheets","pathname":"/core/actions/integrations/google-sheets","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Core Concepts"},{"label":"Actions"},{"label":"Integrations"}]},{"id":"7JCZo59UrwX2XdxlXFQt","title":"Report Toaster","pathname":"/core/actions/integrations/report-toaster","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Core Concepts"},{"label":"Actions"},{"label":"Integrations"}]},{"id":"fuNBEwFP5b5BJxqeQjem","title":"Slack","pathname":"/core/actions/integrations/slack","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Core Concepts"},{"label":"Actions"},{"label":"Integrations"}]},{"id":"-MXYcOuvq9zSw-QKgyRF","title":"File generators","pathname":"/core/actions/file-generators","siteSpaceId":"sitesp_q2azU","description":"Generate files from Mechanic tasks — PDF, CSV, ZIP, plaintext, and base64 formats for attachments and downloads.","breadcrumbs":[{"label":"Core Concepts"},{"label":"Actions"}]},{"id":"-MXYcOuwyQo-EfvgJMXG","title":"Base64","pathname":"/core/actions/file-generators/base64","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Core Concepts"},{"label":"Actions"},{"label":"File generators"}]},{"id":"-MXYcOuxxaGw4Y1crpoz","title":"PDF","pathname":"/core/actions/file-generators/pdf","siteSpaceId":"sitesp_q2azU","description":"Generate PDF files from HTML in Mechanic tasks — invoices, packing slips, receipts, and reports with modern CSS and web fonts.","breadcrumbs":[{"label":"Core Concepts"},{"label":"Actions"},{"label":"File generators"}]},{"id":"-MXYcOuySeI0bqsMwUtb","title":"Plaintext","pathname":"/core/actions/file-generators/plaintext","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Core Concepts"},{"label":"Actions"},{"label":"File generators"}]},{"id":"-MXYcOuzpm_HhwFBWqNl","title":"URL","pathname":"/core/actions/file-generators/url","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Core Concepts"},{"label":"Actions"},{"label":"File generators"}]},{"id":"-MXYcOv-VRiF2o32rpxA","title":"ZIP","pathname":"/core/actions/file-generators/zip","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Core Concepts"},{"label":"Actions"},{"label":"File generators"}]},{"id":"-MXYcOv0DCmfT9qBaSyW","title":"Runs","pathname":"/core/runs","siteSpaceId":"sitesp_q2azU","description":"Mechanic processes Shopify automations as runs — event runs, task runs, and action runs move through queues for reliable execution.","breadcrumbs":[{"label":"Core Concepts"}]},{"id":"-MXYcOv1ihNU4xMDQjzf","title":"Scheduling","pathname":"/core/runs/scheduling","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Core Concepts"},{"label":"Runs"}]},{"id":"-MXYcOv2uO4ZbxYElC5Y","title":"Concurrency","pathname":"/core/runs/concurrency","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Core Concepts"},{"label":"Runs"}]},{"id":"-MXYcOv3oqSOCk4ODmtM","title":"Ordering","pathname":"/core/runs/ordering","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Core Concepts"},{"label":"Runs"}]},{"id":"-MXYcOv4VrYFDjl681qT","title":"Retries","pathname":"/core/runs/retries","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Core Concepts"},{"label":"Runs"}]},{"id":"-MXYcOv6Og_lmHIymAu_","title":"Reading and Writing to Shopify","pathname":"/core/shopify","siteSpaceId":"sitesp_q2azU","description":"How Mechanic Shopify automation tasks read and write store data — inline GraphQL queries for reads, and Shopify actions for mutations.","breadcrumbs":[{"label":"Core Concepts"}]},{"id":"-MZp_gjYpsvjODZFJW24","title":"Responding to events","pathname":"/core/shopify/events","siteSpaceId":"sitesp_q2azU","description":"Respond to Shopify webhooks in Mechanic — subscribe to store activity and handle changes to orders, products, customers, and more.","breadcrumbs":[{"label":"Core Concepts"},{"label":"Reading and Writing to Shopify"}]},{"id":"-MkiRc11D_enZMxk-dC3","title":"Reconciling missing events","pathname":"/core/shopify/events/reconciling-missing-events","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Core Concepts"},{"label":"Reading and Writing to Shopify"},{"label":"Responding to events"}]},{"id":"-MYWMfq_la1qA8lRbor9","title":"Reading data","pathname":"/core/shopify/read","siteSpaceId":"sitesp_q2azU","description":"Read Shopify store data in Mechanic tasks — GraphQL queries and the shopify Liquid filter.","breadcrumbs":[{"label":"Core Concepts"},{"label":"Reading and Writing to Shopify"}]},{"id":"-MZpcAcQS4-LlG4o6HGi","title":"Liquid objects","pathname":"/core/shopify/read/liquid-objects","siteSpaceId":"sitesp_q2azU","emoji":"26a0","description":"","breadcrumbs":[{"label":"Core Concepts"},{"label":"Reading and Writing to Shopify"},{"label":"Reading data"}]},{"id":"-MZpbzMWS7m8DSXnuOgA","title":"GraphQL in Liquid","pathname":"/core/shopify/read/graphql-in-liquid","siteSpaceId":"sitesp_q2azU","emoji":"1f3c6","description":"Query the Shopify GraphQL Admin API directly in Liquid using Mechanic's shopify filter — read orders, products, customers, and more inline during task execution.","breadcrumbs":[{"label":"Core Concepts"},{"label":"Reading and Writing to Shopify"},{"label":"Reading data"}]},{"id":"-MZpf8KivT9sp0T3XYBg","title":"The Shopify action","pathname":"/core/shopify/read/the-shopify-action","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Core Concepts"},{"label":"Reading and Writing to Shopify"},{"label":"Reading data"}]},{"id":"-MZp_MEHJBZk86VKRSFu","title":"Writing data","pathname":"/core/shopify/write","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Core Concepts"},{"label":"Reading and Writing to Shopify"}]},{"id":"-MZpbOYGrMxGnuCbw37z","title":"Bulk operations","pathname":"/core/shopify/bulk-operations","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Core Concepts"},{"label":"Reading and Writing to Shopify"}]},{"id":"6VsGSVM4UvfQSUkWoSEU","title":"Shopify admin action links","pathname":"/core/shopify/admin-action-links","siteSpaceId":"sitesp_q2azU","description":"Use these access points within the Shopify admin to send resources like orders and customers to Mechanic for processing.","breadcrumbs":[{"label":"Core Concepts"},{"label":"Reading and Writing to Shopify"}]},{"id":"-MbbPyoEKzHLbJAoI4aA","title":"API rate limit","pathname":"/core/shopify/api-rate-limit","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Core Concepts"},{"label":"Reading and Writing to Shopify"}]},{"id":"-MYXUVya6ldRwBlgWa5t","title":"API versions","pathname":"/core/shopify/api-versions","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Core Concepts"},{"label":"Reading and Writing to Shopify"}]},{"id":"-MXYcOvAsLoANvfI6egP","title":"Policies","pathname":"/platform/policies","siteSpaceId":"sitesp_q2azU","emoji":"1f506","description":"Mechanic's operational policies — data retention, subscription plans, pricing, and privacy practices.","breadcrumbs":[{"label":"Platform"}]},{"id":"-MXYcOvBdJ8coTIuYjNs","title":"Data","pathname":"/platform/policies/data","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Policies","emoji":"1f506"}]},{"id":"-MXYcOvCMO2P7EVA3HJC","title":"Plans","pathname":"/platform/policies/plans","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Policies","emoji":"1f506"}]},{"id":"-MXYcOvDxMoIruAkWMy8","title":"Pricing","pathname":"/platform/policies/pricing","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Policies","emoji":"1f506"}]},{"id":"-MYXnD5XFswjOf_TiRNF","title":"Privacy","pathname":"/platform/policies/privacy","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Policies","emoji":"1f506"}]},{"id":"-MXYcOvILe3Dm6vrOMNb","title":"Cache","pathname":"/platform/cache","siteSpaceId":"sitesp_q2azU","description":"Store and retrieve data between Mechanic task runs using the key-value cache — with configurable expiration up to 60 days.","breadcrumbs":[{"label":"Platform"}]},{"id":"-MXYcOvJ5Lkwgvk2pcpo","title":"Cache endpoints","pathname":"/platform/cache/endpoints","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Cache"}]},{"id":"-MXxrBf36EzxBKz-tw3z","title":"Email","pathname":"/platform/email","siteSpaceId":"sitesp_q2azU","description":"Send automated emails from Mechanic — templates, custom domains, DMARC, and receiving inbound email.","breadcrumbs":[{"label":"Platform"}]},{"id":"-MXxrG79TUxxFe2QSKe8","title":"Receiving email","pathname":"/platform/email/receiving-email","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Email"}]},{"id":"-MXYcOvGNh54I_OpmqBq","title":"Custom email addresses","pathname":"/platform/email/custom-email-domain","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Email"}]},{"id":"U7fRIbcXECNxJoeQPpIE","title":"DMARC","pathname":"/platform/email/dmarc","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Email"}]},{"id":"-MXYcOvFtRI_GIexZH_q","title":"Email templates","pathname":"/platform/email/templates","siteSpaceId":"sitesp_q2azU","description":"Configure reusable Mechanic email templates for transactional email actions, including shared layouts and custom Liquid variables.","breadcrumbs":[{"label":"Platform"},{"label":"Email"}]},{"id":"VJKJbCggJbxLtnehwfJX","title":"Error handling","pathname":"/platform/error-handling","siteSpaceId":"sitesp_q2azU","description":"Get actionable visibility into event, task, and action errors","breadcrumbs":[{"label":"Platform"}]},{"id":"-MY1FdOL-fJNPzqimZ6Z","title":"Events","pathname":"/platform/events","siteSpaceId":"sitesp_q2azU","description":"Mechanic event sources, topics, and filters — Shopify webhooks, scheduled events, custom triggers, and more.","breadcrumbs":[{"label":"Platform"}]},{"id":"-MYWHqVMuwDX_7ocrPil","title":"Event topic list","pathname":"/platform/events/topics","siteSpaceId":"sitesp_q2azU","description":"A complete index","breadcrumbs":[{"label":"Platform"},{"label":"Events"}]},{"id":"-MXYcOvEZxPQTK7nbzFw","title":"Event filters","pathname":"/platform/events/filters","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Events"}]},{"id":"-MXxvNmthToU1Rv_S-bI","title":"GraphQL","pathname":"/platform/graphql","siteSpaceId":"sitesp_q2azU","description":"Use Shopify's GraphQL Admin API in Mechanic Shopify automation tasks to read and write store data — orders, products, customers, metafields, and more.","breadcrumbs":[{"label":"Platform"}]},{"id":"-MXYcOwNUrGS4pT8uikQ","title":"Basics","pathname":"/platform/graphql/basics","siteSpaceId":"sitesp_q2azU","description":"GraphQL fundamentals for Mechanic — queries, mutations, pagination, and the Shopify Admin API.","breadcrumbs":[{"label":"Platform"},{"label":"GraphQL"}]},{"id":"-MXYcOwONf0Q-NPu3Z5G","title":"Shopify Admin API GraphiQL explorer","pathname":"/platform/graphql/basics/shopify-admin-api-graphiql-explorer","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"GraphQL"},{"label":"Basics"}]},{"id":"-MXYcOwPAhqWq1nYTQmU","title":"Queries","pathname":"/platform/graphql/basics/queries","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"GraphQL"},{"label":"Basics"}]},{"id":"-MXYcOwQrpQj-oaNQAEp","title":"Mutations","pathname":"/platform/graphql/basics/mutations","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"GraphQL"},{"label":"Basics"}]},{"id":"-MXYcOwRIAlhPRMlZuRB","title":"Pagination","pathname":"/platform/graphql/basics/pagination","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"GraphQL"},{"label":"Basics"}]},{"id":"-MXYcOwSFMgym_mXiDkn","title":"Bulk operations","pathname":"/platform/graphql/bulk-operations","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"GraphQL"}]},{"id":"Th8Mtu8fyDPmi51knzzF","title":"Integrations","pathname":"/platform/integrations","siteSpaceId":"sitesp_q2azU","description":"Connect Mechanic to third-party services like Google Sheets, Airtable, Slack, and more.","breadcrumbs":[{"label":"Platform"}]},{"id":"7aGARu8C3ni66WDXZNAQ","title":"Airtable","pathname":"/platform/integrations/airtable","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Integrations"}]},{"id":"lU4eLbBXQu29oAHIozkl","title":"Appstle Subscriptions","pathname":"/platform/integrations/appstle-subscriptions","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Integrations"}]},{"id":"xfBkbXKRo16FXYZ4VFIV","title":"Google","pathname":"/platform/integrations/google","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Integrations"}]},{"id":"L5UGB9Tw7XSQOTtBjjSp","title":"Google Drive and Google Sheets","pathname":"/platform/integrations/google-drive-and-google-sheets","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Integrations"}]},{"id":"EOSPn262Xa696OyhFm1r","title":"Judge.me","pathname":"/platform/integrations/judge.me","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Integrations"}]},{"id":"Nh5W9NUxMyVUBEudHCkQ","title":"Locksmith","pathname":"/platform/integrations/locksmith","siteSpaceId":"sitesp_q2azU","description":"Access control, for anything in your online store :)","breadcrumbs":[{"label":"Platform"},{"label":"Integrations"}]},{"id":"43nk64zDXFInSz9Hzi4l","title":"Report Toaster","pathname":"/platform/integrations/report-toaster","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Integrations"}]},{"id":"O5HfFDtw7yztp72p7KpK","title":"Shopify Flow","pathname":"/platform/integrations/shopify-flow","siteSpaceId":"sitesp_q2azU","description":"Connect Mechanic with Shopify Flow — send triggers to Flow workflows and receive Flow events in Mechanic tasks.","breadcrumbs":[{"label":"Platform"},{"label":"Integrations"}]},{"id":"gw6ix0rbWWwj0hD4YrPw","title":"Slack","pathname":"/platform/integrations/slack","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Integrations"}]},{"id":"kIPMLClzFlNEqhRaoUCp","title":"Run links","pathname":"/platform/integrations/run-links","siteSpaceId":"sitesp_q2azU","description":"Mechanic run links give your users a useful point of entry.","breadcrumbs":[{"label":"Platform"},{"label":"Integrations"}]},{"id":"jdwNksxLeYoEO5O08ZSR","title":"Connecting third-party apps","pathname":"/platform/integrations/connecting-third-party-apps","siteSpaceId":"sitesp_q2azU","description":"Learn how to connect Mechanic to any third-party app using HTTP APIs and webhooks.","breadcrumbs":[{"label":"Platform"},{"label":"Integrations"}]},{"id":"-MXxtU6rPgneZPuM76xK","title":"Liquid","pathname":"/platform/liquid","siteSpaceId":"sitesp_q2azU","description":"Write Shopify automations in Liquid with Mechanic's custom tags, filters, and objects — including inline GraphQL queries and action definitions.","breadcrumbs":[{"label":"Platform"}]},{"id":"-MXYcOvTYvAwB8WWCpOJ","title":"Basics","pathname":"/platform/liquid/basics","siteSpaceId":"sitesp_q2azU","description":"Learn the fundamentals of Liquid in Mechanic — syntax, data types, variables, filters, operators, and control flow.","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"}]},{"id":"-MXYcOvUfYB5y_URrjxw","title":"Syntax","pathname":"/platform/liquid/basics/syntax","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Basics"}]},{"id":"-MXYcOvVS8CMFUeAZCap","title":"Data types","pathname":"/platform/liquid/basics/types","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Basics"}]},{"id":"-MXYcOvWmtKaHw28u6eP","title":"Variables","pathname":"/platform/liquid/basics/variables","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Basics"}]},{"id":"-MXYcOvXQstIZDy1ap05","title":"Comments","pathname":"/platform/liquid/basics/comments","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Basics"}]},{"id":"-MXYcOvYPMOHK5M0e1ex","title":"Filters","pathname":"/platform/liquid/basics/filters","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Basics"}]},{"id":"-MXYcOvZw1mPs2CTLMnx","title":"Operators","pathname":"/platform/liquid/basics/operators","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Basics"}]},{"id":"-MXYcOv_SCpoMcvR28HX","title":"Control flow","pathname":"/platform/liquid/basics/control-flow","siteSpaceId":"sitesp_q2azU","description":"Control flow in Liquid — conditionals and iteration for directing task logic in Mechanic.","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Basics"}]},{"id":"-MXYcOvaEHwfc8Q9Efwk","title":"Condition","pathname":"/platform/liquid/basics/control-flow/condition","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Basics"},{"label":"Control flow"}]},{"id":"-MXYcOvb16mo0Qin4V1J","title":"Iteration","pathname":"/platform/liquid/basics/control-flow/iteration","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Basics"},{"label":"Control flow"}]},{"id":"-MXYcOvckEfSDXLxVDch","title":"Whitespace","pathname":"/platform/liquid/basics/whitespace","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Basics"}]},{"id":"-MXYcOvdjqvVeK8x6PP4","title":"Mechanic filters","pathname":"/platform/liquid/filters","siteSpaceId":"sitesp_q2azU","description":"Complete reference of Liquid filters available in Mechanic — shopify, parse_json, csv, hmac_sha256, and more.","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"}]},{"id":"sqUNCkN4CkdAr3kODTLq","title":"Deprecated filters","pathname":"/platform/liquid/filters/deprecated","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Mechanic filters"}]},{"id":"-MXYcOvfQ2TgeB_Xubfk","title":"Mechanic keyword literals","pathname":"/platform/liquid/keyword-literals","siteSpaceId":"sitesp_q2azU","description":"Mechanic's keyword literals for Liquid — array, hash, and newline for working with data structures and formatting.","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"}]},{"id":"-MXYcOvg6LfV_zm3SsYg","title":"array","pathname":"/platform/liquid/keyword-literals/array","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Mechanic keyword literals"}]},{"id":"-MXYcOvhIF39XPmBnYNj","title":"hash","pathname":"/platform/liquid/keyword-literals/hash","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Mechanic keyword literals"}]},{"id":"-MXYcOvi9OkL2hvsrU98","title":"newline","pathname":"/platform/liquid/keyword-literals/newline","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Mechanic keyword literals"}]},{"id":"-MXYcOvo4nqtgS44YBJm","title":"Mechanic objects","pathname":"/platform/liquid/objects","siteSpaceId":"sitesp_q2azU","description":"Mechanic's Liquid objects — event, task, options, cache, action, and Shopify resource objects available in your task code.","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"}]},{"id":"-MXYcOvpEKvCuj8qya9n","title":"Action object","pathname":"/platform/liquid/objects/action","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Mechanic objects"}]},{"id":"-MXYcOvqf0yFJk0uatbV","title":"Cache object","pathname":"/platform/liquid/objects/cache","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Mechanic objects"}]},{"id":"-MXYcOvreQHtQMpN2suI","title":"Event object","pathname":"/platform/liquid/objects/event","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Mechanic objects"}]},{"id":"-MXYcOvsDhBUPLCCpwnq","title":"Options object","pathname":"/platform/liquid/objects/options","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Mechanic objects"}]},{"id":"-MXYcOvtp_GtvebGWtS5","title":"Task object","pathname":"/platform/liquid/objects/task","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Mechanic objects"}]},{"id":"-MXYcOvurGCqVZqJ91qF","title":"Shopify REST Admin API","pathname":"/platform/liquid/objects/shopify","siteSpaceId":"sitesp_q2azU","emoji":"26a0","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Mechanic objects"}]},{"id":"-MXYcOvv1X21x08Iwgy4","title":"Article object","pathname":"/platform/liquid/objects/shopify/article","siteSpaceId":"sitesp_q2azU","emoji":"1f6ab","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Mechanic objects"},{"label":"Shopify REST Admin API","emoji":"26a0"}]},{"id":"-MXYcOvwwB2b0NqZLVVf","title":"Blog object","pathname":"/platform/liquid/objects/shopify/blog","siteSpaceId":"sitesp_q2azU","emoji":"1f6ab","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Mechanic objects"},{"label":"Shopify REST Admin API","emoji":"26a0"}]},{"id":"-MXYcOvxcuo7zHgP0N10","title":"Collection object","pathname":"/platform/liquid/objects/shopify/collection","siteSpaceId":"sitesp_q2azU","emoji":"1f6ab","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Mechanic objects"},{"label":"Shopify REST Admin API","emoji":"26a0"}]},{"id":"-MXYcOvy4MGzwT_Mc95B","title":"Customer object","pathname":"/platform/liquid/objects/shopify/customer-object","siteSpaceId":"sitesp_q2azU","emoji":"1f6ab","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Mechanic objects"},{"label":"Shopify REST Admin API","emoji":"26a0"}]},{"id":"-MXYcOvzM430qGnzih3R","title":"Discount code object","pathname":"/platform/liquid/objects/shopify/discount-code","siteSpaceId":"sitesp_q2azU","emoji":"1f6ab","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Mechanic objects"},{"label":"Shopify REST Admin API","emoji":"26a0"}]},{"id":"-MXYcOw-of-Rsjvevc08","title":"Dispute object","pathname":"/platform/liquid/objects/shopify/dispute","siteSpaceId":"sitesp_q2azU","emoji":"1f6ab","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Mechanic objects"},{"label":"Shopify REST Admin API","emoji":"26a0"}]},{"id":"-MXYcOw0BuF2XvwWYdwb","title":"Draft order object","pathname":"/platform/liquid/objects/shopify/draft-order","siteSpaceId":"sitesp_q2azU","emoji":"1f6ab","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Mechanic objects"},{"label":"Shopify REST Admin API","emoji":"26a0"}]},{"id":"-MXYcOw1wYfBvKw_bgJM","title":"Fulfillment object","pathname":"/platform/liquid/objects/shopify/fulfillment","siteSpaceId":"sitesp_q2azU","emoji":"1f6ab","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Mechanic objects"},{"label":"Shopify REST Admin API","emoji":"26a0"}]},{"id":"sUx5PmbWonTdv97Yv5bv","title":"Fulfillment order object","pathname":"/platform/liquid/objects/shopify/fulfillment-order","siteSpaceId":"sitesp_q2azU","emoji":"1f6ab","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Mechanic objects"},{"label":"Shopify REST Admin API","emoji":"26a0"}]},{"id":"-MXYcOw20hnwNNcOUUCM","title":"Fulfillment event object","pathname":"/platform/liquid/objects/shopify/fulfillment-event","siteSpaceId":"sitesp_q2azU","emoji":"1f6ab","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Mechanic objects"},{"label":"Shopify REST Admin API","emoji":"26a0"}]},{"id":"-MXYcOw3m1FvceI39DzL","title":"Gift card object","pathname":"/platform/liquid/objects/shopify/gift-card","siteSpaceId":"sitesp_q2azU","emoji":"1f6ab","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Mechanic objects"},{"label":"Shopify REST Admin API","emoji":"26a0"}]},{"id":"-MXYcOw4cWSKdQMgReEB","title":"Inventory item object","pathname":"/platform/liquid/objects/shopify/inventory-item","siteSpaceId":"sitesp_q2azU","emoji":"1f6ab","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Mechanic objects"},{"label":"Shopify REST Admin API","emoji":"26a0"}]},{"id":"-MXYcOw5uHm8E62XizOx","title":"Inventory level object","pathname":"/platform/liquid/objects/shopify/inventory-level","siteSpaceId":"sitesp_q2azU","emoji":"1f6ab","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Mechanic objects"},{"label":"Shopify REST Admin API","emoji":"26a0"}]},{"id":"-MXYcOw6YwImyZuQvBoA","title":"Line item object","pathname":"/platform/liquid/objects/shopify/line-item","siteSpaceId":"sitesp_q2azU","emoji":"1f6ab","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Mechanic objects"},{"label":"Shopify REST Admin API","emoji":"26a0"}]},{"id":"-MXYcOw7PIXf3zZ_QaEV","title":"Location object","pathname":"/platform/liquid/objects/shopify/location","siteSpaceId":"sitesp_q2azU","emoji":"1f6ab","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Mechanic objects"},{"label":"Shopify REST Admin API","emoji":"26a0"}]},{"id":"-Mfi5YD2nVA_aDb5qaZS","title":"Metafields","pathname":"/platform/liquid/objects/shopify/metafields","siteSpaceId":"sitesp_q2azU","emoji":"1f6ab","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Mechanic objects"},{"label":"Shopify REST Admin API","emoji":"26a0"}]},{"id":"-Mfi5iAb9g_h5XvmFIrc","title":"Metafield object","pathname":"/platform/liquid/objects/shopify/metafields/metafield-object","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Mechanic objects"},{"label":"Shopify REST Admin API","emoji":"26a0"},{"label":"Metafields","emoji":"1f6ab"}]},{"id":"-Mfi5Pgq5Lh1118pc8yE","title":"Metafield representation object","pathname":"/platform/liquid/objects/shopify/metafields/metafield-representation-object","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Mechanic objects"},{"label":"Shopify REST Admin API","emoji":"26a0"},{"label":"Metafields","emoji":"1f6ab"}]},{"id":"-MXYcOw8WBS8SYaKNuXL","title":"Metafield collection object","pathname":"/platform/liquid/objects/shopify/metafields/metafield-collection","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Mechanic objects"},{"label":"Shopify REST Admin API","emoji":"26a0"},{"label":"Metafields","emoji":"1f6ab"}]},{"id":"-MXYcOw9a2L_pQjyYkqE","title":"Order object","pathname":"/platform/liquid/objects/shopify/order","siteSpaceId":"sitesp_q2azU","emoji":"1f6ab","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Mechanic objects"},{"label":"Shopify REST Admin API","emoji":"26a0"}]},{"id":"-MXYcOwACYTIfGQDEoE_","title":"Order risk object","pathname":"/platform/liquid/objects/shopify/order-risk","siteSpaceId":"sitesp_q2azU","emoji":"1f6ab","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Mechanic objects"},{"label":"Shopify REST Admin API","emoji":"26a0"}]},{"id":"-MXYcOwBT10k_gD09pSz","title":"Price rule object","pathname":"/platform/liquid/objects/shopify/price-rule","siteSpaceId":"sitesp_q2azU","emoji":"1f6ab","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Mechanic objects"},{"label":"Shopify REST Admin API","emoji":"26a0"}]},{"id":"-MXYcOwCDr5ozAzxf9-j","title":"Product object","pathname":"/platform/liquid/objects/shopify/product","siteSpaceId":"sitesp_q2azU","emoji":"1f6ab","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Mechanic objects"},{"label":"Shopify REST Admin API","emoji":"26a0"}]},{"id":"-MXYcOwDyHauoJmT_mh1","title":"Product image object","pathname":"/platform/liquid/objects/shopify/product-image","siteSpaceId":"sitesp_q2azU","emoji":"1f6ab","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Mechanic objects"},{"label":"Shopify REST Admin API","emoji":"26a0"}]},{"id":"-MXYcOwEvOUxsq7Knj4D","title":"Refund object","pathname":"/platform/liquid/objects/shopify/refund","siteSpaceId":"sitesp_q2azU","emoji":"1f6ab","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Mechanic objects"},{"label":"Shopify REST Admin API","emoji":"26a0"}]},{"id":"-MXYcOwFExHeljK94Wlg","title":"Shipping zone object","pathname":"/platform/liquid/objects/shopify/shipping-zone","siteSpaceId":"sitesp_q2azU","emoji":"1f6ab","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Mechanic objects"},{"label":"Shopify REST Admin API","emoji":"26a0"}]},{"id":"-MXYcOwGsfU95NK4jr3p","title":"Shop object","pathname":"/platform/liquid/objects/shopify/shop","siteSpaceId":"sitesp_q2azU","emoji":"1f6ab","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Mechanic objects"},{"label":"Shopify REST Admin API","emoji":"26a0"}]},{"id":"-MXYcOwH0VpbKuWEDwwo","title":"Theme object","pathname":"/platform/liquid/objects/shopify/theme","siteSpaceId":"sitesp_q2azU","emoji":"1f6ab","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Mechanic objects"},{"label":"Shopify REST Admin API","emoji":"26a0"}]},{"id":"-MXYcOwIsdtXTivcN9nX","title":"Theme asset object","pathname":"/platform/liquid/objects/shopify/theme-asset","siteSpaceId":"sitesp_q2azU","emoji":"1f6ab","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Mechanic objects"},{"label":"Shopify REST Admin API","emoji":"26a0"}]},{"id":"-MXYcOwJ2IZ-ri84840c","title":"Transaction object","pathname":"/platform/liquid/objects/shopify/transaction","siteSpaceId":"sitesp_q2azU","emoji":"1f6ab","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Mechanic objects"},{"label":"Shopify REST Admin API","emoji":"26a0"}]},{"id":"-MXYcOwKT_UxTmHGe73R","title":"Variant object","pathname":"/platform/liquid/objects/shopify/variant","siteSpaceId":"sitesp_q2azU","emoji":"1f6ab","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Mechanic objects"},{"label":"Shopify REST Admin API","emoji":"26a0"}]},{"id":"-MXYcOvj626eptiVfMcc","title":"Mechanic tags","pathname":"/platform/liquid/tags","siteSpaceId":"sitesp_q2azU","description":"Custom Liquid tags in Mechanic — action, log, error, permissions, and more for producing task output.","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"}]},{"id":"xv7KDkfx9seKxSMzAFPo","title":"liquid","pathname":"/platform/liquid/tags/liquid","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Mechanic tags"}]},{"id":"-MXYcOvkCMH8oKhz2en2","title":"action","pathname":"/platform/liquid/tags/action","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Mechanic tags"}]},{"id":"-MXYcOvl981bM26K3aow","title":"assign","pathname":"/platform/liquid/tags/assign","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Mechanic tags"}]},{"id":"-MXYcOvmCLQf9wh1qMnG","title":"error","pathname":"/platform/liquid/tags/error","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Mechanic tags"}]},{"id":"-MXYcOvnLs_M0ItvvDCa","title":"log","pathname":"/platform/liquid/tags/log","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Mechanic tags"}]},{"id":"Qq6U55gOfXVMc2ymfQPV","title":"permissions","pathname":"/platform/liquid/tags/permissions","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"},{"label":"Mechanic tags"}]},{"id":"ntfE6fzuzgD1ywPpTyhG","title":"Mechanic code snippets","pathname":"/platform/liquid/mechanic-code-snippets","siteSpaceId":"sitesp_q2azU","icon":"person-running-fast","description":"A list of convenience snippets provided in the Mechanic code editor.","breadcrumbs":[{"label":"Platform"},{"label":"Liquid"}]},{"id":"-MXdghF5qsCEKaibFEPG","title":"Shopify","pathname":"/platform/shopify","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"}]},{"id":"-MXdgzcV_M6_Y1OBJwKO","title":"Custom authentication","pathname":"/platform/shopify/custom-authentication","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Shopify"}]},{"id":"-MXdIvqKCoZv6KenZXtt","title":"\"Read all orders\"","pathname":"/platform/shopify/read-all-orders","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Platform"},{"label":"Shopify"}]},{"id":"xwILYJpQzqBy6pZh4Xou","title":"Custom Shopify webhooks","pathname":"/platform/shopify/custom-webhooks","siteSpaceId":"sitesp_q2azU","description":"Filter Shopify webhooks in Mechanic, customize Shopify webhook payloads, include metafields, and receive metaobject webhook events.","breadcrumbs":[{"label":"Platform"},{"label":"Shopify"}]},{"id":"-MXYcOvH8_7gRDPmeL0P","title":"Mechanic webhooks","pathname":"/platform/webhooks","siteSpaceId":"sitesp_q2azU","description":"Receive data from external services and trigger Mechanic tasks via webhooks.","breadcrumbs":[{"label":"Platform"}]},{"id":"ZpfV16AZ5cbhyFKauiWe","title":"Preventing action loops","pathname":"/techniques/preventing-action-loops","siteSpaceId":"sitesp_q2azU","description":"Prevent infinite loops in Mechanic tasks — guard against re-triggers when a task modifies the same Shopify resource it subscribes to.","breadcrumbs":[{"label":"Techniques"}]},{"id":"-MYXfmdDH12xudAIx9Fz","title":"Writing a high-quality task","pathname":"/techniques/writing-a-high-quality-task","siteSpaceId":"sitesp_q2azU","description":"Best practices for writing Mechanic tasks — previews, action loop prevention, logging, error handling, and test mode patterns.","breadcrumbs":[{"label":"Techniques"}]},{"id":"-MYWIjQLr-UydUlfibdB","title":"Tagging Shopify resources","pathname":"/techniques/tagging-shopify-resources","siteSpaceId":"sitesp_q2azU","description":"Auto-tag Shopify orders, customers, and products using Mechanic tasks — add or remove tags via the GraphQL Admin API.","breadcrumbs":[{"label":"Techniques"}]},{"id":"FoZXyG7BmXcislfvkX97","title":"Include metafields in Shopify webhook events","pathname":"/techniques/include-metafields-in-shopify-webhook-events","siteSpaceId":"sitesp_q2azU","description":"Include Shopify metafields in webhook event payloads, and optionally filter by metafield values, using Mechanic custom Shopify webhooks.","breadcrumbs":[{"label":"Techniques"}]},{"id":"WPkQHneaeklmW9z5b948","title":"Subscribe to Shopify metaobject events","pathname":"/techniques/subscribe-to-shopify-metaobject-events","siteSpaceId":"sitesp_q2azU","description":"Subscribe Mechanic tasks to Shopify metaobject create, update, and delete events.","breadcrumbs":[{"label":"Techniques"}]},{"id":"F8g6zFjsXtBi8pN13t6I","title":"Batch processing of events","pathname":"/techniques/batch-processing-of-events","siteSpaceId":"sitesp_q2azU","description":"Replace high-frequency Shopify webhook subscriptions with scheduled GraphQL scans to reduce queue volume and improve reliability.","breadcrumbs":[{"label":"Techniques"}]},{"id":"-MXYcOvNbe0l88ikKAaC","title":"Debouncing events","pathname":"/techniques/debouncing-events","siteSpaceId":"sitesp_q2azU","description":"Debounce high-frequency Shopify webhook events in Mechanic using event filters and the cache to avoid duplicate processing.","breadcrumbs":[{"label":"Techniques"}]},{"id":"-MXYcOvOUI7ei6nd-7tZ","title":"Responding to action results","pathname":"/techniques/responding-to-action-results","siteSpaceId":"sitesp_q2azU","description":"React to Mechanic action results using mechanic/actions/perform — build multi-step workflows that inspect HTTP responses, mutation results, and more.","breadcrumbs":[{"label":"Techniques"}]},{"id":"-MXYcOvPIGRuzQWUdszS","title":"Working with external APIs","pathname":"/techniques/working-with-external-apis","siteSpaceId":"sitesp_q2azU","description":"Connect Mechanic to external REST and JSON APIs — load data via HTTP requests, receive data via webhooks, and integrate Shopify with any service.","breadcrumbs":[{"label":"Techniques"}]},{"id":"tXKjBd5J6dv3WjHasxvk","title":"JSON Web Signatures","pathname":"/techniques/working-with-external-apis/json-web-signatures","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Techniques"},{"label":"Working with external APIs"}]},{"id":"A9RBMM2BxeUKXlBdSt3H","title":"AWS request signatures","pathname":"/techniques/working-with-external-apis/aws-request-signatures","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Techniques"},{"label":"Working with external APIs"}]},{"id":"-MXYcOvQOLRxdbK3Rm-r","title":"Finding a resource ID","pathname":"/techniques/finding-a-resource-id","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"Techniques"}]},{"id":"-MaUn144t0uU0pwdLJDN","title":"Migrating templates from Shopify to Mechanic","pathname":"/techniques/migrating-templates-from-shopify-to-mechanic","siteSpaceId":"sitesp_q2azU","description":"Migrate Shopify notification templates to Mechanic for custom order emails, PDF invoices, and on-demand transactional messages.","breadcrumbs":[{"label":"Techniques"}]},{"id":"-MYXqTXwO__YJPVbHyNm","title":"Securing Mechanic webhooks","pathname":"/techniques/securing-mechanic-webhooks","siteSpaceId":"sitesp_q2azU","description":"Secure Mechanic webhooks with HMAC signatures and replay prevention — protect webhook endpoints used in online store forms.","breadcrumbs":[{"label":"Techniques"}]},{"id":"6kPIKLMjFqDa4VDOnq94","title":"Monitoring Mechanic","pathname":"/techniques/monitoring","siteSpaceId":"sitesp_q2azU","description":"Monitor Mechanic task health and platform status — set up alerts, track queue delays, and diagnose Shopify webhook delivery issues.","breadcrumbs":[{"label":"Techniques"}]},{"id":"dVQeGKfKfhORdsYm2KcC","title":"Task list","pathname":"/app/home","siteSpaceId":"sitesp_q2azU","description":"The Mechanic task list — view installed tasks, monitor current activity, and see recent Shopify automation events.","breadcrumbs":[{"label":"App screens"}]},{"id":"6KtJsuKNIINcYNnSeeA7","title":"Task editor","pathname":"/app/task-editor","siteSpaceId":"sitesp_q2azU","description":"Create, edit, and test Mechanic tasks — configure options in Basic mode or write Liquid code in Advanced mode.","breadcrumbs":[{"label":"App screens"}]},{"id":"KzUosORHMoJpWT1UZwAN","title":"Events","pathname":"/app/events","siteSpaceId":"sitesp_q2azU","description":"Monitor Shopify webhook events, filter by topic or error, and investigate task run results in the Mechanic Events page.","breadcrumbs":[{"label":"App screens"}]},{"id":"B5112lzi2NG9XUwZgghV","title":"Settings","pathname":"/app/settings","siteSpaceId":"sitesp_q2azU","description":"Configure your Mechanic account — contact email, Shopify permissions, outbound email, webhooks, integrations, and more.","breadcrumbs":[{"label":"App screens"}]},{"id":"cvcRKgqbT8yxVI9Nv7Z7","title":"Ask Mechanic","pathname":"/app/ask-mechanic","siteSpaceId":"sitesp_q2azU","description":"Ask Mechanic is a built-in AI assistant that answers platform questions, explains features, and helps you find tasks — no setup required.","breadcrumbs":[{"label":"App screens"}]},{"id":"WJEADg0Jxd4D5bcJFZFo","title":"Liquid console","pathname":"/app/liquid-console","siteSpaceId":"sitesp_q2azU","description":"Test Mechanic Liquid code in a live scratchpad — experiment with filters, inspect event data, and debug task logic without creating a task.","breadcrumbs":[{"label":"App screens"}]},{"id":"5B9AxHEcD7zhRq35VOE2","title":"Keyboard shortcuts","pathname":"/app/keyboard-shortcuts","siteSpaceId":"sitesp_q2azU","description":"Keyboard shortcuts for navigating Mechanic, creating tasks, and toggling Ask Mechanic — with a full shortcut reference.","breadcrumbs":[{"label":"App screens"}]},{"id":"-MYlcCXulSyZmY2RTIBV","title":"FAQ","pathname":"/faq","siteSpaceId":"sitesp_q2azU","description":"Frequently asked questions about Mechanic — troubleshooting, billing, permissions, and more."},{"id":"0oRLDurHgy1ED0ngCTXZ","title":"The app isn't loading. What do I do?","pathname":"/faq/app-not-loading","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"FAQ"}]},{"id":"-MlVYQUpgokQ6QrQX-B_","title":"How do I stop a large batch of runs?","pathname":"/faq/how-do-i-stop-a-large-batch-of-runs","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"FAQ"}]},{"id":"-MkiLM_QihN7o773sVrJ","title":"A Shopify event is missing. Where is it?","pathname":"/faq/a-shopify-event-is-missing-where-is-it","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"FAQ"}]},{"id":"-MkUb3UFbMpwWoYbkLkO","title":"Does Mechanic have an affiliate program?","pathname":"/faq/does-mechanic-have-an-affiliate-program","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"FAQ"}]},{"id":"-Micm6GAxfcFnz9Lz6gs","title":"Can non-owners install Mechanic?","pathname":"/faq/can-non-owners-install-mechanic","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"FAQ"}]},{"id":"-Mfe7wzxjtnghI6lsX4A","title":"Can I replace Shopify's order emails with Mechanic?","pathname":"/faq/can-i-replace-shopifys-order-emails-with-mechanic","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"FAQ"}]},{"id":"-MeegAvnEQvkz7-cOkJ3","title":"Can I manually set Shopify permissions for Mechanic?","pathname":"/faq/can-i-manually-set-shopify-permissions-for-mechanic","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"FAQ"}]},{"id":"-MeHSRvc_xtUw2PsawzR","title":"Does my theme need to be updated for Mechanic?","pathname":"/faq/does-my-theme-need-to-be-updated-for-mechanic","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"FAQ"}]},{"id":"-MeHRNohzn3t5l54KwPG","title":"Do you have a plan for development stores?","pathname":"/faq/do-you-have-a-plan-for-development-stores","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"FAQ"}]},{"id":"-MddAHnePd351bsn8vFP","title":"Why don't I see any events in my task's activity?","pathname":"/faq/why-dont-i-see-any-events-in-my-tasks-activity","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"FAQ"}]},{"id":"-MdVTLfRFhMV-h4yphFT","title":"Can I read data back from my webhook submission?","pathname":"/faq/can-i-read-data-back-from-my-webhook-submission","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"FAQ"}]},{"id":"-McQTywbXNgdr9v4X6c0","title":"My task added a tag, but now the tag is missing – why?","pathname":"/faq/my-task-added-a-tag-but-now-the-tag-is-missing-why","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"FAQ"}]},{"id":"-McBml5GGc7OvknW_TCj","title":"How do I add an unsubscribe link to my emails?","pathname":"/faq/how-do-i-add-an-unsubscribe-link-to-my-emails","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"FAQ"}]},{"id":"-MafzbrOSu3vM1vn6Awf","title":"How do I send images with my emails?","pathname":"/faq/how-do-i-send-images-with-my-emails","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"FAQ"}]},{"id":"a0jb0DP4lHH3BySmYVJf","title":"Can Mechanic events or tasks be prioritized?","pathname":"/faq/can-mechanic-events-or-tasks-be-prioritized","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"FAQ"}]},{"id":"-MaUnRJFh34xa-Ska81T","title":"Can I re-send order confirmation emails with Mechanic?","pathname":"/faq/can-i-resend-order-confirmation-emails-with-mechanic","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"FAQ"}]},{"id":"-MZzHp-AeVknS2Oj9qjz","title":"Why am I seeing a different price than on the app store?","pathname":"/faq/why-am-i-seeing-a-different-price-than-on-the-app-store","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"FAQ"}]},{"id":"-MZz1Fe6MXrgtfUmZSd7","title":"Do you have a Partner-friendly plan?","pathname":"/faq/do-you-have-a-partner-friendly-plan","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"FAQ"}]},{"id":"-MZx75UGpZXisTMkmg8j","title":"Why are my tasks delayed or not running?","pathname":"/faq/why-are-my-tasks-delayed-or-not-running","siteSpaceId":"sitesp_q2azU","description":"Troubleshoot delayed or stuck Mechanic tasks — check queue status, Shopify webhook delivery, and concurrency limits.","breadcrumbs":[{"label":"FAQ"}]},{"id":"-MYXdlhRuv6QMOYVKgFo","title":"My task is failing because of a permissions problem. Why?","pathname":"/faq/my-task-is-failing-because-of-a-permissions-problem","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"FAQ"}]},{"id":"-MYXTV1vjo6k-ClLaJb9","title":"How do I preview email attachments?","pathname":"/faq/how-do-i-preview-email-attachments","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"FAQ"}]},{"id":"-MYXgc85A9zRccPfsZgg","title":"Can I query external APIs?","pathname":"/faq/can-i-query-external-apis","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"FAQ"}]},{"id":"-MY_yxBymah8rYDW18GB","title":"Why can't I access the Shopify API during preview mode?","pathname":"/faq/why-cant-i-access-the-shopify-api-during-preview-mode","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"FAQ"}]},{"id":"-MY_zWGVNchUerFuV5aQ","title":"How do marketing preferences work with Mechanic?","pathname":"/faq/how-do-marketing-preferences-work-with-mechanic","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"FAQ"}]},{"id":"-MYlbpchMAmRm4dBeAvg","title":"What's possible with timeline comments?","pathname":"/faq/whats-possible-with-timeline-comments","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"FAQ"}]},{"id":"6BgcW1upYisO8a0KCt7S","title":"I'm getting a \"query param length is too long\" error when using GraphQL.","pathname":"/faq/query-param-length-is-too-long","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"FAQ"}]},{"id":"7AYpoI72GOW4rBVvj1wF","title":"Can my Mechanic concurrency limit be raised?","pathname":"/faq/can-my-mechanic-concurrency-limit-be-raised","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"FAQ"}]},{"id":"0jzzx8zlPC6euMofSqdi","title":"What IP address does Mechanic use?","pathname":"/faq/what-ip-address-does-mechanic-use","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"FAQ"}]},{"id":"VeQY39f8wPeip6jKozdY","title":"Can Mechanic read or manage customer subscriptions?","pathname":"/faq/can-mechanic-read-or-manage-customer-subscriptions","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"FAQ"}]},{"id":"b7TzB2FXptDg8QAMUuKd","title":"Can task content be translated into multiple languages?","pathname":"/faq/can-task-content-be-translated-into-multiple-languages","siteSpaceId":"sitesp_q2azU","description":"Translate Mechanic task content by using separate task copies per locale or custom task options for locale-specific content.","breadcrumbs":[{"label":"FAQ"}]},{"id":"9XgIH5KFW1nQKD5yPJyC","title":"Can I add a time delay to my task?","pathname":"/faq/can-i-add-a-time-delay-to-my-task","siteSpaceId":"sitesp_q2azU","description":"Add time delays to Mechanic tasks using subscription offsets — delay actions by minutes, hours, or days after a Shopify event.","breadcrumbs":[{"label":"FAQ"}]},{"id":"Bfyimpr6nrYJWNWuz4Ev","title":"Can I add another store to my existing Mechanic subscription?","pathname":"/faq/can-i-add-another-store-to-my-existing-mechanic-subscription","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"FAQ"}]},{"id":"LVckhl90fQBECELLgMwH","title":"How can I reduce memory usage of my task?","pathname":"/faq/how-can-i-reduce-memory-usage-of-my-task","siteSpaceId":"sitesp_q2azU","description":"Suggestions for task code that's running out memory","breadcrumbs":[{"label":"FAQ"}]},{"id":"MWtwXVH6hVyRSUWwi0Ft","title":"How do I connect PayPal to Shopify with Mechanic?","pathname":"/faq/how-do-i-connect-paypal-to-shopify-with-mechanic","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"FAQ"}]},{"id":"Zkg1r4DEokDC1FjCCdvy","title":"How do I add a Shopify access scope to my task?","pathname":"/faq/how-do-i-add-a-shopify-access-scope-to-my-task","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"FAQ"}]},{"id":"IUDLmyAJSCRMKAkxmWRy","title":"Can I have my Mechanic data retained for more (or less) than 15 days?","pathname":"/faq/can-i-have-my-mechanic-data-retained-for-more-or-less-than-15-days","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"FAQ"}]},{"id":"ANPC01MOE8DC77qvzOMt","title":"Can I control staff access for specific Mechanic tasks?","pathname":"/faq/can-i-control-staff-access-for-specific-mechanic-tasks","siteSpaceId":"sitesp_q2azU","description":"","breadcrumbs":[{"label":"FAQ"}]}]}