Order actions in the helpdesk

What can you do with an order from the helpdesk?

With Shopify connected, every ticket shows the customer's orders in the details panel on the right. Open an order to Cancel order, Refund, Replace items or View in Shopify, without leaving the ticket.

Each action runs in Shopify straight away, leaves a card on the ticket timeline with who did it, and tags the order in Shopify. When the AI proposes an action instead, it shows as an approval card with Approve, Edit and Reject (see Response Methods). Connecting the store is covered in Shopify: Creating a Custom App.

What the Orders and Customer panels show

The Shopify Orders panel lists the customer's five most recent orders, found by the email on the ticket. Each card shows the order number, total, date, a Refunded or Partially Refunded badge, a Track package link per parcel, and a delivery status:

  • Unfulfilled not shipped yet.
  • Fulfilled shipped, but Shopify has no carrier update yet.
  • In Transit / Delivered as reported to Shopify.
  • Exception a failed delivery, or in transit for over 10 days without news.

Click a card for items, payment breakdown, returns, addresses, the Shopify order ID and the action buttons. Order numbers in the conversation that match an order in the panel are highlighted and open the same window.

The Customer panel adds Amount spent, Orders, Customer since, the default address and View in Shopify to the customer. It needs Customer Integration set to your Shopify Get Customer action under Settings → Field Mappings → Customers.

Why the Orders panel is empty or missing

The panel stays blank when it finds nothing. The usual causes:

  • No email on the ticket, so there is nothing to look up.
  • No Shopify customer with that email. A customer writing from another address than they ordered with is not found.
  • Wrong market, or none. The panel searches the Shopify store connected to the ticket's market, so a Danish customer on the German market is looked up in the German store. Change the ticket's market by hand (see Markets). With several markets, a ticket without one shows no orders.
  • Another system is your order source. Under Settings → Field Mappings → Orders, tick every system you want under Helpdesk order panels (Shopify and your warehouse system, for example). Each gets its own panel, in the order you set. This does not change what the AI uses.
  • Older than 60 days. Shopify only shares 60 days of orders without the read_all_orders scope. See How to request Shopify's read_all_orders scope.
  • Get Orders is not enabled on the store (see "Why an order button is missing").
  • Shopify did not answer. No error is shown. Open the ticket again later.

Orders across several Shopify stores

Each store is connected to its markets on its page under Settings → Integrations → Shopify, and a market belongs to one store only.

