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:

Enjoy.

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.

Standard
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.

Standard
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.

Enjoy.

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.

Standard
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.

Enjoy.

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.

Standard
Flow Tips Newsletter

Time and Time Zone Operations in Flow – Salesforce Flow Tips Newsletter

Hello folks,

What makes time and time zone operations very difficult:

  • In the Salesforce cloud, all system time field values are recorded in GMT – Greenwich Mean Time.
  • The organization’s time zone can be set up in the organization settings.
  • The user can have a different time zone than the organization.
  • Salesforce will use these settings to display the time to the user on the screen. Similarly, these rules and logic govern what the user sees when they view the timestamp on the records and the transactions.
  • Installed packages and additional functionality that run in your Salesforce Org can also have time zone settings. Field service lightning – FSL – is a famous example.
  • You may think you had enough. Not so fast. The DST – Daylight Savings Time – makes everything even more complicated.

When you display the time in a screen flow running on an external community page to a guest user, Salesforce does not know the user’s time zone.

Even if Salesforce knew, there is no good way to get the user’s time zone or their current local time within the flow. The behavior can depend on what context – user vs. system – you are running your flow in.

This means you need to do the time zone conversion yourself as the flow builder.

A few months ago, I was on Eric Smith’s blog working on implementing the data-table flow component, and I found an invocable action he wrote that returned the start of the day (midnight) for a particular date. I immediately asked what context the action ran because I built a flow for a Nonprofit before, and I had to jump through hoops to try and calculate the time in the correct time zone to be displayed on the screen.

If this action could give me the correct start of the day in the user time zone, I could calculate a time offset for the system time GMT and convert all system times to the user time zone.

Needless to say, the solution worked, and that is why I am here writing about it. Eric Smith was super kind to post a detailed blog post about this. Please find it here.

Using this method, you can calculate at any point in time what the offset – differential time in hours – is between the user’s time zone and GMT. This means you can use this number to convert all the system times to the user’s time zone before displaying them on the screen.

Enjoy your flow-building journey.

P.S. Originally published on 03/7/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.

Standard
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.

Standard
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. 

Enjoy

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.

Standard
Flow Tips Newsletter

Migrate to Flow (Beta) in Spring 22 – Salesforce Flow Tips Newsletter

Hello folks,

I try out Beta features, but I do not spend much time on them. In the end, beta means: “I can take away this feature if I need to.” Do you remember Salesforce Anywhere? You most probably don’t. I rest my case.

However, Migrate to Flow (Beta) requires extra attention. Although the product is in beta – and you will know that it is in beta once you try it -, Salesforce committed to retiring workflow rules; therefore, Salesforce must roll out this product in the end.

Folks who have been following me will know I have done a few sessions on migrating WFRs and Processes to Flow, one in Florida Dreamin’ in person and a few virtually. You can see a few videos on this topic on my YouTube channel. Please check the resources section below for links.

The tool only works on workflow rules for now. It does not support processes. I assumed it would support most workflow rules, but I was wrong.

I had two workflow rules in my Preview Org that I have built for my sessions before. I tried to migrate these workflow rules using this tool. Unfortunately, one did not convert due to an update on a long text area field. The other one was not supported because it created a task.

This wasn’t very reassuring, to be honest. But I had to test the tool, so I created a simple field update flow to migrate that.

The use case is as follows: When a picklist value is updated with a specific value on the lead record, the workflow rule updates the other picklist value.

The tool worked without a problem for this use case.

And as you would expect, it converted the workflow rule to a before save flow which is faster and more efficient.

Here is the message you see on the screen when the new flow is created:

“Because this workflow rule only updates fields, we converted it to a before-save flow for optimal performance. A before-save flow quickly updates fields on the record that triggers the flow.

This conversion changes the order in which this automation is executed. To have this flow run after other related automation, change it to an after-save flow. For both before-save and after-save flows, we recommend that you perform end-to-end testing for all scenarios in which the automation is triggered.”

Did you notice something here that immediately caught my attention? Salesforce practically wiped out the terms before save and after save from the record-triggered flow configurator screen; they buried the terms into the description fine print. This flow is called a fast field update flow on that screen. And after save is called actions and related records.

However, these terms don’t exist on this screen or the Trigger Explorer screen. And if I am going to be picky before-save is written with a dash here, without a dash on the Trigger Explorer.

It seems like Salesforce needs more clarity around the terms they use.

