A single function producing links for the sales board (opening a specific lead card), estimates (selecting a SmartBuild job), the schedule (opening one project), invoicing, contacts, approvals, team and the dashboard.
Also called: clicking a notification does nothing · deep link · take me to the deal · notification link
- 1Each URL ends in a hash route the app router actually understands, with entity focus riding in a query parameter that has a registered consumer.
- 2The pipeline link seeds the existing open-card handshake, which retries as columns load.
- 3Because the links carry a search string they are a real navigation, so the consuming view remounts and reads them.
The file states the failure it fixes: 'every emit site used to hand-roll its own cta_url, and the conventions had drifted apart into two families — hash routes… and query "tabs" (?tab=estimates, ?tab=invoices, plus #estimate-<linkId> anchors) which NOTHING in the app ever read. Clicking those notifications dropped you on whatever view localStorage last remembered. The follow-up nudges shipped no cta_url at all, so they weren't clickable in any useful sense.' It also warns against re-creating the bug: 'adding a param here without wiring the view to read it would just recreate the ?tab= bug in a new costume.'
- Hand-rolled links pointing at parameters nothing read
- Follow-up nudges with no link at all
See it on your own jobs
Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.
or keep browsing features →