SaaS Tracking

The Ultimate Action Tracking Setup Guide: SaaS Edition

The Ultimate Action Tracking Setup Guide: SaaS Edition

We wrote a post featuring Best Practices for Custom Event Collection to help new Woopra users get started with the fundamentals of tracking their customer data.

While this was an excellent place to kick-off, it’s important to remember that every industry and vertical is unique. For example, an eCommerce company will want to track different actions than a Mobile Gaming or Travel company, and so on. To help guide you through this process, we’ve gone a step further and put together tips and best practices by industry. So, without further ado, here is: The Ultimate Tracking Setup Guide: SaaS Edition.

Identifying Key Customer Lifecycle Moments for SaaS

Three years ago, Forrester reported that by 2016, the average company would be using 66 different SaaS applications! Each of these applications, from your marketing automation software to your CRM, houses unique engagements and actions taken by users. When pieced together, they reveal the total customer experience and enable you to optimize and engage with customers like never before.

While all organizations are different, nearly all SaaS companies are heavily reliant on key moments in the customer lifecycle that fuel their success and growth. These include marketing website actions, signups, subscriptions, free trials, onboarding, usage, retention and upsells. In this guide, we’ll walk through how to track and measure each of these moments in Woopra.

📘

Keep in mind that the help of a developer will be required to code the custom actions you’d like to track. But, by using this guide, you’ll be able to outline the key actions first to significantly cut down on implementation and development time!

Tracking Marketing Website Actions

Tracking Anonymous Website Traffic

Woopra is designed to track unique, unidentified website and mobile app users from their first touch. The user is assigned a unique ID and all of their anonymous activity is tracked in the customer profile. You’ll also have data regarding the user’s location, system, platform, referrer (if applicable) and more!

Once the user is identified – through signing up, subscribing, or a similar activity – all previous anonymous activity will be merged into the same Profile. This provides a complete picture of the full lifecycle for every user, starting with the first touch.

To start tracking anonymous website traffic:

  • Customize the domain name in the snippet below.
  • Copy and paste the Woopra Javascript tracking code into the head section of your website pages.
  • Ensure the code is pasted into every page of your site that you’d like to track.

Woopra Javascript Tracking Code

<script>
!function(){var a,b,c,d=window,e=document,f=arguments,g="script",h=["config","track","trackForm","trackClick","identify","visit","push","call"],i=function(){var a,b=this,c=function(a){b[a]=function(){return b._e.push([a].concat(Array.prototype.slice.call(arguments,0))),b}};for(b._e=[],a=0;a<h.length;a++)c(h[a])};for(d.__woo=d.__woo||{},a=0;a<f.length;a++)d.__woo[f[a]]=d[f[a]]=d[f[a]]||new i;b=e.createElement(g),b.async=1,b.src="//static.woopra.com/js/w.js",c=e.getElementsByTagName(g)[0],c.parentNode.insertBefore(b,c)}("woopra");
  
// configure tracker
woopra.config({
  domain: "mybusiness.com"
});
  
// track pageview
woopra.track();
</script>

By placing this snippet on your website pages, you’ll instantly see Woopra displaying website activity into the platform. This is the essential first step to tracking and sets the foundation for future actions.

📘

Pro Tip: If you’re hosting your website on WordPress, you don’t need to install the Javascript snippet to track website activity. Simply, install the Woopra WordPress integration and the tracking code will automatically be added!

Tracking Blog Actions

How do you know what types of content perform better than others? Are users who read a blog post more likely to convert to paying customers?

Track your blog activity to measure blog attribution, inform future blog post topics and measure engagement. You can leverage this data in reporting and funnels to optimize engagement.

For example, the below ‘Blog Attribution’ Customer Journey shows how many people read a blog post and then went on to take other actions in my product and on my website.

1865

To track your blog activity, provide the below example to your developer.

Blog Tracking Code Example:

<script>
woopra.track("article view", {
  title: "Blog post title",
  url: "https://blog.companya.com/we-are-awesome",
  author: "John Smith",
  category: "News",
  published_on: 125234234234 // timestamp
})
 
// You may track when users leave comments as well:
woopra.track("article comment", {
  comment: "Great article"
});
</script>

📘

Pro Tip: Check out this article to learn how to leverage customer insight to fuel content decisions!

Tracking Contact Forms

It’s important to track when users identify themselves and reach out regarding experiences with your site, your support or transactions. This could include:

  • Downloading a White Paper
  • Downloading an eBook
  • Submitting a Demo Request Form
  • Registering for a Webinar
  • Submitting a Contact Request form
    and so on!

For a marketer, this information can help you measure the effectiveness of your efforts and allow you to optimize areas for improvement. You can also tie these marketing efforts directly back to ROI by measuring how many users signup for your product or become a customer after engaging with your content.

To track contact form submissions, ask your developer to customize the below code snippet for each of your contact forms:

Tracking a Demo Request Form Example:

<script>
woopra.identify({
  name: "Name of user",
  email: "[email protected]",
  company: "CompanyX, Inc."
});
woopra.track("demo request", {
  subject: "Technical Demo",
  message: "We would love to get a demo this week"
});
</script>

Once setup, the information will display on the user’s Woopra Profile and you can begin to segment, build customer journeys and leverage the data in your reporting!

Tracking Video Play Events

If you have a promo video on your homepage or instructional videos throughout your site, you’ll want to track when users play your video content. Customize the below tracking snippet to begin sending and measuring video engagement data in Woopra:

Tracking a Video View:

<script>
woopra.track("play video", {
  title: "Title of the video",
  videoId: "1SF3sx",
  url: "https://companya.com/promo/"
});
</script>

📘

Pro Tip: Using Google Tag Manager? Here’s a cool tutorial for tracking YouTube videos in Woopra using GTM!

Tracking Campaigns with UTM Tags

If you spend a significant amount of time posting to social media, running AdWords campaigns or sharing content – you’re driving traffic from hundreds of different URLs a day. But, how do you know which social media posts drove the most traffic? Can you quickly see which campaigns drove the most conversions over time?

Using UTM parameters, you can compare the performance of campaigns from different mediums and channels and measure over time.

A UTM tag will answer questions such as:

  • Where are my visitors are coming from?
  • How are they finding me?
  • What happens after they engage with my campaign?

Once you have the basic Woopra Javascript tracking snippet installed on your website, Woopra will automatically begin tracking utm_tags for you. You can then set up Journeys and Trends reports to monitor and measure campaign effectiveness by campaign name, source, content, etc.

For example, the below Journey report shows me how many users came to Woopra through a campaign, sorted by campaign name and the actions they took after.

2280

📘

Pro Tip: Learn more about UTM parameters and how to leverage them in Woopra!

Tracking Internal Website Searches

Users searching on your website can offer insight into popular content and frequently asked questions. Leveraging this data will allow you to personalize their experience and provide the most relevant content possible. Customize the below tracking snippet to send internal search actions from your website to Woopra.

Tracking Internal Search Example:

<script>
woopra.track("search", {
  query: "campaign tracking",
  url: "https://www.woopra.com/docs/",
  results: 14
});
</script>

📘

Pro Tip: Including the number of search results will allow you to segment searches where users didn’t find any results. This tells you where there might be gaps in your content. It’s also an opportunity to reach out directly and provide an answer or automate an email campaign to provide additional assistance.

Tracking Live Chat Actions

One of your main objectives is to get the user to identify themselves on your marketing website. A common strategy is to provide a frictionless, live chat feature.

If you’re using one of Woopra’s Integrations partners for chat, simply navigate to Integrations in your Woopra instance and install the integration. If not, see the below code snippet as an example of how to track live chat actions.

