Serving Katy, Houston & surrounding areas • Licensed & Insured • 20+ Years (832) 359-2425
EVOTECH technician working inside a network cabinet
Fast EVOTECH reply

Start your EVOTECH request in under a minute.

1 minsimple request
Texaslocal and remote help
Inboxlead saved and emailed
Get a fast EVOTECH response Most requests only need name, phone, city, and service.
Choose a service and EVOTECH will guide the next step.
(832) 359-2425

EVOTECH uses your details only to reply, quote, schedule, or help with your requested service.

Shopify Admin + Storefront APIs · Chatbot integration

AI Chatbot Shopify Integration Built on the Right APIs and Webhooks

An AI chatbot Shopify integration is mostly plumbing: which Shopify API the bot reads, how its product knowledge stays current when you change a price mid-afternoon, how it proves a shopper owns an order before discussing it, and what it does when Shopify throttles a request. EVOTECH IT LLC designs that plumbing for your store, keeps the credentials on a server you control, and tests every path on a development store before the widget goes live.

Admin vs Storefront API splitCatalog sync by webhookVerified order lookupsHMAC-checked deliveriesDev-store testing first

Shopify gives a chatbot two APIs, and each has a different job

Most chatbot vendors describe their Shopify connection as a single switch. Underneath, a well-built integration talks to Shopify through two separate interfaces with different credentials, different permissions and different failure modes. Getting that split right is the first engineering decision, and it sets the ceiling on what the bot can safely do.

The Admin API is the back-office interface. It can read the full catalog including unpublished products, inventory by location, orders, customers, fulfillments and refunds. Shopify now treats its GraphQL Admin API as the primary interface and has marked the older REST Admin API as legacy, so new integrations should be written against GraphQL. Admin access is powerful, which is exactly why it must never be reachable from a shopper’s browser.

The Storefront API is the customer-facing interface. It exposes what a visitor could see anyway, such as published products, prices in the shopper’s market and carts, and it is designed to be called with a lower-privilege token. On an Online Store theme, the theme’s own cart endpoints also let the widget add items to the cart the shopper already has open.

Chatbot taskWhere the answer comes fromReason
Product, sizing and material questionsA search index built from Admin API exportsFaster than a live query on every message, and it can include the metafields you choose
Is this variant in stock right now?A live inventory read at answer timeStock moves too quickly to trust a cached number
Add an item to the shopper’s cartTheme cart endpoints or Storefront API cart mutationsThe cart stays in the shopper’s own session
Where is my order?Admin API, called only by our server after identity checksOrder data is personal and cannot be exposed to the browser
Create discount codes or edit ordersUsually not granted at allA persuasive conversation should not be able to trigger money-losing actions

Treat the table as a default that bends to your store. A store with a few dozen products and no subscriptions may skip the search index and query live; a store with thousands of variants almost always needs one.

Requesting the narrowest access scopes that still work

Every Shopify app, including a custom app built only for your store, declares access scopes such as read_products, read_inventory, read_orders and their write counterparts. Shopify shows the store owner exactly which scopes are requested at install. We request the smallest set the agreed features need and document why each one is present.

Three scope details regularly catch teams out:

  • Order history depth. By default an app can read only orders from the last 60 days. Older orders require Shopify’s read_all_orders permission, which has to be requested separately. For a support bot, recent orders cover most status questions, and anything older is better routed to a person anyway.
  • Customer data. Shopify places personal details such as names, emails, phone numbers and street addresses in a protected customer data category, with added obligations for apps that use them, especially apps listed publicly. If the bot only needs to confirm that an email matches an order, it does not need broad customer read access; the order itself carries the email.
  • Write scopes. Permissions like write_orders or write_discounts turn a helpful assistant into something that can change money. We leave them out unless a specific, reviewed feature needs one, such as letting a shopper correct a shipping address before fulfillment, and even then the change runs through server-side rules, not the model’s judgment.

How a custom app is created depends on your plan and on Shopify’s current developer tooling, which Shopify has reorganized more than once. We confirm the present route during scoping. The principle does not change: you install the app, you can see its permissions, and uninstalling it revokes access immediately. Our service subscribes to the app/uninstalled webhook so it notices and stops calling Shopify at once.

Keeping the bot’s product knowledge in step with the store

A chatbot that advertises a sale after it ended, or recommends a discontinued colorway, damages trust faster than having no bot. The cause is nearly always a stale copy of the catalog. We build the sync in three layers.

  1. Initial load with a bulk operation. Rather than paging through thousands of products one request at a time, the Admin API can run a bulk query in the background and return a downloadable JSONL file of products, variants, collections and the metafields we select. We transform that file into the chatbot’s search index: one record per product with its variants, options, publication status and the plain-language description shoppers actually read.
  2. Incremental updates by webhook. We subscribe to product create, update and delete events, plus inventory level changes where stock affects answers. Each event rewrites one record instead of rebuilding everything, so an edit reaches the bot shortly after Shopify delivers the event.
  3. Nightly reconciliation. Webhook delivery is dependable but not guaranteed; deliveries fail and subscriptions can lapse. A scheduled job compares update timestamps in Shopify against the index, repairs any drift and reports how many records it corrected. A rising correction count is our early warning that webhook delivery needs attention.

