Shopify
Shopify is a commerce platform for online stores and retail point-of-sale.
What your agent can do with Shopify
Triggers and actions 17 triggers · 63 actions
- TriggerNew cart
Triggered when a cart is created.
- TriggerNew customer
Polling trigger that fires for each newly created Shopify customer. Fetches the 50 most recently created customers (sorted by creation date, newest first) via the GraphQL Admin API customers connection. Migrated from the REST GET /customers.json?order=created_at+desc endpoint; preserves the same per-customer output fields (id, email, first_name, last_name, phone, created_at, updated_at, state, tags).
- TriggerNew customer (instant)
Triggered when a customer is added.
- TriggerNew order
Polls Shopify for orders (most recent first), returning a list of orders. Ported from the REST GET /orders.json (status=any, limit=50) to the GraphQL Admin API orders connection query.
- TriggerNew order (instant)
Triggered when an order is created.
- TriggerNew paid order
Triggered when an order is paid.
- TriggerNew product
Triggers when a new product is created in Shopify. Polls the GraphQL Admin API products connection (first 50, sorted by createdAt ascending) and returns each product's id, title, handle, vendor, product_type, status, created_at, updated_at. GraphQL port of the REST GET /products.json?order=created_at+asc trigger; id is the product's legacyResourceId (numeric) to preserve REST semantics.
- TriggerOrder fulfilled
Triggered when an order is fulfilled.
- TriggerOrder partially fulfilled
Triggered when an order is partially fulfilled.
- TriggerTwo-way sync new or updated customers
Polling fetch body for the two-way customer sync trigger. Lists Shopify customers ordered oldest-to-newest by updated_at (GraphQL customers connection, sortKey: UPDATED_AT, reverse:false, first:250) so newly created or updated customers are surfaced for two-way synchronization. Returns id (numeric legacyResourceId), email, first_name, last_name, phone, created_at, updated_at — same fields and ordering as the legacy REST GET /customers.json?order=updated_at asc.
- TriggerUpdated cart
Triggered when a cart is updated.
- TriggerUpdated customer
Triggered when a customer is updated.
- TriggerUpdated fulfillment status
Polling trigger: fetches recently-updated Shopify orders (any status) and returns each order's fulfillment status. Migrated from REST GET /orders.json to the GraphQL Admin API orders connection query, filtering by updated_at and returning id, name, order number, fulfillment/financial status and email.
- TriggerUpdated order
Polls Shopify for recently updated orders (any status), most-recently-updated first. GraphQL Admin API equivalent of GET /orders.json?status=any&order=updated_at+desc&limit=50, using the orders connection sorted by UPDATED_AT descending. Returns an orders array.
- TriggerUpdated order (instant)
Triggered when an order is updated.
- TriggerUpdated order payment status
Polling trigger: fires when an order's payment (financial) status changes. Lists the 50 most recently updated orders via the GraphQL Admin API (orders sorted by UPDATED_AT desc) and dedups on order id + financial status so a new event fires only when the payment status changes.
- TriggerUpdated product
Polling trigger: fires for products that were recently updated. Fetches up to 50 products sorted by update time (most recent first) via the Shopify GraphQL Admin API, projecting id, title, handle, vendor, product_type, status, created_at and updated_at for each.
- ActionAdd customer
Create a new Shopify customer (first name, last name, email, phone, note, tags) via the GraphQL Admin API customerCreate mutation. Returns the created customer's id, email, phone, first/last name and created_at. (GraphQL port of the legacy REST POST /customers.json.)
- ActionAdd metafield to customer
Add (set) a metafield on a Shopify customer, with the customer as the metafield owner. Inputs: Customer ID, Namespace, Key, Type (default single_line_text_field), Value. Returns the created/updated metafield's id, namespace, key, type, value.
- ActionAdd metafield to product
Adds a metafield to the specified product.
- ActionAdd or update customer
Creates a new customer if the email does not exist, otherwise updates the existing customer.
- ActionAdd product image
Adds a new product image from the image at the specified URL.
- ActionAdd tags to customer
Adds one or more tags to the customer with the specified email. An error occurs if more than one customer is found. Existing tags on the customer are not removed.
- ActionAdd tags to order
Adds the given comma-separated tags to a Shopify order (GraphQL Admin API tagsAdd mutation). Existing order tags are preserved; tagsAdd merges new tags onto the current set. Inputs: Order ID (numeric REST id, converted to a gid://shopify/Order GID), Tags (comma-separated). Returns the order GID (id) and the full resulting tag list (tags).
- ActionAdd transaction to order
Add a transaction to an order. Captures payment for the order's authorized amount. Inputs: Kind (default capture), Amount, Currency, Parent Transaction ID, plus the Order ID setting. Returns the transaction id, kind, status and order id.
- ActionApply gift card adjustment
Apply an adjustment (credit) to a Shopify gift card's balance. Inputs: Gift Card ID, Amount, optional Note. Returns the resulting credit transaction id, note, amount, creation time, and the gift card's numeric id.
- ActionChange product option names
Update a Shopify product's core fields and (re)name its product options. Inputs: Product ID plus optional Title, Body HTML, Handle, Type, Published scope, Tags, Template suffix, Vendor, and Option 1/2/3 name. Returns the updated product id, title, options (name+position), and updated_at.
- ActionChange product option names and values
Change a product's option names and their values. Inputs: Product ID, Option 1/2/3 Name, Option 1/2/3 Values (comma-separated). Returns the product id, title, and the resulting options array.
- ActionComplete draft order
Completes a draft order.
- ActionCreate product
Creates a new product.
- ActionCreate product variant
Creates a new variant on an existing Shopify product. Inputs: SKU, Price, Weight, Barcode, Option1-3, Compare At Price, Inventory Quantity, plus the Product ID setting. Returns the created variant id, sku, price, title, option1, product_id and inventory_item_id.
- ActionDelete item from location
Disconnect (deactivate) an inventory item from a location, removing the inventory level — GraphQL Admin API equivalent of DELETE /inventory_levels.json. Resolves the InventoryLevel id from inventory item + location, then runs inventoryDeactivate.
- ActionDelete product
Deletes an existing product.
- ActionDelete product variant
Deletes an existing product variant.
- ActionFind custom collection by name
Returns details for the specified custom collection. If the custom collection is not found, an error occurs.
- ActionFind customer by email
Find a Shopify customer by email address. GraphQL Admin API: customers(first:1, query:"email:...") connection query; returns the first matching customer's email and numeric (legacyResourceId) customer_id. Ported from REST GET /customers/search.json?query=email:.
- ActionFind location by name
Find a Shopify location by its exact name and return its Location ID. Fails if no location matches or if more than one location shares the name. (GraphQL Admin API port of the REST locations.json lookup.)
- ActionFind orders
Finds orders based upon search criteria. Emits the IDs of any matching orders. Use the "get order" action to fetch details for found orders.
- ActionFind product by title
Finds a product by a title search. An error occurs if zero or multiple match.
- ActionFind product variant by SKU
Find a single Shopify product variant by its SKU. Searches product variants for an exact SKU match, fails if zero or more than one variant matches. Returns the variant's id, sku, price, title, product id, inventory item id, and the full variant object.
- ActionFind product variant by title
Finds a product variant by a title search. An error occurs if zero or multiple match.
- ActionGet all product ids in custom collection
Returns all products (and their numeric ids) in a given custom collection.
- ActionGet Base URL
Returns the connected Shopify store's base URL and derives the store subdomain (store_name) from it. Pure-compute helper; makes no Shopify API call (nothing to migrate to GraphQL).
- ActionGet customer
Retrieve a single Shopify customer by Customer ID. Returns the customer's id, email, phone, state, first/last name, tags, created/updated timestamps, total spent, and orders count.
- ActionGet customer metafield value
Get a customer's metafield value by namespace and key. Returns its type, value, and numeric metafield id.
- ActionGet fulfillment order
Returns details for the specified order ID and fulfillment order ID. If either the order or fulfillment order is not found, an error occurs. Use the "get fulfillment order ids for order" action to fetch the fulfillment order ids for an order.
- ActionGet fulfillment order ids for order
Get the fulfillment order IDs for a Shopify order. Given a numeric Order ID, returns the count of fulfillment orders and their IDs.
- ActionGet inventory item
Returns details for the specified inventory item.
- ActionGet inventory quantity
Get available inventory quantity for an inventory item, optionally filtered to a single location. Migrated from REST GET /inventory_levels.json (inventory_item_ids/location_ids) to the GraphQL Admin API inventoryItem.inventoryLevels query. Returns inventory_levels list of {inventory_item_id, location_id, available, updated_at}.
- ActionGet locations
Retrieve the list of Shopify store locations (GraphQL Admin API equivalent of GET /locations.json). Returns each location's id, legacyResourceId, name, active state, and address. Ported from the legacy REST locations.json endpoint.
- ActionGet metafields for customer
Get all metafields for a Shopify customer by Customer ID. Returns the list of metafield records (id, namespace, key, value, type) for the customer.
- ActionGet metafields for product
Retrieve all metafields for a product (up to 250). Takes the numeric Product ID setting and returns the list of metafields (id, namespace, key, value, type).
- ActionGet order
Get an order from Shopify by its numeric Order ID. Reads the order via the GraphQL Admin API (order(id:) query) and returns its name, email, currency, created date, total price, financial status, fulfillment status, and the full order object.
- ActionGet product
Returns all fields for the specified product ID. If the product is not found, an error occurs.
- ActionGet product count: active products
Returns a count of active products.
- ActionGet product count: all products
Returns a count of all products.
- ActionGet product count: archived products
Returns the number of archived products in the Shopify store. GraphQL equivalent of GET /products/count.json?status=archived, using the productsCount query with search filter status:archived.
- ActionGet product count: draft products
Returns the number of draft products in the Shopify store (status:draft). GraphQL Admin API port of the REST GET /products/count.json?status=draft endpoint; outputs a single count field.
- ActionGet product metafield value
Returns the value of a single product metafield identified by Namespace and Key for the given Product ID.
- ActionGet product variant
Get a single Shopify product variant by its numeric Variant ID. Returns id, sku, price, title, inventory_quantity, product_id, inventory_item_id, and the full variant object.
- ActionGet product variant by SKU
Look up a single Shopify product variant by its SKU. Searches product variants for the given SKU, fails if zero or more than one match. Returns the matched variant's id, sku, price, title, product id, inventory item id, and the full variant object.
- ActionMove fulfillment order line item
Changes the location which is assigned to fulfill a number of unfulfilled fulfillment order line items.
- ActionOrder - add discount code
Append a discount code to an in-progress order object before it is submitted to Shopify. GraphQL-shaped: the discount entry carries DraftOrderAppliedDiscountInput fields (title/code, value, valueType FIXED_AMOUNT|PERCENTAGE, amount) so the assembled order is ready for the draftOrderCreate / draftOrderUpdate GraphQL mutation. Mirrors the REST builder that appended {code, amount, type} to order.discount_codes; same inputs (Code, Type, Amount, Order) and outputs (order, discount_codes).
- ActionOrder - add line item
Appends a line item to an in-memory order object (built by Order - initialize) before the order is created. Carries the same inputs (Variant ID, Quantity, Price, Total discount, Origin location ID, Is gift card, Fulfillment status). GraphQL port: the accumulated line item is shaped for the GraphQL draftOrderCreate lineItems input — Variant ID becomes a global ID (gid://shopify/ProductVariant/<id>) under variantId, quantity is an int, price/discount carried as appliedDiscount-friendly fields. Returns the updated order object and its JSON encoding, unchanged output contract from the REST builder.
- ActionOrder - add line item property
Adds a custom line-item property (name/value pair) to the LAST line item of an in-flight Shopify order object being assembled in the Order builder chain (initialize -> add line item -> add line item property -> create). Pure in-memory mutation of the draft order; no API call. Returns the updated order object and its JSON encoding. (No REST->GraphQL change applies: this op never called the REST Admin API; it is a local order-builder helper. The eventual draftOrderCreate/orderCreate happens in the separate 'Order - create' op.)
- ActionOrder - add line item tax line
Adds a tax line to the last line item of an in-memory order payload (builder, no API call). This op shapes the legacy order JSON structure; it does not call Shopify. Same inputs/outputs as the REST builder. Note: this never touched the Shopify REST API, so there is no GraphQL request equivalent — per-line-item user-supplied tax_lines are a REST Order-payload construct with no GraphQL counterpart (GraphQL computes tax lines server-side).
- ActionOrder - create
Creates a new order.
- ActionOrder - initialize
Create a Shopify order (GraphQL orderCreate). Builds an order from billing/shipping address, email, currency, tags, taxes and status settings and creates it via the GraphQL Admin API. Ported from the legacy REST order-initialize op; output keys order and order_id preserved (order_id is the created order's legacyResourceId).
- ActionRemove tags from customer
Remove one or more comma-separated tags from a Shopify customer (looked up by email). GraphQL Admin API port: finds the customer via a customers(query:"email:...") query, then calls the tagsRemove mutation with the customer GID and the tag list. Returns the customer's numeric id and remaining tags.
- ActionRemove tags from order
Removes the given comma-separated tags from a Shopify order (by Order ID). Uses the GraphQL Admin API tagsRemove mutation; tags not present are ignored. Returns the order id and its remaining tags.
- ActionSend customer invite
Sends an account invite to a customer specified by their email address.
- ActionTwo-way sync add or update a customer
Two-way sync: find a Shopify customer by email (or by the previously mapped customer id) and update it, otherwise create a new customer. Sets email, name, phone, note, tags, marketing consent and a single address. GraphQL Admin API port of the legacy REST customers create/update flow. Returns the customer id and updated_at.
- ActionUpdate customer
Updates an existing customer.
- ActionUpdate inventory item
Updates a Shopify inventory item (sku, cost, tracked, country code of origin, harmonized system code). Takes the numeric Inventory Item ID.
- ActionUpdate inventory quantity
Set the absolute available inventory quantity for an inventory item at a specific location. GraphQL inventorySetQuantities mutation (name: available) replacing the REST inventory_levels/set.json endpoint. Returns the resulting available quantity, inventory item id, and location id.
- ActionUpdate order
Update an existing Shopify order's financial status by Order ID. Returns the order's numeric id, name, updated timestamp, and financial status.
- ActionUpdate order as fulfilled
Marks an order's fulfillment order as fulfilled by creating a fulfillment, optionally attaching tracking number/company and notifying the customer. GraphQL fulfillmentCreateV2 mutation (replaces REST POST /fulfillments.json).
- ActionUpdate order line item as fulfilled
Creates a fulfillment for an order's fulfillment order (optionally a specific line item) with tracking info, via the GraphQL fulfillmentCreateV2 mutation. Ported from the REST POST /fulfillments.json call.
- ActionUpdate product
Update an existing product in Shopify (GraphQL Admin API, productUpdate mutation). Updates title, description, vendor, product type, tags, and/or status on the product identified by the Product ID setting; only provided fields are changed. Returns the product id, title, handle, status, updated timestamp, and admin GraphQL id.
- ActionUpdate product variant
Updates an existing variant of a Shopify product — its price, compare-at price, SKU, barcode, weight and option values. Fields left blank keep their current values.
No trigger or action matches that. Ask your agent to add it: it reads the API documentation and builds what you describe.
Not listed?
Need a trigger or action that is not here?
Ask your agent. Describe what you need in plain language and it reads the Shopify API documentation, builds the operation at whatever depth the API allows, tests every branch and ships it. The list above is what exists today, not the limit.