In this video, I went through all the new Winter 23 release features and answered questions. I did not get the time to dive into the testing feature that is going GA. Stay tuned for another video on flow testing.
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:
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.
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.
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.
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?
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.
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.
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?
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.
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.
Email: There are many ways you can send emails from your flow. None of them are great. Can we make this simpler?