Signed customer identity and "My orders"

1.5.0 (unreleased). Nothing on this page is published or deployed. It describes the code on branch feat/magento-1.5.0-customer-hub and its module / UI branches as read on 2026-09-27. Tested end to end on Magento 2.4.7-p4, 2.4.7-p9 and 2.4.8-p5 — Luma and the Hyvä theme (2.4.7-p9), with the built-in page cache, Varnish and Redis — against the real Conviro API in a real browser (2026-09-27/28); Hyvä Checkout and other versions are not tested yet (Supported versions). Where a part is designed but not built, the section says so.

A shopper who is signed in to your Magento store can ask the chat "show my orders" and see their own orders at once — without typing an order number or an e-mail address — because your store proves to Conviro, with a short-lived signature, which customer is chatting. A guest, or a shopper Conviro could not verify, never sees anyone's orders this way; they keep today's order lookup.

PartState on 2026-09-27
Signed identity (the store vouches for the signed-in customer)built; backend and module on feat/magento-1.5.0-customer-hub
My orders (list, detail, tracking numbers) for a verified shopperbuilt; same branch
Order views, Talk to a person with the selected order, sign-in button, 29 widget languagesbuilt on feat/magento-1.5.0-p34-ui (not merged yet)
Magento admin card Customer Experience & Identity, Test identity bridge, key agebuilt on feat/magento-1.5.0-p34-module (not merged yet); the Conviro routes it calls are on feat/magento-1.5.0-customer-hub
Conviro dashboard figures (verified conversations, My orders reads)built; backend on feat/magento-1.5.0-customer-hub, dashboard section on feat/magento-1.5.0-p34-ui
Guest one-time code before an order is showndesigned, not built at Conviro: only the module switch exists, and it changes nothing yet
Cancel / return / exchange requests by a verified shopperdesigned, not built

What it does

  1. The shopper is signed in to your store and opens the chat.
  2. The widget asks Conviro for a one-time challenge, then asks your store (GET /conviro/identity/bootstrap, same origin, never cached) to sign it. Your store checks its own customer session and answers with a 60-second Ed25519 signature over the customer id and the store view — no name, no e-mail.
  3. Conviro checks the signature with the public key your store registered, spends the challenge once, and creates a Verified Customer Principal for that chat: at most 15 minutes, then the widget quietly repeats step 2 while the shopper is still signed in.
  4. When the shopper asks for their orders (the My orders chip, or typing e.g. "my orders", "where is my order", "siparişlerim", "meine Bestellungen", "mijn bestellingen"), Conviro asks your store through a read-only route that re-checks the signed session on every call and returns only that customer's orders.

The name the widget greets a shopper with still comes from the storefront's customer section. It is display only: it never opens an order, and neither does an e-mail or customer id a page passes to the widget.

The four identity states

StateWhenWhat the shopper can getNever
Anonymousa guest pageproduct help, stock and prices; asking about an order gets today's guest lookup (order number + checkout e-mail); an order card that needs a signed-in shopper offers Sign in (your store view's login page)a name, an address, an order, earlier chats' personal data
Recogniseda returning visitor who is not signed inthe same as anonymousan order list, order details, account data, any action
Signed in, not verifiedthe page shows a signed-in shopper, but Conviro has no valid signature yet"Connecting securely to your account…" while it tries (one silent retry); on failure "We couldn't connect to your account right now", a link to the account's order page and the guest lookupusing the storefront's customer id or e-mail to open anything; "you have no orders"
Verified customerConviro checked your store's signature and the shopper is still signed intheir own orders in this store view (or website, if you choose), tracking numbers, Talk to a person about one orderorders of another customer, another store view outside your scope, another website

Short-lived states on top of these: session expired (the 15 minutes ran out — the widget reconnects silently; if that fails the order card says "Your secure connection to the store has expired" with Reconnect), signed out (the shopper signed out in this or another tab — every order card disappears at once, then "You've signed out"), account switched (another customer signed in on the same browser — the previous customer's cards are removed before anything else is shown), and store unavailable ("We can't reach the store right now — please try again"). None of them is ever shown as "no orders".

A store where the feature is off at any point — module below 1.5.0, a switch off on either side, no registered key, an old widget build — behaves exactly as 1.4.x: the greeting, the chat and the guest order lookup are unchanged, and the widget shows no "connecting" message.

What a signed-in shopper sees

Only statuses your storefront's own My Orders page shows are listed (Magento's "visible on front" statuses).

What is never shown

To the shopper, in the chat: the billing or shipping address, telephone, the customer's e-mail or name from the order, payment method or payment details, item prices, discounts and coupon codes, invoice and credit memo numbers, the customer note and gift message, and Magento's tracking-popup link (a link anyone could open). Magento's route never sends them; Conviro drops any field it does not expect.

