Startup Sales For Founders. Part 1 - Tool Up.
This is the kickoff of a series of blog posts on building a SaaS sales process for startup founders. As a founder wearing many hats, it's easy to be overwhelmed by a non stop flood of trello cards, emails, bug fixes, meetings, and product development. Unfortunately, without a process in place for sales, communicating with new signups can often unconsciously get the axe, leading to missed opportunities and slower growth.
Each post in the series will focus on a specific part of the process, from tooling up, to organizing and following up with inbound leads, to evaluating the time vs. value tradeoff of building a feature for Enterprise Co. For the first post we’re focusing on getting actionable data into your CRM.
Step 1 - Get all user event data into all of your tools
If you don’t use Segment, go buy a subscription. Segment provides an API to ingest all of your user event data, acting as the middle man between your data and popular sales and marketing tools. When a user first signs up for StatusPage, we send the creation event and future event data (new team member joins, user creates an incident, etc) to Segment, which then pipes the information to Mixpanel, Salesforce, Customer.io, Optimizely, and whole host of other tools. Don’t litter your code with event tracking code from 10 different vendors. Don’t wrestle with Salesforce’s SOAP API. Use Segment.
Once you have Segment setup using one of their relevant backend libraries, it's time to look at implementing marketing analytics software and your CRM of choice. For us, Mixpanel and Salesforce made the most sense since the Segment integrations were already built and we have past experience with both tools.
With Mixpanel, Segment, and Salesforce implemented, you can start using the three in tandem. Here's what's happening in the Analytics.rb code sample below:
A - Specify a few attributes for Segment’s Salesforce wrapper. The attributes essentially let Segment know to create or update a lead in Salesforce using the email address we have stored in the database for an account.
B - Lookup the Mixpanel user using a specific id ('code' in this case). Use Mixpanel's Engage method to find referral information including browser city and initial referrer for that account.
C - Use Segment's Identify method to actually create or update a lead with the information obtained from Mixpanel. Segment will first look for a lead field to update such as browser_city. If Segment does not find the designated field, it will create the field within Salesforce.
This isn’t the prettiest code by any means, but it gets the job done:
Making Segment, Mixpanel, and Salesforce play nicely together may take a day or two of tweaking, but the end result of a lead view with contextual information attached, as you'll see below, is well worth the effort.
Step 2 - Develop your own simple lead scoring
If you're new to startup marketing analytics, check out Dave McClure's in depth talks on AARRR metrics. Activation is usually defined as the first 'happy' experience someone has with your product. The faster a user hits activation, the more likely he/she will buy your product.
Since we're unsure of what single action defines an account as activated for StatusPage, we've instead implemented an activation score based on activity level (feature setup) within the account. We consider a user 'activated' with an activation score > 8. To make this happen, we developed a simple formula that assigns point values to features. We’ll dig deeper into activity scores in a future blog post, but here are a few of the main events we care about.
Now that we have activation scores for every account, we use a cron job to update the scores daily in our database and pipe the scores through Segment into Salesforce. Assigning activation scores gives us the context needed to communicate appropriately with signups and figure out who is dropping off without ever getting their page setup.
Step 3 - Verify the data in your CRM
With a process in place for creating and updating leads, you should have the data you need to follow up with relevant emails and/or calls. You can also start answering questions like, “What are the top referral sources that lead to activated accounts and purchased plans? How many qualified leads activated this week compared to last week?”
Take a look at the screenshot below. You’ll see someone from GoCardless signed up in London, found us through Server Density’s status page, and is ‘active’ with an Activity Score of 9. That’s pretty cool.
Step 4: Make decisions based off the data
Once you have signup data in one centralized place, you can start digging in a bit more to make the information actionable. Examples include:
1) If users from a particular initial referrer have a higher activation rate and/or purchase rate, double down on that channel.
2) If only a small % of users are reaching a sufficient activation score, dedicate more time to usability testing and user onboarding.
Real world example
We decided to spend a few days in London a month ago after attending WebSummit in Dublin. While seeing the sights and eating way too much fish and chips were top priorities, we figured it would be a good idea to set up some meetings. With a quick Salesforce search using
browser_city == London, we pulled up 25 signups to individually contact. The search led to 10 in person meetings and 2 sales off the bat.
- Effectively organizing and following up with inbound leads.
- Distinguishing between leads and opportunities
- Building retention cohorts without wanting to punch yourself in the face
- Evaluating the time vs. value tradeoff of building a new feature
Add your email below if you'd like to receive all blog posts in this series!