← All work

HubSpot · 2019 · Sales Mobile · Part 1 of 2

Sales software is built for desks. Sales reps aren't.

Three features built around where reps actually are - at conferences, on calls, waiting on prospects. Not a desktop port. A phone that does the job.

In 2019, HubSpot Mobile existed but it was a shrunken desktop. Every feature was designed around keyboards, big screens, and sustained attention. Three of the most common things a rep does during their day - meet someone new, take a phone call, wait on a prospect - weren't served by the app at all.

At a conference

Business Card Scanner

Reps meet people. They exchange cards, make notes on the spot, and then spend time later manually entering those contacts into a CRM. The phone in their pocket already has a camera.

Business Card Scanner used OCR and an in-house ML classification model to photograph a card and create an enriched CRM contact in seconds - name, job title, company, phone, email - no manual entry. Before committing to in-house ML, I ran a competitive benchmark against ABBYY, CamCard, and Wantedly: booked a conference room, sourced real cards from the sales floor, and scanned each one against every solution. HubSpot's model scored highest - 90.8% accuracy on iOS, 85.7% on Android.

Business Card Scanner — camera view ready to scan a card
Scan a card
Business Card Scanner — contact created from the scanned card
Contact created instantly

5K WAUs. W1 retention in the mid-20s. 20% week-over-week growth at launch. When COVID collapsed conference attendance in 2020, card-scanning usage followed. The right call was to deprioritise planned v2 investment - additional fields, post-scan workflows, a local model replacing cloud OCR - and redeploy the team to Today View. BCS stayed live. The roadmap was paused, not the feature.

On an incoming call

CallerID

A rep's phone rings. Unknown number. Three options: answer blind, let it ring, or look it up and miss it. None of those work.

CallerID surfaced CRM context on the lock screen before the rep answered - who was calling, which deals they were on, recent activity. No manual contact sync. Shipping it meant working inside the iOS and Android platform ecosystems - each handles incoming calls differently, each has system-level constraints on what you can surface and when. When Google removed external CallerID access mid-development, we rebuilt the Android approach from inside the platform.

HubSpot Caller ID notification appearing on the iOS lock screen
Caller ID on the lock screen
HubSpot mobile Calling settings showing the Caller ID toggle
Turning Caller ID on in settings

A later rebuild, and a miss worth keeping

Years later, CallerID had decayed - slow, unreliable, and effectively broken for large portals. The team rebuilt the reliability layer; my lane was the relaunch: the adoption play, the impact measurement, and the root cause of why iOS so often showed nothing (Apple only triggers CallerID for numbers stored in +E.164 format, which most people don't). Reliability moved hard - slow loads over two seconds dropped from 54% to 6%.

Adoption is the honest part. I set the target at 51% with no real model behind it - just a belief that most people would obviously want their phone connected to their CRM. We hit about 10%. The funnel showed why: plenty of users tapped the prompt, far fewer finished enabling it, because turning CallerID on means granting a system permission. The same wall as the Keyboard. The lesson stuck - when the value sits behind an OS permission, you earn the setup or you don't get the adoption.

Waiting on a prospect

Activity Feed

Reps track their emails. The moment a prospect opens a message is a signal to act - not when the rep gets back to their desk, but immediately.

Activity Feed put that signal on the phone. A push notification fires when a tracked email opens. Tap, and you're on the relevant contact before the prospect has finished reading. That habit loop - notification, open, action - turned mobile from a backup tool into a daily driver. Activity Feed push notifications eventually accounted for 70% of all notifications sent from the HubSpot mobile app. 62K users checked their feed weekly, 71% of them on a paid hub.

Activity Feed showing real-time email open notifications and prospect activity
Real-time prospect activity
Push notification for email open — contact name and action prompt
The notification that starts the habit loop

Part 2 of 2

What should I do next?

Tasks, Today View, Keyboard, and Conversation Intelligence - 2020

Continue →