Flow Tips Newsletter

Collection Filter and Collection Sort Challenge – Salesforce Flow Tips Newsletter

Hello folks,

How powerful are the collection sort and collection filter elements? How should you use them?

I experimented with collection filter and collection sort elements to see how far I can go using only one get element. In other words, I wanted my flow only to use up one SOQL against the governor limits.

I started with a get element that returns all the cases that have both account and contact assignments. I was able to extract the following information with only one get element:

  • Most Recently Modified Case
  • Oldest Modified Case
  • Oldest Modified Case Account Name
  • Number of Cases by this Account
  • Most Recently Closed Date for this Account
  • Contact Id on this Case
  • Number of Cases for this Contact
  • Oldest Closed Date for this Contact on this Case

Please see the image for the results.

How many elements did I use? Did I have to loop?

Here are the answers:

  • Your get element gives you sorting functionality. Use it.
  • You have to loop to get the min and max values, such as the oldest and most recent, sorted by Date and Time. But you need to loop only for one iteration. So you can exit after you assign the first record to a variable.
  • Your loop can use the existing sort or the reverse sort. Use this functionality.
  • Initially, I used a counter variable to exit the loop, but this was unnecessary. You need to exit the loop regardless after the first iteration. Insert a decision and connect both branches to the next element outside the loop.
  • You can get a count of records by using an assignment element with the operator “equals count”.

I experimented with the formula criteria inside the collection filter element without much luck. I think this functionality does not allow for filters with variable values on the right side of the equation. “ContactId on the current record = ContactIdVariable” formula did not work.

What do you think? Can these elements save you lengthy loops and executed elements?

How many elements, excluding the start or the end element, did I use to extract this information.

Join the discussion on LinkedIn here or Twitter here.

Live session recording:

Watch Melody Lwo of Salesforce Flowsome and me either on LinkedIn here or YouTube here.

P.S. Originally published on 05/30/2022.

Read the previous issue of the newsletter here.

Subscribe to the weekly educational Salesforce Flow Tips newsletter here.

Flow Tips Newsletter

New Features of Summer 22 (continued) – Salesforce Flow Tips Newsletter

Hello folks,

Summer 22 is arriving soon, and the second part of my quick tour is here.

In the last issue of the newsletter, I showed you a few changes that will be released soon. Let’s continue.

Screen flow enhancements:

1-Collapsible headings for sections: We received the functionality of multicolumn sections in screen flows a few releases ago, and I love them. With this release, we get a header, which makes the section collapsible.

2-Dynamic Forms (Fields – Still Beta) supports Name and Address Fields: Fields functionality is a very promising functionality that now supports Name (Salutation, First Name, Last Name) and a full Address. I don’t understand why this is still in beta, though.

3-Dynamic Forms Address automatically populates address: When you combine the new Address field with the Google Typehead functionality, you give the user the power to populate the address fields automatically.

Some other notable enhancements:

1-Orchestrations are deployable via change sets now.

2-Associated flows can be opened from within the Orchestration via a link.

3-You can order triggered Orchestrations with Flow Trigger Explorer exactly as you do with flows.

I want to add that dragging items on the Flow Trigger Explorer changes your flow’s running order parameter setting. The screen shows you a confirmation screen explaining the change.

The big news of this release is the addition of the No-Code Flow Testing (Beta), though. I am super excited about this, but I will take my time to review it before going into more detail.

I am heading to Texas Dreamin’. I will present there on the Flow Trigger Explorer and the Orchestrator. Come to my session if you will be there. If you won’t be there, no worries; I will present similar content soon virtually. Stay tuned.


P.S. Originally published on 04/26/2022.

Read the previous issue of the newsletter here.

Read the next issue of the newsletter here.

Subscribe to the weekly educational Salesforce Flow Tips newsletter here.

Flow Tips Newsletter

3 New Features of Summer 22 – Salesforce Flow Tips Newsletter

