Elements help you understand how customers have configured your product, so you can ensure each implementation is setup for success.
As your accounts setup your product, they likely have to work through a handful of tasks before they are really ready to experience its full value.
For example, take Slack. Slack's onboarding process asks you to invite team members, configure your Slack subdomain, create some channels, and enable some initial integrations. If the user does all these things, Slack knows they are MUCH more likely to experience Slack's value, and thus pay for the product.
Elements are built to track usage of these core 'setup' features. They help you easily understand which features have been experienced by the account and how their implementation is configured. They are excellent for easily tracking:
- If certain integrations have been enabled
- If critical parts of your product have been configured (i.e. if an opt-in product enhancement has been setup)
- If core data has been created (e.g. Slack channels)
Elements are created and modified by events, but they have 1 critical difference/advantage over events: Elements track state across multiple events. Let's run with the Slack example - say Slack tracks an event when you create a channel (the
Channel createdevent) and when you remove a channel (the
If you were to just look at the
Channel createdevent count in Vitally and it showed a value of 10, you may think "oh, the customer has 10 channels". But, what if the
Channel removedevent count also showed 10?
Elements would help you see that the number of current channels the account has is actually 0 by tracking state across the
To create a new Element, navigate to Custom Account Metrics -> Elements in your account settings (or get there via Quick Jump).
Here, you'll be presented with three options for the type of Element you'd like to create. The first two options (tracking the state of an integration or a specific configuration option) measure 'binary' states - i.e. is the feature currently on or off at the customer. This is tracked through 2 events:
- The 'Enable' event (required) - Your analytics service should send this event whenever the feature is enabled by the customer (e.g. 'Intercom integration enabled', 'Widget installed')
- The 'Disable' event (optional) - Your analytics service should send this event whenever the feature is disabled by the customer (e.g. 'Intercom integration disabled', 'Widget removed')
The third option measures how often a feature that requires the user to create some data is used by each customer. This is tracked through 3 events:
- The 'Create' event (required) - Your analytics service should send this event whenever the feature is used and data is created by the customer (e.g. 'Project created')
- The 'Update' event (optional) - Your analytics service should send this event whenever data created by the Create event is updated (e.g. 'Project updated')
- The 'Delete' event (optional) - Your analytics service should send this event whenever data created by the Create event is deleted (e.g. 'Project deleted')
Note that while Update and Disable/Delete events are optional, they are highly recommended. Elements are meant to track the current configuration state of your product at your customers. Therefore, if you are only tracking events when the feature is used and are not tracking events when data is updated/deleted, then Elements won't be able to accurately show you the actual, current state of the feature at the customer.
Let's say you work at Asana or Trello and want to track the Projects created by your customers. This is a perfect feature to create an Element for since Projects are critical to the overall health of the product's implementation. Without Projects, users cannot create tasks and thus cannot see the full value offered by the product.
To create a 'Projects' Element, the configuration should look something like this:
Here, we've selected events for when a Project is created, updated, or deleted by a user. We've also selected that the
idevent property 'links' Projects across these events. This property allows Vitally to locate the exact Project that gets updated or deleted, which ensures we provide you with the most up-to-date information about the customer's Projects.
If you do not track events when Projects are updated and deleted, then the information we provide you about a customer's Projects will quickly become outdated. For example, a user could create 10 Projects in their initial session. However, they could very well have been experimenting with the feature and may decide to delete those Projects later. Without tracking the Delete event and including the same
idsent for the Create event, Vitally will falsely tell you that the customer has 10 Projects in their current implementation, when in actuality they have none.