To your team and your integrations: a verified shopper's free-text order answers are stored sealed — the inbox shows "Verified customer order answer — visible only to the customer", and webhooks (message.new), the public API, exports and every other reader get the placeholder [Verified customer order answer: shown only to the signed-in customer] instead of the text. Order cards themselves are never stored. When the shopper taps Ask about this order, the agent who takes over sees only that one order, masked: number, status, dates, total, number of items, shipment status and number of tracking entries — no item names, no tracking numbers, no customer data. That context is kept 30 days.

To anyone after the shopper: after a sign-out or an account switch on the same device, the widget starts a new chat, and earlier order answers are hidden from whoever reads the old chat. What the shopper typed themselves (for example an order number) stays in the transcript as it does today.

How to enable

Everything is off by default, on both sides. Upgrading to 1.5.0 changes nothing for shoppers until both your store and Conviro switch it on (Upgrade 1.4 → 1.5).

Prerequisites

At Conviro (you cannot switch these yourself)

Platform switch (per workspace)What it opensDefault
magento_identity_bridgesigned customer identityoff
magento_my_ordersMy orders for verified shoppersoff
magento_guest_otpguest one-time code before an order is shown (not built yet)off
magento_verified_actionscancel / return requests of verified shoppers (not built yet)off

Ask Conviro support to switch them on for your workspace. Switching one off again takes effect within about a minute (the flag is cached for 60 seconds): every private read re-checks it, and live verifications of that workspace are revoked.

In Magento

Stores › Configuration › Conviro › AI Chat › Signed Customer Identity (beta), per website. Changing these needs the Conviro Setup permission.

SettingPathDefaultMeaning
Enable signed customer identityconviro_aichat/identity/enabledNoOn this website a signed-in shopper's widget may ask the store for the signature. Saving creates the store's key pair (once) and registers the public key with Conviro.
Show verified shoppers their own ordersconviro_aichat/identity/my_orders_enabledNoNeeds the switch above on the same website. Saving grants the Conviro AI Chat integration one extra read permission; switching it off on every website withdraws it.
Orders a verified shopper seesconviro_aichat/identity/order_scopeThis store view onlyEvery store view of this website also lists orders placed in the website's other store views. Other websites are never included.
Ask guests for a one-time code before showing an orderconviro_aichat/identity/guest_verification_enabledNoDesigned, not built at Conviro yet: saving it tells Conviro, but guests keep today's lookup until Conviro ships and switches it on.

Full list: Configuration reference.

Steps

  1. Ask Conviro to switch on magento_identity_bridge (and magento_my_orders) for your workspace.
  2. In Magento, set Enable signed customer identity = Yes (and Show verified shoppers their own orders = Yes) for the website, Save Config.
  3. Open Stores › Settings › Conviro Setup (or the same card at the top of the Signed Customer Identity group): the Customer Experience & Identity card should say the key is registered, Conviro should say the feature is on, and no Permissions warning should be shown.
  4. Click Test identity bridge for a store view. It signs a synthetic assertion — no real customer, nothing written — and Conviro checks it without creating anything. Every step should be green. (Conviro allows 10 tests an hour per store.)
  5. Sign in as a test customer on the storefront, open the chat, tap My orders.

If a step fails: the Customer identity runbook (the 30-second check) and Troubleshooting.

Talking to a person about an order

Talk to a person is on every order view when your chatbot allows handoff; when it does not, the button becomes Contact the store (a link to your store), never a dead button. Ask about this order on a card hands the chat to your team with that one order attached (masked, see above). A handoff is never refused because of identity: if the order cannot be read at that moment, the chat is handed over without it and the agent sees "Store unreachable at handoff".

Guest verification (designed, not built)

Planned for 1.5.0 but not built at Conviro on 2026-09-27: when on (the Magento switch above and magento_guest_otp at Conviro), a guest who gives an order number and checkout e-mail first receives a 6-digit code at that address and sees the order only after typing it in the chat (code valid 10 minutes, 5 attempts; the answer never says whether the order exists). The code opens that one order for 15 minutes and is never enough to change it. Until it ships, guests look orders up as today (order number + checkout e-mail, with the existing limit of 5 misses an hour).

Order actions by verified shoppers (designed, not built)

Planned: a verified shopper may request a cancellation, return, exchange or address change from an order card; your team approves every such request in 1.5.0 (Conviro dashboard › Inbox › Approvals). Only with Order-action assistance on (capabilities/allow_order_actions, off by default) may Conviro then write the approved change to your store; otherwise it becomes a task for your team. 1.5.0 adds no Magento write route and no write permission. Not built on 2026-09-27.

In the Conviro dashboard

The Magento store card gains a Customer identity section: whether each switch is on, the key state and age, the last successful verification, the store-view mapping, warnings with the fix, and figures for the last 7 or 30 days — share of chat conversations that were verified, verifications that succeeded / failed by reason, My orders taps and typed requests, order reads (loaded, empty, unavailable, refused), the estimated p95 read time and handoffs with / without an order. Only counts are kept — no customer, session or order id (Privacy).

Switching it off

Security model · Privacy and field inventory · Permissions · Integration Health · Multi-store · Headless, PWA and Hyvä · Customer identity runbook · Release notes 1.5.0 (draft)