E-commerce & marketplaces
Shopify setup guide
Online store and point of sale. Agents look up orders and products, update order notes, tags and shipping addresses, mark orders shipped with tracking, edit product copy and prices, adjust stock, create discount codes, and cancel or refund orders.
Agents look after orders, products and customers in your store.
Ways to connect
Company admins connect apps, on the Integrations page in Everdeck: open Shopify, choose one of the ways below, follow its steps and fill in its fields. Everdeck checks what you enter before it saves anything, and asks you to confirm it’s you (your second factor) before you type any secret. How connecting works.
Shopify can be connected 2 ways.
Your Dev Dashboard app (client ID and secret)
Your OAuth app.
This way uses the client ID and secret of an OAuth app you create for Shopify. There’s no sign-in page: Everdeck asks Shopify for a token with them.
- Sign in to the Dev Dashboard (https://dev.shopify.com/dashboard/) with the Shopify organization that owns the store, as the store owner or a staff member with the App development > Develop permission.
- Open Apps, click Create app, choose Start from Dev Dashboard and name it (for example "Everdeck").
- On the Versions page fill in App URL (the app has no admin screen, so your store's web address is fine), choose the newest Webhooks API version, add the scopes listed below, then click Release.
- Click Install app, pick your store and approve the install.
- Open the app's Settings, copy the Client ID and Client secret from the Credentials card into the form, and enter the store's myshopify subdomain (custom domains do not work for the Admin API).
- Optional, to start work when an order is placed, changes or is cancelled, or a refund or return request comes in: save the connection, add the Shopify trigger on the Intake page and copy the address it gives you.
- In the Shopify admin open Settings > Notifications > Webhooks, click Create webhook, choose the trigger's event (Order creation, Order update, Order cancellation, Refund create or Return request), format JSON and the newest API version, paste the address and save. Copy the key shown on that page ("Your webhooks will be signed with ...") into Webhook signing key. Each trigger has its own address, so create one webhook per trigger.
| Field | What to enter |
|---|---|
| Store subdomain (the part before .myshopify.com) | Text. For example your-store. |
| Webhook signing key (only for Shopify triggers) (optional) | A secret: Everdeck saves it encrypted and never shows it again. Needed only for webhooks you add under Settings > Notifications > Webhooks in the Shopify admin (step 7): the key shown there. Leave it empty otherwise. |
The scopes Everdeck asks for:
read_orderswrite_ordersread_customersread_productswrite_productsread_inventorywrite_inventoryread_locationsread_merchant_managed_fulfillment_orderswrite_merchant_managed_fulfillment_ordersread_discountswrite_discountsread_returns
Disconnecting deletes the access token Everdeck saved for this connection. The OAuth app's client ID and secret stay saved under OAuth apps in Everdeck and keep working at Shopify until you delete the app or rotate its secret there.
Admin API access token (custom app created in the Shopify admin before 2026)
API key.
- Use this only if you already have a custom app that was created in the Shopify admin; new ones can't be created any more (use the Dev Dashboard method instead).
- In the Shopify admin open the custom app under Settings > Apps > Develop apps and check that its Admin API scopes include the ones listed below.
- Paste the Admin API access token (shpat_...). Shopify shows it only once, so if you no longer have it, create a Dev Dashboard app instead.
- Optional, to start work when an order is placed, changes or is cancelled, or a refund or return request comes in: save the connection, add the Shopify trigger on the Intake page and copy the address it gives you. Then in the Shopify admin open Settings > Notifications > Webhooks, click Create webhook, choose the trigger's event (Order creation, Order update, Order cancellation, Refund create or Return request), format JSON and the newest API version, paste the address and save. Copy the key shown on that page ("Your webhooks will be signed with ...") into Webhook signing key. Each trigger has its own address, so create one webhook per trigger.
| Field | What to enter |
|---|---|
| Store subdomain (the part before .myshopify.com) | Text. For example your-store. |
| Admin API access token (starts with shpat_) | A secret: Everdeck saves it encrypted and never shows it again. Where to find it. |
| Webhook signing key (only for Shopify triggers) (optional) | A secret: Everdeck saves it encrypted and never shows it again. Needed only to start work from Shopify webhooks (step 4): the key shown under Settings > Notifications > Webhooks in the Shopify admin. Leave it empty otherwise. |
The scopes Everdeck asks for:
read_orderswrite_ordersread_customersread_productswrite_productsread_inventorywrite_inventoryread_locationsread_merchant_managed_fulfillment_orderswrite_merchant_managed_fulfillment_ordersread_discountswrite_discountsread_returns
Disconnecting deletes the credentials Everdeck saved, but Everdeck can't revoke them: the key, token or password itself keeps working at Shopify until you delete or rotate it there.
What agents can do
An agent uses an action only when its charter grants it, on the agent’s Tools tab, where you choose whether each one runs by itself (Auto), asks first or never runs. Each action has a risk tier: tier 3 actions, which customers or the public see, ask first unless you choose otherwise, and tier 4 actions (money, deleting things, access) always need a person. How tools and tiers work.
Actions marked Reads outside content return things people outside your company may have written. Agents treat what they read as information, never as instructions, and their riskier actions later in the same session need approval.
-
Search ordersTier 0 · ReadReads outside content
shopify_search_ordersFind orders with Shopify search syntax, newest first by default. Returns id, order name (#1001), dates, financial and fulfillment status, total, email, customer and tags. Without the read_all_orders scope only orders from the last 60 days are visible.
-
Read an orderTier 0 · ReadReads outside content
shopify_get_orderRead one order with its customer (orders count, total spent, tags), shipping address, line items, open fulfillment orders (ids needed by create_fulfillment), shipments with tracking, refunds and payment transactions.
-
Search productsTier 0 · ReadReads outside content
shopify_search_productsFind products with Shopify search syntax. Returns id, title, handle, status, vendor, type, tags, total stock, store URL and up to 10 variants with SKU, price, compare-at price, stock and inventory item id.
-
Read a product and its stock by locationTier 0 · ReadReads outside content
shopify_get_productRead one product with its description, SEO fields and up to 50 variants, each with price and the available and on-hand quantity at up to 3 locations (location ids are needed by adjust_inventory).
-
Update an order's note, tags, contact or shipping addressTier 2 · ReversibleReads outside content
shopify_update_orderChange an order's staff note, tags, email, phone or shipping address. Only the fields you pass change. tags replaces the whole tag list, so read the current tags with get_order first. Nothing is sent to the customer.
-
Adjust available stockTier 2 · ReversibleReads outside content
shopify_adjust_inventoryAdd to or take from the available quantity of one variant at one location, with a reason. Get the inventory item id and location id (and the current available quantity) from get_product.
-
Mark items shipped with trackingTier 3 · ExternalReads outside content
shopify_create_fulfillmentFulfil a fulfillment order (all remaining items, or the line items you list) with carrier and tracking details. With notify_customer true Shopify emails the customer a shipping confirmation.
-
Update product detailsTier 3 · ExternalReads outside content
shopify_update_productChange a product's title, description (HTML), tags, status, vendor, type or SEO title and description. Only the fields you pass change; tags replaces the whole list. Changes show on the storefront at once.
-
Change variant pricesTier 4 · Money or irreversibleReads outside content
shopify_update_variant_pricesSet the price and/or compare-at price of one or more variants of a product. Prices change on the storefront immediately.
-
Create a discount codeTier 4 · Money or irreversibleReads outside content
shopify_create_discount_codeCreate an order discount code (percentage or fixed amount off all items) that every customer can use, optionally once per customer, with a usage limit and end date.
-
Cancel an orderTier 4 · Money or irreversibleReads outside content
shopify_cancel_orderCancel an order, optionally refunding it to the original payment methods, restocking items and emailing the customer. Cannot be undone. Runs as a background job; check the order afterwards.
-
Refund an orderTier 4 · Money or irreversibleReads outside content
shopify_refund_orderRefund some or all line items and/or shipping to the original payment method, restocking returned items, with an optional note and customer email. Shopify works out the amounts.
What can start work
These events from Shopify can become tasks for your agents through Intake. How Intake works.
A new order was placed (topic ORDERS_CREATE).
Connect Shopify first. Then, on the Intake page, open Webhooks and sources, find the connection under Connections without an address yet and select Get its URL. Give that address to Shopify as the setup steps above describe: Everdeck shows it only once. Then, on the Rules tab, select New rule to say which requests become tasks and who gets them.
An order changed, including payment, fulfillment, edits and cancellation (topic ORDERS_UPDATED).
Connect Shopify first. Then, on the Intake page, open Webhooks and sources, find the connection under Connections without an address yet and select Get its URL. Give that address to Shopify as the setup steps above describe: Everdeck shows it only once. Then, on the Rules tab, select New rule to say which requests become tasks and who gets them.
An order was cancelled (topic ORDERS_CANCELLED).
Connect Shopify first. Then, on the Intake page, open Webhooks and sources, find the connection under Connections without an address yet and select Get its URL. Give that address to Shopify as the setup steps above describe: Everdeck shows it only once. Then, on the Rules tab, select New rule to say which requests become tasks and who gets them.
A refund was issued (topic REFUNDS_CREATE).
Connect Shopify first. Then, on the Intake page, open Webhooks and sources, find the connection under Connections without an address yet and select Get its URL. Give that address to Shopify as the setup steps above describe: Everdeck shows it only once. Then, on the Rules tab, select New rule to say which requests become tasks and who gets them.
A customer requested a return (topic RETURNS_REQUEST; needs read_returns).
Connect Shopify first. Then, on the Intake page, open Webhooks and sources, find the connection under Connections without an address yet and select Get its URL. Give that address to Shopify as the setup steps above describe: Everdeck shows it only once. Then, on the Rules tab, select New rule to say which requests become tasks and who gets them.
Testing, problems and disconnecting
Everdeck checks the connection when you save it. On the connection’s page in Integrations, Test checks it again at any time.
If Shopify later refuses the connection, for example because a key was deleted or a sign-in expired, the connection shows Needs attention on the Integrations page and the people who manage connections are told. Agents can’t use it until a company admin fixes it with Edit.
To stop agents using Shopify, open the connection and select Disconnect. Agents stop using it at once and its saved credentials are deleted. What else happens depends on how it was connected: each way above says.
Still stuck?
Email [email protected] and say what you were trying to do. Or browse every guide.