← Back to work

Salesforce Commerce

Shopper Agent: Where Is My Order

"Where's my order?" is one of the most common questions in commerce - and one of the most frustrating to answer. I'm designing how a conversational AI agent turns scattered, system-level order data into a single, honest, human reply.

Shopper Agent — Where is my order? conversational order-tracking flow
Role Senior Product Designer
Company Salesforce
My Ownership End-to-end UX - conversation flows, the order-status card system, and error states
Team Sole UX designer, with a PM and engineering team

Order tracking, by conversation

The Shopper Agent is a conversational AI layer inside the storefront. An earlier version handled basic order lookups; this work brings full order tracking and order history into the agent - so shoppers can track and manage their orders through natural conversation, whether they're signed in or checking out as a guest.

The business case is straightforward. WISMO - "where is my order?" - is one of the highest-volume post-purchase questions in commerce. Every one that lands in a support queue costs money and signals friction. Answering it instantly in conversation deflects support load, reduces post-purchase anxiety, and keeps shoppers engaged long enough to come back and buy again.

A simple question with a complicated answer

For a shopper, "where's my order?" should be the easiest question in commerce. Today it rarely is. They bounce between confirmation emails, carrier websites, and account pages - and when that fails, they open a support ticket. WISMO is one of the single largest drivers of post-purchase support volume.

The harder problem sits underneath. There is no one "order status." After an order is placed, its status lives across multiple systems and arrives at the item level, not the order level. A single order can be half-shipped, split across two carriers, or partially delivered. The design challenge was to take that fragmented back-end reality and answer one human question clearly: where is my order, and when will it arrive?

Designing the answer, not just the data

Designing for an agent means designing a response, not a screen. The same question can return a one-line answer ("Shipped - arriving Feb 9") or a messy one ("2 of 3 items shipped, the rest still in progress"). The experience has to stay clear across all of it.

I started by mapping every real-world order state to a single, plain-language status - Processing, Shipped, Out for Delivery, Delivered - plus the in-between cases like Partially Shipped, when items travel in separate shipments. The agent computes one honest headline from item-level data, then lets the shopper drill into the per-item or per-shipment detail only if they want it.

What's happening behind the scenes Computed status What the shopper hears
Order placed, nothing allocated to fulfillment yet Processing "We've got your order - we'll let you know the moment it ships."
Items picked up by fulfillment, no shipment created yet In Progress "Your order is in progress, expected by Feb 9."
All items shipped together in a single shipment Shipped "Shipped - arriving Feb 9. Here's your tracking link."
Some items shipped, others still being prepared Partially Shipped "Partially shipped - your first items arrive by Feb 5."
All items delivered Delivered "Delivered on Feb 9."
Order, or remaining items, cancelled before fulfillment Cancelled "This order was cancelled on Feb 2. Here's what happens next."

Each row hides real back-end complexity - an order can map to multiple fulfillments, each with its own shipments and item-level statuses. The shopper never sees that. They get one clear headline and one human sentence, with the detail one tap away.

I designed for two entry points. A signed-in shopper simply asks, and the agent identifies their most recent order automatically - zero friction. A guest provides an order number, email, and zip code to verify before anything is revealed. That meant designing both the effortless path and the verify-first path, including the error states for when a lookup doesn't match.

What guided the design

Four principles shaped every decision:

Conversational over navigational. Answer the question in the thread. Never send the shopper off to hunt across pages or carrier sites for something the agent can surface directly.

One honest headline. Compute a single, clear status out of messy item-level fulfillment data. The shopper should never have to assemble the answer themselves - and the answer should never overpromise.

Zero friction when we can, verify when we must. Auto-identify the order for signed-in shoppers. Ask guests for only what's strictly needed to verify - nothing more.

Graceful when things break. Empathetic, actionable errors when an order isn't found or credentials don't match - and a real fallback when carrier tracking is down, still showing what we know rather than a dead end.