Two rules sit on top of the sync. Availability and price are re-checked live at the moment the bot quotes them, even when the index holds a value, because those are the facts shoppers act on. And products that are unpublished from the Online Store channel, or reserved for wholesale, are filtered out during indexing rather than left for the language model to ignore. What never enters the index can never be mentioned.

Selling in several markets or currencies? The index stores base product data, and prices are resolved per market at answer time using the Storefront API’s country context. Otherwise a shopper in Canada could be quoted a US price that checkout will never charge.

Order status answers that never expose someone else’s order

“Where is my order?” is the most common question a store chatbot receives and the riskiest one to answer carelessly. Order numbers are sequential and trivial to guess. If the bot returns an item list or a delivery address to anyone who types #1052, it has become a data leak with a friendly tone.

We use one of three verification patterns, chosen with you:

  • Order number plus contact detail. Our server fetches the order by its name and compares the email or phone on the order with what the shopper typed, after normalizing case and formatting. Only a match unlocks status, carrier and tracking. Several failed attempts from one session pause further lookups.
  • Signed-in customers. When the shopper is logged in to your store’s customer account, the widget passes a verified session to our server, and the bot lists that customer’s recent orders without asking for anything.
  • Emailed confirmation link. For anything sensitive, such as a request to change the delivery address, the bot sends a short-lived link to the email on the order and continues only after it is opened.

Even after verification the bot shares the minimum: fulfillment status, carrier, tracking number and whatever delivery estimate the carrier has supplied to Shopify. It does not read back full addresses or payment details, and it does not invent a delivery date when none exists. Every Shopify order has its own status page, and the bot links to it as the authoritative view.

What happens to a Shopify webhook after it reaches our server

Webhooks drive the catalog sync, order notifications and uninstall handling, so the receiving endpoint gets the same care as the conversation layer. Each delivery passes through a fixed sequence:

  1. Verify the HMAC signature Shopify sends in the X-Shopify-Hmac-Sha256 header, computed over the raw request body with the app’s secret. Anything that fails is dropped and logged.
  2. Record the delivery’s webhook ID. Shopify can send the same event more than once, so a repeated ID is acknowledged and ignored rather than applied twice.
  3. Place the payload on a queue and respond with success immediately. Shopify expects a quick answer, and slow handlers are treated as failed deliveries and retried.
  4. Process from the queue, fetching fresh data from the Admin API when the payload might be outdated. Events can arrive out of order, so the handler compares the resource’s updated timestamp before overwriting anything newer.

Shopify retries failed deliveries for a limited window and can remove a subscription after sustained failures. Our monitoring alerts on a climbing failure rate well before that point, and the nightly reconciliation fills any gap left while an endpoint was down.

Query cost, throttling and Shopify’s quarterly API versions

Shopify’s GraphQL Admin API does not simply count requests. Each query has a calculated cost based on how much data it asks for, and an app draws from a bucket of cost points that refills at a fixed rate each second, with larger allowances on higher Shopify plans. A chatbot that runs an expensive nested query for every message can drain that bucket during a traffic spike, and then even simple order lookups start failing.

We deal with this in the design rather than relying on retries:

  • Queries ask only for the fields the answer needs. A stock check does not pull descriptions and image URLs.
  • Product questions are served from the index, so a busy sale weekend does not multiply Admin API calls.
  • The client reads the throttle status Shopify returns with each response and slows down before the bucket empties, then backs off and retries if it is throttled anyway.
  • If Shopify stays unavailable, the bot admits the lookup is unavailable at the moment and invites the shopper to leave an email for a follow-up. It never fills the gap with a guess.

Versioning is the other standing obligation. Shopify publishes a new API version every quarter, named by year and month, and supports each one for at least twelve months. Our integration pins an explicit version, and ongoing maintenance includes testing against newer versions before the pinned one is retired, so a deprecation notice never turns into a silent breakage.

Where the chat widget can live on a Shopify storefront

Putting a widget on every page sounds trivial, but Shopify offers several routes with very different maintenance costs.

MethodWorks onTrade-off
App embed block from a theme app extensionOnline Store 2.0 themesSwitched on in the theme editor and survives theme updates; the app must be built with Shopify’s CLI tooling
Snippet pasted into theme codeAny themeQuick, but lost whenever the theme is replaced or its developer ships an update
Component in a headless storefrontHydrogen or custom front endsFull control; your storefront team owns the release cycle
Checkout and post-purchase pagesGoverned by Shopify’s checkout extensibility rulesTightly restricted, and some checkout steps accept extensions only on Shopify Plus

