Case Study
NBPA Portal
A mobile-first self-service portal that gives every NBA player one place to access their seasonal group licensing money, manage their NBPA-certified agents and financial advisors, review their contracts, and get official union news and documents, backed by a Salesforce CRM that was developed and released in tandem.
Role: Director of Digital Product ยท Platforms: iOS & Android (Nov 2025), Web (Mar 2026)




The Opportunity
Before this app, a player who wanted to retrieve their seasonal group licensing check, confirm their agent's certification, look up a contract, or swap a financial advisor had to go through a dated and broken website, and often times ended up having to reach out to support rather than self serve through one trusted, always-on channel. As Director of Digital Product, I was tasked with scoping and delivering a mobile-first self-service portal that put all of that in players' hands, along with the Salesforce CRM system to power it: the backend of record for players, agents, contracts, financial advisors, and union communications, and the system the mobile app reads from and writes to.
Product Process
- 01
Discovery & Requirements
Mapped how licensing, agent certification, contracts, and financial advisor relationships actually worked across NBPA staff, players, and certified agents, and scoped which of that could safely move to self-service versus what needed staff review and dual sign-off (banking and personal-info changes in particular).
- 02
Design
Wireframed the mobile app end to end in Figma and built a user story map covering all four portal personas (player, agent, financial advisor, medical professional), used to scope the Salesforce data model and the build alongside the engineering team.
- 03
Build
Directed a cross-functional engineering team building the Expo/React Native mobile app and the Salesforce Experience Cloud backend in parallel, including the REST API layer connecting them and integrations with DocuSign, Sage Intacct, Tipalti, Twilio, Sportsradar, and the group-licensing vendor.
- 04
Launch & Rollout
Shipped to the App Store and Google Play in November 2025 (a web companion followed in March 2026). As project owner, I planned the implementation and launch, ran Salesforce staff training personally as lunch-and-learns, and then traveled to onboard players directly at their home training facilities.
Leadership & Team
NBPA Portal was a real cross-functional delivery. I led product strategy and requirements, the Salesforce data model and integration decisions (which systems needed a direct Apex integration versus a staff workflow), the UX direction (the Figma wireframes and user story map behind the app), and the launch and rollout plan. An engineering team I directed implemented the mobile app and the Salesforce CRM backend from that direction, including the metadata-driven form/list rendering system and the nine-endpoint REST API layer described below.
Key Features
Seasonal Group Licensing Check
Players can check their group licensing status directly in the app, with signed licensing agreements captured in-app and synced to the NBPA's group-licensing vendor through a dedicated Salesforce integration.
Agent Management & Certification
A certified-agent directory (NCAA and FIBA certification status), the player's own Standard Player-Agent Contracts, and agent invite/renewal/termination flows, all backed by Salesforce as the system of record for NBPA agent certification.
Contract Management
Players can view their Uniform Player Contracts by season and league directly in the app, pulled live from Salesforce rather than requiring a call to NBPA staff.
Financial Advisor Management
Players invite or terminate a financial advisor relationship themselves, with granular, per-relationship permissions controlling whether that advisor can view documents or update information on the player's behalf.
News & Documents
A union news feed and per-season, secure document folders, with legal forms and event waivers captured as e-signed DocuSign documents instead of paper.
Secure Change-Request Workflows
Changes to banking details or legal name/address go through a dual-approval workflow, routed to both finance and legal staff for sign-off before taking effect, rather than being applied directly by the player.
System Architecture & Tech Stack
The mobile app talks to Salesforce through a purpose-built REST API layer (nine Apex REST controllers, one per portal persona plus a public/unauthenticated surface) sitting in front of Sales Cloud custom objects and an Experience Cloud community that provisions a distinct Salesforce login for each of the app's four personas. Rather than hand-building a form and list screen for every Salesforce object, the app defines a single metadata-driven rendering system: each object declares its fields, types, and validation once, and forms, lists, and record views are generated from that declaration. That same Salesforce schema is synced live into the mobile app's TypeScript types and Zod validators, and exercised with fuzz-generated test payloads on every build, so the two systems can't silently drift apart.
Mobile App
Salesforce CRM & Backend
Design & UX Decisions
- Four role-based experiences, one app. A player, a certified agent, a financial advisor, and a medical professional each see a distinct navigation stack and set of screens from the same codebase, selected by the logged-in user's Salesforce persona.
- Sensitive data gets extra protection. Screenshot and screen-recording are blocked app-wide, appropriate for an app that handles players' banking details and signed legal documents.
- Signatures, not paper. Forms that legally require a player's signature (financial-info changes, event waivers) capture it in-app and attach it to the record, rather than routing players to a separate paper or email process.
- The data model drives the UI, not the other way around. Adding a new Salesforce object to the app is primarily a matter of declaring its fields once; the form, list, and detail screens are generated from that declaration instead of being hand-built per object.
Wireframes & User Story Map
The mobile app was wireframed screen-by-screen in Figma. Scoping it meant mapping requirements across far more than the four portal personas: Legal, Finance, Player Experience, Brand Partnerships, Brand Comms, Crisis Management, Mental Health, Licensing, and Operations all fed into the same Salesforce user story map, tying together contracts, agents, financial advisors, events, QTPs, waivers, and roster data into one system.

Mobile Wireframes




Outcomes
NBPA Portal
Since launch, the Portal has reached a level of adoption most digital products never see in their first year. Most importantly, it proved that the players are capable of real self-service: signing contracts, adding and removing agents and advisors, and receiving payments. The app is user-friendly enough that some players downloaded it, logged in, added their banking information, and removed an agent entirely on their own, with no NBPA staff involved.
It has replaced a fractured legacy system of spreadsheets, paper, and one-off outreach with real self-service. 1099 tax document delivery is the clearest example: a process that used to mean staff looking up each player individually and chasing them by text and email is now a single bulk upload, with players and advisors retrieving their own documents. What used to take staff days now takes about half a day total.
Salesforce CRM
Salesforce launched alongside the Portal in November 2025 as the organization's CRM. I planned and led the staff rollout myself, running training as lunch-and-learns rather than a one-off announcement. It now powers core workflows across the organization, replacing siloed spreadsheets and undocumented individual knowledge with a shared system of record.
The most significant outcome is visibility the NBPA never had before. The system allows the union to at a glance view the services provided to each player, their movement in and out of the league, and most importantly, allows the union to be proactive rather than reactive to a player's needs. That's the first meaningful layer of institutional data in the union's history, and the foundation for understanding where players are being served well and where they aren't.
