This guide will help you understand account-level data in the context of B2B SaaS and the role of accounts in the customer lifecycle. It will also provide tips to make account-level engagement work. By the end of this guide, you should have a clear understanding of account-level data, and if treated well, how it can improve the customer lifecycle.
You don't need a background in data to comprehend the content of this guide or to put them into action — you're ideally a product or growth professional looking to build hyper-personalized data-powered customer experiences at a SaaS company that's experiencing steady growth.
So, what exactly is account-level data in B2B SaaS and why is it important? Let's find out.
Account-level data: definition and need
Account-level data refers to events and properties that are associated with an account or workspace and may additionally be associated with one or more users belonging to that account. It is also sometimes referred to as company data and the terms account, company, organization, and workspace are used interchangeably.
Why collect account-level data in addition to user-level data?
There are four main reasons to do this:
- Certain events such as Trial Started or Subscription Cancelled take place within an account — it impacts every user in that account and not just the one who performed that particular event. Moreover, some events aren't even initiated by a user: think about "payment failed."
- In B2B SaaS, it's common for one user to be part of multiple accounts or workspaces which means any action a user performs is being performed within a specific account — not collecting account-level data results in an aggregate view of a user's actions. without any context about where (which account) those actions or events take place
- In order to understand the health of an account or customer, it's not enough to analyze individual user behavior — the collective actions of the users within that account provide a true picture of what's going on and at what stage of the funnel the customer is in.
- Account-level data is key to marketing attribution in B2B SaaS. If you don't use account data to attribute what's happening to your marketing campaigns, you might conclude that those campaigns don't deliver. The person who creates an account, the one who pays for it, and the one who actually uses the product can all be different people — account-level data helps attribute account activity to specific campaigns.
If you'd like a more detailed breakdown of account-level data, check out this guide.
Claudiu Murariu of InnerTrends considers account-level data a must-have for B2B SaaS:
"Account-based data is not a nice-to-have for B2B SaaS — it's mandatory. It's better not to have data at all than to have only user-based data. I've seen companies get into a lot of trouble because they didn't have an account-level view."
If you'd like to understand how account-level data helps improve product analytics, check out this guide from InnerTrends.
What's the big deal when it comes to account-level data?
Now that you know why account-level data is needed, it's time to understand what happens in its absence or the downsides of focusing only on user-level data.
Let's assume that your goal is to measure and improve activation for your project management SaaS and you only have user-level data available in your analytics and engagement tools.
Most success metrics only make sense at the company level
While it's useful to know how many users have performed the activation event and have derived value from your product, activation as a success metric only makes sense at the account level as subscriptions are tied to accounts and not users.
For your project management tool, collaboration between users is key and the activation metric must include the collective actions of multiple users.
For instance, activation could be defined as at least two users joining the workspace and completing at least one task — this activation metric would be impossible to measure with only user-level data.
The same is true for other core metrics like conversion or retention — impossible to measure accurately without account-level data (unless you're willing and have the resources to extract this data from your production database and manually build data models in SQL).
Moreover, it's important to keep in mind that not every user within an account is meant to actively use the product and perform actions that lead to activation. In fact, depending on the role assigned to a user, they may not even have the ability to perform certain actions in the product — billing admins or view-only users are common examples whose actions generally don't contribute to a core metric.
Many-to-many relationships between users and accounts
Few SaaS companies today restrict users to joining only one account — a many-to-one user-account relationship. It's far more common for a user with a unique ID to be part of multiple accounts — a many-to-many user-account relationship.
This is very common with project management tools where you need account-level data to accurately understand user behavior and engage with them based on the events they perform (or don't perform) within a specific account.
It won't make sense to send a welcome email to a new user in an account followed by an upsell email because the same user is active in another account. In this case, it might actually make sense to not send that welcome email at all, or even better, send a different welcome email that has been personalized for existing users who join or create new accounts.
Account vs user lifecycle
When we talk about the customer lifecycle in B2B SaaS, we generally refer to the account lifecycle. However, by properly associating account-level data with user activity, you can get a true picture of the user lifecycle.
How's that helpful?
It's common for a user to be less active in one account and at the same time, be a power user in another.
Now, even if the user leaves the account under which they were a power user, instead of treating that user as someone who needs hand-holding, account-level data will enable you to put that user in the power users cohort and engage with them in future campaigns.
When that same user creates or joins another organization, instead of putting them through an onboarding campaign meant for newbies, you'd be able to engage with them more appropriately when you're looking to run a campaign seeking reviews or feedback from users who have championed your product in the past.
Account vs user segmentation
Whether you're building segments in your product analytics tool to calculate the activation rate or in your engagement tool to send lifecycle emails to users within trialing accounts, you'll need to build segments — for users or whole accounts — using account-level data.
On the other hand, if you want to send a subscription renewal email to billing admins, or run a dunning campaign for that matter, you only need to segment users based on their role. If someone is a billing admin of multiple accounts, you definitely want to send them separate emails regarding each of those accounts.
Yet another common use case is to send announcements or newsletters in which case you'd want to segment users but also make sure that each user receives that email only once even if they're part of multiple accounts.
It's hopefully evident by now that user-level data alone is far from enough — the absence of account-level data has severe limitations when it comes to personalization.
How to implement account-level engagement?
By account-level engagement, I'm referring to engaging with users based on their activity within an account. While it sounds simple, making it work is anything but that. Keeping that in mind, I'd like to share a couple of tips.
Modelling the core app schema to support account-level data
The first thing every B2B SaaS company needs is their app to have an account-level data model that enables many-to-many relationships between users and accounts. A lot of companies ignore this at the earlier stages, latching it on later which is extremely cumbersome.
In fact, a lot of established companies tend to ignore this altogether in favour of workarounds that have severe limitations.
Userflow, an in-app onboarding tool, has supported accounts from the very start, and doing so has enabled them to go head-on against larger competitors in a crowded market.
Similarly, Sherlock, a tool to push product data to a CRM, has been propagating the importance of account-level engagement for a long time.
With an account-level data model in place, companies will actually be able to use proper tools that support this data model.
Adopting tools that natively support an account-level data model and keeping workarounds at bay
Unfortunately, even some of the most well-known companies in the SaaS space don't have proper support for account-level data. One has to resort to workarounds that are usually tedious to implement, have limitations, and are more expensive.
Most established email engagement tools don't natively support accounts. A common workaround that I have also used in the past is to concatenate the user ID and account ID to create distinct users who are treated as regular users.
However, this results in multiple instances of the same user, one for every account they are a part of. This not only adds to the cost but also has limitations in terms of engaging with users who are actively using the product in multiple accounts — treating each distinct user as a separate user is the only option one is left with.
Intercom is known for supporting companies, but offers a very limited version of account-level data. Users can be mapped to accounts or organizations but user activity is still aggregated, leaving no room to run engagement campaigns based on a user's actions within a specific account.
A proper solution, one that natively supports an account-level data model, would allow us to do the following:
- Ingest account-level events
- Pass the account ID alongside user events
- Build segments using user data only, account data only, or a combination
With the above in place, we'd neither have to deal with a bloated user count that adds to our bill, nor would we be restricted to treating every distinct user as a unique user — we'd be able to see a user's activity separately for every account they belong to and utilize that data when building campaigns.
Additionally, we'd be able to build segments and trigger campaigns based on account-level events and choose whether to include all users within an account or only those with specific roles.
Thankfully, Userlist enables us to do all this and much more with their native support for account-level data.
How Userlist makes it happen
The lack of an account-level data model is a known problem; however, none of the established email engagement tools have prioritized a solution for this. The Userlist team is committed to solving this problem for good — even though this is a tough infrastructure challenge. Let's dig a little deeper to understand Userlist's core capabilities.
Enabling the right data structure with relationship properties
The right data structure should enable a many-to-many relationship between users and accounts where a unique user can be part of multiple disparate accounts, each with its own set of account properties.Userlist solves this problem using relationship properties.
The diagram above depicts that a unique user can not only be part of multiple accounts, but can also have completely different roles in each of those accounts — such as being an admin of account A and a manager of account B. As an admin, the user can upgrade or cancel account A — the action, although performed by the user, pertains to the account and is therefore an account-level data point.
Role is definitely one of the most obvious relationship properties, but there can be more: the number of projects this particular user created in that particular account, account-specific settings or feature flags, etc.
Relationship data is what connects a user's actions to the correct account. With the ability to specify relationships between accounts and users, the level of personalization is vastly improved and true account-level engagement is made possible.
Enabling campaigns triggered by account behavior
One of the biggest problems in terms of account-level engagement is knowing when to trigger a campaign that relates to a company milestone.
Without account-level data, you'd need to somehow identify a company-level milestone — such as an account being upgraded — and then identify users of that account. As discussed earlier, a proper solution to this remains a huge challenge for traditional ESPs (email service providers).
However, Userlist allows you to trigger campaigns based on account-level behavior as shown below.
What you see above is a pretty standard campaign. It sends an email to users of accounts (companies) that begin a trial. But instead of sending the email to all users irrespective of their role, this particular campaign has been configured to only email the admins of the respective accounts.
Ready to implement? Here's a recommended stack of tools that have native support for account-level data:
- Customer data platforms: Segment, RudderStack
- Analytics: InnerTrends, Mixpanel
- Email: Userlist
- In-app onboarding: Userflow
If you have other favorite tools, please let us know and we'll add them to the list.
Automation layered on top of accurately-modelled customer data is the foundation companies need to enable powerful personalization; it doesn't have to be so complicated — vendors of engagement tools have a part to play here.
Moreover, switching to a proper solution from a hacky one is worth the investment if companies want to have an advantage over the competition by providing truly personalized experiences.
About the author. Arpit Choudhury has made it his mission to demystify the data landscape and bridge the gap between data people and non-data people. Currently, he's building astorik, a network of communities for folks to learn and get answers to data questions from expert practitioners. He also writes a free newsletter where he shares his thoughts and observations on the modern data landscape.