Tour Sandbox — free 7-day trial (Brief 20 Phase 1)
Anonymous visitors at try.crmown.io enter their email, receive a magic link, and land in a 7-day fully-seeded Tour Sandbox without ever setting a password. Phase 1a (shipped 2026-05-21) is the BACKEND foundation: magic-link signup, dormant User row, Northstar-seeded Tour Sandbox org, disposable-email blocklist, rate limits. Phase 1b ships the frontend /try landing pages + the 5-stop guided walkthrough; Phase 1c adds the day-7 expiry worker + 30/60/90-day remarketing cadence; Phase 2 adds the $14 Trial upgrade.
Steps
- Visitor lands at try.crmown.io (subdomain wired by John out-of-band — code agnostic to which host serves the page).
- Enters their email → frontend POSTs /api/tour/start.
- Backend validates: email shape, disposable-email blocklist (250+ known providers), rate limit (3/IP/24h + 1/email/24h).
- Magic-link token (10-min TTL) saved on a placeholder dormant User row + placeholder Tour Sandbox Org (status: pending_verification).
- Email arrives: "Your CRMown Tour Sandbox is ready" with a Start the Tour link.
- Click → GET /api/tour/verify?token=xxx. Backend activates the Org (sandboxConfig.status = active, expiresAt set +7 days), seeds Northstar synchronously (~30s), issues session JWT.
- Frontend stores the JWT cookie + redirects to /dashboard?tour=true.
Good to know
- Tour Sandbox orgs use the same isSandbox=true + plan="learner" + sandboxConfig.tier="tour" pattern Brief 20a established for Learner Mode. They share the enrichment-mock layer (no Hunter/Apollo spend) and the outbound-email interception (nothing leaves the sandbox).
- Dormant users have a SENTINEL password hash (bcrypt of crypto.randomBytes(32)) — password login physically cannot authenticate them. Only the magic-link verify flow works until they upgrade to Trial + set a real password.
- Re-entering the same email within the 24h rate-limit window returns the generic "check your inbox" envelope without sending another email. Avoids both spam and the account-existence leak.
- Non-dormant users entering the Tour flow (e.g. an existing paying customer trying to "test" the Tour) get the SAME generic envelope — we never confirm or deny account existence to anonymous callers.
- Tour data lives on the org just like real CRMown data — same tables, same routes, same UI. The only difference is the org row flags (isSandbox=true + plan=learner) that route every outbound side-effect through the interception layer.
- Phase 1a only ships the backend. The /try landing page, walkthrough UI, and the read-mostly restriction enforcement land in Phase 1b. Until then, a Tour user has full edit capability inside their sandbox — fine for testing flows, not yet the brief's read-mostly target state.
- Trial upgrade button currently returns 501 not_yet_available. Phase 2 ships the $14 Stripe SKU + 5 industry seeds + Trial→Paid conversion. Users on Phase 1a Tour see "Trial coming soon — your 7-day Tour continues" if they try to upgrade.
Troubleshooting
Error messages
invalid_email— Email shape didn't match the basic regex (e.g. no @ or missing TLD).disposable_email— Domain matched the disposable-email blocklist. Use a real work or personal email.rate_limited— Either 3 Tour starts already came from this IP in the last 24 hours, OR this email already requested a Tour in the last 24 hours.invalid_token— Magic-link token in the URL doesn't exist or was already consumed.expired_token— Magic-link is older than 10 minutes. Start a fresh Tour to get a new one.trial_phase_2— You clicked "Upgrade to Trial" — that feature lands in Phase 2. For now your Tour continues for the full 7 days.
Plans
Tour Sandbox is anonymous-accessible (no plan, no signup) but bounded by 7-day expiry + the rate limits. It is NOT subject to the Max/Own gate that standard Enterprise Sandboxes have, nor the all-paid-plan gate Learner Mode sandboxes have.
Related
- Sandbox — Learner Mode (training environments) — internal-facing equivalent for customer staff
- Enrichment mocking — every Tour Sandbox enrichment call returns mocked data, zero provider spend
- Boost Packs & Metered Overage — Tour users cannot purchase boosts (learner plan blocks it); Trial upgrade ($14 one-time) unlocks the upgrade-to-Starter path that includes boost eligibility