Category: Salesforce Administrator

Add some Magic to your Flows

Add some Magic to your Salesforce Flows with Flow Magic from Salesforce Labs. No more boring picklists! You will build this flow in one of the mini-projects as part of our online course “Learning Salesforce Flow”. Visit for more information.
#salesforce #learningsalesforceflow #salesforceautomation #salesforceadmins

Disable User Flow

Here is a quick and easy flow to disable users accounts in Salesforce.

Create a new screen flow, it will have these elements when completed:

Add a screen element

Give the header a name:

Add a message to display (Display Text component):

Add a picklist component:

Configure the choice set (type = Record):

Filter out those that are inactive or have no company name to exclude the built in accounts.

Add an Update Record element:

Save, activate and run the flow:

Get more great training resources with our online training material providing everything you need to get certified:

  • Salesforce Administrator
  • Salesforce Platform App Builder
  • Salesforce Advanced Administrator
  • Salesforce Sales Cloud Consultant

Visit our online training site at

Lightning Messaging Utility

The Lightning Messaging Utility is a great little tool from Salesforce Labs (Free) that admins and developers can use to highlight important information to your users.

Perhaps you have been using a rich text component to display a message on your lightning record pages – this is way better!

Using Component Visibility with this component means you can display a message when a pre-set condition is met and these messages will catch the user’s attention.

Once installed, you can simply drag and drop the message into your lightning record page and configure the settings to suit your requirement. The placement, text, background color, and icon are all configurable.

This message below is based on the total customer spend (total of won opportunities) being over a set value, earning them VIP status. The message is only displayed when this condition is met, using Component Visibility.

This next message is a more general one reminding users of a new feature on this object:


For the VIP Message (example above), the configuration was as follows:

  1. Message type was alert. (Options are alert, inline, prompt, illustration)

2. Show Message – yes we want to show it.

3. Message body – the text of the message

4. Message variant was error (options are info, warning, error or offline) This sets the background color of the message.

5. Show icon – yes we want that displayed.

6. Icon name we used utility:moneybag – get the full list of icons from the Lightning Design System reference here: use the icon group name as the prefix. (utility, doctype, standard, custom, action)

7. Icon size – medium (options are medium, xx-small, x-small, small)

8. Icon Variant – inverse (options are inverse, error, success, warning) note: these only apply to the utility icons.

The final part of the configuration is the Component Visibility, we only want this message to display when the Rating field value for this account record = Hot.

Get it here:

You can get the app from here:

and the Setup Guide from here:

and the Lightning Design System Messaging Guidelines here:

Get more great training resources with our online training material providing everything you need to get certified:

  • Salesforce Administrator
  • Salesforce Platform App Builder
  • Salesforce Advanced Administrator
  • Salesforce Sales Cloud Consultant

Visit our online training site at

Failed a Salesforce Exam?


You studied hard, did some practice tests, had lots of practice in your own developer org and thought you had it all sorted. You got to the end of the exam and BUST – not the result you were hoping for!

Don’t despair, you are not the first or last to fail a Salesforce exam. Many students have failed the first and sometimes second time until they finally ace it. What matters now is dusting yourself off and having another crack at it!

Repeating what you just studied is probably going to produce the same result so its time to take a different strategy.

Step 1: Take some time off.

If you have been studying hard for several weeks or months, you need a break for at least a few days to relax and recharge.

Step 2: Review your Test Results.

Find the email that gave you all the details of your result. This is important to help you plan the next attempt.

Sample exam result from the Salesforce Administrator Exam

Step 3: Go back to the Exam Guide

Each exam has an exam guide that contains a wealth of information. The key part we want to find is the weighting for each section of the exam – how many marks is each section worth?

The Exam Guide for the Administrator exam is here:

Scroll all the way down until you get to the section: Exam Outline

Here are the % weightings that we need:

  • Organizational Setup: 3%
  • User Setup: 7%
  • Security and Access: 13%
  • Standard and Custom Objects: 14%
  • Sales and Marketing Applications: 14%
  • Service and Support Applications: 13%
  • Activity Management and Collaboration: 3%
  • Data Management: 10%
  • Analytics—Reports and Dashboards: 10%
  • Workflow/Process Automation: 8%
  • Desktop and Mobile Administration: 3%
  • AppExchange: 2%

Step 4: Analyze the Results

There are 60 questions on the exam and a passing score of 65% (or 39 marks out of 60).

