Mario Ferrer
← Back to work

Shop Assistant

Prompt engineering and content standards for an AI shopping assistant inside the Shop app, one of the first four public ChatGPT API implementations, shipped to 100 million users.

Company
Shopify
My role
Content Design Craft Lead, Shop app
What I owned
Prompt engineering and content standards for an AI-driven shopping assistant
When
Sep 2022 to Mar 2023

The problem space

The one-line context slide framing the project as GPT-3 times Shop
The pitch in one line: an AI layer that helps you find exactly what you're looking for on Shop.
Real unresolved questions about naming and brand positioning shown against actual entry-point iterations, Cash Island versus shopé
The real open questions, in the open: naming, positioning, and where the assistant should live, tested against actual product screens.

From here, you'll need a password

The scripts, the chat states, the demos, and what I learned are behind a password. Reach out and I'll send it over.

That's not it, try again. Ask me for the password

What I worked on

  • Defined what the assistant actually was and pitched it in plain language. "An AI-driven utility layer inside Shop that helps you with all of your shopping needs, chat, voice, or visual search," positioned alongside a supercharged Shop search with camera, voice, and chat docked right in the search bar.
The plain-language pitch poster: an AI-driven utility layer inside Shop that helps with all your shopping needs
Naming the thing in plain language before designing it, so the team shared one idea of what it was.
  • Wrote the actual conversational scripts, past the concept stage. The assistant narrowing "the 45,873 shorts we have available on Shop" down through a specific opening question and quick-reply chips, or asking "can you tell me what kind of shoe you're looking for?" with category chips (Running, Lifestyle, Boots, Training). Those chips weren't invented, they mapped to Shop's existing product taxonomy, so a big part of the work was understanding that taxonomy and using it to surface the right categories based on where the conversation had gone.
Finished chat screen: the assistant asking what kind of shoe, with Running, Lifestyle, Boots, and Training quick-reply chips
Real scripted flow with quick-reply chips, so the conversation had a shape, not just a text box.
  • Owned the open design questions as signed artifacts: training the model to follow our tone-of-voice guidelines (the same three-point tone spectrum I built in Gravity), generating a first-time prompt list from Shop's real search data, categorizing and prioritizing prompts, handling back-and-forth, and where the entry points live. Real-time design thinking in writing, not reconstructed after the fact.
  • Evaluated output quality by hand, the way you could in early 2023. Human review against a rubric, spot-checking responses for whether they surfaced a product that fit the ask, stayed grounded in real inventory and price, held the Gravity tone, and asked a clarifying question instead of guessing. Automated LLM-as-judge evals didn't exist yet, so hands-on review was the standard.
  • Wrote end-to-end demos that show reasoning, not just retrieval. Asked for "a gift for my mom," the assistant reasons about the occasion and her style before recommending; asked for "an outfit Brad Pitt would wear," it explains the styling choices. The point was an assistant that thinks with you, not a fancier search box.
Recorded demo: the assistant reasoning through a Mother's Day gift request and recommending a hat and boots
"Help me find a gift for my mom", reasoning about the occasion before recommending.
Recorded demo: the assistant styling a Brad-Pitt-inspired outfit with reasoning
"An outfit Brad Pitt would wear", explaining the styling, not just matching keywords.
  • Designed all eight states of the chat interaction, not just the happy path. Empty, prompts, keyboard focused, keyboard active, products returned, feedback unfocused, feedback captured, clear conversation. The boring-but-critical edge cases (what does it look like with nothing typed yet? after you clear the thread?) alongside the demo-able ones.
Chat state: empty, before anything is typed
Empty state.
Chat state: products returned, with product cards in the conversation
Products-returned state.
  • Placed the entry point across three real product surfaces, the Home feed, browse-by-category, and search results, each with the same small purple assistant icon in the search bar, so it read as one consistent, always-available entry point rather than a chat screen bolted onto a single surface.
The assistant entry icon docked in the Home feed search bar
One consistent entry point, docked in the search bar across surfaces.

What got shipped

100M
Shop app users it launched to
1 of 4
Companies in OpenAI's first ChatGPT API launch
Mar 2023
Shipped publicly, web rollout weeks later
  • It shipped. Publicly, to 100 million Shop app users, on March 1, 2023, via a purple assistant icon in the search bar, with a web rollout two weeks later and independent press coverage at launch.
  • Shopify was one of only four launch partners OpenAI named for the brand-new ChatGPT API itself, alongside Instacart, Snap, and Quizlet. Not "we tried ChatGPT eventually," but one of the first four public implementations of the API, ever.
  • No public adoption numbers exist for this one, so the outcome is the launch itself: a first-of-its-kind integration, live to 100 million users, covered in the press. On this project, that is the metric.
  • For the record, this 2023 Shop assistant is a distinct, earlier product from Shopify's later merchant-facing Sidekick and from the 2025 checkout integration. It predates both.

The lesson learned

  • Writing for a model I couldn't fully control was new. In the first days the API existed, you couldn't just specify an output, you shaped the conditions and hoped. That reframed the job: less writing the answer, more designing the context and guardrails the model answers inside.
  • Naming did more of the design work than I expected. What we called the assistant, shopé, and how weird we let it be, was really us deciding what the product was and how it should feel. Names turned out to be design decisions you make early, not labels you add at the end.
  • This was the first time I treated a model as something you design the surroundings for, rather than something you script. The instinct holds up, even with week-old tools. What I'd change now is starting from the content standards, not the demo.
  • The evaluation we ran, human review against a rubric plus spot-checks, was the right method for early 2023, but it didn't scale: every prompt change meant re-reviewing outputs by hand. What I'd change now is keeping the same rubric and automating the scoring, running a fixed set of real shopper queries through an LLM-as-judge so quality is a number we can steer across iterations, not a manual pass each time.

There's always more behind a case study.