Hello folks,

Summer 22 is arriving soon, and I am here to give you a quick tour of the new functionality coming your way.

But before I do that, I would like to share that I wrote a brand new post for Salesforce Ben. It was published a week ago, and it is still the number one post on the site. Please read my post titled “7 Foundational Skills Before Learning Salesforce Flows” here.

The format of this post will include pictures more than words. Let me show you screenshots of what is coming. This release is loaded again with flow enhancements:

1-Flow Trigger Explorer supports manual reordering of triggered flows. You can create a new flow right from this dialogue. This action will prefill the start element for you. RT Orchestrations are also supported, which I have not seen or tested yet. When you open Flow Details and Versions on the right-side panel, you see all flow versions. You can open each version via a link and activate the version you want on this side panel. This functionality is better than the existing alternative in my humble opinion.

2-RT Automation got some serious love in this release. Now we can build complex formulas in our start entry criteria. Let me test and tell you how debugging works later. We get assistance via field and function pickers when building the formula. You can go crazy now with field values, prior field values, and functions.

The formula builder checks syntax similar to the formula field builder of the object manager. If you are sloppy with your work, you will get a red error message when you check syntax via this button. The formula resource builder did not get any love though, as far as I know.

3-Low-code flow testing comes to life. On your flow canvas, you will see a “View Tests” button on the upper right side. You will have to agree to the terms when you click on it because the functionality is in beta as of Summer 22. Then, you click create, and you start building your test.

I played around with the test builder a little bit. Disclaimer: I don’t know anything about the functionality. I saw this error message very frequently. At least for now, I can easily say this functionality deserved the beta badge.

Next week, I will continue my preview with the new screen flow functionality.


P.S. Originally published on 04/18/2022.

Read the previous issue of the newsletter here.

Read the next issue of the newsletter here.

Subscribe to the weekly educational Salesforce Flow Tips newsletter here.

Flow Tips Newsletter

Advanced Topics & Resources – Salesforce Flow Tips Newsletter

Hello folks,

Let’s talk about advanced topics around flow automation this week.

I want to highlight two sources of information that Salesforce recently published.

One of these resources is the blog post titled “Your Guide to Determining the Flow Running User and Its Execution Context” by Jennifer W. Lee.

It has been a mystery for many flow builders what context different flow types run. For example, if I create a record-triggered flow, can it update all records in my Org? What happens when I activate and run an event-triggered flow. All these questions have been answered in this blog post.

One interesting observation for me is the information that Jen published on screen flows. I built a few screen flows that run on public community (digital experience) pages, and even when I set the flow to run in system context without sharing, it would not see the related records in the Org it would need to see. So I would have to set up sharing rules to share the records I need in advance for the guest user to see. This phenomenon is explained in this blog post: The lookups in your screen flow do not run in the system context without sharing. Please read the blog post here.

Another source of information is the Architect’s guide to record-triggered automation. I should clarify and say that this has actually not been recently published. There was an earlier version of this page. This is not merely an update. The whole thing has been rewritten, and it is immensely more helpful than the previous version. There is good information for any level, but I would like to emphasize that some parts of the post are very advanced. Do not be alarmed if you don’t understand everything. This is expected.

If I had to highlight one point out of this document, it would have to be the use of formulas. There is an interesting bit of information, and it essentially says that the use of complex formulas does not scale well in high-volume flow execution scenarios.

This is the reason I often use a formula field and refer to it in my flow when I deal with a very complex formula. The best architectural solution will depend on the type of flow you are building, how often it will be executed, and how frequently the object records are pulled up and viewed in the Org.

I wanted to go into this topic also to emphasize this point: Capable flow builders are not that uncommon, and there are many great admins on the platform, but a flow builder who is very knowledgable on the platform’s capabilities and can harness both sides to come up with a great solution, is a rare gem. Read the architect’s guide here.

Recently published resources:


