Who is this Zendesk chatbot setup for, and who is it not for?
A Zendesk chatbot is a messaging-channel bot that answers customer questions from your help centre and from flows you build, then hands the conversation to a person when it can’t finish the job. This guide covers the setup for Shopify brands at $3M and above, on Shopify Plus or a paid subscription platform, where ticket volume repeats and a human minute is expensive.
What this page adds is the part the ranking setup guides skip: the exact handoff and always-escalate rules to set, and why the handoff step, not the answer step, is where most Zendesk chatbot builds fail.
A brand below the $3M floor is not the reader here. At that size a shared inbox with saved replies is simpler to run, and the setup, testing and upkeep described here will cost more than the tickets they remove. It is also not for a team whose order data lives in spreadsheets, or whose help centre nobody owns. A bot can only repeat what it is given, and if what it’s given is stale, it repeats stale answers faster.
Vendor names and plan packaging in this space move often. Zendesk has renamed and repackaged its bot features more than once, so treat every product name below as something to confirm in Zendesk’s current documentation. This article does not cover Zendesk plan costs (see Zendesk pricing plans) or what to buy instead (see Zendesk alternatives).
What do you need in place before you build a chatbot for Zendesk?
Four things, and the fourth is the one people skip.
First, a Zendesk plan that includes the messaging channel and its AI agent features. Packaging differs by plan and changes, so check what your current plan includes before you plan the build. Second, a help centre with real content in it. Third, a way for the bot to read live Shopify orders: Zendesk’s Shopify integration, or an API call from a flow. Fourth, a named owner, one person who is paid to keep the bot’s answers correct after launch.
That owner matters more than any setting. A Shopify store changes its returns window, adds a carrier, launches a bundle, runs a holiday cut-off. Each change makes some sentence in the help centre false. Somebody has to hear about the change and fix the sentence, or the chatbot for Zendesk will confidently state the old policy for months.
If your store ships internationally, expect the shipping and duties articles to be the ones that drift. The Shopify helpdesk guide covers how the helpdesk and store data connect; this article assumes that connection exists.
How do you set up a Zendesk chatbot for a Shopify store?
Eight steps, in this order. The order is the point: teams that start at the widget settings and work backwards spend their launch week rewriting articles under pressure.
Step 1: Pull your ticket reasons before you touch a setting
Export a full quarter of tickets from Zendesk and group them by reason. A quarter is long enough to include a promotion and a returns spike, short enough that the reasons still reflect how you sell today.
Sort the groups by volume, then draw a line through each one by risk. Order status (“where is my order”) and delivery-window questions sit on the safe side. Address changes before dispatch are a middle case, because they depend on where the order sits in fulfilment. Refunds, damaged goods, chargeback threats and anything about a subscription billing dispute sit firmly on the human side.
Pick two or three safe, high-volume reasons for launch. Not eight. A bot that does two things correctly earns trust from customers and from your agents. A bot that attempts eight things and gets three wrong teaches your team to distrust every conversation it touches.
Write the list down as a table with three columns: reason, bot handles or human handles, source of truth. The third column is the one that forces honesty. “Order status: live Shopify order” is a real source. “Returns: help centre article, last reviewed by nobody” is a warning.
Step 2: Clean the help centre articles the bot will read
The bot’s knowledge is your articles, so the articles are the product. For each reason you chose, keep exactly one article, rewritten to answer one question.
Three fixes cover most of the damage. Remove contradictions: search the help centre for every article mentioning your returns window, delivery time or carrier and reconcile them into one. State the policy in the first sentence, with the condition next (“Returns are accepted on unworn items in original packaging”), rather than burying it under a story about your brand. Delete or unpublish anything out of date, because an unpublished article can’t be quoted wrongly.
A common failure here is the seasonal article. The holiday shipping cut-off from last year sits in the help centre, still published, and the bot quotes the date to a customer in March. Add a review date to your own tracking sheet for anything seasonal and remove it when the season ends.
Keep articles short enough that a customer reading the bot’s answer would not need to scroll. If an article covers five topics, split it into five. Retrieval works better on focused articles, and a customer who clicks through lands on the answer rather than a wall.
Step 3: Create the messaging channel and configure the web widget
In Zendesk’s admin area, add a messaging channel for the web and connect it to your storefront. Product menus and labels change, so follow Zendesk’s current setup documentation for the exact path. The settings in the table are the ones that matter, and the values are our recommendations, not Zendesk defaults.
| Setting | Recommended value | Why |
|---|---|---|
| Bot name and greeting | Name it as automated; say what it can do | Customers forgive a bot that admits it is one |
| Launch behaviour | Open on customer click, not auto-popup | Auto-popups on product pages depress conversion and irritate returning customers |
| First message | Offer 2–3 buttons for your launch reasons plus “Talk to a person” | Buttons remove typing errors and set scope |
| Human option | Visible from the first message | A hidden exit is how loops start |
| Pages | Hide the widget on checkout | Checkout is for paying; a chat window there is a distraction and a data risk |
The table’s point: every default that hides the human, or that pushes the widget at the customer, costs you goodwill for a small gain in bot volume. Keep the scope narrow and visible.
Connect the AI agent to this channel and confirm in a test conversation that the greeting, the buttons and the human option all appear in the order you set. Do it on a staging page or a hidden test URL, not on the live store.
Step 4: Build the order-status flow with a live Shopify lookup
Order status is the reason most Shopify teams build a bot in the first place, and the reason a help-centre-only bot fails. An article can explain how tracking works. Only the order can say where this customer’s parcel is.
Build a flow that asks for the order number and the email address on the order. Asking for both matters: an order number alone lets a stranger read someone else’s shipping address and status. Look the order up through the Shopify connection, and return only what the customer needs: fulfilment status, carrier, tracking link and estimated delivery if the carrier provides one.
Decide what the bot does for each order state, and write it down before you build:
| Order state | Bot behaviour |
|---|---|
| Unfulfilled | State that it hasn’t shipped and give your handling-time policy in words |
| Fulfilled, in transit | Show carrier and tracking link |
| Delivered, customer says missing | Hand off to a human; do not argue with the carrier scan |
| Partially fulfilled | Say which items shipped and which didn’t; hand off if the customer disputes |
| Cancelled or refunded | State it and hand off if the customer disagrees |
The bot should not guess at states it can’t read. If the lookup fails, because the order number was mistyped or the Shopify connection timed out, the flow needs an explicit branch: ask once more, then hand off. A flow that says “I couldn’t find that” and loops back to the same question is a trap.
For fulfilment by a warehouse partner, check where tracking data lands. If your third-party logistics provider writes tracking to Shopify late, the bot will say “not shipped” about parcels already on a lorry. That’s a data problem, not a bot problem, and it shows up as angry customers the first week.
Step 5: Set the handoff rules the bot cannot skip
Handoff is the step most teams get wrong, and they get it wrong in a specific way: they treat handoff as the fallback for when the bot fails to answer. It should also be a rule that fires when the bot could answer but shouldn’t.
Set three things.
An always-escalate list. Topics that go to a human on first mention, however confident the bot is. Our recommended list for a Shopify store: refunds and refund status disputes, damaged or wrong items, anything mentioning a chargeback, dispute or lawyer, subscription billing disputes, allergic or safety reactions to a product, and any message from a customer flagged as high value in your own data. A bot has no way to price the cost of a wrong answer on these, so a person prices it.
A failed-answer limit. If the bot has not resolved the question after 2 turns, hand off. Also count a customer rephrasing the same question as a failure, since rephrasing means the first answer didn’t land. Three loops is a customer already composing a one-star review.
A context payload. The handoff must arrive with the transcript, the order number, and a tag. An agent who opens a ticket and asks “Can I have your order number?” after the customer already typed it into the bot has turned an automation into an extra step. In the handoff, pass the order reference and add a tag such as ai_handoff, plus a second tag stating why (ai_handoff_refund, ai_handoff_failed_twice).
| Trigger | Action | Tag to add |
|---|---|---|
| Customer asks for a person | Immediate handoff | ai_handoff_requested |
| Refund, damage, dispute, chargeback | Immediate handoff, priority raised | ai_handoff_risk |
| No resolution after 2 turns | Handoff | ai_handoff_failed |
| Lookup failed after one retry | Handoff | ai_handoff_lookup |
| Outside business hours | Ticket created with full transcript | ai_handoff_offline |
Take from the table that every row ends in a tagged ticket a person can find. Nothing ends in silence. The tags also let you measure the bot honestly in Step 7.
The judgement here is the one a vendor won’t put in a setup guide: a bot that hands off more at launch is a better bot. You can loosen a rule with evidence after a month of reviewed conversations. You can’t un-send a wrong refund answer.
Step 6: Set business hours and offline behaviour
Set your business hours in Zendesk so the messaging channel knows when humans are present. Then configure what the widget says outside them: the bot may still answer the safe reasons, and for anything else it should say when a person will reply, using words you have actually committed to.
Don’t promise a response time you haven’t measured. If you don’t know your real first-reply time, write “we’ll reply by email on the next working day” and confirm the wording against your staffing. A promise you break in writing, inside a chat window, is worse than no promise.
Check that the out-of-hours handoff rule you set for handoffs actually works. Send a test message at a time your hours are closed and confirm the result is a ticket, in the right group, with the transcript, the order and the tag. Teams that skip this test discover that out-of-hours handoffs have been landing in an unmonitored view.
Time zones cause more trouble here than the settings themselves. If you sell in the US and the UK from one Zendesk account, one set of hours is wrong for somebody. Use separate schedules where your plan allows, and check plan limits in Zendesk’s documentation.
Step 7: Tag, route and report bot conversations
Every conversation the bot touches should carry a tag, and every ticket should record who resolved it. Add a custom ticket field, for example “Resolved by”, with values such as Bot, Human after bot, Human only. Populate it from your tags with a trigger.
Route escalations by tag. Refund and risk tags go to your senior group or a named queue; lookup failures go to whoever owns the Shopify integration, because a spike in them means something upstream broke.
Now the reporting trap. Zendesk, like every helpdesk vendor, can show you a bot resolution or deflection figure. Treat it as the bot’s opinion of itself. A conversation the customer abandoned in frustration counts as “resolved” in many setups, because no handoff happened. No independent benchmark exists for what a good rate is, and vendor case studies, Gorgias’s included, are vendor-reported and measured differently, so they’re no target for your store.
Measure repeat contact instead. For every conversation the bot closed, check whether the same customer or the same order number produced a ticket within a set window afterwards. Choose the window from your own delivery times and write it down before you look at results. The share of bot-closed conversations with no repeat contact is your real resolution rate. Its value is unpublished for your store (metric to confirm), and you can compute it from the “Resolved by” field and the order number on the ticket.
Review a sample of conversations weekly for the first month: read them, don’t just count them. The bot’s worst answers hide inside the “resolved” bucket.
Step 8: Test with real tickets before launch
Take fifty or so real past tickets across your launch reasons and your always-escalate list, and replay each through the bot in a test environment. The count is your call; the requirement is that the sample includes badly worded, angry and multi-question messages, not just tidy ones.
Score each on three questions. Did it answer correctly? Did it hand off when the always-escalate list says it should? Did the handoff carry the transcript, order and tag? A single wrong answer on a policy question means an article is wrong or missing; fix the article, not the bot. A single missed escalation means a rule is too narrow.
Then launch to part of your traffic rather than all of it. Show the widget on a subset of pages or to a share of visitors if your setup allows, and read every conversation for the first few days. Widen exposure only when a full read shows no risky answers. When you widen, do it during a normal trading period, not the day before a sale.
What breaks at volume?
Three failures show up once real traffic arrives, and each has a fix.
Stale answers after a policy change. The bot keeps quoting the old returns window because nobody told the help centre owner. Fix it by attaching a help centre update to your policy-change checklist, so no promotion, carrier change or returns update ships without it.
Sale-day queues. During a sale, order status questions spike and the Shopify lookup slows or fails more often. Confirm your failed-lookup branch hands off cleanly, and staff the escalation queue for sale hours. A bot that absorbs the easy questions frees agents for the hard ones only if the hard ones can be answered fast.
Silent integration drift. A Shopify app update or a carrier change alters the data the flow reads, and the bot starts saying “not shipped” for fulfilled orders. The tag ai_handoff_lookup is your early warning: a rise in it means investigate the connection before customers do the investigating for you.
Where does an AI chatbot not belong in customer service?
Three places. Refunds without a human, because the bot can gather facts but the decision carries financial and dispute risk. Anything where a wrong answer costs more than a human minute, such as allergen, safety or legal questions. And anything running on data you can’t trust: if your inventory or tracking data is unreliable, the bot turns that unreliability into confident sentences.
Keep in mind too that a Zendesk chatbot is one channel. Many stores also take customers on WhatsApp, and the same rules apply there; the WhatsApp and Zendesk guide covers the connection. For the wider question of what to automate across support, see customer service automation.
What is the honest verdict on a Zendesk chatbot?
For a Shopify brand above the floor with repeating questions and a maintained help centre, a Zendesk chatbot handles the order-status and policy questions well enough to matter, provided the launch scope stays narrow and the handoff rules are strict. It fails when teams try to make it handle everything, or when nobody owns the content underneath it.
If you already run Zendesk, adding the bot is cheaper than migrating. If you don’t, the decision is about the whole helpdesk, not the bot, and the comparison belongs in helpdesk automation tools.
Running a Zendesk chatbot well is a customer service AI problem: deciding which conversations a machine may finish, wiring it to live order data, and keeping the rules honest after launch. That is the work Pointerflow does under customer service automation, for brands that want the bot scoped, connected and measured against their own repeat-contact data rather than a vendor dashboard.
Sources
- No external figures are quoted. This article is written from long-standing, documented Zendesk and Shopify helpdesk configuration practice; confirm current product names, plan packaging and menu paths in Zendesk’s own documentation.