UCP Checker
Guides · Retail

How UCP's Ask Works: Questions Before and After a Purchase, Step by Step

· 3 November 2026 · 10 min read

UCP's Ask capability lets an agent ask a store a question in its own words and get the store's own answer. It went into the 2026-08-25 release on 2 November, and Shopify already declares it on its stores. So we built it into our test store and followed one shopper from the first question to after the purchase.

This post walks through that run: the profile entry, the question before buying, a checkout that disagreed with the answer, and the questions after the order. Every request and reply shown here is from the run.

What is UCP's Ask capability?

Ask (dev.ucp.common.ask) is a UCP capability for open questions between an agent and a business. The agent sends a question in plain words, and can name the things it's about with ids: a product, a shop, an order. The business sends back a plain-text answer with links to what it mentions.

The spec gives it two firm limits. Ask answers; it does not act: a business "MUST NOT change the state of any resource" because of a question. And an answer is indicative, not authoritative: where it disagrees with the catalog, checkout or order, the agent "MUST prefer" those.

The setup

The store is Northlight Flowers on flowers-ask.ucpsandbox.com, one of our UCP Sandbox test stores. It has five shops, a structured return policy and test cards only. Its answers come from fixed rules over its own catalogue and policies, with no model, so every answer can be traced to a field. A real store, Shopify included, will answer more freely.

The agent is UCP Playground running Claude Sonnet 5 over MCP, with its UCP platform identity.

UCP Playground set up for a run at flowers-ask.ucpsandbox.com: the store's UCP profile found at 2026-08-25, MCP and REST, test card payments.

Step 1: both profiles declare Ask

The store lists Ask in its UCP profile, with the 2026-08-25 spec and schema:

"dev.ucp.common.ask": [
  {
    "version": "2026-08-25",
    "spec": "https://ucp.dev/2026-08-25/specification/common/ask",
    "schema": "https://ucp.dev/2026-08-25/schemas/common/ask.json"
  }
]

Ask sits on the common service, so it uses the store's common endpoints: POST /ask over REST, and the ask_business tool over MCP. Playground's own agent profile declares Ask too, so both sides agree it's in use.

The store also offers one identity-linking scope, dev.ucp.common.ask:read, for questions about the buyer's own account. It gates nothing: without it, Ask still answers from public information.

Step 2: a question before buying

The shopper asked: "I'd like red roses for my mum. Ask the store how long they last, and whether I can collect them from the Lincoln Park shop on Sunday. Is there parking there?"

The agent searched the catalogue and, in the same turn, called ask_business:

{
  "name": "ask_business",
  "arguments": {
    "ask": {
      "query": "How long do your red roses typically last once delivered? Also, can a customer pick up an order from the Lincoln Park shop on a Sunday, and is parking available there?"
    }
  }
}

It sent no ids. The spec makes them optional, and our store matched the roses and the shop by name. It answered from the catalogue, the shop's record and the freshness promise:

Northlight Flowers, Lincoln Park is at 2140 N Halsted St, Chicago, 60614. On Sunday 8 Nov it is open 10:00 to 16:00. Thanksgiving (26 Nov): closed. It offers: Collect in the shop, Curbside pickup, Street parking. Bouquet of Red Roses is in stock at this shop. … Cut flowers are guaranteed to last seven days from delivery with fresh water and flower food.

The reply also carried links with ids, product for the roses and location for the shop, so the agent could act on either through the capability that owns it. And it carried a conversation id, so a follow-up question builds on this one.

The run after the first question: the agent's summary of the store's answers (seven days, open Sunday 10:00 to 16:00, curbside pickup, street parking), and the trace with search_catalog and ask_business.

The ask_business request in the trace: a signed MCP tools/call to flowers-ask.ucpsandbox.com/mcp with the shopper's questions in query.

Step 3: the checkout disagreed, and the agent noticed

The shopper said yes: one bouquet, collected from Lincoln Park, test card. The agent created the checkout with pickup at that shop. The store's checkout then offered two pickup times: today, or tomorrow. Not Sunday.

The agent didn't pick one or claim Sunday was booked. It told the shopper: "The store did confirm the Lincoln Park shop is open Sunday … but the checkout's selectable slots only go up to Wednesday Nov 4."

That is the rule working. The answer said the shop opens on Sunday, which is true. The checkout said which pickup times this order can have, and the checkout is authoritative. The shopper chose the next day, and the agent completed the order with the test card: NF-IQXDKZ, $35.00.

The checkout with pickup at Lincoln Park and the agent's message: the store's answer said Sunday, the checkout only offers today or tomorrow, and it asks the shopper which to choose.

The order placed: NF-IQXDKZ, Bouquet of Red Roses, pickup free, paid with the test Visa, ready from Wed 4 Nov at the Lincoln Park shop.

Step 4: questions after the purchase

Then the shopper asked: "Can I still cancel it if plans change, and if the roses wilt, until when can I tell them?"

This time the agent put the order's id in ids:

"ask": {
  "query": "Can I still cancel this order if my plans change? If the roses arrive wilted or damaged, until when can I report it?",
  "ids": ["01a1a153-2a76-723f-8d60-e618c8200115"]
}

