What this page is for
Sales Matrix is the TV-displayed selling tool you run with a customer sitting across the table — a walkthrough of Window Tint, Ceramic Coating, PPF, and Flat Glass with per-vehicle, per-window selection and pay-link checkout built in. The launcher lives at /app/sales-matrix, and you can get to it three ways: the sky-blue "Sales matrix" button in the Dashboard's quick-action row, "Sales Matrix" in the +New menu, or by typing "matrix" into the command palette. There's no separate sidebar rail entry for it — those three are the doors in.
Treat this launcher screen itself as customer-facing. It's meant to sit on the showroom TV between presentations, so you'll never see revenue, ticket totals, or counts of closed sales anywhere on it — that data lives on the Reports side instead. Before you tap Start, just confirm the TV is actually showing this URL.
Starting a presentation
Hit the big "Start presentation" button and you're dropped straight into the customer picker — the first screen of the flow — where you can pull up an existing vehicle or type in year/make/model on the fly. Worth knowing: Start always spins up a brand-new session, it doesn't look for one already in progress. If a customer already has a session going (they stepped away from the table, or you fat-fingered Start twice), don't hit Start again — use Resume on their card in the rail below instead, or you'll end up running two separate sessions for the same customer.
If the button just spins on "Starting…" past about 8 seconds, the page resets itself automatically so you're not stuck — that's a safety net for a hung backend request, not a sign the session actually started. The toast that follows tells you to check the Network tab in devtools for the sessions.start request; the mutation is still running in the background when this fires, so if it later fails outright with no error detail, you may see a second toast pointing you to the browser console instead.
The resume rail
Below the Start button you may see up to two groups, both scoped to today only — yesterday's sessions never show up here: "In progress" (sessions still ACTIVE — a customer stepped away, or you need to hop between tables) and "Finished today" (COMPLETED sessions, in case the same customer comes back to add something). Each card shows a shortened customer name (first name plus last initial, or "Walk-in customer" if none was captured), the vehicle if one was entered, and pills for whichever categories were picked — again, no dollar amounts anywhere, and abandoned sessions are never listed here at all.
Tap Resume on an in-progress card to pick it back up, or Re-open on a finished one. The small X in the corner of each card dismisses it — for an in-progress session this marks it ABANDONED and asks you to confirm first (the row stays in the database for reporting, it just drops off this rail). If the "In progress" group piles up with stale walk-ins — common on demo or training shops — use "Dismiss all" next to that group's header to clear the whole thing in one confirmed sweep instead of X-ing every card by hand.
If Start presentation is greyed out
Two banners can appear above the Start button, and either one disables it. "No catalog configured yet" means you haven't added film brands, ceramic coatings, PPF packages, or flat glass options — click "Configure catalog" (or "Catalog & settings" in the top-right corner) to fix it. "Sales Matrix tables aren't deployed yet" is a rare, developer-facing message about the database schema not being pushed; you shouldn't ever run into it on a live shop. Both banners are deliberately neutral, with no shop-performance numbers in the copy, since a customer glancing at the TV could see them too.
Frequently asked questions
Q: How do I launch a Sales Matrix presentation?
A: Three ways: the sky-blue "Sales matrix" button in the Dashboard's quick-action row, "Sales Matrix" in the +New menu, or typing "matrix" into the command palette. The launcher lives at /app/sales-matrix.
Q: If a customer already has a session going, should I hit Start again?
A: No — Start always spins up a brand-new session rather than finding an existing one. If a customer's session is already in progress, use Resume on their card in the resume rail below instead, or you'll end up running two sessions for the same customer.
Q: What does it mean if the Start button just spins on "Starting…"?
A: After about 8 seconds the page resets itself automatically as a safety net for a hung backend request — it's not a sign the session actually started. The toast that follows suggests checking the Network tab for the sessions.start request, since the mutation may still be running in the background.
Q: What shows up in the resume rail below the Start button?
A: Up to two groups, both scoped to today only: "In progress" (ACTIVE sessions) and "Finished today" (COMPLETED sessions). Each card shows a shortened customer name, the vehicle if entered, and category pills — no dollar amounts, since the screen is customer-facing.
Q: What happens if I dismiss an in-progress session with the X?
A: It asks you to confirm, then marks the session ABANDONED and drops it off the rail. The row stays in the database for reporting purposes — it isn't deleted.
Q: Why is the Start presentation button greyed out?
A: One of two banners is showing: "No catalog configured yet" (you haven't added film brands, ceramic coatings, PPF packages, or flat glass options — click Configure catalog to fix it), or the rare developer-facing "Sales Matrix tables aren't deployed yet" message.