Skip to content
Try Free →

How to connect Shopify to AskVault

Last updated: · 4 min read

What this integration unlocks

Two skills become available once Shopify is connected:

  • wismo_order_status. "Where is my order?" answered automatically. Live lookup against the Shopify Orders API. Tracking link, status, ETA. About 30 to 50% of e-commerce support volume.
  • cart_recovery. A skill the bot can call mid-conversation to offer a policy-approved concession (free shipping, extended returns, a small discount) on a visitor's cart. It's an in-chat tool, not an automated abandoned-cart outreach campaign — see Cart recovery flow below for its current limits.

Both skills are on Growth and above. Growth+

Setup

Four minutes end-to-end.

  1. In AskVault, open AI Agents > Skills > wismo_order_status. Click Enable.
  2. Click Connect Shopify. OAuth flow opens.
  3. Sign in to your Shopify admin. Approve the requested scopes: read_orders, read_customers, read_products. Read-only.
  4. You're redirected back to AskVault. Connection shows active.
  5. Test. Open your chat widget, ask "where's my order?", provide a known test order number. Bot should return live status.

Scopes requested

Strictly read-only:

  • read_orders for order lookups.
  • read_customers to verify the requesting customer matches the order.
  • read_products for the product-catalog Q&A skill.

No write scopes. The bot cannot create orders, refund, change shipping addresses, or modify any data in your Shopify store. Mutating actions escalate to a human.

Customer identification

The bot always needs the order number, plus one of the following to prove ownership before it returns tracking details:

  • Email match. If the order has an email on file, it must match what the customer provides.
  • Last 4 digits of the order number. Used as a fallback for guest checkouts that have no email on file.

This ownership check isn't a configurable setting — it's built into the skill so the bot never leaks tracking info to someone who's just guessed an order number.

Cart recovery flow

cart_recovery is a skill the bot can call during an active conversation — it isn't a proactive, automated abandoned-cart campaign. There's no widget-side hesitation detection (time-on-cart-page, incomplete-checkout timers) and no checkout.abandoned webhook from Shopify wired up today, so nothing currently triggers this skill on its own.

When the skill does fire, it looks up the visitor's cart via Shopify before offering a concession (free shipping, extended returns, or a capped discount) gated by a written policy. Current limitation: the cart lookup itself is a stub in this build — it always returns an empty cart, so the skill responds with a configuration error rather than a real offer today. Wiring the live Shopify cart lookup is on the roadmap.

Multi-store setup

Each Shopify store needs its own AskVault workspace and OAuth connection. Cross-store lookups aren't supported (one workspace, one store). For a multi-brand retailer with 3 Shopify stores, you'd have 3 AskVault workspaces with 3 separate Shopify connections.

Shopify Plus

Shopify Plus customers can additionally enable:

  • Pre-purchase agent inside the cart UI. Embed the AskVault widget into the checkout extension. Available on Shopify Plus with a custom checkout extension build.
  • B2B order lookups. Wholesale order data is accessible with the standard read_orders scope.

Limits

  • Shopify API rate limits. 40 requests per app per minute on standard stores, higher on Plus. AskVault batches lookups where possible.
  • Order history depth. The read_orders scope AskVault requests only returns orders from the last 60 days (a Shopify platform limit for standard apps). There's no reconnect flow to request read_all_orders today.
  • Multi-currency. The bot quotes prices in whatever currency the customer's storefront is configured for. If a CA visitor lands on your CA-priced store, prices quote in CAD.

Compliance

The OAuth refresh token is stored encrypted at rest. AskVault never sees customer payment details (PCI scope stays with Shopify). For audit, every order lookup is logged with the email/order ID queried and the result returned.

Common pitfalls

Bot says "I couldn't find that order". Customer's order number is missing the # prefix, has a typo, or was placed on a different store. Bot offers to escalate.

Order status shows stale. Shopify Admin API caches data for up to 60 seconds. If the carrier just updated, wait briefly and retry.

OAuth redirects to wrong store. You're signed into multiple Shopify accounts in your browser. Sign out of all except the one you want, then retry.

cart_recovery always errors out. Expected today — its underlying Shopify cart lookup is a stub in this build (see Cart recovery flow above).

FAQ

Can the bot apply discount codes?

Not Shopify discount codes directly. The discount_negotiator skill (Business-tier) applies Stripe coupons within a written policy, and requires the Stripe integration rather than Shopify.

Does this work with Shopify multi-currency stores?

Yes. The bot quotes order totals and shipping fees in the customer's storefront currency.

Can the bot create new orders?

No. Read-only access prevents this by design. If a visitor wants to place an order via chat, escalate to a human or direct them to the storefront.

What about Shopify Markets (regional storefronts)?

Each region's storefront has its own OAuth flow. Connect each one to a separate AskVault workspace if regional knowledge bases differ. Otherwise one workspace with global content works fine.

How fast is the order lookup?

About 600 to 1,200 ms end-to-end including Shopify API latency. The customer sees the bot "typing" for 1 to 2 seconds before the answer appears.

Was this page helpful?