If the customer mentions an order number (in the subject, or with # in the text) that the ticket's store does not have, the panel shows Searching deeper for the order… and checks your other stores. A match gets a yellow note, for example Found in [market]. This ticket may be routed to the wrong market. Actions on it run in the store it was found in, so check it is the right customer first.

Which order buttons show in the helpdesk

In the order window of the Shopify Orders panel, a button shows only when its action is enabled and the order is in a state where it can work:

OrderCancel orderRefundReplace items
Not shipped, payment only authorized or not paidYesNoNo
Not shipped, paidNo, cancel in ShopifyAmount or shippingNo
Shipped or partly shipped, paidNoShipped items, shipping, amountShipped items
CancelledNoNoNo

There is no separate permission: anyone who can open the ticket sees the same buttons.

Refunding an order 💸

Refund in the Shopify order window opens a window with up to two tabs:

  • Items refunds products as a return in Shopify. Only shipped, not yet refunded units are listed, in any quantity, so partial refunds are normal. Tick Refund shipping for the remaining shipping, or refund the shipping alone. Shopify adds tax, duties and discounts in the quote. Restock items is not supported: restock in Shopify.
  • Amount sends money back without a return: an amount in the order currency, or % of the order total, up to what is left to refund. Use it for goodwill or a discount, also on paid orders that have not shipped.

Return reason note and Reason are stored in Shopify for your team. Notify the customer by email (on by default) sends Shopify's own refund e-mail. Click Get refund quote or Review refund: Shopify shows the exact amount and where it goes (gift card amounts go back to the gift card). Confirm with Refund [amount].

Note: a quote is valid for 10 minutes and can be used once. After that, a changed selection or a failed attempt, you see Get a new refund quote before confirming. Refund pending means the payment provider is still processing it.

Cancelling an order

Cancel order in the Shopify order window asks for confirmation (Keep order backs out) and cannot be reversed.

  • Cancelling in Zuzana never refunds, so paid orders are refused: Cancel it in Shopify admin so the refund is issued.
  • Anything shipped blocks it. Refund or return the shipped items and cancel the rest in Shopify.
  • No reason field. Shopify records the reason as Customer.
  • Cancellation requested means Shopify is still working on it. Check the final status there.

Restocking and Shopify's e-mail are settings on the Cancel Order action (Settings → Integrations → Shopify → your store → Actions → Edit): Put items back in stock and Send Shopify's cancellation e-mail, each Always, Never or Decide per order. Decide per order shows a checkbox in the confirmation, preset to your default.

Sending a replacement order 📦

Replace items in the Shopify order window creates a free new order for damaged, lost or wrong items. Pick shipped units under Items to replace (part of a delivery is fine), keep Ship to or click Change for a new address, add a Replacement reason (saved as the order note) and click Create replacement order.

  • A normal paid order with the original prices and the 100% discount code ZUZANA-REPLACEMENT, so the total is zero but customs papers show the real value.
  • Same customer and email from the start, same delivery method and pickup point, no shipping cost. Stock is reduced as usual.
  • No order confirmation from Shopify, only the shipping confirmation once it ships.
  • Parcel shop orders can only go to the same parcel shop. For another address, create it in Shopify.

Recognising it in Shopify: it gets the next ordinary order number (no "copy" in the name) and the tags zuzana-replacement and zuzana-replacement-for-[original number]. The original gets zuzana-replaced-by-[new number]. One active replacement per order: a second one fails until you cancel the first in Shopify.

Pausing, address changes and order confirmations

Shopify also has Pause Order, Resume Order, Update Address and Resend Order Confirmation actions. There are no buttons for them in the Orders panel: the AI uses them in workflows, and they show on the ticket as approval or result cards. To do them by hand, use Shopify. While an AI address change waits for approval, the order is on hold so it cannot ship to the old address.

Why an order button is missing

Each part needs its own action, added with Add Action and enabled under Settings → Integrations → Shopify → your store → Actions:

  • Order list: Get Orders. Customer panel: Get Customer.
  • Cancel order: Cancel Order. Replace items: Create Replacement Order.
  • Refund → Items: Refund Order (scope write_returns). Refund → Amount: Refund Amount (scope write_orders).

A missing Shopify scope shows as Missing Shopify permission: … Re-authorize this store to enable this action. See How to add more scopes to the custom Shopify app. If the action is enabled and the button is still missing, the order's state is why (see the table above).

The tags Zuzana writes on Shopify orders 🏷️

Refunds, cancellations and replacements get an action tag plus a second tag saying how it happened: -manual (a team member in the helpdesk), -approved (the AI proposed it, a person approved it) or -auto (the AI on its own). Ready to copy into Shopify order views:

  • Refunds: zuzana-refunded, zuzana-refunded-manual, zuzana-refunded-approved, zuzana-refunded-auto
  • Cancellations: zuzana-cancelled, zuzana-cancelled-manual, zuzana-cancelled-approved, zuzana-cancelled-auto
  • Replacements: zuzana-replacement, zuzana-replacement-manual, zuzana-replacement-approved, zuzana-replacement-auto, zuzana-replacement-for-[original number]
  • Replaced originals: zuzana-replaced, zuzana-replaced-by-[new number]

Pauses, address changes and resent confirmations are not tagged. Without the write_orders scope the action still works but no tag is added.

When an order action fails

  • A red message (Refund failed, Cancel failed, Replacement failed) gives Shopify's reason, and the timeline shows a failed card.
  • Nothing is retried for you. Fix the cause and try again. A refund needs a new quote.
  • "Check Shopify before retrying" means it may have gone through. Look in Shopify first so nobody is refunded or sent goods twice.
  • Doubles are blocked: a second refund on the same order waits for the first, and an unconfirmed replacement blocks new ones for 15 minutes.

Orders from other systems

Orders from Magento, WooCommerce, Business Central, Webshipper, SmartPack or a custom API connection show in a panel named after that system, with the order details and, when the system provides a link, a View in [system] button. SmartPack can also offer Copy order. Refund, Cancel order and Replace items are Shopify only, and statuses come straight from that system.

Good to know

  • After a successful action, a suggested reply to the customer appears in the composer. It is not sent, and it is skipped if you had started writing.
  • A replacement can make its shipping address the customer's default address in Shopify.
  • Maximum order lookback under Field Mappings → Orders limits the AI only, not the panel.
  • Refunds, cancellations and replacements cannot be undone from Zuzana. Any correction happens in Shopify.