The next step is to go through the results one section at a time to see where you can get the best improvement.

This table will help determine what you should concentrate on for the next attempt. All you need to do is add “Your Score” and calculate the values for “Your Marks” and “Possible Gain” columns.

Alternatively, just download this spreadsheet and add your scores:

SectionWeightMaximum MarksYour ScoreYour
Possible Gain
Organizational Setup3%1.80%01.8
User Setup7%4.266%2.771.43
Security and Access13%7.850%3.93.9
Standard and Custom Objects14%8.455%4.623.78
Sales and Marketing Applications14%8.462%5.213.19
Service and Support Applications13%7.875%5.851.95
Activity Management and Collaboration3%1.8100%1.80
Data Management10%666%3.962.04
Analytics—Reports and Dashboards10%650%33
Workflow/Process Automation8%4.820%0.963.84
Desktop and Mobile Administration3%1.80%01.8
Totals100%60 Marks32.0727.93
Your % Score53.43%
Pass Score is 65%

Weight: How important this section is (from the Exam Guide)

Maximum Marks: How many marks out of 60 is this section worth? (weighting / 100 x 60)

Your Score: Your section scores (from the email you received)

Your Marks: How many marks your weighted section scores earned you (maximum of 60 in total) You need 39 to pass.

How to Calculate Your Marks:
Security and Access: Weighting is 13%, Your score is 50%.
13 / 100 x 60 = 7.8 Maximum Marks (if you got them all correct)
7.8 x 50% correct = 3.9 Your Mark

In this example, the student needs to earn 7 more marks to take their marks from 32.07 to 39.07 (or 65.01%)

If they just concentrated on the three sections highlighted, they could potentially pick up 11.52 more marks and easily pass the exam.

Remember if the calculations are too hard, just download this spreadsheet and fill in your exam scores.

Step 5: Find some different Training Material

Maybe the material you have been using did not really connect with you? Perhaps another author can explain things differently? If you are a more visual learner then video materials may help you. Do you learn best by reading the text? Could you learn better by doing more in your own developer org?

Find the learning style that suits you.

Step 6: Make a Plan

Now you have identified the sections you need to study and found some training material that better suits your learning style, make a plan to resit your exam and book in a date. Set the date within the next month and then plan learning activities for at least 30 minutes each day.

Plan to have a small celebration when you are successful. Whether it is a special dinner, posting your success to social media, or indulging in your favorite food or drink, you deserve it!

Step 7: Ace that Exam!

Get a good night sleep and go into your exam resit with confidence.

Get more great training resources with our online training material that provides everything you need to get certified in the following:

  • Salesforce Administrator
  • Salesforce Platform App Builder
  • Salesforce Advanced Administrator
  • Salesforce Sales Cloud Consultant

Visit our online training site at

Make the Transition to Flow – Part 2

Why do we need to transition to Flow?

Salesforce is concentrating their future development efforts on Flow, so it’s time to take a good look at the reasons why Flow should be your no-code automation tool of choice on the Salesforce platform.

This is the second in a two-part series designed to help you get started learning flow. If you missed the first part, you can find it here.

Build on your success

Now you have conquered your very first flow, let’s tackle something a little more complex and gradually build up your skills and confidence. Before long you will be over the hump and on your way to tackling more complex flows.

Flow 2: Customer Feedback

The challenge:

We want to get feedback on customer support issues to see how satisfied our customers are with our support service. When we are talking to the customer on the phone and we are closing the case, we will ask three quick questions.

  • Did we solve your problem?
  • Did we solve it quickly enough?
  • How well did we do overall?

For the first questions we have three responses that will earn points towards the total feedback score. The responses can be Yes (2 points), Partially (1 point) or No (0 points).

For the question Did we solve it quickly enough – there is a sliding scale from 1-4 with 4 being the fastest response we could have achieved.

The final question How well did we do overall, also has a scale from 1-4, with 4 being we did an excellent job.

The three questions give a total feedback score out of 10.

We only want the survey to be available once the case is closed. Once the survey has been completed and the total feedback score is recorded, we don’t want the survey to be available again for that case. We do not need to store the responses for the three questions, all we need to keep is the final score.

The survey will not be filled out by the customer, the service agent will do this as they are talking to the customer and closing off the case.

Flow Logic:

Our flow will work something like this. First, we will get the record for the case. We then check if the case has been closed. It must be closed first to get the feedback. If not, we display an error. If the case is closed, we check if the feedback has already been collected, if not we proceed to display the three questions and finally save the new feedback score to the case record.

Create a field on Case to store the result

Before we start building our flow, we need a new number field on the case object to store our feedback score.

The field will have a label of Feedback Score, of type number, length of 2 and zero decimal places:

Create a new Flow

From the setup menu, select Flow and then click New Flow.

Select a Screen Flow:

Step 1: Get Case Record

In this step we will read the case record. We will need to create a variable to pass across the ID of the case we currently have displayed, then we can get the record.

Before we start building our flow, we need to create a few variables, a formula and some choice values for our survey questions.


To pass the current case record to the flow so we can get the case record and inspect some of the field values, we need to create a new variable named “recordId”. The case of this variable name is very important, the “I” is a capital letter i and the rest must all be lower case. This variable will automatically be populated for us with the value of the current case record.

Click the Manager tab (1), then New Resource (2), and fill out the fields as shown below to create this variable. Note we are making this variable for Input as the value will be passed from the currently displayed case record to the Flow.

We also need variables for the problem_overall score and for problem_solved_quickly. We will use them later but create them now to make life easier. Note we make them available as Output this time because they are going to go out from the Flow and be written back to the case record.

Create a variable of Data Type Number configured as follows:

And one more variable also of type Number:

We should now have three variables:

Get the Case Record

Next, we drag a “Get Records” element onto the canvas (page).

Fill out the details for getCaseRecord as follows:

Step 2: Check if the case is closed

Next, we need to add a Decision element to our canvas and configure it to help check if the case is closed or not:

First, create the CaseClosed outcome:

Next, create the CaseOpen outcome:

Step 2a: If the case is not closed, display error and stop.

If the case is not closed, we can’t add the feedback now so we will display an error and stop the flow.

Drag a Screen element to the canvas:

Configure the Screen element to display an error message:

Next drag a Display Text element into the middle of the screen (1):

Enter the error message (2) and it will be displayed in the middle of our display screen (3).

Step 2b: If the case is closed, continue to step 3.

If the case is closed, we can continue.

Join up the elements we have placed on the canvas:

Step 3: Check if the feedback has been done

Drag another Decision element and configure it to check if the feedback has already been completed. We don’t want to do it again.

Configure the first outcome:

And the second one:

Step 3a: If feedback score > 0, display message and stop.

If the feedback has already been done, we will display a message and stop the flow. Note: This is really not an error, it’s just we have already completed this process and don’t want it repeated.

Drag another screen element to the canvas, then drag a Display Text element into the middle of the screen element and configure as follows:

Step 3b: If feedback score is blank, continue to step 4

If the feedback score is blank, we can continue and collect the feedback.

Join up the new elements we have added:

Step 4: Get the Customer Feedback

This time we need to drag a Screen element to the canvas so we can configure our data input screen that will display and capture the answers to our three questions.

Drag a Radio Button element onto the screen:

For this element, we need to configure as follows:

Next, we will configure the three choices:

Click in the first Choice box and click + New Resource:

Select the type of resource as Choice:

Configure the choice_yes, giving it a Label of “Yes” and a choice value of 2. This means if the customer problem was solved with this case, we add 2 points to the case feedback score.

Repeat the process to add the second choice:

And once more to add the third choice:

The Radio Button choices config should look like this:

Next, we will add the first Slider and configure it:

There is one more section to configure the slider, this is where the value for the slider position (where the user slides it to) will be stored. {!problem_solved_quickly}

Now we add the second slider and configure it:

Storing the result in {!problem_overall} – the variable we created back at the start.

Step 5: Save the results

Finally, we need to save the results.

Before we do that we need to add up the scores for the three questions to get a final score (case_feedback_score). To do this we will create a new formula as follows:

Note: That could have been only 0 decimal places as we are using whole numbers.

There are two parts to saving the results. First, we need to copy our total score from our input screen across to the case field. Then we can save the case record.

We will first drag an Assignment element to the canvas and configure that so we have the Feedback_Score__c field on the case record being assigned the value of our formula (which has added the three scores from the survey screen).

At this stage, the case record is held in memory, it has not been saved yet.

Finally, we add an Update Records element to save the new details to the case record.

Drag an Update Records element onto the canvas and configure:

Note that we didn’t need to specify all the fields we wanted to update, we just use the complete record from our getCaseRecord element.

