Comment on page
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
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.
You can view Elements in a number of ways:
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.