Userpilot’s Journey to $900,000 Pipeline & $200k Closed-Won in 135 Days with “Lean ABM”
Upmarket strategy shift: The ultimate playbook with toolstack, creative campaign setup, and unexpected lessons
Inbound took a massive hit in 2024/2025 - algo changes, more AI, cluttered landscape, diminishing returns … June 2024 was a bloodbath - companies lost up to 80% of organic traffic. ABM (Account-Based Marketing) came to the rescue for many of them. But how do you really kick off ABM motion?
There is so much fluff out there when it comes to ABM:
B2B infographics camouflaged as ABM
ABM done as warm outreach, aka social selling
“We made a $400m pipeline with 7 emails - I am giving it away for free -comment.”
So I avoided this topic for our Substack until I find someone I can really trust who will share the numbers, screenshots and learnings.
Luckily, Emilia Korczynska, VP of Marketing at Userpilot, has been ABM-ing in public on LinkedIn since Q4, so as soon as she had the conversion results in, I asked her if she could share their ABM experience with us.
Dive into LinkedIn ads, messaging, ABM plans, tools, the ROI of campaigns and many other different angles of this campaign that will help you decide if ABM is Yay or Nay for you.
This post is sponsored by Momentum.
Do you want free AI prompts to help you with ABM, sales, and all other go-to-market motions? Momentum just launched a MEGA prompt library with 200+ AI prompts by senior GTM experts Nick Bennett, Jonathan Kvarfordt, Daniel Disney, Christian Krause - and also some of my prompts. Grab it now - check my LinkedIn post for more details!
Let’s hear it from Emilia now:
We launched our first-ever ABM (Account Based Marketing) campaign on 15 September 2024. Beforehand, Userpilot, a multi-channel product growth platform, depended on inbound leads (mostly from our SEO blog content!) to fuel its growth. We were publishing 100+ blog posts per month and getting over 230,000 monthly visitors from organic search. But as our platform became more and more sophisticated (in late 2023, we launched product analytics, complementing our in-app onboarding and user feedback features) and we wanted to target larger, more mature companies - we quickly realised the inbound traffic would not be enough to build a predictable growth strategy. That plus - with AI and all the Google updates over the last few years - organic inbound growth became a lot more difficult, volatile and expensive.
So after some research - we decided to focus on ABM as our next growth channel. 3 months after launching our first-ever campaign - we had $650k in open pipeline. In 4.5 months - we had nearly $900,000 in open pipeline ($872,966) and $189,816 in Closed Won deals. And we didn’t spend a cent on “ABM tools”.
What is ABM & how to get started
ABM is particularly effective when going upmarket - because instead of casting a wide net and seeing who comes in, you proactively identify a specific set of high-potential accounts and create hyper-personalized campaigns to engage them. Then - looking at which accounts & what the accounts are engaging in (intent signals) - you need scoop out the ones showing intent - and then funnel them into more and more personalized campaigns - also adding BDR outreach to these “warmed-up” accounts at some point.
Sounds simple - but the execution was far from simple. In fact - it took us over two months of prep (revops, systems for managing and running the campaigns, hiring an experienced ABM manager, creating campaign assets) to launch our first campaign.
It didn’t help that most ABM books and resources I’ve read are very high level - after all, nobody (except me 😅) wants to disclose exactly how much they’ve spent and made, what worked for them - or worse, what didn’t. And there’s a lot to consider when starting your first ABM campaign - as ABM (or ABX) has many “flavours”:
Goals: What are you trying to achieve with your ABM campaigns, what are your KPIs, which metrics are you going to track?
Level of personalization: Are you going to run one-to-many, one-to-few or one-to-one ABM campaigns?
Campaign setup: Account stages, account scoring: What stages will your ABM campaigns consist of? How will you score your accounts to push them into the stages?
Duration: How long will each of your campaigns last?
Channels: Which channels are you going to use to target your audience?
Account lists / targeting: Which company lists are you going to target, and how are you going to build them? How many personas are you going to target?
Content/Messaging: What content are you going to use to connect with your target accounts? How will you gauge the intent/interest of your target accounts to personalize your campaign messaging and make it more effective? At which point is your BDR team going to reach out to the target accounts?
Budget & Resources: How much can you spend on your campaigns? What is your monthly budget?
Performance metrics & reporting dashboards: How will you track your campaign performance?
Tools: What tool are you going to use for all of the above???
The “Lean ABM” Toolstack
As any ABM noob, I started working on our campaigns backwards - from looking for ABM tools.
And I was instantly daunted by the price tags - the lowest quote we got from an ABM platform was $32,000 with a two-year commitment, plus at least $100k recommended ad spend on their display ad networks.
The more research I did (and the more less-than-glowing user reviews I’ve read on Reddit) - the more convinced I was that those expensive ABM tools that score your accounts based on anonymized click signals from Private Ad Networks using Reverse IP lookup are too much of a risk for us to take.
Why? Website visitor deanonymization is very unreliable. According to this study by Syft - the most accurate of these tools, Clearbit - identifies visitors correctly only 42% of the time 😬
So pretty quickly, we decided to run our “lean” ABM program only on LinkedIn for starters, using just our CRM - Hubspot - to set up, manage, and track the results of our campaigns.
We still needed three other solutions:
A data enrichment tool to build out our account lists - we started from Apollo + BuiltWith, then moved to Clay
A tool to push our ad engagement data from LinkedIn into Hubspot - we started from Dreamdata & Fibbler, then moved to ZenABM
A tool for project management, to keep track of all the ad assets and assign tasks to asset creators, graphic designers and video makers - from the beginning, we’ve used Notion for this.
So, to sum up, we are currently using:
For list building: CRM (Hubspot) + Clay
For campaign asset management: Notion
For intent recognition and account scoring: ZenABM
For ad campaign management, lead flows, reporting and sales outreach - Hubspot marketing
BDRs’ tool for prospecting: SalesLoft
This toolstack is costing us ~$2500 per month
How to set up your first ABM campaign - ABM Goals, Campaign setup, level of personalization & duration
One thing we knew from the beginning was that we wanted to start from running a “one to many” ABM - targeting many accounts (with a shared characteristic) with ads. This play can be used to identify accounts with intent from the SAM - and then include them in more personalized campaigns and outreach.
We decided to align the ABM campaign stages with different stages of the “awareness funnel” - based on Kyle Poyar’s article “Your guide to GTM metrics 2.0” featuring “ABX benchmarks”.
We structured our ABM campaign stages & account scoring as follows:
Identified - all the accounts we’re targeting in the campaign.
Aware - accounts with 50+ ad impressions.
Interested/Engaged - accounts with 5+ ad clicks or 10+ engagements.
Considering - accounts that booked a demo / signed up for a trial.
Selecting - accounts with an open deal.
The accounts in each state are then shown different content (ads) - the further down the funnel, the more product-oriented the content:
Identified and Awareness stage: Awareness content ads
Interested stage: Interested content ads
Consideration and Selecting stage: Consideration content ads
If this sounds simple - it is. But it wasn’t easy to set up for a number of reasons…
How do we apply the scores to accounts?
First - we’re pushing the company-level engagement data (impressions, engagements, clicks) from LinkedIn Campaign Manager to Hubspot.
As of February 2025 - you can’t do this natively.
We didn’t find a tool that pushed both quantitative and qualitative engagements (which specific campaigns the account engaged with - we use that information for personalising BDR outreach). So we decided to build our own API solution with the help of my partner - ZenABM.
That way, we can push both total engagements and which campaigns the account engaged in into company properties on Hubspot:
Since the campaigns are already segmented by intent, 12 in our case, we can then create a workflow to assign the respective intent(s) in a custom multiple checkboxes company property on the company level based on the campaign names/intent coming in from ZenABM.
Based on the cumulative number of LinkedIn ad impressions and clicks, we move the companies that reached a certain account score between different active lists corresponding to the ABM stages.
Then, based on the list membership - we update the “ABM stage” company property with a workflow:
As soon as a company hits the “interested” stage - they get assigned to a BDR company owner.
Then when the BDRs prospect and create leads, the intent(s) associated with that company get copied to the lead level as tags. This helps the BDRs reach out with very relevant, targeted messages - based on what the company members have already engaged with.
Campaign Structure & Project Management
To really leverage the intent from our LinkedIn campaigns, we had to come up with a campaign structure that would work around LinkedIn’s limitations:
LinkedIn only allows you to serve campaigns when your audience size is at least 300 members.
You can only have one asset type (video, image, text, document etc.) per campaign.
For privacy reasons, LinkedIn API obfuscates engagements from less than 3 company members / less than 3 engagements in any given period of time.
After a lot of trial-and-error, we came up with the following Campaign structure:
In each ABM campaign, we have 3 stages with different campaign groups based on shared intent (rather than different personas).
This structure allows us to gauge which “intent” each of the accounts targeted by this ABM campaign has.
Awareness stage - targeting accounts in the “Identified” and “Aware” ABM stages: e.g. 3-5 Campaign groups (different intents, e.g. different competitors, core value props etc.), with 5-7 Campaigns (different ad types - image, video etc.)
Engagement stage - targeting accounts in the “Interested/Engaged” stage - with structure as above;
Consideration stage - all accounts that moved to “considering” and “selecting” ABM stages.
IMPORTANT: you need to make sure you include your “intent” in your campaign group names to pass the right “intent” into the company property on Hubspot when your account interacts with it.
Project Management
How did we manage the process of creating all assets for all these different campaign groups without getting lost in it, and keeping our campaign names (which inform us about the intent!) in order?
Well, this is also something we had to grapple with at the beginning. Since our marketing team is a power user of Notion to manage all marketing initiatives - we tapped into Notion databases for ABM asset creation management too.
Using Notion databases, we assign the ad assets we need to create for each Campaign Group to specific “asset owners”, create asset brief templates, and assign the graphics creation task to our graphic designers automatically once the “asset owner” (another team member) ticked off the “asset brief done?” field.
We also use it to track which assets have been launched and which haven’t yet:
Content & Messaging (+ Identifying Intent)
Now that I’ve walked you through our ABM campaign setup and tools - let’s look at the actual assets (and how they performed!)
As you know - we’ve settled on LinkedIn as our (for now only) channel - and we’re using different types of ads there, with the following mix from most used to least used:
Single image ads
Video ads
Thought Leader Ads
DM ads
Text ads
Document ads
In terms of inventory performance - the single image ads had the highest CTR and the lowest cost per click to landing page - followed by video ads and thought leader ads. The DM ads so far have been extremely expensive in terms of cost per conversion.
We use text ads to generate brand awareness - as they result in a high number of impressions at a negligible cost, but rarely translate into clicks.
Thought Leader Ads (TLAs) seemed great when it comes to the CTRs - but this metric is a bit misleading for LinkedIn Thought Leader Ads, as they count every click on the ad - including “read more”, author’s profiles, people tagged etc.
But they are very successful in driving attention to more “top of the funnel” assets like events and webinars - especially if the posts are coming from influencers popular with the ICP (and they are speakers at the promoted webinars/events). So in the upcoming campaigns, we are planning to use them in moderation in the “awareness” stage.
How many of the different types of ads are we using per campaign? This is what our inventory split per campaign looks like:
(Abbreviations: B=Benefit, F=Feature, J=JTBD, W=Webinar, A=Audit, E=Education, CS=Case Study, T=Testimonial, D=Demo)
What Ads performed best for us?
Here are our top-performing ads from our first ABM campaign:
And most recently, from our new campaign launched in January:
Our ABM Goals & Budget
For 2025, we set an ambitious goal for our ABM campaigns: generate $3.5 million in pipeline with $350k in ad spend. That immediately gave us a leading metric (KPI) to monitor our campaign performance: pipeline per dollar spent. And ours is $10.
So far, we spent $ 98,673 and generated $872,966 in pipeline - which means $8.8 per $ spent - a little under our expectations. We’re constantly experimenting with all the levers we can push to improve it:
Creatives
Bidding strategy (e.g. moving from cost-per-click to target CPM for TLAs has improved our budget efficiency a lot!)
Account targeting
Which brings me to my next point…
Account Targeting & List Building
For our first campaign, we built the account list based on the “win-loss” analysis we did on our growth and enterprise deals, and used various targeting filters like company size, location etc.
Depending on the focus of each ABM campaign, we use different additional selection criteria for the companies we want to target. For example, for a campaign focusing on our new “Session Replay + Analytics” features, we would target lookalike companies to our enterprise customers, that also match the following:
Firmographic Fit:
Company Size: Must be either SMB (50–500 employees) or Mid-Market (500–2,000 employees).
Revenue: Preferably $5M+ in annual revenue or comparable funding (if this data is too hard to confirm, we skip it).
Industry: Must be digital-first (SaaS, eCommerce, EdTech, FinTech, HealthTech) with a product-led growth model.
Location: Focus on USA, Canada, Australia, New Zealand, Ireland, Israel, and Western/Northern Europe (e.g., Germany, Austria, Switzerland, France, Netherlands, Nordics).
Technographic Indicators (from BuiltWith or similar tools):
Currently Using or Previously Used an {use case} Competitor
Currently Using or Previously Used a Direct Competitor Lacking {feature}
Using Both {feature1} + {feature2} Tools: Any redundant combination of the above.
For this we used Clay and Builtwith’s API to build the list:
We also tap into our CRM data to uncover the right-sized accounts that we previously lost to competitors because of missing features:
Once we have a list of accounts we want to target, we add them to the right ABM campaign list on Hubspot and use a workflow to update the “ABM Campaign Name” Company property and the ABM stage (set to identified):
Accounts in these HubSpot active lists are sent to LinkedIn Campaign Manager using HubSpot Ad Audiences for dynamic ad targeting.
It usually takes around 48 hours for your audience to get ready on LinkedIn after being synced. Once available, you can use these lists with LinkedIn targeting options and add additional filters such as job function or role to further narrow down your audience for more precise targeting.
Now that the audience is ready, we can start running our ads.
All our accounts start in the "identified" stage. However, as soon as an account meets the ABM stage benchmarks (e.g., when an account receives more than 5 clicks, it moves to the "interested" stage - and the “awareness” ads are paused for them, and they are automatically enrolled in the “interested” stage ads).
The active lists are automatically updated based on account properties, and since these lists are used on LinkedIn, they are updated there as well.
This ensures that accounts are removed from the "identified" list and added to the "interested" list, and targeted with ads that are more aligned to their current stage.
This segmentation allowed us to craft highly targeted messaging tailored to each persona's pain points and their position in the ABM funnel.
Our Results (after 135 days - excluding “Christmas break”)
To sum up, after our first ABM campaign ended, we can report on the following results:
Accounts Touched: 5548
Total Cost: $ 98,673 + $8000= ~ $107,000 (LinkedIn Ad spend + tools)
Pipeline Generated: $872,966
Pipeline per Dollar: $8.8
Assets: ~150 ads for 8 personas (images, videos, TLAs, DMs, text, docs)
Team: 4.5 people full-time (1 ABM manager, 0.5 performance manager, 1 MOps manager, 1 head of marketing, 0.5 demand gen + 0.5 PMM, 1 graphic designer.)
Final Thoughts
Cold outbound alone took us 2x as long and cost 51% more to generate the same pipeline.
Starting ABM wasn’t easy by any means (the ops were still brutal), but it wasn’t any harder to set up than cold outbound—just faster at driving pipeline and less resource-intensive. We actually split asset creation across almost the entire marketing team, except for the content team.
At the end of the day, we were still harvesting demand rather than generating it. And it’s just much easier and faster to do that by putting a mix of different messaging in front of people, seeing what resonates to gauge intent (more on that later), and then confirming it on a call.
Hope this was helpful - if you have any questions reach out to me on LinkedIn!
My new product: GTM Checklist with AI Prompts ✨
I launched the Go-to-Market Checklist with AI Prompts. It consists of 100+ tasks to get new customers for tech products in under 14 days.
It is an upgrade of my best-selling step-by-step checklist that will get you from launch planning to scaling profitably and faster - now with the help of AI.
Userpilot's ABM journey is such a refreshing take on going upmarket without breaking the bank. The Lean ABM approach proves that you don't need expensive tools to drive serious pipelin, just the right strategy and consistent execution. How did the engagement rates on LinkedIn ads compare to what they were seeing from their SEO traffic before the shift?
Wow, loved this!