The spec says a business applies its normal access rule to a resource named in ids, the same rule as reading the order. Our store does, then works out its policies against that order's own dates:

Order NF-IQXDKZ is confirmed and hasn't shipped yet (Next day). Bouquet of Red Roses: the 48 hours to report damage or wilting starts when it is delivered. Order NF-IQXDKZ hasn't shipped, so it can still be cancelled free of charge. Cancel it through the order: this answer changes nothing.

The return window comes from the store's structured return policy (an eligibility window of 48 hours from delivery for fresh flowers). The cancellation rule comes from the order's own state. Once the order is delivered, the same question gets a date and time instead of "starts when it is delivered".

The last sentence is the "answers, does not act" rule. The agent offered to cancel for the shopper, which is allowed: whether to call the capability that owns the action is the agent's own decision, from what the buyer asked, never from the answer.

The after-purchase answer in the chat: cancellation still free because the order hasn't been fulfilled, and 48 hours from delivery to report wilting with a photo.

What you can ask a store

The spec lists product questions, policy questions, FAQs and questions about a specific resource. On our store that comes to:

Kind Examples
A product "How long do these last?", "Is this vase big enough for a dozen roses?"
A shop Hours on a day, holiday closures, pickup, curbside, parking, stock at that shop
Policies Returns, delivery times, cancellation, the freshness promise
An order (by id, or signed in) Can it still be cancelled, until when each item can be returned, where it is, any return and its refund

Some questions belong elsewhere. Distance ("nearest shop to 60614") belongs to the location capability's search. Prices and stock in an answer are indicative; catalog and checkout have the real ones. Safety and allergen questions get a warning shown as a disclosure, and no claim.

Starting a return isn't in the spec yet: Ask can tell you a return's status once the store opens one, but no UCP operation lets an agent open it.

What it means for stores

  • Ground answers in your own data. The spec asks for links to the source behind each answer: the policy page, the product, the order. Agents use those links to act.
  • Expect the checkout to win. If an answer and a checkout disagree, agents must believe the checkout. Our run showed what that looks like: a correct "open Sunday" and a checkout that can't book Sunday. Keep them in step.
  • Questions after the purchase are where Ask earns its place. "Can I still cancel?" and "until when can I return this?" are what a buyer asks after paying, and the answer depends on that order's dates, not the general policy text.

What it means for agent builders

  • Send ids when you have them. Our agent didn't for the first question and did for the order. Names worked on our store; on others, an id is the only reliable way to say which product or order you mean.
  • Treat answers as indicative. Check prices, stock and times against catalog and checkout before telling the buyer they're settled.
  • Never take "nothing changed" as done. Ask doesn't act. If the buyer wants to cancel, call the capability that owns it.

Try it

Start a run at flowers-ask.ucpsandbox.com and ask about a shop or an order. The full run is shared here. The Ask capability page has the request and response.

What we'll watch

  • Whether other platforms add Ask, and whether they ground answers in shops and orders. We track adoption across every store we check.
  • How agents weigh an answer against the catalog and checkout when the two disagree, as they did in this run.
  • We'll keep testing what Ask can do, so look out for more posts on it.

FAQ

What is UCP's Ask capability?

Ask (dev.ucp.common.ask) lets an agent send a business a question in plain words and get a plain-text answer with links. It's in the UCP 2026-08-25 release, added on 2 November 2026.

Can Ask change an order or a cart?

No. The spec says a business must not change any resource because of a question. If a question asks for an action, the answer says nothing was done, and the agent decides whether to call the capability that owns that action.

Is an Ask answer binding?

No. Answers are indicative. Where an answer disagrees with the catalog, cart, checkout or order, the agent must prefer those.

How does an agent ask about a specific order or shop?

It puts the resource's id in ids. The business applies the same access rule as reading that resource directly, so an order id only works for someone allowed to see the order.

Does Shopify support Ask?

Shopify stores declare dev.ucp.common.ask in their UCP profiles at 2026-08-25. What each store answers is up to Shopify and the store.

Can an agent start a return through Ask?

No. Ask can report a return's status once the store has opened it. Starting one needs a returns operation, which isn't in the spec yet.


About UCP Checker

UCP Checker is the independent validation and observability layer for the Universal Commerce Protocol. We crawl, validate and grade every public UCP manifest we can find, run the merchant directory, the UCP Score, live adoption stats, the vertical guides and the authority-bound vendor map, and track the spec as it evolves so you don't have to — measured from two vantages (what a business declares, and what actually happens when an agent transacts), the same way for everyone, without picking winners.

Sources

Related coverage: UCP's Ask is merged · How UCP's Embedded transport works, step by step · How UCP over A2A works, step by step · How UCP works: a real agent buys flowers

What does a UCP agent find at your store?
Check it once and it gets its own status page.
Check a store

Keep reading

3 Nov 2026 UCP for B2B: An Agent Buys on Net 30 Terms, Step by Step Guides · 12 min 31 Oct 2026 The Wix UCP Guide: How Wix Stores Work With AI Shopping Agents Guides · 10 min 30 Oct 2026 How UCP over A2A Works: Checkout With a Store’s Agent, Step by Step Guides · 9 min