Tracking Live Chat Actions Example:

<script>
// Since the user is identifying him or herself, let Woopra know who they are
woopra.identify({
  name: "Name of User",
  email: "[email protected]",
  company: "CompanyX, Inc."
});
 
woopra.track("start_chat");
</script>

Once you begin tracking this data, it will automatically populate in the user’s profile in Woopra. You can then begin to measure the impact that chat has on driving conversions and overall customer success.

📘

Pro Tip: Read “How to Generate Leads with Data and Live Chat” for additional guidance and tips!

Tracking Signup Actions

Every SaaS company should track application signups. They are one of the most crucial indicators of traction and must be optimized over time. Properties that you can send along with a signup action might include:

  • Email address
  • Name
  • Username
  • Plan/account level
  • Company name

As well as any other fields relevant to your business that you’re collecting during signup. The most important property to send with the signup action is the user’s email address. This is what allows you to identify the visitor and track them across multiple devices (e.g. laptop, iPhone, work computer, etc).

To track these signup actions, you can define the action name string and the properties associated with that action object, as shown below.

Tracking Signup Actions Example:

<script>
woopra.track("signup", {
  company: "My Business",
  name: “John Doe”,
  username: "johndoe",
  email: “[email protected]”,
  plan: "Free Trial"
});
</script>

The code above will track a custom action titled “signup” with the additional information of the account created.

Passing these actions into Woopra will automatically show the information being sent in real-time on the user profiles and you can start to build custom Trends and Journeys Reports. For example, you could measure the number of signups by company to understand if your product is expanding across an organization.

📘

Pro Tip: Actions and properties should always be lowercase!

Tracking Logon Actions

How often do users login to your application? Who is logging on and what actions do they take next? Tracking login actions will answer these questions and help you understand how often successful users login, the authentication methods used and more!

Having this data gives you the ability to calculate conversions, success and failure rates. Work with your developer to have login actions sent to Woopra.

Here’s an example of what the code will look like:

Tracking Logon Actions Example:

<script>
// Send at least the email address to Woopra in case the user is logging
// in from a different device. Woopra prefers "emails" over "cookies".
woopra.identify({
  email: "[email protected]"
})
woopra.track("login");
</script>

Tracking Profile Update Actions

When a user updates their profile information within your application or on your website, you’ll want to track this information in Woopra. Send it as a ‘profile update’ action, and include any of the fields that are relevant to your user profiles. See the below example for reference.

Tracking Profile Update Actions Example:

<script>
woopra.identify({
  fname: "First name",
  lname: "Last name",
  company: "Company",
  name: "First Last",
});
 
woopra.track("profile update");
</script>

Tracking Payment Actions

It’s essential to track when customers make payments. You can leverage this data throughout Woopra in your reporting to measure and monitor success! Whenever a user makes a payment, you’ll want to send properties such as payment amount and what service the payment was for.

Track every time you collect a payment from your customers! For recurring payments, you may need to track server-side events, since the user will not be on the website during renewal.

The action tracking code will look similar to this:

Tracking Payment Actions Example:

<script>
woopra.track("payment", {
  amount: 500,
  product: "premium"
});
</script>

📘

Pro Tip: Use Stripe for payment processing? Even better! We’ve built a custom integration with Stripe to make payment tracking seamless. Simply install the integration and let Woopra do the work!

Tracking Subscription Actions

SaaS companies live and die by their ARR (Annual Recurring Revenue), MRR (Monthly Recurring Revenue), ACV (Annual Customer Value), and LTV (Lifetime Value). While it’s important to measure new subscriptions, it’s equally important to measure subscription changes over time to keep a pulse on the health of your customer base.

You can drill down based on any available metrics such as geolocation, campaigns, lead sources, platforms, and more! Tracking subscription actions in Woopra will allow you to answer essential questions such as:

  • What are my highest and lowest performing customer segments?
  • At what point are customers likely to churn?
  • How often do people engage with my product (or take any action) after becoming a customer?