For most themes we recommend the app embed, because your theme files stay untouched. Checkout is deliberately locked down by Shopify for security and speed, so the bot usually lives on product, collection, cart and order-status pages, and pre-purchase doubts are resolved before the shopper reaches the payment step.

Page speed matters on a storefront. The widget script loads after the main content, never blocks rendering, and the heavier chat interface downloads only when a shopper actually opens it.

EVOTECH’s build sequence, from scoping call to live store

  1. Scoping call. Free of charge, over phone or video. We review catalog size, the apps you already run for reviews, subscriptions or returns, the questions that dominate your support inbox, and whether you use an Online Store theme or a headless front end.
  2. Written scope. A fixed-scope written quote naming every chatbot action, the Shopify scopes each needs, the order verification method, and what is deliberately excluded.
  3. Development store build. We build against a Shopify development store stocked with representative products, so nothing touches real customers while the conversation logic takes shape.
  4. Adversarial testing. We try to break it: guessed order numbers, prompts fishing for discounts, a product unpublished seconds earlier, a webhook replayed twice, a throttled API. Each case has its expected outcome written down before the test runs.
  5. Install on your store. You install the app and approve its scopes yourself. The widget ships switched off, the sync runs, and we compare the index against your live catalog before turning it on.
  6. Review and tune. After launch we go through unanswered questions and failed lookups with you, then adjust the index, the wording and the handoff rules.

Shopify is often one piece of a larger stack. If subscriptions or invoices run through Stripe rather than Shopify Payments, our Stripe chatbot integration page covers that side, and WordPress stores follow the WooCommerce integration pattern instead. Wider AI integration work, such as feeding chat outcomes into a CRM, is scoped the same way. For context on who builds it: our company has been doing web and software work for over twenty years, Google reviewers rate it 5.0, and its Houston-area staff handles Shopify projects entirely remotely, coast to coast.

Frequently asked questions

How is this different from a chatbot app listed in the Shopify App Store?
Listed chatbot apps are shared products with fixed features and fixed permissions. We build an integration for your store alone: the conversation design, the access scopes, the order verification rules and the catalog sync all reflect your products and policies. You install it yourself and can pull its access whenever you choose by uninstalling.
How quickly does the bot notice a price or stock change?
Price and stock are checked live whenever the bot quotes them, so those answers reflect Shopify at that moment. Descriptions and other product details update when Shopify delivers the product update webhook, normally soon after you save, and a nightly reconciliation job repairs anything a missed delivery left behind.
Can the chatbot answer questions about older orders?
By default Shopify lets an app read only the last 60 days of orders. Reaching further back needs the read_all_orders permission. Many stores decide that older orders should go to a person anyway, since those conversations are usually about warranties or returns rather than tracking.
Will it work with our subscription, bundle or loyalty apps?
Often, but it depends on the app. Some expose their data through Shopify metafields or a documented API; others keep it private. During scoping we check each installed app and tell you which questions the bot can answer and which it should hand straight to your team.
Can the bot hand out or create discount codes?
It can mention codes you have deliberately made public, such as a newsletter welcome offer. We do not give it the ability to generate new codes on request, because a determined shopper would eventually talk it into one. Any exception is written into the scope and enforced by server rules, not by the model.
What does the shopper see if Shopify is having an outage?
The bot states that it cannot reach the store’s systems right now, offers to collect an email so your team can follow up, and still answers general questions from its index. It never pretends to have checked stock or order status when it has not.

Connect a chatbot to your Shopify store properly

Call (832) 359-2425 or book a free consultation by phone or video. We will review your catalog, apps and support questions, then send a fixed-scope written quote for the integration.

Book a Free Consultation
EVOTECH technician working inside a network cabinet
Before you go

Ready for EVOTECH to help?

Before you leave, send the quick version. We will review the page you came from and reply with the clean next step.

1 minsimple request
Texaslocal and remote help
Inboxlead saved and emailed
Send the quick request No long questionnaire. A real EVOTECH lead comes straight to the inbox.
Choose a service and EVOTECH will guide the next step.
(832) 359-2425

EVOTECH uses your details only to reply, quote, schedule, or help with your requested service.

Need a fast quote?
Call, message, or request your free estimate now.
Fast quote today • Same-day response available
Call Now: 832-359-2425 Chat on WhatsApp Book Appointment
Free Estimate Request
Thank you. EVOTECH received your request.
Fast quote • Call, WhatsApp, or send your request now
Free Estimate Available
Send your details now and EVOTECH will contact you quickly with pricing.
Thank you. EVOTECH received your request.
Call 832-359-2425