Everything You Need to Know About Salesforce Case Scoring

By Rachel Garton

When case volume is high, customer service agents can become overwhelmed with work. When you have a dozen different things you’re juggling, how do you know what to tackle first?

This article will introduce a solution to this problem – case scoring! First, we’ll learn what case scoring actually is, before walking through some of the use cases. Then we’ll finish up with some brief tutorials so you can roll out case scoring for your own team!

What is Case Scoring?

If you’re familiar with Lead Scoring, Case scoring is very similar. In a nutshell, Case scoring is the process of ranking Cases for prioritization. The score can be based on a multitude of factors, which we’ll explore soon, but let’s walk through a basic scenario.

Universal Containers has a case scoring system that prioritizes “Golden” customers over other support tiers. They also want to make sure that cases do not stay open for too long, so they use a combination of Account Type and Case Age to score the cases. This means that if two Cases come in at the same time, one for a Golden account and one for a normal one, then the Case for the Golden account will be scored higher and prioritized first. This doesn’t mean Golden account Cases are always top in the priority list. If a Case for a normal customer has been open for too many days then it will also be prioritized higher to ensure all customers have their needs met within a reasonable timeframe.

How Does Case Scoring Help?

Case scoring can be a great way to help your customer service agents prioritize work. When an agent logs into Salesforce, they usually go to their Case queue immediately to see what needs to be done. If they have a handy score on each Case, they can sort their queue by the Case score and work from the highest scored case, to the lowest. This clean and straightforward way of organizing work lets customer service agents focus on what really matters – helping customers.

Common Variables for Scoring

The exact variables that feed the Case score will vary for every customer service organization, but they mirror the factors tied to SLAs and KPIs. Here are some common things to consider.


This one may be a little obvious, but the Case priority is a great variable to consider when looking at Case score. Higher priority Cases mean higher scores, so agents get to the high priority items first.

Customer Type/Tier

Similar to the Universal Containers example, the customer type could impact what level of support a customer gets. Sometimes this special attention is based on the nature of the customer relationship (partner, etc.), a contractual agreement (covered more in the next variable), overall spend with the organization, or tenure/length of the relationship with the customer.

Support Contract Type

Case score may also consider the support contract that a customer has signed. If your organization uses Contracts and/or Entitlements in Salesforce then this could be a good factor to consider in Case scoring. If a customer pays for premium support, for example, then their Cases may need to be prioritized before others.

Time with Support

It’s very common for organizations to focus on “First Response Time” (FRT) and “Time to Resolve” (TTR). These two metrics are important but they do not give a complete picture and can lead to negative behavior patterns evolving among your service agents. 

When the initial response time and the time to close a Case are the main focus, agents sometimes rush to give an initial response and then forget about the Case or rush the Case to a quick closure, without properly addressing the customer’s problems. 

That’s why it’s good to focus on “Time with Support,” which is how long the Case has been waiting on a support agent to respond to a customer. This goes beyond the first response and also means more complex Cases get the attention they need. To learn more about how to track “Time with Support,” read this great Salesforce Ben blog: 3 Ways to Improve Salesforce Case Management Beyond the First Response.

Flagged Case

Case Flags is a managed package built natively on the Salesforce platform. It provides customer service agents with color-coded flags that are visual indicators of which cases need their attention. Case Flags themselves could act as your Case score (different flags mean higher priority), or you can use flags along with other factors to determine the ultimate priority of Cases.


These are just some common examples of variables to consider, but every organization is unique. When considering how to score Cases, think about what’s important to your organization and how you want your agents to actually prioritize their work. Answering that question will give you a blueprint for your Case scoring logic.

How to score Cases

There are a few ways in which you can score Cases, depending on how complex your logic is – Formula fields, Flow, and Apex code. Let’s take a look at each!

Formula Field

If you just need to refer to fields on the Case itself or on related records, like the Account, then you can usually get away with a simple formula field. Using IF() and CASE() functions, you can assign different scores to different fields and values.

This example formula calculates a Case score based on the priority, whether or not the related account is a Golden account, and whether or not the Case Flags flag has been set.


Flows are the future of Salesforce declarative automation and over the past few years, Salesforce has added a ton of enhancements to Flows. They can handle much more complex logic compared to their predecessors, Workflow Rules and Process Builders. If you’re still new to Flow, our Introduction to Salesforce Flow article is a great place to start and Trailhead has a great in-depth module on how to build a Flow.

For this example Flow, we want to check the following criteria:

  • Case Priority
  • Account Type
  • Related service Contracts under the Account

Since we have to look at records related to the account (which are sibling records of Cases), we can’t just use a formula field. It’s time to make a Record-Triggered Flow!

First, we want this to be a Record-Triggered Flow that updates the Case before saving. Since we’re updating a field on the Case itself (Case Score), it’s more efficient to update the record before it is saved onto the database. The entry criteria can just check that the Case has an associated account, since we want to check Account type and Contracts.

Now that we have the start element and entry criteria defined, the Flow will perform the necessary checks and continuously add to a variable – CaseScore_var – to calculate the Case Score. At the end of the Flow, the Case’s Case Score field will be updated with the final calculated value of the CaseScore_var variable.

1. Check the Case Priority with a CASE() formula in an Assign element.

Add the output of the formula to the CaseScore_var.

2. Check the Case Account’s Type with another CASE() formula in an Assign element. Add the output of the formula to the CaseScore_var.

3. Lastly, for customer accounts, the Flow will get all contract records and loop over them to check for specific types of customer service contracts. If an active service contract exists, then the Case Score is given additional points.

4. After the CaseScore_var has been fully calculated, the Case record’s Case Score field is updated!

Apex Trigger

There is also the option of an Apex Trigger to set the Case Score in a ‘before save trigger’. The logic would be similar to the steps of a Flow, just done in Apex. If your business logic for Case scoring is exceedingly complex, or if you already have a lot of automation on the Case object and are concerned about the performance of a Flow, you may want to explore Apex.


This article covered case scoring and how it can greatly increase productivity for your team (which also makes your customers happy!). If you’d like to read more about case scoring and managing high support volume, check out these informative articles:

The Author

Rachel Garton

Rachel is a 15x certified Salesforce Solutions Architect with over 8 years of Salesforce experience. She enjoys tackling technical challenges and exploring the possibilities of new technologies.

Leave a Reply