Every time a customer subscription is created, modified, or canceled, you can send an action called “subscription update” to Woopra with the following properties:

  • old acv: The previous ACV value of the subscription.
  • new acv: The new ACV value of the subscription.
  • delta: The difference between previous ACV and new ACV.

For example, let’s say a customer upgrades from a $99/month (ACV $1,188) package to a $199/month (ACV $2,388) package. The resulting increase in your ARR (Annual Recurring Revenue) is your ACV delta, which is $1,200 in this example.

To begin tracking subscription actions, follow the same steps to defining your action name string and the properties associated with the action object. Adding the above-mentioned properties, your javascript string will look like this:

Tracking Subscription Actions Example:

<script>
woopra.track("subscription update", {
  "old acv": 1188.0,
  "new acv": 2388.0,
  "delta": 1200.0,
});
</script>
  • If the customer is creating the subscription for the first time, the old ACV is 0
  • If the customer is downgrading the subscription, the old ACV is higher than new ACV and the delta is negative
  • If the customer is canceling their subscription, the new ACV is 0 and the delta is negative

Once you begin sending subscription actions to Woopra, navigate to your schema setup and customize the property types, key, aggregation and description. This will allow you to personalize how these events are displayed and seamlessly leverage the data across Woopra.

2424

📘

Pro Tip: To learn more about measuring subscription changes in Woopra, check out this blog post! Or, for a deep dive into the Woopra schema setup and different ways it can be customized, read this post!

Tracking Free Trials and Onboarding

Every SaaS company will have its own onboarding process with key milestones, all of which should be tracked to monitor and analyze product adoption and usage. This is where you should give a lot of thought to answering the following question:

What actions must a user take to get value out of my product?

It helps to pretend to be a new user and go through the signup, implementation, and onboarding process yourself, documenting every critical action along the way.

For an example, let’s look at Woopra customer, CloudApp. CloudApp is a SaaS solution that enables users to capture and share gifs, videos, images and screenshots seamlessly. They’ve outlined what success looks like for new users and track these essential onboarding milestones in a Woopra Journey. For them, these key events include:

  • Signup
  • Account Confirmation
  • 1st Screen Drop Created
  • 10th Screen Drop Created
  • Annotation
  • First Screen Recording
  • Added New Team Members

Because they’re tracking each of these milestones as an event, they can visualize and optimize their onboarding workflow in Woopra. A Journey, for example, maps out these actions step-by-step, allowing CloudApp to identify any bottlenecks and optimize the user experience for conversions.

At Woopra, we use similar Journeys for our own reporting every day. One such Journey outlines when users:

  • Came to our Landing Page
  • Signup
  • Added a Credit Card
  • Installed the Mobile App
  • Became a Customer
2280

From here, we can build micro-journeys that show what users do in between these key moments.

By tracking each onboarding action, you can analyze, slice and dice your data throughout Woopra. The action activity is being displayed in each customer profile, and it also gives you the ability to see how this action performs over time and what properties are driving its performance

To begin tracking your onboarding actions in Woopra, outline the milestones that matter most to your organization. These could include actions that users take within your product or other events such as opening an email or communicating with your sales team.

Integrating your marketing, sales or customer support applications via our integrations will automatically bring the associated app actions into Woopra for analysis throughout the platform. To track actions specific to your product in Woopra, you’ll need to write some custom code. Read on to the next step for guidance on tracking product usage actions.

📘

Pro Tip: Learn more about how to build and optimize an onboarding Journey!

Tracking Product Usage

It’s great to track when new users signup for your product, but what’s even more important is what happens after they signup. What features are they engaging with? Where are they getting stuck? What does a healthy customer look like in your product? How do you identify users who qualify for an upsell? Tracking the behavior that users take once they’re in your application will allow you to answer all of these questions, and more!