The release notes are very brief for the Migrate to Flow (Beta) tool. It does list what it supports; however, it does not list what it does not. I would recommend adding that to the release notes.

Related content (all videos):

Enjoy

P.S. Originally published on 02/14/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.

Standard
Flow Tips Newsletter

Flow Orchestrator in Spring 22 – Salesforce Flow Tips Newsletter

Hello folks,

This week I will give you an overview of the Flow Orchestrator. This tool is possibly the most important tool that is going GA (generally available) with the Spring 22 Release.

I watched the Salesforce Spring 22 Release Readiness webcast for Admins on Friday. It was a great webcast.

Flow orchestrator is one of the topics that caught a lot of attention. Rightfully so! According to the Salesforce team, the use cases for the Orchestrator are:

  1. Handoff of tasks between users and teams.
  2. Multiple flows running parallel.

If your use cases don’t require any of these items, flow should be sufficient for you.

This simplified definition of the Flow Orchestrator is missing two important superpowers that we did not have before this release:

  1. Orchestrator supports on-screen user/public-group/queue targeted interactions that are triggered by object create/update.
  2. On-screen interactions can be delayed/scheduled based on triggers.

There are two types of Orchestrations:

  • Autolaunched
  • Record-Triggered

Orchestrations include stages consisting of one or multiple steps, each step pointing to one autolaunched or screen flow. They can also have decisions to determine what needs to be executed depending on various scenarios.

With the introduction of the flow Orchestrator, I can say flow is a skill that can keep you busy full time. I don’t know if this is the case already, but you could freelance just building Salesforce flows.

Getting started on the Orchestrator is quite intimidating.

You may be wondering what you need to do to prepare yourself for them. I will tell you: If you don’t have the fundamental knowledge of process, and have not done any process mapping, get started with that now. This is not for the faint-hearted.

When you click on create Ligtning App or Record-Triggered flow button in Salesforce you are greeted with a configurator.

You get a blank canvas when you choose to create new Orchestration. 

Help menu takes you to the standard flow help pages linked to Orchestrator help pages that offer minimal information.

There are advanced features that come with the Orchestrator. If you want, you can set entry and exit conditions that determine when each step in your flow is considered completed. This allows for enhanced functionality, but increases complexity at the same time.

I will give you more information as I experiment with Flow Orchestrator further.

Enjoy

P.S. Originally published on 02/06/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.

Standard
Flow Tips Newsletter

Collection Filter Element in Spring 22 – Salesforce Flow Tips Newsletter

Hello folks,

Let’s talk about the brand new collection filter element this week.

I wrote a newsletter issue about the get element before. Get elements are essential. They can query the Salesforce database and get multiple records for you. The corresponding functionality in coding is called SOQL. However, SOQL is much more powerful than the get element.

Get element and flow limitations can force the low-coder to build loops inside loops to process related records. When you are forced to build a solution like this, you should seriously consider whether flow is your best option.

When you loop within loops and start getting records, you run up against two limitations of flows:

  • You can only do up to 100 gets or SOQL’s in one synchronous transaction.
  • You can only process up to 2,000 elements in one flow interview.

This is where the new collection filter element comes to the rescue. For example, let’s say you need to get the cases for a specific contact under one account and show the case field values to the user. In the beginning, you can query all cases under the account. Then, you can show the user a few selection screens in your screen flow; finally, show the case field values and have the user edit them. Then, the user can go back to the contact selection screen and do it again for another contact. You can do all that using the new collection filter element without using another get element again after the first get execution.

Remember that your choice elements in your screen flows can accept collections as choices starting with Spring 22, as well.

But something even more impressive is offered with the new collection filter element. You can now use formulas to decide which records you select and add to your filtered collection.

You want to filter Account records with Annual-Revenue/Employee ratio within a specific range. Prior to this release, you had to create a formula field on the Object to show the Annual-Revenue/Employee calculation result. You don’t need to do that anymore. Instead, you can use a formula in your collection filter element to select records that have Annual-Revenue/Employee = $100,000, for example. This is huge.

If you don’t understand some of the concepts and the terms used in this newsletter issue, you may want to read get element issue here.

Recently published content:

My dear friend Daryl Moon and I had a live video chat o Flow Tips today on both LinkedIn and YouTube. Watch the YouTube recording here.

Enjoy

P.S. Originally published on 01/31/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.

Standard