Back to Docs


On This Page

Milestones are central to how PLG, and Variance, works. It’s a way for PLG companies to track the lifecycle of their customers based on their behavior. If you’re looking for more general information about getting started with PLG milestones, check out the guide on our blog.

What is a milestone?

Milestones are a way to track the activity of a Contact or Account. A milestone—like onboarded or product qualified lead (PQL)—will generally include some behavioral criteria such as users invited or actions taken, a threshold, and can also be windowed to a specific amount of time (in the last 30 days). Milestones are the best way to track the growth of your prospects and customers in a PLG world.

Technically, milestones are made up of four components:

  • Event Type: these are the actions a user takes
  • Property filters (optional): do you only want to count the Invited User action if the invited user was an admin versus a member? You would handle that with a property filter.
  • Threshold: how many times does this action need to be taken in order to be counted against the milestone?
  • Time Window (optional): do you only want to track whether this action happened a specific number of times within a certain time period? (Coming soon to Variance)

Want to learn more about Milestones?

We've written extensively about Milestones on our blog. Here are a few good posts to start with:

Building a Milestone in Variance

Within Variance, you can have two sets of Milestones: Account Milestones and Contact Milestones. The former tracks the aggregate behavior of all users within an Account, and the latter just the individual users.

To create a Milestone you just go to Accounts > Milestones and click Create Milestone. From there you’ll see this interface:

Simple interface, powerful results

A milestone is made up of what we call “criteria” which can be one or more sets of action+thresholds. You can see the components of a milestone as you start to build:

Just search for what you're looking for

You can also choose to add any event or page event to a Milestones. This is particularly useful if you just need some basic activity measure.

To add a threshold you hit refine:

And if you want to further filter it by the properties of the event, you can do that by hitting Add property filter.

If your milestone needs more than one criteria, you simply hit Add criteria to add an additional one.

Depending on how much data you have, backfilling your Milestones can take a bit of time. If you don't immediately see the Milestones accurately represented on your Accounts or Contacts don't worry, they will get there.

One other important note: the date the milestone was completed will be correct to the day, but not necessarily the time. In order to ensure milestones are calculated as quickly as possible, we don't ensure the qualifying event was the first of the day. In most situations this shouldn't be an issue, but if you run into a problem please let us know.


Variance supports percent increases/decreases in Milestones and Smart Events. To configure, simply choose your event/any event and choose the percent and time period.

Nested Criteria

You can also include nested criteria in Milestones. This allows you to add an additional `or` group as a criteria. This allows you to create an `and` Milestone (all criteria must be completed) that also has an `or` filter.

Nested criteria

Time Windowed Milestones

This feature is currently in Beta and may not be available for all customers.

Variance allows you to build Milestones that only trigger if they happen within a certain time period. To get to this option, simply click Refine on a Milestone criteria and then click the dropdown that says ever to within the last and fill in the number of days.

It's easy to time window your Milestones

One unique thing about our time windows is that we can notify you of both entrance and exit to the Milestone/Smart Event. In other words, if you build a Smart Event with a time window like the one above, not only will we send you a notification when an account has added three users in the last 14 days, but we will also send you one when they no longer qualify. For some teams, the latter is more important than the former, as they want an early warning when activity wanes. Here’s how that looks in Variance:

And Slack:

A few useful things to do with Time Windows include:

  • Track which customers are moving in and out of active usage
  • Check to make sure a new account is taking the steps necessary in their trial period to convert

Ordering Milestones

Once you create Milestones, one of the first things you’ll likely want to do is order them so that they show in a logical way on your Accounts and Contacts. To do that you click the More Options (three-dot) menu on any Milestone and choose Reorder.

Easy to reorder

From there you’ll see this interface you can use to drag your Milestones into their correct order:

Just drag and drop

Monitoring Milestones

Once you’ve built out your Milestones, you can monitor them all over Variance. Either directly on the Accounts or Contacts, within lists, or through the Milestones interface.

Heads up milestones display

You will see the Milestone indicator fill up as different criteria within the Milestone are fulfilled until it’s complete and you see the target icon.

Importantly for other functionality, you can also access this data as properties on Accounts or Contacts and it’s stored as a percentage. This means if you just want to see Accounts that are >50% through Product-Qualified Lead (PQL), you can do that by creating a view that filters on the PQL property with a `> 50%` filter.

Powerful filters

The Milestone properties available currently are:

  • Milestone Completion: what percent complete the Milestone is
  • Milestone Started At: when the first Milestone criteria was checked
  • Milestone Completed At: when the Milestone was marked complete
  • Milestone Updated At: when the Milestone was last updated

Milestone Events

We believe Milestones are a really great way to monitor the customer lifecycle, but it’s not just meant to be a thing you check in on. Critically, within Variance, you can also be notified when Milestones are completed and criteria are reached. You’ll find two new events in your Event Type list if you search for “milestone”:

Milestone events

You can use these Milestone events in streams to track the progress of your accounts. That means you could create a Stream, for instance, that is just My Accounts with Milestone Completed and Updated events so you can track progress. If you do that those events will show up in Variance and, if you’ve connected the Stream to Slack or are using it through Zapier, to those other systems as well. This becomes a really great way to consume Milestones outside Variance.

If you want to only follow specific Milestones you can do that as well by using the Milestone property. Just go to Milestone Completed/Updated Event Type > Properties > Milestone > Follow and you'll see this interface.

Choose specific Milestones to follow

Adding Milestone Complete Events to a Stream

One very common use case is wanting to add a specific Milestone Complete event to a stream for monitoring. For example, you may just want to know when a customer completes all their PQL criteria. That's super easy.

First you go to your Milestones list and find the Milestone you want to add and click the + button on the list row.

Next you'll choose which Stream you want to send the event to (a new one or existing one) and then you'll simply hit refine and choose Milestone Completed to only get the Milestone Completed events for that Milestone.

That's it, now you're all set and you'll get notified as that Milestone is completed.

Advanced: Consuming Milestones in Milestones

One very cool thing about the way Milestones work in Variance is that you can actually consume Milestones in other Milestones. What does this mean? If you want your Milestone to be dependent on another Milestone being reached, you can do that by adding a Property Criteria to your Milestone using the `Milestone Completion` Property. For example, here we are including a requirement that Onboarding be 100% complete to our PQL.

Everything you need is right there for you

Last Updated: 
September 13, 2022