This final step will save the case record to Salesforce, updating our Feedback Score for the survey on this case record.

Connect up the remaining elements so the final flow looks like this:

The last step is to Activate our flow. You can do this from within the Flow Builder:

Or you can do it from the list view of all flows:

On the list of all versions, you can activate, deactivate, run, delete or edit an old version of the flow:

Edit the Lightning Record Page

We only want our flow screen to display when a case is closed. We can configure this within the Lightning Record page as follows:

Drag a flow component onto the page as shown:

Select the new flow component (1) and configure as shown. The filters (2) control when this component will be displayed. The first one specifies to only show when the case has a status of closed and the second one specifies to show only when the Feedback Score is greater than or equal to zero. We still want the flow to display if the survey has been completed as we configured a special message for that back in Step 3a.

Add the Feedback Score to Page Layout

In order to see that our flow has run successfully and the Feedback score is being calculated correctly, we need to add it to the case page layout:

Drag our Feedback Score field onto the page layout. It does not really matter where you place it, in this example it was placed at the top of the page so we can find it quickly.

Save the page layout.

Test your Flow!

If everything has been completed successfully, we can now test our flow.

First, select a case that is NOT closed. We want to see that our flow does not display until the case is closed.

Change the case to Closed.

Our flow appears!

Fill in the survey, taking note of the numbers you selected. Remember for the radio buttons Yes = 2, Partial =1 and No = 0.

Click Next to complete the survey.

If everything went well, your flow will now display a message indicating the feedback has been completed for this case and the Feedback Score will be displayed on the case page:

If you got this far and everything worked, congratulations!!

If something is not quite working as expected, go back and double check your configuration. You can also use the Debug function in the flow to step through the flow to help you identify errors.

Advanced Flow Features

Break your flow apart

For very complex requirements or to create re-usable components that can be used by other flows, you can create a number of sub-flows and call them from your main flow. This has several benefits:

  1. It reduces the complexity of the main flow.
  2. It isolates functionality within the sub-flow, making problem solving and debugging easier.
  3. Your sub-flows can be reused by other flows. If you have a common function that needs to be used several times in your application then you can write it once and call from many flows.

For example:

You need a flow that can take an Opportunity and create a single Order or multiple Orders -OR- take a Quote and create a single Order or multiple Orders. Rather than adding all this complexity into one flow, it is broken down into a main Flow and four (4) Sub-flows.

Reference: You can get this free flow template from


Sub-flows can only be used on flows that are run after the record is saved.

When we run our flow After the Record is Saved, we have access to the elements for Action, Create Records, Update Records and Delete Records:

But on the Before Save Flow those 4 elements are missing:

Using Actions

Actions also let you break your complex flow apart – we have already seen how we can use sub-flows but there are many more actions available:

  • Apex
  • Quick Actions
  • Post to Chatter
  • Send Email
  • Custom Notifications
  • Route Cases
  • Submit for Approval

Extending your flow

What happens when you need to do something that flow just can’t handle?

Call Apex or add Lightning Components to your flow!

Extending with Apex

To call Apex, drag an Action (1) on to the canvas then select Filter By: Type (2) and then you can select one of the available Apex actions (3).


Extending with Lightning Components

Adding a Lightning Component – here is a quick example of how an (already installed) component can be added to a Screen element:

There are plenty more free samples on the AppExchange here:

Remember: If you are installing into your Developer org you need to select Install in Production. A Developer Org is not a sandbox. Sandboxes only exist within a fully licenced Salesforce org.

Extending with Heroku

“This post focuses on expanding flows with Heroku compute. Specifically, how to expose Heroku apps as external services and securely access them via flows using Flow Builder as the low-code development environment.”

Naming Standards

Keeping a consistent naming convention is important to be able to quickly identify what a Flow does. I like to start with the object name, followed by a short description of what the flow does. e.g. Lead-UpdateRating

Get more great training resources with our online training material that provides everything you need to get certified in the following:

  • Salesforce Administrator
  • Salesforce Platform App Builder
  • Salesforce Advanced Administrator
  • Salesforce Sales Cloud Consultant

Visit our online training site at


Refer to some of the resources listed here for some more inspiration and helpful examples demonstrating what you can achieve with a flow.

Get Started with the New Flow Builder

An Introduction to Salesforce Flow

Automation Champion – Learning Flow

The Wizard’s Apprentice Lightning Flow Builder video series

