Connect Shopify
Install the embedded Shopify app, train on catalog and policies, enable commerce tools, and publish the theme app embed.
The Shopify app is the recommended connection. It runs inside Shopify admin and links one store to a Fetchply agent.
Install and connect
Install Fetchply from Shopify, open the app, and select Connect your Fetchply account. Sign in or create an account, then approve the store connection. Setup opens right away; your pages, policies, and product catalog keep syncing in the background while you continue, so you never have to wait for a large store to finish importing.
Complete the setup guide
Review Store policies, add Instant answers, customize the chat, choose capabilities, and try the assistant. If imported policies have not appeared yet, use Import from Shopify on the policies step or check back in a few minutes.
Review training data
Under Training data, review imported products, collections, sources, and direct answers. Add only approved supplemental content.
Enable commerce capabilities
Open Settings and choose Product search and Order lookup. Product search uses current catalog data; order lookup confirms the shopper owns the order before showing it (see How order lookup works below).
Publish the storefront widget
Open Settings → Widget embed, select Open theme editor, enable Fetchply Chat under App embeds, and save the theme.
Test as a shopper
Search for a product, ask a policy question, and perform an order lookup with a test order. Try verifying once with the order's email and once with its phone number. Confirm activity in Inbox and Analytics.
How product search works
When a shopper asks for products, the assistant searches your live catalog while writing its reply and shows matching product cards below the answer. The products it names and the cards it shows always come from the same search, including on follow-up questions such as "do you have it in black?" or "anything cheaper?".
If nothing in the catalog matches, the assistant says so instead of guessing. If Product search is turned off in Settings, the assistant answers from its trained content only and does not show product cards.
Your Shopify store is always the assistant's product source. Fetchply's own Commerce catalog is not available for a Shopify-connected assistant, and if it had been switched on earlier, Shopify takes priority automatically so shoppers keep seeing live Shopify products.
How order lookup works
When a shopper asks about an order they placed — for example "where is my order" or "track #1001" — the assistant needs two things: the order number and one contact detail that matches the order. To protect privacy, it will not reveal an order from the number alone.
The shopper can confirm ownership with either the email address or the phone number used on the order — whichever they have handy. A single match is enough. Phone numbers are matched flexibly, so the shopper does not have to type it exactly the way the store saved it:
- Spaces, dashes, brackets, and dots are ignored (
+1 (555) 123-4567matches555 123 4567). - The country code is optional (
555 123 4567matches+1 555 123 4567). - A local number with a leading
0matches the same number saved with a country code (0300 1234567matches+92 300 1234567), and a00international prefix works in place of+.
The whole lookup happens as a natural conversation: there is no form to fill in. The shopper simply shares their details in the chat ("track order #1001, my email is [email protected]", or just their checkout email) and the assistant looks the order up and answers in plain language with the status, items, tracking link, and delivery estimate. If something is missing (for example the order number is there but no email or phone), the assistant asks for exactly what it still needs. This works the same on the website chat, WhatsApp, Instagram, and Slack.
When a shopper shares only their checkout email in the website chat, the assistant lists that email's recent orders and focuses on the active ones: orders that are still being prepared or are on the way. Delivered, cancelled, and refunded orders are left out unless the shopper asks to see all of their orders or has no active ones. On WhatsApp, Instagram, and Slack, an email-only lookup lists the recent orders without this filtering. See Order lookup by email below for what these email-only answers include.
Order lookup settings
Open your agent in the Fetchply dashboard and go to Integrations → Shopify. When Order lookup is on, an Order lookup section appears with optional tuning:
- Order lookup by email. On by default for new connections (stores connected earlier keep their saved choice). When enabled, a shopper who only has their checkout email can list their most recent orders (up to five) without an order number. Because an email alone is weaker proof of ownership, these answers never include street addresses, the customer name, or order notes; the shopper still sees the status, items, totals, tracking links, and delivery estimates. To see full details for an order, they can verify it the normal way with the order number plus a matching contact. Turn it off if you want every lookup to require an order number.
- Order number example. An example of your store's order numbers, such as
#1001orSO-12345. The assistant uses it to recognize order numbers written in chat (including custom prefixes) and mentions it when asking a shopper for their order number, so they know what to look for. - Custom order fields. A comma-separated list of Shopify order metafield keys in
namespace.keyform, such ascustom.gift_message. When set, the values of those fields are included in verified order answers, so the assistant can confirm things like gift messages or delivery preferences. Additional details a shopper filled in at checkout (cart attributes) are included automatically. Only add fields whose values are safe to show to the customer who placed the order. - Lookup instructions. Free-form guidance the assistant follows when sharing order status, for example "Always mention that orders ship from our EU warehouse."
All of these are optional; order lookup works without them.
If you installed Fetchply from the Shopify App Store, the same settings are also available inside the embedded app: open the app in your Shopify admin and go to Settings → Store settings. Changes save to the same place, so you can manage them from whichever surface you prefer.
How delivery estimates work
Once an order is verified, the assistant can answer "when will it arrive?" with an actual date instead of a shipping status. It combines three things:
- The live order stage from Shopify. Whether the order has shipped, and the ship date and carrier when it has.
- Your shipping policy. The delivery timeframes you set per shipping method under Store policies (for example "Standard shipping: 3-5 business days") and your processing time (for example "1-2 business days").
- Calendar math. Business days are counted automatically, skipping weekends, so a Saturday question gets a Monday-onward answer.
For an order that has not shipped yet, the estimate covers processing time plus delivery time from today. For a shipped order, delivery time is counted from the day it shipped. When the carrier reports its own estimated delivery date to Shopify, that date is used instead, and once the carrier marks the package delivered, the assistant confirms the delivery date rather than giving an estimate. The assistant always presents dates as estimates, never guarantees, and it never invents one: when no timeframe is configured for the order's shipping method, it shares the tracking link and status without a date. Cancelled and refunded orders never receive delivery estimates.
To get the best estimates:
- Fill in the delivery timeframe for each shipping method in Store policies, using a number or range of days such as "3-5 business days" or "1-2 weeks".
- Set your processing time so unshipped orders account for the time before handover to the courier.
- Name your shipping methods (or their carriers) the way they appear on orders, so the right timeframe is picked for each order.
Delivery estimate troubleshooting
- The assistant gives a status but no date. No delivery timeframe matched the order's shipping method. Add or rename the method in Store policies so it matches the shipping option shoppers select at checkout, and make sure its timeframe contains a number of days.
- The estimate looks too generous. Timeframes are read as business days. If your courier delivers on weekends, use a shorter day range to compensate.
- A shipped order shows no estimate. The estimate window has already passed, or the ship date is unknown. The assistant avoids promising a date in the past; the shopper still gets the tracking link for live status.
Order lookup troubleshooting
- "Those details do not match this order." The email or phone entered is not the one on the order. Ask the shopper to use the exact email or phone from their order confirmation.
- "I couldn't find a matching order." The order number was not found. Check for typos; the shopper can enter it with or without a leading
#. - The assistant keeps asking for details. It only has the order number, or only a contact detail. Both a valid order number and one matching contact are required (or just the checkout email, when email-only lookup is on).
- Order lookup does nothing. Confirm Order lookup is enabled in Settings and the store connection is active. If the store recently needed to reconnect, finish reconnecting and try again.
- A shopper gave only their email and was still asked for an order number. Order lookup by email is turned off for your store. Turn it on under Integrations → Shopify → Order lookup in the Fetchply dashboard, or under Settings → Store settings in the embedded Shopify app.
- A shopper asked about a delivered order and it was not listed. Email-only answers in the website chat focus on active orders. The shopper can ask to see all of their orders, or verify the specific order with its order number plus their email or phone.
- An email-only lookup found nothing, but the order exists. The email must exactly match the checkout email on the order. Ask the shopper to use the email from their order confirmation, or to provide the order number instead.
- An email-only answer is missing the delivery address. That is intentional: addresses, names, and order notes are never shown for email-only lookups. The shopper can verify with the order number plus their email or phone to get full details.
- A custom order field does not appear in answers. Check the key is spelled exactly as
namespace.keyunder Custom order fields, and that the order actually has a value for it. Fields only appear on orders where they are filled in. - "I could not check the order right now. Please try again in a few minutes." The store was briefly unreachable or busy when the assistant tried to look up the order. The assistant automatically waits and retries a busy store during the same request, so this message appears only when the store is still unavailable after those attempts. It is temporary — ask the shopper to try again shortly. If it keeps happening, check that the store connection is active and reconnect if prompted.
Shopping cart in chat
When the chat runs on your Shopify storefront, shoppers can shop without leaving the conversation. The chat uses the same cart as the rest of your store, so anything added in chat also appears in your theme's cart and at checkout.
- Product answers appear as product cards. A product with a single choice shows Add to cart directly on the card, so adding it takes one tap.
- Follow-up questions stay on topic: when a shopper asks about a product that was just shown ("tell me more about the second one", "do you have it in size 42?"), the assistant keeps talking about that product instead of searching for something new. If it cannot tell which product the shopper means, it asks instead of guessing.
- Products with sizes, colors, or other options open See details: a product sheet with the photo, the price and availability of the selected option, simple option buttons, and a pinned Add to cart button. Sold-out options are crossed out.
- After adding an item, the shopper can continue chatting or go straight to View cart or Checkout.
- The Cart tab always shows the current cart. Shoppers can change quantities, remove items, and select Checkout, which opens your store's normal secure checkout.
- The assistant can see the shopper's current cart while chatting and answers cart questions in whatever language the shopper writes, such as "what's in my cart?" or "how much is my total?".
- The assistant never changes the cart itself. When a shopper asks it to add, change, or remove something, it shows the exact product card so the shopper can add it with one tap, or points them to the Cart tab to adjust quantities and remove items. It can also offer a one-tap shortcut to open the cart or go to checkout; nothing happens until the shopper taps it.
Cart troubleshooting
- The cart says it is unavailable. The cart works only when the chat is open on your connected Shopify storefront. Dashboard previews and chats embedded on other websites cannot access it; open your store website and try again.
- A subscription product cannot be added. Items that need a subscription or purchase terms require choices the chat cannot collect. The shopper is guided to the product page to finish adding them.
- An item could not be added. Its inventory may have just changed. The shopper can pick another option in the product sheet or try again.
- Discount codes, shipping, and taxes. The cart shows the subtotal and any discounts your store already applied. Discount codes are entered at checkout, and shipping and taxes are always calculated there.
Abandoned cart recovery
Fetchply can automatically follow up when a shopper starts checkout, enters their contact details, and leaves without paying. The reminder includes what they left in the cart and a link that reopens their exact checkout, so finishing the purchase takes one tap.
Recovery is off by default. To turn it on, open your agent in the Fetchply dashboard, go to Integrations → Shopify, and enable Abandoned cart recovery. You can also choose:
- Wait time. How long after the checkout is abandoned before the reminder goes out (30 minutes to 24 hours; 2 hours by default). Waiting a little gives shoppers a chance to come back on their own.
- WhatsApp template. With WhatsApp Business connected, reminders are sent on WhatsApp when the shopper left a phone number and opted in to text marketing. Enter the name of a Meta-approved message template with two variables: the first is filled with the shopper's first name, the second with the checkout link. Without a template (or without WhatsApp), reminders are sent by email instead.
A few guarantees are built in:
- One reminder per checkout, ever. A shopper is never messaged twice about the same cart, no matter what.
- Consent is required. Email reminders go only to shoppers who accepted email marketing at checkout; WhatsApp reminders go only to shoppers who opted in to text marketing. Consent is re-checked right before sending, so a shopper who unsubscribes in the meantime is skipped. Shoppers without consent or contact details are skipped too.
- Every email has an unsubscribe link. A shopper who clicks it never receives another cart reminder email from your store, even for future abandoned carts.
- No backlog blasts. Only checkouts abandoned after you enable the feature (within the last 24 hours) get reminders. Turning the feature on never messages your historical abandoned carts.
- Recovered carts are counted. When a shopper completes their checkout after a reminder, the recovery is recorded, and the settings card shows reminders sent and checkouts recovered over the last 30 days.
Shopify can send its own abandoned checkout email. If you keep both on, shoppers may receive two reminders; consider turning off one of the two in your Shopify admin's checkout settings.
Cart recovery troubleshooting
- No reminders are going out. Check the feature is enabled and the store connection is active. Reminders only cover checkouts abandoned within the last 24 hours where the shopper entered contact details and consented to marketing; browsing without starting checkout leaves nothing to recover.
- A shopper with an abandoned cart got no reminder. They likely did not opt in to marketing at checkout, unsubscribed from cart reminders earlier, or abandoned before the feature was enabled. All of these are intentional.
- Reminders arrive by email even though WhatsApp is connected. A WhatsApp template name must be entered in the recovery settings, and the shopper needs a phone number with text-marketing consent. Otherwise the reminder falls back to email.
- WhatsApp reminders stopped after a template change. The template name and language must exactly match an approved template in your WhatsApp Business account, with two body variables. Fix the template and new reminders resume; a checkout whose send failed is not retried, so it will not be double-messaged later.
- Shoppers get two reminders. One is from Shopify's own abandoned checkout email. Turn off either Shopify's reminder or Fetchply's recovery so shoppers get exactly one.
Setup troubleshooting
- The app stays on "Setting up your assistant". Connecting normally takes only a few seconds. If the screen persists (for example after a network hiccup during install), reload the app page in Shopify admin; setup resumes automatically and the setup guide opens.
- The home page still says "Turn on chat" after you enabled the widget. The Embed app to your theme card reads the live state from your published theme, so it can take a moment or a page reload to show the green On badge after you save the theme editor. If it still shows Turn on chat, confirm you enabled Fetchply Chat under App embeds on your published theme (not a draft or preview theme) and saved — the card only reports the published theme, so enabling the chat on a draft or preview theme leaves it showing Turn on chat. The badge is informational only: if the chat already appears on your storefront, the widget is on regardless of what the card shows.
- The app says "Fetchply is temporarily unavailable". The app could not check your store's connection just now, usually because of a brief network hiccup. Your connection is not lost, and if your assistant is already set up it keeps answering shoppers on your storefront. The app retries automatically; if the message stays, select Try again or reload the app page in Shopify admin.
- Store policies look empty right after connecting. Policies import in the background and usually appear within a few minutes. You can also select Import from Shopify on the policies step to fill them in immediately.
- The app asks you to connect your Fetchply account even though your store is already connected. Home shows the three-step Get started card and Analytics shows "Setting up your assistant", while your assistant keeps answering shoppers on your storefront. This affected stores where store settings had been saved from the Fetchply dashboard after installing from the App Store. Saving settings no longer affects your store connection. If you still see it, reload the app page in Shopify admin; if the prompt stays, contact support with your store address and we will restore the link without any loss of training data, conversations, or plan usage.
- You cannot enter store credentials in the dashboard. When your store is connected through the Fetchply Shopify app, that app manages access for you and the dashboard will not accept manual credentials. To switch to your own custom app instead, remove the Shopify connection in the dashboard first.
Use the manual credentials connection only when the App Store install is unavailable or support directs you to it.
The embedded app also provides Inbox, Analytics, Customize, Proactive messages, Store policies, Settings, and Plan & billing. Advanced controls open the full Fetchply dashboard. On Proactive messages you can create, edit, pause, and delete the proactive campaigns that nudge visitors on your storefront, with each campaign's shown and clicked counts; see Proactive messages for how campaigns behave. The Settings page also hosts the Widget embed tab (theme app embed instructions, chat button position, and manual install code) and the Guided Flows tab, which opens the flow builder in your Fetchply dashboard.
Under Settings → Agent status you can also upload Your avatar: a profile photo shown next to your replies when you answer shoppers live in the chat widget. Use a square PNG, JPG, GIF, or WebP image up to 512 KB; it applies immediately and stays in sync with the avatar on your Fetchply account settings page.
The Settings page also has a Test your assistant button next to the readiness badge. It opens the same test chat as the setup guide's "Try your assistant" step: a chat window inside Shopify admin where you can ask questions and see how the assistant answers with your current settings and training. Test conversations do not appear on your storefront. The button appears once your store is connected and your assistant exists; if you do not see it, finish the setup steps on the home screen first.
Integrations
The Integrations menu gathers everything you can connect to your assistant, grouped in two sections. Channels covers the messaging apps your assistant can answer on: Instagram DMs, WhatsApp Business, Facebook Messenger, Slack, and Discord. Tools and automation covers Lead Capture, Functions, Webhooks, Automations, Guided Flows, Commerce, and Google Sheets. Choose one to open its setup page in your Fetchply dashboard in a new tab. You are signed in automatically, so you land ready to connect.
You need a connected, active store with an agent before these open. If you see a prompt to connect first, return to the home screen and finish setup, then try again. If the button does not sign you in, the normal login appears and returns you to the same page after you sign in.
For a custom theme or non-Shopify page, Settings → Widget embed includes a manual script, inline iframe, and data-fetchply-open or data-fetchply-message buttons.