P.S. Originally published on 04/10/2022.

Read the previous issue of the newsletter here.

Read the next issue of the newsletter here.

Subscribe to the weekly educational Salesforce Flow Tips newsletter here.

Flow Tips Newsletter

Assignment or Update – Salesforce Flow Tips Newsletter

Hello folks,

I have a quick but important update for you this week.

An issue I see quite frequently happens when folks try and remember to use the assignment element instead of the update element in record-triggered flows. You can indeed use an assignment element instead of an update element in a before-flow to change the field values on the record that triggered the flow. However, this is not true when running your record-triggered flow in after-save mode.

To avoid confusion and facilitate an easy transition between before-save and after-save, always use the update element in a record-triggered flow to update the field values on the record that triggered the flow.

I am sure you know by now; before-save is labeled as Fast Field Updates, and after-save is labeled as Actions and Related Records in the record-triggered flow start element configurator.

If you have any questions, please do not hesitate to ask them on the Salesforce Break Slack. The invitation link is on https://SalesforceBreak.com.

Content and event updates:


P.S. Originally published on 04/05/2022.

Read the previous issue of the newsletter here.

Read the next issue of the newsletter here.

Subscribe to the weekly educational Salesforce Flow Tips newsletter here.

Flow Tips Newsletter

Process Automation Credential – Salesforce Flow Tips Newsletter

Hello folks,

This past week, I achieved the Process Automation Credential on the Salesforce partner side. 

The Accredited Professional program was announced in 2021. The partner credential program is somewhat similar to the Salesforce certification program and is only available for Salesforce partner employees. 

You can get certifications by following the partner learning camp training program for the specialization area you want to master. After the training, you will have to pass the exam using the virtual certification exam provider for the Salesforce partner side. The credentials bring Salesforce partners “cookie points” and are weighted differently depending on the specialization. For example, Process Automation is one of the more valuable credentials.

Since I call myself a Process Automation and Flow expert, I thought I would study the partner learning camp material and take the exam.

The flow product team is launching new functionality rapidly; therefore, keeping everything up-to-date is a heavy lift. When I started studying the material on the partner learning camp, I was immediately shocked. The material had an Oldies Goldies mixtape feel to it.

Process Automation Curriculum has five courses. One of the requirements of the “Get Started with Flow” course is that you listen to a podcast – or you can read the transcript – from July 2020 where the product manager at Salesforce says a few minutes into the recording: “So Oh my goodness, we can now trigger Flows when you save a record. Woo hoo!” This was shocking to me when I first heard it. However, it became more understandable when I realized that they talked about the Summer 20 Release in this podcast episode.

I needed to complete a few linked Trailhead modules and read some help pages to progress my studies. It is no secret that Trailhead is currently not the best place to learn flows. I know the Trailhead team agrees with me since they just hired an expert to review and improve the published material. But that is not even the weak part of the partner learning camp curriculum.

When completing the “Flow Testing and Distribution” course, I needed the check a “Got it!” checkbox indicating that I understood I should go to the “Paused Flow Interviews” screen in setup to debug failed flows. Is that even how that screen is titled?

When I headed to the “Hands-On Learning” course, I found additional resources links that I needed to check out. One of those was a YouTube video by Salesforce published in April 2019. The other one was a link to the Salesforce Anywhere Automation Tool Trailhead module. Do you know what Salesforce Anywhere is? It is Quip.

Then I signed up for the certification exam. The platform is rough; there are many issues, but let’s not focus on that.

When I started answering questions, I saw that there were inaccurate questions.

There was a question about a logic element; are decision elements grouped under logic elements now; if that is the case, I did not know. What good is going to do for me if I did? I am not sure. I would say forget about Salesforce Anywhere, but it was in the exam as far as I remember. There were two questions where you would have to know performing a DML operation before an outbound message is not good practice in flows. Why was I tested twice for something that is a tail case and that I can easily Google? It is a mystery to me.