Again, before deciding the product actions to send to Woopra, you’ll want to start by asking:

What are the key actions a user takes to get value from my product?

In addition to your “core” actions, you should also track the actions you would expect to see advanced user’s doing, such as using your more complex features. This will enable you to analyze the behavior of power users and give you clues as to how you can help move your less advanced users along this path.

Tracking product usage will be different depending on if you have a Single Page Application (SPA) or a Mobile application. We’ve outlined best practices for both below!

Tracking Product Actions for a Single Page Application (SPA)

A Single Page Application is a website or web app that loads all of the resources required to navigate throughout the application on the first page!

It’s important to track the application load_time property for basic monitoring and to see if application load times are impacting conversions or churn. To track this as an action, see the example below.

Tracking Product Actions for SPA Example:

<script>
woopra.track("app load", {
load_time: 1231 // time in milliseconds
});
</script>

Tracking When Users Switch Between Views

Track CRUD operations. The way to think about this is to identify all of the main entities in your project (report, dashboard, widget, song, board, project, etc…) and all the verbs that apply to them (create, view, update, delete, archive, share, etc…). Track all the required combinations of verbs and entities.

For example, a recruiting company would probably want to track when users create a job listing. So they could track actions for when a user creates a job listing, updates a job listing and archives job listing. The code could look like this:

Tracking When Users Switch Views Example:

<script>
woopra.track("create widget", {
  title: "Widget title",
  type: "chart",
  project: "143", // refer to the environment ID if users can have multiple one.
  custom_feature: "you get the point..."
});
 
woopra.track("create job listing", {
  title: "Marketing Intern",
  department: "marketing"
});
 
woopra.track("update job listing", {
  title: "Marketing Associate",
  department: "marketing"
});
 
woopra.track("delete widget", {
  project: "142"
});
</script>

Tracking Product Actions for a Mobile Application

Similarly to SPAs, mobile applications can have their own custom actions tracked. Follow the same naming convention for verbs and nouns and make sure you’re also tracking mobile.

Some users can get more sophisticated by pushing attribution data to Woopra as campaign properties. For example, you could send a campaign_name tag with your mobile load action when the user opens your app through an advertisement or through another application. The tracking action would look like this:

Tracking Product Actions for a Mobile Application:

<script>
woopra.track("mobile load", {
  campaign_name: "July 2017 Promo",
  campaign_source: "facebook",
  campaign_medium: "ad"
});
 
woopra.track("mobile view", {
  title: "Dashboard"
});
 
woopra.track("create widget", {
 
})
</script>

Other Important SaaS Actions to Track

Tracking Team Sharing and Collaboration Actions

Does your application have sharing or collaboration capabilities? You’ll want to track when users invite other users to join projects, when they join or when they share specific entities. Here’s what this could look like:

Tracking Sharing and Collaboration Actions Example:

<script>
woopra.track("user invite", {
  user: "[email protected]"
});
 
woopra.track("share widget", {
  user: "[email protected]",
  widget: "123"
});
</script>

Tracking Error and Issue Actions

Whether we like it or not, issues and problems occur! Be prepared by tracking the errors that users experience. This will help you build a better product and will arm your customer success team with data to help them provide better service and support. For example, if a user receives a form error, you could submit the action below:

Tracking Error Actions Example:

<script>
woopra.track("form error", {
  form: "signup form",
  error: "Email already registered"
});
 
woopra.track("form error", {
  form: "login form",
  error: "Wrong username or password"
});
 
woopra.track("app error", {
  app_version: "1.2",
  error_code: 500,
  error: "Failed to download resource A"
});
</script>

Tracking Email Actions

It’s important for marketers, sales and customer support teams to track when users open, receive and click on emails. Woopra integrates with most of the popular email marketing platforms to make email tracking a breeze. Track email events and update lead lists automatically!

