Most calls to an online store ask the same two things: "Where's my order?" and "Do you have this in stock?" An AI receptionist for Shopify answers both by checking your store while the caller is on the line.
This guide shows you how to set it up. It takes about 20 minutes, and you don't need to write any code. You'll create a small private app in Shopify, set up your agent in Upfirst, and add three custom actions that connect the two.
If you use Claude or ChatGPT, it can do most of the Upfirst part for you. Jump to the setup instructions for Claude or ChatGPT if you'd rather skip the manual steps.
Here's the full video walkthrough:
What your Shopify AI receptionist can do
Once it's connected, your receptionist can:
- Look up an order by order number and tell the caller whether it has shipped
- Offer the tracking number when an order is on the way
- Check whether a product is in stock, by size or option
- Quote the current price for each size or option
- Tell callers when something is sold out or almost gone
It reads your store live on every call, so the answers match what's in Shopify right now. It only has read access, so it can't change orders, prices or inventory.
You still get the same call summaries as with any Upfirst agent. Every call shows up with a transcript and summary, and you can have call summaries sent to you or your team by email or text.
What you need before you start
- A Shopify store where you're the owner or have permission to create apps
- An Upfirst account. It's a 14-day free trial, and you don't need a credit card.
- About 20 minutes
- Optional: Claude or ChatGPT, to set up the Upfirst part for you
Part 1: Create a private app in Shopify
Shopify uses apps to control what outside tools can see. You'll make a private app just for your own store. You're not publishing anything, so the app's name and details don't matter much.
- Log in to Shopify. Click Settings at the bottom left, then Apps.
- Click Build apps in Dev Dashboard.
- Click Create an app and give it a name, like "AI Receptionist."
- Create a version of the app. Add an app URL here. Any URL works, such as your store's address, since the app is only for your store.
- Click Select scopes to choose what your receptionist can see. Search for and check these three:
- read_orders, so it can check order status
- read_inventory, so it can check stock
- read_products, so it can find products and prices
- Click Done, then Release the version.
- Go to Settings and copy your Client ID and Client secret. Save them somewhere safe. You'll paste them into Upfirst later.
- Go to Overview at the top left and install the app on your store.
Treat your Client secret like a password. Paste it only into Upfirst, never into an email or a chat with an AI assistant.
That's everything on the Shopify side.
Part 2: Set up your agent in Upfirst
If you don't have an account yet, start a free trial of the Upfirst AI receptionist. Setup asks a few questions. You can add your website so it pulls in some basics, then pick a voice, a greeting and a phone number.
You can give customers that number directly, for example on your store's contact page. Or you can forward your existing number to it. Our guide to call forwarding covers how to do that with most phone carriers.
On the Agents page, you'll find the basics, like your greeting, voice and speaking speed. Most of the Shopify setup happens in two other places: Custom Actions and Training.
Part 3: Connect Upfirst to your store
This part adds three custom actions and two training entries. You can let Claude or ChatGPT do it, or set it up by hand.
Option A: Let Claude or ChatGPT set it up (recommended)
Upfirst has a connector for Claude and a plugin for ChatGPT. Once it's installed, the AI can create the custom actions and training on your account.
- Install the Upfirst connector for Claude or the Upfirst plugin for ChatGPT, and sign in to your Upfirst account.
- Copy the setup prompt at the bottom of this post.
- Replace
YOUR-STOREwith your store's address. You'll find it in Shopify under Settings, then Domains. It ends in.myshopify.com. - Paste it into a new chat and send it. The AI reads our Shopify setup guide and follows it step by step.
The AI won't ask for your Client ID or Client secret. It leaves two placeholders in their place, PASTE_YOUR_CLIENT_ID_HERE and PASTE_YOUR_CLIENT_SECRET_HERE. You'll replace those yourself in the next section, so your secret never goes into a chat.
Once it's done, skip ahead to paste in your Client ID and Client secret.
Option B: Set it up by hand
In Upfirst, go to Custom Actions and click Add custom action. You'll create three actions. The exact settings for each one, including the request bodies, are in our Shopify setup guide.
1. Get Shopify Token
This action runs at the start of every call. It asks Shopify for a fresh access token, so your receptionist always has one that works. Shopify's tokens expire after 24 hours, and getting a new one on each call means you never have to replace it.
- When it runs: when the call starts
- Method and URL: POST to
https://YOUR-STORE.myshopify.com/admin/oauth/access_token - Header:
Content-Typeset toapplication/json - Request body: your Client ID and Client secret (see the setup guide for the exact format)
- Output:
access_tokenonly
2. Check Order Status (Shopify)
- When it runs: during the call
- Description: "When a caller asks about an existing order, like where it is, whether it shipped, or for a tracking number, ask for their order number, then run this action."
- Variables:
order_number, which comes from the caller, andaccess_token, which comes from Get Shopify Token - Method and URL: POST to
https://YOUR-STORE.myshopify.com/admin/api/2026-07/graphql.json - Headers:
Content-Typeset toapplication/json, andX-Shopify-Access-Tokenset to{{access_token}}
3. Check Product Stock and Pricing (Shopify)
- When it runs: during the call
- Description: "When a caller asks whether a product is in stock, what sizes or options it comes in, or how much it costs, ask which product they mean, then run this action. Each option has its own price and stock. If availableForSale is false for an option, that option is sold out."
- Variables:
product_name, which comes from the caller, andaccess_token - Method, URL and headers: the same as Check Order Status
For each action, click Next, run a test if you like, then save.
Next, go to Training and add two entries. One covers order status calls, and the other covers stock and pricing questions. Copy both from the setup guide. You can reword them in plain English, but they work best when they name each custom action. For more on writing these, see our guide to the best prompts to train an AI receptionist.
Paste in your Client ID and Client secret
If you used Claude or ChatGPT, do this before your first test call.
- In Upfirst, go to Custom Actions and open Get Shopify Token.
- In the request body, replace
PASTE_YOUR_CLIENT_ID_HEREwith your Client ID. - Replace
PASTE_YOUR_CLIENT_SECRET_HEREwith your Client secret. - Save the action.
Test it with a call
Call your agent's number. Ask about a product you sell, then ask about a real order number from your store.
If your store doesn't have any orders yet, create a test order in Shopify first.
After the call, open Calls in Upfirst to see the transcript and summary. You'll see each custom action that ran and what it found, like in the call at the top of this guide.
Troubleshooting
The receptionist says it can't check stock or orders right now. The token request failed. Open Get Shopify Token and check that your real Client ID and Client secret are in the request body, not the placeholders. Also make sure the app is installed on your store in the Shopify Dev Dashboard.
It can't find an order. Check that the caller gave the order number without extra digits. Shopify order numbers usually start at 1001.
It can't find a product. It searches product titles, so a nickname may not match. Try the product's name as it appears in Shopify.
The token works in a test but not on calls. Make sure the two lookup actions use {{access_token}} in the X-Shopify-Access-Token header, with no spaces inside the braces.
FAQ
Is it safe to connect my Shopify store to an AI receptionist?
The app you create only has read access, so the receptionist can look up orders and products but can't change anything. Your Client secret is stored in your Upfirst account, and you paste it in yourself. It never needs to go into a chat with an AI assistant.
Do I need to update the token every 24 hours?
No. Shopify's access tokens expire after 24 hours. That's why the Get Shopify Token action asks for a new one at the start of every call. You set it up once.
Can it look up an order by the caller's phone number?
It's possible, but it takes extra setup that this guide doesn't cover. Your app needs access to customer data, and your checkout has to collect phone numbers. Start with order numbers, and reach out to our team if you want phone lookup too.
Can the AI receptionist take orders over the phone?
It can collect order details and pass them to your team. For order taking, see our order-taking AI receptionist page.
Can Upfirst set this up for me?
Yes. Setting up integrations like this is part of our white-glove onboarding, and we help with ongoing changes too. Email support@upfirst.ai or book a demo from our website.
Setup instructions for Claude or ChatGPT
Install the Upfirst connector in Claude or ChatGPT first, using the links in Option A. Then copy the prompt below, replace YOUR-STORE with your store's address, and paste it into a new chat.
Set up my Upfirst AI receptionist so it can check order status and product stock in my Shopify store. First read https://upfirst.ai/docs/shopify.md and follow it step by step, using the Upfirst connector. My Shopify store address is YOUR-STORE.myshopify.com.
When it's done, open Get Shopify Token in Upfirst and paste in your Client ID and Client secret. Then make a test call.