But most importantly, would I know if somebody possesses good flow skills if they passed this exam? Absolutely not.

Congratulations to me; I have the Process Automation credential now.

However, I don’t recommend this credential exam to anyone until it is revised and drastically improved.

P.S. Originally published on 03/28/2022.

Note: I met with the partner side in Salesforce since I sent out this post, I am happy to announce they are working on improvements.

Read the previous issue of the newsletter here.

Subscribe to the weekly educational Salesforce Flow Tips newsletter here.

Flow Tips Newsletter

Slack and Flows – Salesforce Flow Tips Newsletter

Hello folks,

How is Slack related to Salesforce Flows?

I got certified as a Slack administrator this past week. So I must think Slack is essential for a low-code builder to learn if I did it, right?

Let me explain.

Flow helps us communicate with the user via screen flows. For example, I can display a message on the screen and initiate a custom notification, a chatter post, or an email. I can also collect input from the user via screen flows. Field updates, approvals, rejection of process steps are all possible.

When I was at Dreamforce in 2021, I saw many demos that included Salesforce user interactions on Slack. Unfortunately, most of this functionality is still not generally available.

We currently have a Slack AppExchange package that supports sharing records on Slack and a list-view of relevant Slack posts inside Salesforce. In addition, there is an Unofficial SF package that comes with several actions to support Slack posts from Salesforce Flows.

I have good news, though; Salesforce said during the last release webinars that approval processes would support Slack. And I am hoping that we will receive more functionality related to Salesforce-Slack integration with the next release.

I am preparing myself for a future where I can use Salesforce flows and Slack together when I interact with users.

Less and less daily communication flows through emails and chatter nowadays. Therefore it might make sense to learn how to use Slack effectively in any case.

Let me share with you a couple of things I learned in preparing for the administrator exam:

  • Use threads.
  • Ask yourself whether a specific content needs to be private; if not use public channels and tag the relevant people. Public post is knowledge, and it is searchable.
  • Don’t use @channel or @here excessively.
  • For private stuff that is not temporary, create a private channel.
  • For private stuff that is temporary, create a group chat or use DM.
  • It is super easy to schedule your post; use it when you come up with a genius idea at night.
  • Use huddles and screen share when needed. Super useful.
  • Explore async; record a voice or video clip with screen sharing and send it to one or multiple people.
  • Be aware of guest or external users and channels shared with guest or external users. Share only what needs to be shared.
  • User groups are a thing, and they are useful. For example, you can create a flow user group and tag this when needed.

I shared this list on LinkedIn at this link. Many folks have added comments to this list since then. Please check them. A good idea that one of my followers shared there is the following: Remember Slack channels support posting via email; you can direct emails from Salesforce to Slack. This can be a handy hack.


P.S. Originally published on 03/20/2022.

Read the previous issue of the newsletter here.

Read the next issue of the newsletter here.

Subscribe to the weekly educational Salesforce Flow Tips newsletter here.

Flow Tips Newsletter

7 Effective Flow Learning Strategies – Salesforce Flow Tips Newsletter

Hello folks,

How do you learn flows most effectively? I get asked this question quite frequently. When Salesforce Ben interviewed me on the FlowFest live webcast I gave the following pointers which I wanted to capture in writing.

Here are the 7 keys to effective flow learning:

1- Develop a solid understanding of process. What is a process? What steps need to be taken to get things done in your line of work? Have you ever done process mapping in your life? Be on the lookout for a blog post I wrote for Salesforce. It is coming soon.

2- Use resources wisely. Everybody learns in different ways. It is a personal preference. Trailhead, YouTube, Blogs, Udemy, and Web courses all serve a purpose. Find what works for you.

3- Start small: Record Triggered Flow is Process Builder and Workflow Rule and more. Start with record triggered field updates, then do related records and actions. You will see instant performance gains. Setting a grand vision is only good if you chart a path of step by step learning.

