Skip to content
Try Free →

How to connect Shopify to AskVault

Last updated: · 4 min read

What this integration unlocks

Connecting Shopify enables one working skill and one that is not finished:

  • wismo_order_status. "Where is my order?" answered automatically. Live lookup against the Shopify Orders API. Tracking link and status.
  • 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

  1. In AskVault, open Automation > 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_products, read_orders, read_online_store_pages, read_legal_policies. Read-only. (Rolling out: once you turn on an order-changing skill, Shopify also asks you to approve write_orders.)
  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

Read-only by default:

  • read_products for the product-catalog Q&A skill.
  • read_orders for order lookups. The bot checks the shopper against the email or phone number on the order itself, so AskVault does not ask for access to your customer records.
  • read_online_store_pages and read_legal_policies so your store's pages and policies can be added to the bot's knowledge.

With these scopes the bot cannot create orders, refund, change shipping addresses, or modify any data in your Shopify store. Those requests go to your team through escalate_to_human, which is on by default on Growth and above. Rolling out, not yet switched on: when you turn on an order-changing skill (Fix Shipping Address or Cancel & Refund Order, or Tag Order), connecting Shopify also asks you to approve write_orders. AskVault never asks for write access to products or customers.

Let shoppers fix or cancel an order (rolling out)

Two optional skills, both off until you turn them on under Automation > Skills (Growth and above):

  • Fix Shipping Address (Shopify) changes the delivery address while Shopify still shows the order as Unfulfilled. Same country only: a different country changes tax and shipping, so the bot hands that to your team.
  • Cancel & Refund Order (Shopify) cancels the order with Shopify's own cancellation and asks Shopify to refund the full amount to the original payment method, restock the items and send its order-cancelled email. Unpaid orders (except bank deposit or money order) are cancelled with nothing to refund, and for an order that was only authorized, Shopify is asked to release the hold.

After you turn either one on and save, the skill panel shows Reconnect Shopify. Reconnect once and approve write_orders; until then the bot says it can't change the order and offers your team.

Both work only on an order the shopper has proven is theirs (the email used at checkout or, for an order placed without one, the full phone number on the order), only while Shopify still shows the order as Unfulfilled, and only within 60 minutes of checkout by default. Shopify can't see a warehouse or shipping app that has already picked the order up, so keep the window short if yours works fast. To change the window, open the skill's settings and set {"window_minutes": 120} (any number of minutes up to 7 days).

Before anything changes, the shopper sees a card that says what will happen (for example, the refund amount), and nothing happens until they tap Yes. AskVault re-reads the order at that moment, so an order that moved on in the meantime is left alone.

The bot hands the request to your team instead of acting when the order was paid by bank deposit, money order or another manual method, already has a refund, is only partly paid, is being prepared or has shipped, was created by you (a draft order or point of sale), or is past the window. AskVault reports a cancellation only once Shopify shows the order as cancelled: if that hasn't happened a few seconds later, the bot tells the shopper the cancellation has been submitted and that the store will email them, and you get an alert to check the order. If Shopify gives no clear answer, the bot says your team will confirm, and you get the same alert. If Shopify refuses the cancellation, you get an alert and the bot tells the shopper it couldn't be cancelled automatically and that your team has been told. AskVault won't send a second cancellation for the same order within an hour of one Shopify accepted or didn't answer clearly: if the shopper asks again, the bot tells them it is being processed. An address change is reported only once the order shows the new address; if the order can't be read back to check, the bot says your team will confirm, and you get an alert.

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.
  • The phone number on the order. Used for guest checkouts that have no email on file. AskVault ignores spaces, dashes, brackets and the plus sign, then compares the last 10 digits of both numbers, or fewer if either number is shorter, but never fewer than 7. So the last 7 digits of the number are enough; a shorter fragment such as the last 4 digits never matches, and an order whose phone number has fewer than 7 digits cannot be unlocked by phone.

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.

Limits

  • Shopify API rate limits. Each order question makes a single Shopify lookup; Shopify's own rate limits apply.
  • 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.
  • What a lookup returns. Order status, fulfilment status and the tracking link. Not totals, items or shipping fees.

Compliance

The Shopify access token is stored encrypted at rest. AskVault never sees customer payment details; card data stays with Shopify.

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. If escalate_to_human is on, the bot can hand it to your team.

Order status looks out of date. The lookup reads what Shopify has at that moment. A recent carrier scan may not have reached Shopify yet.

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?

Order lookups return status and tracking only, so they do not quote amounts in any currency.

Can the bot create new orders?

No. AskVault has no skill that creates orders. 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)?

Markets regions belong to one Shopify store, so one connection covers them. Use separate workspaces only if you want different knowledge for each region.

How fast is the order lookup?

An order lookup waits on Shopify's API, so the customer sees the bot "typing" briefly before the answer appears.

Was this page helpful?