Having the right data at your fingertips when working in Salesforce, especially from an end-user perspective, can dramatically increase productivity and enhance the overall user experience. Formulas are a great way to achieve this, making them a must-have in any Salesforce professional’s toolbox.
In this guide, we will dive into the Salesforce CASE function – how and why it is used, as well as a few examples of common scenarios in which this function will help you and your users.
While the widely known IF function checks if a statement is true or false, and returns one of two results, the CASE function verifies if the actual value of a field, text, or number exactly matches one of the values you input, returning a corresponding result. The function can easily be used to return a formula based on a picklist value or create custom groupings for various use cases.
The syntax of the statement is as follows:
CASE(expression,value1, result1, value2, result2. else_result)
Now that you know the syntax of this particular function, we will dive into Salesforce case formula examples. These common scenarios represent a few different ways you can leverage the CASE() function across departments and requirements.
If you haven’t yet created your first formula field, feel free to take a look at our interactive tutorial post – learning how to get started may be useful before exploring the examples below.
One of the best things about formula fields is the ability to display images as an output. Salesforce has a bunch of images that can be used, and you can also download the Salesforce Labs AppExchange Graphics pack to add some more.
Using a CASE statement, we can look at our Lead Score field and assign an Image URL using the IMAGE function. If the score is 10, assign a red traffic light. If the score is 20, assign a yellow light. And if 30, assign the green. Easy!
CASE(Lead_Score__c , 10, IMAGE("/img/samples/light_red.gif", "redlight"), 20, IMAGE("/img/samples/light_yellow.gif", "yellowlight") , 30, IMAGE("/img/samples/light_green.gif","greenlight"), "")READ MORE: Use Images in Salesforce Formula Fields to Spice up Your Org
Classifying an Account on various criteria is something a lot of companies do, and for simple use cases a formula field can easily be used. However, as an organization grows this may not be the case anymore, which means it’s worth making sure that you choose a solution which suits the particular needs of your company.
In this theoretical example, the Classification would be either Enterprise, Mid-Market, or SMB based on the custom Revenue Range.
CASE(Revenue_Range__c, "Over 1 Million", "Enterprise", "Over 500K", "Mid-Market", "Under 500K", "SMB", "N/A" )
Perhaps the first formula that comes to my mind when thinking about date fields, is the one helping us find out the day of the week. However, there is another which may prove extremely helpful as a formula field, but even more so when you’re out of grouping in a report.
To be more specific, you can use CASE to create a simple row-level report formula and remove the need to use a grouping in order to display a date by Fiscal or Calendar Quarter. The clear advantage of this approach is that you can have it as a column in the report without a field actually existing, while the row grouping can be used for the other three attributes.
CASE(MONTH(Date__c), 1, "Q1", 2, "Q1", 3, "Q1", 4, "Q2", 5, "Q2", 6, "Q2", 7, "Q3", 8, "Q3", 9, "Q3", 10, "Q4", 11, "Q4", 12, "Q4", "N/A" )
Just as I did in the example above, feel free to use the DATEVALUE() function to convert a Date/Time field into a Date if needed.
When it comes to the support team and information available on the Case Object, chances are that you would want to let your customer, prospect or end user the Status of their case. Depending on your internal established Status values, they may not be as user-friendly for external users. In this scenario, you can leverage the CASE function to convert the Status to a more detailed explanation which can be sent out externally.
CASE(Status, "New", "Your case has been submitted!", "Working", "We are currently looking into your issue.", "Escalated", "A support manager will reach out shortly.", "Closed", "Your case has been resolved.", "More information needed.")
When using Salesforce Flow and the Send Email action to trigger the notification to the customer, you could also create the formula as a resource within the flow, rather than an actual formula field as internal end users wouldn’t need to see or use it. Once created, you could include it in a Text Template resource alongside a nice message to be used within the action, and you’re done!
Additionally, the response expectation related to the support tier is another way that Cases would be prioritized by the team. Depending on the criteria your organization uses to identify the type of support a customer is entitled to receive, using a CASE formula can help further translate these tiers into ETAs which the support agents can reference.
CASE(Account.Rating, "Platinum", "24 Hours Response", "Gold", "24 Hours Response", "Silver", "36 Hours Response", "Bronze", "36 Hours Response", "Standard service")
With the IF function checking if a statement is true or false before returning one of two results, you can make use of it in combination with CASE to determine different values in one or both scenarios. This combo removed the need for repetition within the CASE function and could result in a lower compile size.
Returning to our example when going through the CASE syntax with StageName mentions, let’s calculate the formula field output based on IsClosed and Amount, then Opportunity Stage, to obtain a Tier.
IF(Amount > 50000 && NOT(IsClosed), CASE(StageName, "Prospecting", "Tier 3", "Qualification", "Tier 3", "Needs Analysis", "Tier 2", "Value Proposition", "Tier 2", "Tier 1" ) , "Not Eligible for Tier")
Additionally, let’s go back to the Account Classification example and include the Account Type in the mix. The Classification should be different for Customers in comparison to Partner or Reseller Accounts, which are all identified based on the Type picklist field.
IF(CONTAINS(TEXT(Type),"Partner"), "Partner Account", CASE(Revenue_Range__c, "Over 1 Million", "Enterprise", "Over 500K", "Mid-Market", "Under 500K", "SMB", "N/A" ))READ MORE: 50+ Salesforce Formula Examples
Make sure to check the full list of considerations and tips Salesforce provides as well before embarking on this journey.
While this is just one of the many available functions you can use in Salesforce formula fields or reports, it’s one that will set you up for success, regardless of whether you’re just starting your Salesforce journey or you’re an experienced admin.
What other situations have you used the CASE function in? Let us know in the comments below!
Andreea is a Salesforce Technical Instructor at Salesforce Ben. She is an 18x certified Salesforce Professional with a passion for User Experience and Automation.