Understanding viral growth in SaaS
A few tips to unlock virality and maintain low CACs at scale
At Point Nine, we’ve been fortunate enough to invest in about half a dozen companies building products that are intrinsically viral (or have a built-in growth mechanism in their product). From online surveys at Typeform in Barcelona in 2012, client-facing documents at Qwilr in Australia in 2016, and collaboration videos at Loom in the US in 2017 to more recent communication videos with Playplay in Paris, we’re big fans of these products (and companies).
The main reason is that these companies can leverage their products to keep growing at roughly the same MoM growth rate (i.e., grow exponentially) while not spending more on acquiring customers. In more financial terms, they leverage virality to maintain (or even reduce) acquisition costs while scaling.
How do they do that? They build a product with baked-in virality: users share a version of the product with non-users who then become users. The loop is closed. With traditional acquisition channels (e.g. SEO, SEM) saturating, viral SaaS companies (or companies with Product-Led Growth) benefit from an incredibly efficient way to grow because, unlike paid marketing, viral growth is free and compounding. More users will bring more exposure, which in turn will bring more users.
In this post, I want to go one level deeper in deconstructing a viral loop to explain a few techniques that we have observed in our portfolio to leverage virality in SaaS. The hope is that these techniques are as actionable as possible for anyone building a viral SaaS product.
0/ Deconstructing a viral loop
Viral growth can be quantified with what’s called the k-factor, which is defined as: “how many new users a user brings to your product in a defined time period.” 1 user = k new users. The holy grail of such viral loops is to get to k > 1 because by then, you’re growing exponentially.
Want to see how powerful that is? Say you get to a k-factor of 1.1, i.e., 1 user brings 1.1 new users in each cycle.
- After 10 cycles, you have 1.1¹⁰=2.6 users
- After 100 cycles, you have 13,780 users
- After 1,000 cycles, you have 2.46 * 10²¹ users (more users than there are human beings on the planet)… and you haven’t spent any dollars on paid acquisition.
Now if we go one level deeper into this loop, I like to think that we can decompose it into 3 steps:
And thus, k = Activation * Exposure/Contamination * Conversion
In the next parts, I’ll explain a few techniques to improve activation, exposure/contamination, and conversion.
Let’s define activation as “the key action that a new user needs to do to be deriving utility from your product.” For such viral products, most of the time it means for this user to expose your product to their audience: sending a Typeform survey to a recipient, sending a Loom video to a colleague or publishing a Playplay video to an audience.
As Joe, the CEO of Loom, explains in this podcast, fixing activation is the first thing to do when building a SaaS product as i) this shows how useful and intuitive your product is, and ii) it’s the first step toward growing virally.
Some techniques to improve it are:
- Define what successful usage means (i.e., find your “aha moment”), and once you’ve found it…
- …work on your product onboarding to accelerate the “time to value” and the “time to sharing.” For that, you can pre-build templates or work on facilitating the sharing.
For example, Loom managed to increase activation (activation being defined as “when a new Loom user gets a first Loom video viewed”) from 17% to 35% of any new Loom user between its Seed and its Series A. This basically means that for each cycle, twice as many users were successfully activated.
Now that new users are activated, let’s focus on the next step: exposing your product to as many users as possible.
Let’s define exposure/contamination as “the number of people exposed each activated user brings to your platform during a specific time period”. The bad news here is that this one is intrinsic to the use case and thus explains why every viral SaaS product/company is not made equal. On average, a Typeform will be sent to hundreds of recipients per month, a Qwilr will be sent to tens to hundreds of viewers per month, and a Playplay will be viewed by (tens of) thousands of viewers per month.
Now, while the exposure is highly dependent on the use case, there are a few techniques to improve the exposure:
- Understand “communication flows”: the “contamination/exposure” step can also be understood as the “communication” step. In SaaS, as my colleague Rodrigo explains well, most of the virality is the result of communication flows (sharing or asking for information). Understanding the various flows of information between your users and their recipients gives you a very good framework and proxy to understand and improve virality. Once you understand the communication flows, you can then…
- …Broaden the number of use cases: Qwilr started with sales proposals and now offers marketing collaterals – because the earlier you are in the customer journey (or in the funnel), the more exposure you(r product) will have
- …Leverage external AND internal virality: another great way to increase the exposure of your product is to build collaboration features so that users invite their colleagues during the creation phase. This is often a great way to unlock upsell (and get to net negative churn) too.
- Multiply distribution channels: Try to distribute your product where your users already are. Loom and Quip (a Qwilr competitor) built an awesome Slack integration to increase the visibility and engagement in their product. Playplay uses social media as its main distribution platform and benefits considerably from the high frequency of usage/engagement in social networks.
Now that your product has been exposed to potential new users, your task is to convert them into users, which is the “Conversion” phase.
The great news here is that whatever product you’re working on, this can be significantly improved (as any landing page can be improved). It often consists of two steps (or two conversion rates): incentivizing people to create their own version of the product and converting them into new users.
Some techniques are:
- Work on the shape/position of the Call to Actions (CTAs) and on the wording: Typeform displays the CTA only once you’ve completed the form and iterated a lot on the wording. It’s not by chance that you might have seen various Typeform CTAs, such as “Create a Typeform” vs. “Powered by Typeform” vs. “Ask awesomely with Typeform.”
- Experiment with redirecting to the main homepage, to a sign-up form or even to the product (see below what we call “honeypots”). Depending on the user flow, this can have very different conversion rates.
- Create “honeypots” bypassing the marketing website and the registration flow so that the CTA leads directly to the product. The challenge is to convert these unregistered users into actual users. For example, Qwilr’s conversion rate from “contaminated” users is twice as high as if they arrive on the marketing website without having been exposed to the product.
- Find a way to “close the viral loop” so that you can track users from views to product usage. This can be challenging (but not impossible) for products which don’t own their distribution channels like Playplay.
Don’t get desperate, you can get closer to 1 than you think! Without getting into the exact numbers, working on each steps (activation, exposure, conversion), Typeform managed to multiply its k-factor by 4x in 2 years!
5/ Some final tips
- Everything can be improved very significantly and moving one piece in the loop has a dramatic impact on growth (remember Loom doubled its activation rate and Typeform 4xed its k-factor?)
- Solving activation is the most important part at the beginning (doing it differently would be like spending on acquisition although you have a leaky bucket (i.e., too-high churn))
- It’s a data game: as early as possible, plug in an analytics tool to be able to track all the different steps. You can’t improve if you can’t measure. Fwiw, most of our portfolio companies are using Amplitude.
- It’s an experiment game: most of the time, these companies have a growth engineer whose sole job is to run experiments to prove causation between a small change in the product and the k-factor. In the beginning, focusing on only one metric (activation, exposure or conversion) is good practice. Also, try to avoid running multiple experiments at the same time, you’ll likely not be able to disentangle different impacts on the overall target. If you want to learn more about how to run experiments right, this book is great.
- Not all products have baked-in virality, but you can unlock virality in many ways. PayPal, Dropbox, Typeform and Loom have been very successful in launching incentivized referral programs, for example, where users who referred other users would get additional features for free.
- Use your product as a medium to create great innovative marketing content. Did you notice that Clément is currently turning most of our best-performing blog posts in Playplay videos?
- Don’t be too maximalist, it’s not because your product is viral that you don’t need to work on SEO (most of the time these companies have a lot of content that can be indexed). Once you have a better view on ARPAs, don’t hesitate to run paid acquisition experiments (🤐)
And for you, an investor who’s also thinking that viral growth is amazing, don’t forget that most steps can be improved but that not all use cases have the same exposure and thus not all viral SaaS companies are made equal ;)
That’s all, you can go back to your k-factors!
If you’re building a viral SaaS product and have discovered other amazing (product) growth techniques, get in touch via email, I’d love to learn more!
Beyond the work we’re doing with our portfolio companies, this blog post is heavily inspired by an awesome presentation that Pedro from Typeform did at one of the P9 Founder Summits some years ago and by Joe from Loom’s recent podcast. Thanks to my colleagues Clément, Rodrigo and Julia for reviewing early, full of typos, versions of this post.