For example, the Marketo app will track Marketo actions such as an email is sent, or when a user opens and clicks on it. These actions are tracked, sent to Woopra, and included in the Woopra Profile.

In addition, you’ll have Trends Reports reflecting these events. For example, you may want to analyze which emails had the most opens among customers in California. Or, you may want to build a Journey Report report showing where people drop off on the path to conversion after they come from an email campaign – and ultimately what impact their email marketing is having on conversion.

You can also set up automations to automatically send new leads to your email marketing software or update existing lead records. For example, if someone signs up on your website, you can set up a Trigger to automatically send the lead’s information to Hubspot and a new Hubspot Lead will be created. If they change their company information, later on, those fields will be updated in their Hubspot Lead record.

Want to use all this data in Woopra to update your email marketing lists based on user behavior? This functionality is also built into our integrations. For example, you could update your Marketo List for “Ready to Buy” users whenever a user completes a free trial, uses the app at least 20 times, and has no unresolved help desk tickets!

Pick your email platform below to learn more about each integration:

Tracking Support Ticket Actions

Are users who submit support requests more or less likely to convert? What impact do certain product features have on support tickets? Do well-answered support tickets drive conversions? Find all of this out and more by integrating with one of our customer support tools!

Woopra integrates with Zendesk, Freshdesk and a few others. Track when users submit tickets and track when they get resolved. This is helpful to study the attribution of your customer success team to the retention of your customers.

Pick your support tool below to learn more:

📘

Pro Tip: Learn how User Data Leads to Better Customer Service!

Tracking CRM Action Data

Leverage behavioral data from Woopra in Salesforce to get a pulse on customer health without ever leaving your CRM!

The Woopra + Salesforce integration allows you to automatically create leads within Salesforce and convert them to Salesforce “opportunities” when they meet specified criteria, such as engaging with your website in a certain way or opening your emails. The app also synchronizes your Salesforce fields with Woopra visitor data to automatically create or update visitor properties.

For example, if someone signs up on your website, the integration could automatically add the user as a lead in Salesforce and populate the lead record with the user’s information such as name, email address, company, and more. Conversely, lead data in SalesForce can be sent to Woopra to automatically update the profile with the lead information.

The integration could also automatically convert leads to opportunities when the lead has performed specific actions, such as using your SaaS product ten times, submitting at least one support ticket or starting a live chat with a sales rep!

“Woopra is helping to drive customer success within the customer data analytics market by leveraging the power of the Salesforce Platform to seamlessly integrate behavioral insight and CRM, ultimately transforming the way companies connect with their customers.” – Ron Huddleston, senior vice president, ISV & Channel, Salesforce.com

Not using Salesforce? Check out our other CRM integrations including: PipeDrive, CapsuleCRM and Microsoft Dynamics.

📘

Pro Tip: Learn how to build a product qualified lead engine uniting product engagement and CRM data!

Tracking NPS Score Actions

Are you collecting valuable NPS data from your customers? Track this data in Woopra to build audiences of promoters and detractors. Integrating with Delighted will allow you to automatically see NPS survey results on profiles on Woopra. You can trigger personalized emails to re-engage detractors or send a special offer to your promoters!

📘

Pro Tip: Check out this post for more tips on leveraging NPS data in Woopra!

Tracking Phone Call Actions

How do phone calls impact revenue? How many customers make a call to your team prior to purchasing? Are certain support team members better at handling customer calls than others? Find all of this out, and more, by leveraging phone call data in Woopra! Woopra integrates with Ringostat Zoom and Sonar to seamlessly track phone call events.

These events will attach to your Woopra profiles so that you can instantly see if a customer has tried to reach you via phone, who they spoke to, any notes regarding the call and more!

Leveraging Woopra’s segmentation capabilities, you can build Journeys and Trends Reports to determine if phone calls impact a user’s likelihood to purchase or churn. Further drilling down to the representative level, allows you to identify employees that are successfully handling support or sales calls and who could use some help!