⚠️ Disclaimer: this article is detailed and contains some CS nerding out. Beware 🤓!
A core goal of Planhat since day one has been to offer a broad range of flexibility to handle the many varied use cases in Customer Success globally.
Organising and Filtering data is central to this. Our approach to filtering aims to provide a consistent and highly flexible experience, regardless of whether you are filtering data related to Companies, Contacts, Tasks, Invoices, Licenses, Opportunities, Workflows or even in Customer Intelligence widgets.
The filter icon is normally found in the top left of your screen, at the top of the side menu:
Once clicked, you will see a page overlay in which you can name and build your filter:
Once you have named your filter, you need to decide what "type" of filter you want:
Filter: this lets you define a segment of your portfolio based on some rules, like "companies in phase = onboarding"
Top/Bottom list: this is a combination of a filter (e.g., "companies in phase = onboarding") and a distribution rule (e.g., "top 10% of the records")
🚩 Read more about Top/Bottom list filters and how they work here!
Now you start building rules.
The available commands will correspond to the field type, so for example if your field is a date, the commands will be things like "days ago" whereas if it's a numeric field, the commands will be things like "more than" or "less than."
Once you have selected the command, a green field appears in which you mark your selection. Mostly this will be a dropdown or calendar displaying available options, but occasionally you will need to type your selection.
As a simple example, if your field is related to Wizards, your command could be "Equal to" and your selection "Ron Weasley".
To add more rules click the blue + icon and a new row will appear.
Filters have a few additional components to them. This is where the power lies...
Match Rules
Match Rules have two options:
ALL: all of the criteria below will need to be present for the filter to apply
ANY: any of the criteria below can be present for the filter to apply
For example, I would like to filter on all accounts where I'm the account owner and I would like the account to either have the tag "Enterprise" or have an ARR value over $150,000. Looking at the filter below, you can see we have achieved this by using both match options.
If your data is Gryffindor, Slytherin, Hufflepuff and Ravenclaw, an "ALL" rule would require all four houses to be present and an "ANY" rule would require just one of them to be present. (even Slytherin) 🧙.
Group Rules
The purple arrow icon lets you add a group to the filter. A group is a new set of criteria that is headed by a new Match Rule.
Groups are used when you need to apply a different Match Rule, or after you have referenced a different data object. (more on this below - it's awesome.)
As an example below we are finding all accounts owned by Sabrina in phase Success that have either a HealthScore more than 8 or an NPS more than 8.
You can use multiple groups in filters to create huge flexibility, and if you forget criteria in one group just mouse over it and the blue plus sign will appear to add more rules.
🔌 Power Filtering by Referencing Other Objects
Planhat is built with a structure of data objects. Objects are things like Companies, Contacts, Licenses, Invoices, Conversations, Tasks etc
When you build a filter the field options will come from which ever Object your filter is based on. In Data Module each tab and in Customer Intelligence each widget is based on an Object so the filter show fields in the purple dropdown from that Object. As an example, Company object fields are data points you see on each account profile such as Health, Owner, Phase and Calculated Metrics.
Sometimes though you want a filter to combine rules from different objects. For example:
To find all Companies that have a low Health Score and are still in the Onboarding Workflow, you need to combine data from the Company and Workflow objects.
To find all Companies owned by a specific team member with a CEO as a Contact, you are combining data from the Company and End User objects.
To find all Companies coming up on renewal that has a recent conversation labelled Bug combines data from the company object and the conversations object.
To make these cross-object connections you need to use the 'Match by' option in filters.
Let's take a look at these examples:
Example 1: Find all Companies that have a low Health Score and are still in the Onboarding Workflow
Example 2: Find all Companies with a CEO as a Contact
Example 3: Find all companies coming up on renewal that have a recent conversation labelled Bug
Obviously with each example you can choose which object to build from. You can start from the Company object and look for any Company owned by Niklas that has EndUsers with role CEO, or you can start from the EndUser object and look for all EndUsers with role CEO on a company owned by Niklas. The results will be the same.
The difference is that when you view or analyse the data, the Company object will show the filter with data related to the Company object, and the EndUser object will show the filter with data related to the EndUser.
Here are the 2 versions side by side:
And here are the results of each:
Special Commands in Filters
As you can see from the above examples, after using a 'Match By' field, the command used is Match By.
Most of the commands are pretty obvious and relate to the data in the field, so date fields have commands like days ago.
There are a couple of additional commands that have super-powers so below are quick definitions.
Match By: Relate one object to another using Match By to filter elements that match the criteria
Ignore By: Relate one object to another using Ignore By to ignore elements that match the criteria
Pick By: Filter within a pre-existing Filter on the same object using Pick By.
Exclude By: Ignore elements within a pre-existing Filter on the same object using Exclude By.
Any Of: Filter on multiple options in a multi-pick list using Any Of.
None Of: Exclude multiple options in a multi-pick list using None Of
Find By: Filter on text fields or conversations that contain specific words using Find By.
This final one is extremely powerful as you could, for example, create a Company object filter looking for any Company with a conversation that included the word "cancellation"!