The Value of Feedier KPIs
Our KPIs are designed to provide:
Live Data – Stay updated with real-time performance tracking.
Clear Insights – Gain actionable insights at a glance.
Easy Scoping – Quickly focus on what matters without unnecessary complexity.
Locations of KPIs:
Create custom KPIs: Settings → KPI Formula
View your KPIs: Dashboard, Report → KPI
Manage your KPIs in a dedicated settings page (only accessible by admins and editors).
Pre Built KPI’s
NPS (Net Promoter Score) →The formula is:
% Promoters - % Detractors.Satisfaction Ratio → How we measure Satisfaction Ratio.
CES (Customer Effort Score) → Average score of all CES question type answers.
Number of Feedback → Count of feedbacks.
Attribute Values QTY → Amount of attribute values for a given attribute
Creating a Custom KPI
The benefit of adding a manual KPI is you have further flexibility of what type of metric you’d like to track. You can use percentages, decimal places, and other words like minutes or seconds.
Navigate to the KPI Formula tab of the Settings page,
Click on the + Add Formula button next to the search bar. This opens the Create KPI Formula Modal.
On the Create KPI Formula Modal
Give a name to your KPI
Give it a concise description
Start building your custom formula.
Add a suffix
Example: "$"Choose a formatting type for the show value
Click Save and see your KPI be added to the table
KPI best practices
You want to build KPIs that are relevant to the goals of your team or organisation.
Creating KPIs
Ensure KPIs have simple, intuitive names that are easy to understand at a glance. Avoid jargon.
Add brief descriptions for KPIs that require additional clarification. This ensures everyone understands the data's purpose and scope.
Incorporate appropriate suffixes or units, such as
/5for ratings,%for percentages, or$for monetary values.
Using KPIs Effectively
When adding KPIs to reports, focus on selecting only the most relevant ones to avoid cluttering dashboards with unnecessary data. Ensure that the selected KPIs align with the overall goals of the report and the needs of the intended audience.
Tips for Success
To ensure KPIs remain valuable, conduct regular reviews to confirm they are still relevant. Standardize naming, formatting, and metric definitions across all reports to make them familiar and consistent. Collaborate with stakeholders and reviewers to ensure the KPIs align with their expectations and provide the insights they need.
With our KPI formula builder, you can create customized metrics using an intuitive logic structure. This guide will explain the key components and syntax to help you effectively build formulas for your specific needs.
Understanding the Formula Builder
The formula builder lets you create custom KPIs using three main components:
Functions: Define the metric you want to measure.
Example:feedback()Parameters: Narrow the scope of the metric.
Example:"import.type", "=", "trustpilot"Properties: Specify detailed attributes using dot notation.
Example: "import.type", "=", "trustpilot"
Combine all of them to reach a formula:
function("paramerter_name.property", "=", "parameter_value")
You can then use common mathematical logic to build more complex formulas :
(feedback("import.type", "=", "google") / feedback("import.type", "=", "all")) * 100
Please note, adding " " around each value is mandatory for the formula to work.
Functions
Function | Parameters | Custom Formula examples |
feedback() count of feedbacks |
| feedback("import.type", "=", "google_review")
feedback("team.id", "=", "9921")
feedback("team.id", "=", ["1234", "323", "12332"])
feedback("segment.id","=","1234")
feedback("segment.id","="," ["1234", "323", "12332"])
feedback("survey.id", "=", "1526")
Count of feedback that matches a single survey
feedback("question.type", "=", "nps")
Count of feedback that includes NPS questions.
feedback("question.id", "=", "1526")
Count of feedback that are having the question 1526
feedback("question.name", "=", "Tell us more")
Count of feedback that matches a question by name
feedback("question.option_id", "=", "1234")
Count of feedback that matches a choice or rating table option
feedback("question.option_name", "=", "experience")
Count of feedback that matches the label of a choice or rating table option
feedback("topic.name", "=", "shipping cost")
Count of feedback that matches a specific topic name
feedback("attribute.id", "=", "1232:male")
feedback("attribute.name", "=", "city")
Count of feedback that matches a specific attribute by name or with a value
feedback("feedback.id", "=", "2312")
Count of feedback that matches a specific feedback by id
feedback("feedback.type", "=", "completed")
Count of feedback that has either been complete or incomplete.
feedback("push.canal", "=", "sms")
Count of feedback that matches whether feedback pushes were email or sms
feedback("push.status", "=", ["clicked", "opened"])
Count of feedback that matches the status of pushes
feedback()/push()
Count of response rate that matches the status of pushes
(feedback("response.value","=",[4,5],"question.type","=","slider")/feedback("question.type","=","slider"))*100
Average CSAT for all rating questions
|
push() Count of sent emails and SMS |
| push("push.status", "=", "bounced")
Count of pushes that matches the status of push
push("push.includeFollowUps","=",true,"push.status","=",["scheduled","requested"])
Count of ALL pushes including followups |
nps() Net Promoter Score |
| nps("segment.id", "=", "987")
NPS score based on this particular segment of feedback |
sentiment() Sentiment score average |
| sentiment("topic.name", "=", "Packaging")
Sentiment score of the entire feedbacks having the topic “Packaging” attached
sentiment("topic.name", "==", "Packaging")
Sentiment score of the text item within feedbacks having the topic “Packaging“ attached
sentiment("topic.name", "!=", "Packaging")
Sentiment score of feedbacks not having the topic “Packaging” attached
sentiment("topic.name", "!==", "Packaging")
Sentiment score of the feedbacks without counting the sentiment of verbatims having the topic Packaging attached
sentiment("question.name", "=", "What did you find most challenging?")
Sentiment score of the entire feedbacks having the question"What did you find most challenging?"
sentiment("question.name", "==", "What did you find most challenging?")
Sentiment score of the specific question What did you find most challenging?" in all feedbacks
sentiment("question.name", "!=", "What did you find most challenging?")
Sentiment score of the entire feedbacks not having the question"What did you find most challenging?"
sentiment("question.name", "!==", "What did you find most challenging?").
Sentiment score of the entire feedbacks without counting the sentiment of the question "What did you find most challenging?" |
satisfaction() Satisfaction ratio |
| satisfaction("survey.id", "=", "7362") Satisfaction Ratio of feedback based on this particular survey
satisfaction("topic.name", "=", "Packaging") Satisfaction score of feedbacks having the topic “Packaging” attached
satisfaction("topic.name", "!=", "Packaging") Satisfaction score of feedbacks not having the topic “Packaging” attached
satisfaction("question.type","=","ratingsTable") Satisfaction Ratio of feedback having at least one rating question answered
satisfaction("question.type","!=","ratingsTable") Satisfaction Ratio of feedback not having a single rating question answered |
ces() Customer Effort Score |
| ces("topic.name", "=", "delivery") Customer effort score based on this particular topic |
ratings() single rating questions only |
| ratings("attribute.name", "=", "gender:female") Average rating score based on those that have an attribute name collected that corresponds to ‘gender’ and is female
ratings("question.name", "=", "How would you rate us ?") Average rating score of feedbacks the question "How would you rate us ?"
ratings("question.name", "==", "How would you rate us ?") Average rating score of the specific question "How would you rate us ?" within all feedbacks
ratings("question.id", "!=", "1111 ?") Average rating score of feedbacks not having the specific question 1111
ratings("question.id", "!==", "1111 ?") Average rating score of feedbacks without counting the rating of question id 1111 |
ratingsTable() multiple rating question options |
| ratingsTable(“question.type", "=", "nps") Average rating table score based on feedback that also has collected nps |
url()* Create a new custom API call that returns the value located with Dot Notation Value. | *This is a special case where only a link can be added to this function "url.{dot-notation-value}" | url("link.link", "=", "http://google.com") |
volume() count of a given parameter |
| volume("attribute.name", "=", "country:Poland") Total count of times the attribute country = Poland was recorded on the platform
|
response() selection of certain responses to a question |
| response("feedback.type", "=", "incomplete","question.type","=","textarea") Count of text answers where the feedback was not fully complete |
time() |
| time("survey.id", "=", "1324") Total time it takes to complete survey with id 1324 |
financial() |
| financial("financial.type", "=", "risk") financial count of revenue at risk |
resolutionTime() |
| resolutionTime("survey.id", "=", "1324") Total time it takes to resolve feedbacks from the feedback creation date to the status is “resolved” for survey with id 1324 The resolutionTime is in seconds make sure to adapt it to your needs:
|
Don’t forget you can stack multiple parameters together, for example, if you wanted to find total feedback of google reviews that had completed feedback you would do: feedback("import.type","=", "google_review", "feedback.type", "=", "completed")
Note that new operators are available : == & !== to target specific Feedback item scope.
Properties
Our properties come after a dot and allow users to further define which type of parameters value they want to add
Property | Description | Variables |
.name | the value of the parameter will be a name | - |
.type | the value of the parameter will be a type | - |
.id | the value of the parameter will be an id number | - |
.{url) | Only available for the url function | - |
import.type | used to link with an import method. | survey |
question.type | the type of question you want to select | nps |
feedback.type | whether the feedback was completely finished or left incomplete. | completed incomplete |
push.canal | whether the call for feedback was an email or sms | email |
push.status | what the status of the push is that you’d like to track | scheduled |
nps.profile | the profile of the feedback | promoter detractor neutral |
financial.type | the type of financial impact the feedback has depending if it’s positive or negative. | risk opportunity
|
