When I started at HubSpot in 2016, HubSpot was primarily a marketing solution. While the CRM and Sales Hub existed, they had both launched as MVP solutions just the year prior, and the majority of our customers and our revenue was from our marketing products. The Marketing Hub pricing was well aligned for marketers -- there was a fixed SaaS fee and a variable component which scaled with the number of contacts that were in the CRM. Since it was a marketing solution, it made sense for marketers to pay for all of their contacts in the CRM, after all, if they didn’t want to send those people email, they should just delete them from the CRM.
Over the next two years, HubSpot expanded... and grew into our goal of being the CRM of choice for Small and Medium Sized businesses. The GDPR also passed, mandating that companies maintain records for their customers’ email subscription settings. And that’s when the Marketing Hub pricing became terribly painful for our customers. Due to regulatory requirements, Marketers could no longer delete contacts that had unsubscribed. And if a company paid for Sales Hub and Marketing Hub, the Marketers had to pay for the success of their sales teams as sales reps added prospects who hadn’t opted into receiving any email communications into the CRM. We started hearing our customers say they maintained a shadow CRM where they could keep contacts but not pay for them.
We were generating lots of real revenue from a ballooning contacts revenue line in our income statement, and balancing it with a growing liability on our customer happiness on our balance sheet. We were working on borrowed time.
As early as 2017 we knew we needed to fix this pricing problem. And, we also knew the solution -- Marketers should pay only for the contacts they marketed to. Why didn’t we pull the trigger? It was a big risk and resource commitment. If our customers chose to pay for only a small portion of the number of contacts in their CRM, they would downgrade and we would see a big drop in recurring revenue. This could be a catastrophic loss. Plus, this was a big effort. It would take many teams the better part of a year to execute, was it worth the opportunity cost? After a year of hand wringing up and down the organization, HubSpot’s CEO, Brian Halligan made the first decision: We needed to fix this problem.
Step 1: Put financial parameters around how much the solution will cost in money and time. Get alignment at the very top based on the operating plan.
In the winter/spring of 2019 the whizzes is finance and strategy came up with two assumptions:
If given the choice, customers would mark XX% of their contacts are “marketing”
Based on XX%, the company would risk up to $YY Million on the solution.
(For confidentiality purposes, I can’t share what XX and YY were)
We also knew that fixing contact tier pricing would generate new revenue, but no one could really estimate how much that would actually be.
In the summer of 2019, the CEO, CFO, CEO and all of the senior leadership team (called Helm) agreed on the operating plan which planned that Marketing Contacts would be released in the summer of 2020.
I volunteered for the project and my new manager gave me some good advice: Don’t fuck it up.
Step 2: Test those financial estimates in the market through user research
I was really excited to join this project -- it was a big pain point for our customers and this was going to be massively impactful. Yet, when I started work, my heart sank. The assumptions for XX% that customers would mark as marketing were wildly optimistic. Based on individual conversations and survey data that we conducted, customers expected that they’d have substantially less than XX% than we determined. If we built the product the way customers expected us to, we’d lose too much money -- the project would be scrapped. My challenge was to find a solution that solved the pain of unequal contact value for our customers, while keeping the bottom line of HubSpot intact. Could I do it?
Sidenote: I thought this was a great example of how B2B and B2C product management differ. The vast majority of the time, B2B product management is all about building something that customers want. Sometimes it’s tough to narrow down on what exactly they are looking for (e.g a car v. a faster horse) but rarely does B2B product management involve changing customer behavior. B2C product management, on the other hand, is about leading customers to a goal that is beneficial to the business, and is interesting or at least acceptable to customers. For example, how many people thought that what they really wanted in life was to post text-message sized status updates to an online message board before Twitter showed up?
Step 3: Identify Assumptions
When we surveyed customers on what percent of their CRM they would expect to be considered as “Marketing” we learned that there were a few assumptions that underpinned their utilization guesses.
What differentiated a marketing contact from a non-marketing contact? Specifically, could non-marketing contacts:
be emailed with marketing emails?
be emailed with sales emails?
be targeted with ads?
be tracked on customer websites?
go through internal workflows?
go through workflows that connect to integrators?
Who controlled marketing contacts?
Would HubSpot automatically mark contacts as marketing once they were used, and conversely, make contacts non-marketing if they weren’t being used?
Would the customer need to mark contacts as marketing or non-marketing manually?
How often could a marketing contact turn into a non-marketing contact, and vice-versa?
Immediately? Monthly? Quarterly? Or Yearly?
Through our research, we learned that our customers assumed, and preferred, a Marketing Contact that would be controlled by HubSpot, monthly, and a non-marketing contact could do everything except be emailed with marketing emails. No wonder they thought so few of their contacts would be marketing contacts!
Step 4: If necessary, make changes to the assumptions to fit the financial model
When we discovered that we couldn’t use the assumptions that our users had for what a “marketing contact” was, we set out to make our own definitions.
We played around with many permutations of the assumptions - perhaps HubSpot automatically controlled “marketing” contacts and we’d do it every quarter? Perhaps it would be user controlled and only marketing contacts would have website tracking?
We also identified another assumption that we and our customers were making, but they didn’t tell us. They assumed that we would keep our contact bands the same -- that users could pay for exactly 41k contacts if they had 40,088 contacts. We realized that it might be possible to change the number of contacts included in a band.
Here was the definition of the “messy middle.” We surveyed customers, we did pro-forma analysis on the number of emails that customers sent to their contacts. We learned a lot and we also argued a lot. This process took time, was emotional, hard and probably sowed the seeds of my eventual departure from HubSpot. If I were to go back to this time, I wish I could have pointed to a document that shared just how messy this middle would be. If you’re going through a pricing change, I hope this is a blog you show your boss. This shit ain’t easy.
The definition that we settled on for our initial launch was:
“Only Marketing Contacts can be emailed with marketing email and targeted with ads. Customers can control which contact is a marketing contact at the start of their contract, as contacts are entered into HubSpot, and 90 days before their contract is set to renew. And contacts would be sold in bands of 5k.”
Culturally, one of the mottos in HubSpot’s culture code is that Customer Value is more important than Enterprise Value. This was a cultural problem. Did this definition satisfy our customers? Yes, they wouldn’t have to pay for all of their contacts, but they’d still be paying for contacts they may think aren’t worthy of being “marketing” contacts.
“Is the juice worth the squeeze” was a phrase that was uttered so frequently that I brought orange juice to one of the Helm presentations.
Fundamentally, there was another “disagree and commit” moment: We could go forward building the plan, change our operating plan to allocate more money towards the initiative, or we could shrug our shoulders and give up.
The debate was fierce. Some people thought that we would still lose too much money. Others thought it would spur a customer backlash. I thought I might get fired.
We moved forward with the definition.
Step 5: Build the friggin thing!
In January, about 6 months after the initial directive, we had the execution kickoff.
This was a complicated project to build: Every place where customers interacted with a contact in Marketing hub and the CRM needed to be modified. There were no fewer than 20 engineering teams who made changes to their codebase to support Marketing Contacts. 20+ PMs, Designers and Engineering teams that needed to do work, by our summer deadline.
I engaged all of the teams that created new contacts (like import, forms, and ads) and the teams that used contacts (like email and workflows). I leaned on my phenomenal designers on the project to make sure that the flows were as simple as possible and together we all brainstormed the solutions together.
The execution capability of HubSpot teams is world-class. Ownership over each project is pushed down to the lowest possible level, with guardrails to catch major misses, and leadership that is exceptionally trained to remove any possible friction. The HubSpot system is deserving of its own blog post. The short story is that despite planning well in advance, we missed our original go-live deadline by only 1 week.
Step 6: Test
With many millions of dollars riding on this feature, we needed to find a way to test all of the assumptions that we spent so much time debating a few months before. The easiest way to do so was to launch in ANZ.
By testing in an isolated region, we were able to practice the entire go-to-market motion, fix any user experience sharp edges, correct bugs, and importantly validate the business case. And, if it went way off, we could press “undo” without taking the entire business down.
We launched in July, almost exactly a year after Brian Halligan made the first decision to fix HubSpot’s contact tier pricing. The Sales team in ANZ blew their sales out of the water -- they generated more revenue in three months than they did in almost the entire previous year prior. And….We made our XX% target for the number of contacts that were marked as marketing.
With the stellar financial results, I was able to advocate for loosening up the initial guardrails that we had put into place. Instead of only allowing customers to mark contacts as marketing/non-marketing once a year, we changed the definition to allow them to change it as frequently as every month. The way we had built the product allowed us to be flexible with the time frame for changes, and allowed us to implement a solution that was even more customer focused. It was a huge win for our customers and, if it hadn’t been for Covid, I would have brought in some champagne in with the orange juice to the next Helm.
Step 7: Global Launch
In October 2020, Marketing Contacts launched worldwide.
This was one of the most amazing projects that I’d ever led. It was difficult on the strategy and execution side and I couldn’t have done it without my incredible team including (in no order): Sarah Campbell, Bryan Hoy, David Fitzpatrick, Devin Kurban, Lara Tacito, Marc Neuwirth, Rob Bauch, Lisa Edwards and many others. Many thanks to Sarah who also helped edit this post!