Jen W Lee’s Salesforce Blog  Jennifer Lee has some great blog articles on how to flow.

Flow Components lots of components that you can install and add to your flows.

Flow Tutorials

Automation Components

Flow Best Practices

Salesforce Automation Guide

Architect’s Guide to Building Record-Triggered Automation on Salesforce Using Clicks and Code (Salesforce)

Process Builder vs Flow

Best Practices for Process Builder

Salesforce Automation Tools

In this article, we compare the three no-code automation tools for Salesforce. These tools can automate business processes in Salesforce without writing Apex code:

  • Workflows
  • Process Builder
  • Flow Builder
Compare Salesforce Automation Tools


Workflows are the oldest of the automation tools.


  • Quick, relatively simple to configure.
  • Can update the current record or a parent record only.
  • Can only have one if/then statement.
  • Can send email alerts.
  • Can create time-dependent actions.
  • Can send outbound messages (without code to an external app).
  • Triggered by a record update or record creation.
  • No longer actively developed, but still supported.


Avoid where possible except for very simple tasks.

Start moving existing Workflows to Process Builder or Flow.

No longer actively developed – means no new features will be released.

Process Builder

The next generation of automation tools, Process Builder provides a full Graphical User Interface to build automations with point-and-click tools.


  • Can have multiple if/then statements.
  • Supports the ISNEW, ISCHANGED, PRIORVALUE functions that are currently missing from Flow (expected within 1 year).
  • Can be triggered by record creation/update, another process, Apex or Platform Events.
  • Can create any record and update related records.
  • Often updated with new features and capabilities.
  • Supports Custom Metadata and Custom Settings.
  • Can launch Flow or Apex.
  • Can post to Chatter and send Custom Notifications.
  • Can submit the current record for approval.
  • Can send email alerts.


Use Process Builder as a bridging step towards Flow.

Use when you need ISNEW, ISCHANGED, PRIORVALUE functions.

Handle complex tasks by calling Flow or Apex.

Move any existing Workflows to Process Builder unless you are comfortable working with Flow Builder and Flow meets your needs – then move straight to Flow.

Use a single process per object. (see note for exceptions)


Process Builder is “Often updated” – means there may be some small improvements but Flow is now the main focus for development by Salesforce.

Flow Builder


  • Allows more complex automations with multiple logic branches.
  • Is more complex to learn.
  • Is the future of Salesforce automation with Flow constantly being updated in each release with new features and capabilities.
  • Provides a user interface, ideal for creating wizard type functions.
  • Is the only no-code tool that can delete records.
  • Has a visual debugger built-in to Flow Builder.
  • Supports Custom Metadata and Custom Settings.
  • Can launch sub-flow or Apex.
  • Can post to Chatter and send Custom Notifications.
  • Can submit the current record for approval.
  • Can send email alerts.


Make Flow your preferred platform for no-code automation tasks and start learning how it works. Plan to move your Workflows and Process Builder automations to Flow over the next 12-24 months.

Monitor the improvements to Flow capability over the next 12 months and take advantage of new functionality as it is released by Salesforce. Read the release notes and test the new functions. is a great source of flow components that you can use in your own flows.

Complex business processes may need to use Apex code.

Comparison to Windows:

If we were to compare the three no-code tools to Microsoft Windows, it would look something like that below. Are you still stuck using Windows XP on your desktop?

Compare Salesforce Automation Tools


Salesforce Automation Guide

Salesforce Process Builder Best Practices

Architect’s Guide to Building Record-Triggered Automation on Salesforce Using Clicks and Code

Salesforce Dynamic Forms

Dynamic Forms – the ability to dynamically display fields on a lightning page when you want them is one of the most requested Salesforce features of all time with over 98,000 points on the Salesforce Idea Exchange. The original idea for this feature was posted over 13 years ago – so it’s long overdue.

First demonstrated at Dreamforce 2018, the feature will be available for custom objects in Summer ’20. More info here …

Today’s Quiz Question

A Salesforce record is modified on 1 April. It meets the criteria for a time-based workflow rule scheduled to run 7 days later. On 4 April, the record is modified and no longer meets the criteria. On 5 April, the record is modified again and now meets the criteria. When will the workflow action run?

Answer: On April 4th when the record no longer meets the criteria, the time based workflow action will be removed from the queue. On April 5th when the record is edited and again meets the criteria, the workflow action will be scheduled for April 12th. So April 12th is the correct answer.