Speed
Customer Success
Speed CSM & Engagement Platform
Internal CS console plus wallet-native engagement games that pay real sats to eligible users
THE CHALLENGE
What existed before
Speed's CS team ran high-value user lifecycle work — KYC, deposits, outreach, and reward promos — across spreadsheets, Intercom, Gmail, and ad-hoc SQL. There was no single place to see a customer, no safe way to run reward campaigns, and no wallet-native way to deliver sats-based incentives without exposing service credentials or letting forwarded links leak rewards.
Who was affected
CSMs lost hours reconciling tools; CS leadership had no reliable funnel or performance analytics; and end-users received generic outreach with no personalized incentives inside the wallet.
Previous workaround
CSV exports, manual segment building, Intercom broadcasts, calendar-scheduled calls tracked in sheets, and promo codes handed out over chat.
Cost of the problem
Multi-hour weekly reporting cycles, duplicated data entry across 4+ tools, unsafe reward distribution where any link-holder could redeem, and no measurable attribution from outreach to FTD.
The solution
A unified console and wallet-native game hub
A unified React + TypeScript console gives CSMs a 360° view of every customer — KYC, deposits, swaps, calls, journeys, and next-best-action — and lets them run multi-step sequences and campaigns from the same place. A separate public Game Hub renders three reward games (Spin Wheel, Scratch Card, Balloon Pop) that pay sats directly to the user's Lightning Address inside the Speed Wallet miniapp. Both apps share one backend, and every reward-bearing action is proxied through edge functions so credentials never leave the trusted surface.


Key features
360° customer view
KYC, deposits, journeys, calls, and tasks in one screen.
Sequences & campaigns
multi-step email / in-app / push / call flows with dynamic variables, send windows, and per-recipient token minting.
Engagement games
visual editors for spin wheel, scratch card, and balloon pop with weighted prizes and sats payouts.
Miniapp gating
eligibility is re-checked from the wallet's account id on every open, so forwarded links do nothing for non-recipients; each account plays once.
Analytics
FTD funnels, deposit-method breakdowns, CSM performance, list movement, and time-to-FTD cohorts.
Integrations & tech stack
The platform is built on a modern React + TypeScript frontend, a Lovable Cloud backend with Postgres and RLS, and edge functions for secure, advisory-locked operations.
Frontend
React 18, Vite, TypeScript, Tailwind, shadcn/ui, TanStack Query, React Router.
Backend
Lovable Cloud (Postgres + RLS), Edge Functions (Deno), advisory-locked RPCs, security-definer role checks.
Integrations
Speed Wallet miniapp, Customer.io, Intercom, Gmail, Telnyx (SMS/voice), Vapi (agentic calls), Sumsub (KYC).
Security built into the architecture
Two projects, one backend
The public Game Hub ships only the anon key; all writes go through edge functions on the CS backend, so the service role never touches a public surface.
Single choke-point mint RPC
One advisory-locked function decides pending / played / expired / not-eligible for every launch, making forwarded-link abuse structurally impossible.
Per-game gating flag
Flip one boolean and a game becomes campaign-recipient-only across every concurrent campaign that targets it.