4- Try and experiment. I know Yoda says “Do or do not; there is no try.” I respectfully disagree with Yoda; when it comes to flows, there is try. A lot of it. There is a lot of sweat and tears on that path.

5- Learn where to go when you get stuck. Salesforce Break Slack, Salesforce Trailblazer Groups, Salesforce Answers. Find study partners. There is a reason peer review is a widely used method in coding. This is low coding; it is similar.

6- Controversial advice: Don’t get overly worried about the rules as long as you are in a Sandbox or Developer org. Learn how to get things done. Then tweak and optimize. Find a naming convention that works for you, then develop your own style. Learn the rules, and learn how to break them without breaking the system. If your first flow is not embarrassing in retrospect, you waited too long to hit the flow canvas. Go to YouTube and watch the first video the biggest YouTube creator made. It is out there and it is terrible; by Mr. Beast. And that’s totally cool. This should give you hope and courage.

7- Build your skills as you go along. Focus on progress, not on hard targets. If you lack the fundamentals of Salesforce administration, you won’t go very far. So go back and review those topics. I will write more on this topic in the coming days.


P.S. Originally published on 03/13/2022.

Read the previous issue of the newsletter here.

Read the next issue of the newsletter here.

Subscribe to the weekly educational Salesforce Flow Tips newsletter here.

Flow Tips Newsletter

10 Things I Hate About Flows – Salesforce Flow Tips Newsletter

Hello folks,

You can either read this post below or watch the embedded video on YouTube.

In January, I asked my Twitter followers what they hate about flows. In the start-up world, there is a famous saying: Your biggest source of learning is your dissatisfied customers. It is essential to shape your product based on customer feedback, especially in your start-up phase. I think the same principle applies to product management in big corporations.

What do flow users get most frustrated about? Salesforce flow product team, if you are listening, go to the whole thread by clicking here.

I gathered all the feedback to come up with one list.

Don’t get me wrong. I love building flows in the end.

The top 10 things I hate about flows are:

  1. Lack of wizards/configurators: Let’s say you need to create a task or opportunity in your flow. You need to remember the required fields and make sure that you pass values to all of them. Can’t we give the user a builder interface, a wizard, or a configurator? At least something that resembles the create task action in workflow rules.
  2. Error messages that are not understandable/actionable: Have you ever received an error message that does not mean much. You don’t understand what is going on and what you can do to fix it. If you get a GACK, your only option is to start deleting recent changes or going back in versions. Pro-tip: Check field-level security if you receive an error message around a get or update/create. 
  3. Validation Rules in Screen Flows: Have you ever wondered why the validation rule logic in screen flows is the exact opposite of what it is in Salesforce field builder settings? Unfortunately, I don’t think there is a good explanation. I guess this never made the idea prioritization list.
  4. You have a get in your flow that does not find a record. You will get an unrecoverable error if you reference that record variable in your flow after your get element. After the get element, you need to add a decision to check for that. But why? Can’t we build the null check inside the get element?
  5. Screen formatting options for screen flows: You can create a screen flow and run your flow on a community page. The user can access it on a mobile phone. You can also deploy and launch your flow on the Salesforce mobile app. If you have done that, you will know: The labels look gray, the letters are not big enough. The borders for the input boxes are in low contrast. You can use some workarounds for some components, but you are out of luck with some others.
  6. Choosing resources in screen flows: You must display some field and formula values and some static screen text messages to the user. You don’t have the option of displaying a screen field component that is read-only. You need to use a display text component and drop in those resources. Have you tried doing that with just mouse clicks? It is impossible. You click and drill down to get the field value under a record variable, and boom, your selector resets. You have to use your enter key instead of mouse clicks. But why? I don’t know. This issue has been there for years.
  7. Trigger entry criteria: When you are working with triggered automation, you don’t have access to many field values. And you cannot use a formula to evaluate the entry criteria either. Wouldn’t it be nice to use the created date and the last modified date here? How about the record-type developer name?
  8. Formula builder & formula debug: The resource picker is the only help you get when building a complicated formula. The functions are not available in a picker like in the Salesforce field builder. You have to remember or Google them. And when you have an error in your formula, you only find out about it when you save your flow. You cannot see the error messages in the formula builder dialogue.
  9. Deployment via button: You want to deploy and launch your flow on the record page via a button. Then you must create a quick action in object manager to do this. There is also a button option in the object manager, but that’s not it. And you need to remember to create an input variable in your flow exactly named as recordId. Why all that? Let’s make things a little simpler.
  10. Email: There are many ways you can send emails from your flow. None of them are great. Can we make this simpler?

