RevOps · Quote-to-Cash Flow Inspector
Import a quote-to-cash export and see where the handoff broke.
Revenue Systems Engineer / Salesforce BSA / RevOps Architect — quote-to-cash is the highest-stakes RevOps seam. When it breaks, real dollars disappear: un-invoiced contracts, un-billed renewals, amount mismatches that got paid at the wrong number. Nobody renders the full chain — Opportunity → Quote → Contract → Invoice → Renewal — as a navigable, per-record graph where you can click a broken handoff and get a structured, system-attributed diagnosis.
Salesforce CPQ surfaces quote state. Ironclad surfaces signature state. Stripe surfaces invoice state. No native join confirms the contract-exec trigger fired into billing. Orphaned contracts are invisible. The failure manifests as: "we have 12 signed contracts that did not trigger invoicing — find them." That's a custom SOQL query + a CSV + a meeting. Q2See replaces that meeting.
Crestline Digital signed on March 14. The Workato recipe was paused during a Stripe API key rotation and never resumed. 77 days later, $48,000 has not been collected. Nobody noticed because the payment didn't fail — it never happened.
One click on the red-glowing Contract node: CRITICAL — Invoice never created. System owner: Workato recipe cpq-to-stripe-prod. Status: PAUSED. Cause: recipe suspended during key rotation, never resumed. Fix: four numbered steps. Revenue recovered.
HandoffEdge is a first-class type; rules are pure functions; dagre layout + React Flow custom nodes. This is built, not clicked together.POST /demos/q2see/analyze) parses it server-side into the same five-object flow and runs the broken-handoff detection rules against your rows — orphaned contracts, amount/currency mismatches, approved-quote-no-contract, unowned renewals, overdue AR. The graph, inspector, and findings rail then render your data, with the banner switching to a "your data" boundary notice.Static Astro site with a vanilla-TS inline-SVG flow graph. Two data paths: (1) a synthetic JSON fixture set that ships with the demo, and (2) a real Cloudflare Pages Function backend (/demos/q2see/analyze) that inspects an uploaded CSV/JSON export server-side. The detection rules are real; the boundary is honest — it analyzes a point-in-time export you provide, not a live Salesforce/Stripe OAuth connection, and stores nothing. No secrets. Deploys as a Cloudflare Pages subpath.