Enjoy your flow-building journey.

P.S. Originally published on 02/27/2022.

Read the previous issue of the newsletter here.

Read the next issue of the newsletter here.

Subscribe to the weekly educational Salesforce Flow Tips newsletter here.

Flow Tips Newsletter

Error Message Design in Screen Flows – Salesforce Flow Tips Newsletter

Hello folks,

This week I would like to go over a few ideas about error message design in screen flows.

You probably already know that you can build fault paths coming out of various elements in flow. These paths will allow you to take a different route when the fault occurs. The inconvenient truth about these fault paths is that the flow will still generate an error email. If you are an admin with tens of these flows active or a consultant with hundreds of them running, you would not want to receive emails. So, going down the fault path is like avoiding an accident but with a scratch. Therefore you should build fault paths but preferably avoid using them.

How can you do that?

The field validation inside your screen element is your first tool to avoid errors. Remember; your screen flow is unaware of the validations you built on the object. This means that you need to create the same validations inside your flow, so that you don’t face any errors when your flow creates or updates an object record.

Your next step is to use decision elements to predict and handle all possible outcomes. Then, connect your outcomes to human-readable error messages on screen elements that allow the user to take the necessary actions.

Let me give you an example: You have a screen flow guiding the user with creating an order. And the user can select how the ordering party will pay. Among the payment choices, there is the credit card option. However, you don’t have the credit card information for some clients entered into the system. In addition, you don’t want the user to collect credit card information due to security concerns.

Following the screen that facilitates the payment method selection (a picklist), you can build a decision that checks whether the credit card information for the account is on file. You can then connect the decision outcome to a screen element that displays this message: “There is no credit card information for the account on file; please pick a different payment method.”

If you have a process that collects the credit card information from the account contact in a secure way, you can ask the user to decide and trigger that process based on the user’s selection.

If you don’t want a standalone error screen, you can mimic the validation error messages using display text components in screen flow.

How do you do that:

  1. Create an ErrorMessageTextVar resource.
  2. Create a decision after the screen subject to the error check and build the error outcome criteria: “Yes Error”
  3. Add an assignment on the “Yes Error” path and assign to the ErrorMessageTextVar an error message like “Please correct the error and resubmit.”
  4. Add a display text component on the screen where the check occurs and add ErrorMessageTextVar. You can change the color of the font to red. Remember; the message will only be displayed if the assignment occurs.
  5. Connect your assignment step to the screen element, creating a loopback for when the error condition holds true.

If you want to avoid your user having to reenter all the information, work with a record variable, assign the values of your screen components to the record variable fields, and set the default values for the screen components to the record variable field values. If done correctly, the screen will prefill the information that the user entered before the error occurred.

You can still use fault paths for the cases you cannot think of and lead them to a catch-all error screen. If you want to make sure all the database commits will be rolled back when you experience an error, use a roll-back element right before this catch-all error screen and wherever needed in your flow. 


P.S. Originally published on 02/21/2022.

Read the previous issue of the newsletter here.

Read the next issue of the newsletter here.

Subscribe to the weekly educational Salesforce Flow Tips newsletter here.