Connect Powerful Einstein Discovery AI To Your Flows

Two recent articles highlight new tools to connect AI predictions to Flow. This one is by Salesforce Director of Product Manager Bobby Brill:

This one by Salesforce engineer Alex Rich focuses on the use of the PREDICT formula function. His example shows PREDICT being used in Validation Rules, but the same use case is pertinent to the use of formulas in Flow:

From Jessie Rymph: How to display or upload a contact photo using Flow

Jessie Rymph over at her blog on Unhandled Sunshine posted a nice tutorial on how you can create a flow that lets users upload a contact photo or display their existing photo in a nice, clean, code free way utilizing Narender Singh’s File Preview component.

Check it out

From Tamar Erlich – Submit an orchestration from a button

Currently there are two ways you can launch a flow orchestration: using a record trigger, or auto launch from Apex, But what if I want to be able to launch an orchestration from a button and mimic the good old “Submit for Approval” button?
I looked at alternative ways to start orchestrations, and this is what I found:
1. Launching an orchestration from a URL button was not user friendly as the user was presented with a blank auto launched flow screen and was not redirected back to the record when finished even if the the return URL was part of the button definition. Overall, while this may work, the user experience was not smooth
2. Trying to include the submit flow as an interactive step assigned to the current user, resulted in a warning when saving the flow and an error during execution saying that no assigned user was found

I ended up with the following solution that worked well and gave a smooth user experience:

1. An action button to launch the submit flow on the record page
2. A submit screen flow that will update a field on the record to indicate the record was submitted and who the approver is
3. An orchestration that will listen to the field updated by the submit flow and will run the approval flow, routing to the approver that was updated on the record by the submit flow
4. The approval flow will update the record again with the final approval status

Here is an illustration of the overall process:

Both the submit and approve flows are very simple and only have one screen followed by an update records step

Submit Flow

Launch the submit flow from an action button added to the page layout

Action Button
Approval Flow

The flow orchestration only has one stage and one step

Orchestration Flow

It starts when the record’s approval status is updated to submitted

And routes the approval to the username that was updated on the record by the submit flow

Here is a short video demonstrating the complete process

Some notes about the flows:

1. The submit flow clears any previous approval status and rejection notes
2. The approval flow only displays rejection notes if the user selects to reject, using a visibility rule
3. In both flows, I’m using a record input variable and this saves having a get records element in the flow as the whole record gets passed in from the button or from the orchestration step

Possible enhancements:

1. The approval request flow can include a message with approval details to the approval request flow by using a display text with merge fields from the record and related records information
2. The submit flow can select the approver automatically by using criteria from the record or an approval matrix stored in custom metadata
3. The submit flow can also be used to recall or not allow to submit an approval by displaying another screen based on the approval status

Launching an orchestration from a button opens up a lot of possibilities, please share if you come up with other use cases.

From Ryan Mercer: Yet More File Upload Improvements

From Ryan Mercer: “I’m excited to release my next sprint of File Upload Improved. Thank you to everyone for your feature suggestions, I really enjoy working through your great ideas! Please continue to keep them coming.”

This release’s features include…

Show files below the component

By default, the files will show above the File Upload Component. If you’d prefer they be shown below the component, set this to TRUE.

Restrict users from uploading multiple files

Allow the user to upload multiple files. If this is not TRUE, then once the user uploads one file, the file upload component will not allow any additional files to be uploaded.

Control whether uploaded files are visible to all users

By default, when an internal user uploads a file, the file is only visible to other internal users (meaning community users can’t see it). If you’d like to make the uploaded file visible to all users, set this to TRUE. When a community user uploads a file, the file is already visible to all users.

From a technical perspective, this sets ContentDocumentLink.Visibilty = AllUsers.

Modify or Enhance The Names of Uploaded Files

The file name of the uploaded files defaults to the actual name of the file. If you’d prefer to override the default file name, you can specify the new file name here.

You can do funky things here like using a Text Template (remember to View as Plain Text) or even using a Flow Formula

Show Existing Files Related to Record Id

If you’d like to show the existing files associated with the Related Record Id (in addition to the ones that the user may upload), set this to TRUE. Be aware that sharing rules are NOT enforced, so the user could see files that they wouldn’t normally have access to.

Plus other general performance and architectural improvements

Install here.

From Tom Hoffman and Automation Hour: Manage Enterprise Territory Management with Salesforce Flow

It’s always great to see someone like Tom go deep on the use of Flow for a particular corner of Salesforce. Enterprise Territory Management is a core element of Sales Cloud, and this Automation Hour shows how to automate easily.

Check it out!

Recent Changes to Help Text in Screen Components

This is a memo from the Flow product team.

Some customers have noted that, for some screen components, the behavior of the help text button recently changed from “hover to see help” to “click to see help”. Here’s some background behind that change.

Originally, all Flow screen components supported formatting, embedded images, and embedded links in their helptext. They were written in Salesforce’s older Aura framework. They always required a click to open. Here’s the familiar UI that allows customers to create elaborate help content for each screen component:

Over the last 2 years, we have been converting the Aura components to use Salesforce newer and recommended Lightning Web Component framework. There are a lot of reasons to embrace the latest core Lightning technology like this, but sometimes there are side effects if the behavior of the new ‘base’ components provided by the framework doesn’t match the older behavior, and this is what happened with Help behavior. In LWC, the base help system uses tooltip semantics, causing the invocation to be on a hover but lacking support for rich text, embedded images, or embedded links. So for the last year or two, some screen components have had help bubbles that activated on hover.

After a few of the screen components were converted, some customers reported in that their investments in rich help were getting lost because the new hover text couldn’t show anything beyond plain text. Part of that is a mechanical limitation: with hovering behavior, if the hover text bubble has a link in it, you can’t click on that link because as soon as your cursor moves off of the triggering icon, the hover text goes away.

As a result, the Flow team has changed the behavior of its LWC screen components to use a popover. As part of this design, the popover is implemented with a click. While it’s possible to enable the popover to be implemented with a hover, we’d have to put a button next to the help icon that would enable users using screen readers and/or keyboards to have something to focus on, and so having to have two different visual elements side by side seemed unnecessary.

However, if there are users out there who really prefer the hover behavior, we’d like to hear more about that.

Give 5 Minutes – Take the Screen Flow Survey!

The Salesforce Flow team recently opened up an informal survey to get the community’s thoughts and feedback to help drive the future of Screen Flows. They would greatly appreciate 5-10 minutes of your time!


Check it out

[From Tigerface Systems] Enhanced Datatable with Full Mobile Support

Editor’s Note: UnofficialSF is pleased to enable commercial creators of Flow extensions like Tigerface Systems to introduce their products and demonstrate useful use cases. One of our goals is to see a rich tier of commercial solutions in addition to the many free extensions that will continue to be available.

The Tigerface Systems Flow Data Table is a commercial grade production ready product available on the AppExchange.  This product allows Salesforce users to view and interact with lists of records on a Flow Builder screen.  Below are some of the many features offered:

  • Supports desktop, tablet, and mobile form factors.
  • Object, field, and record level security is enforced.
  • Sort and Select from a list of records.  
  • In Memory Editing – allows user to edit records without saving to the database.
  • Database Editing – writes to the database and enforces validation rules.

The data table is offered via two AppExchange listings:

  • Free Edition.  This provides read only capability with site-wide unlimited users at no cost.
  • Ultimate Edition – This is a paid product that provides sort and select along with the record editing features.

Data Table Configuration

Configuring the data table Is quick and easy.  The following diagram depicts the configuration of the data table:

  • Configure Get Records – A Salesforce administrator will configure a Get Records step within Flow Builder.  The Get Records step will read a set of records from the Salesforce database when the flow is run.  The Get Records step will store the records in a record list variable, which is passed to the flow data table at run time.  
  • Add Data Table to Screen – The administrator will drag the Flow Data Table lightning component from the toolbox onto the Flow Screen.  The data table’s properties, such as the record list and fields to display, will be configured.   

Sort and Select

This feature allows the user to sort by table columns and select one or more records in the list.  The following diagram depicts this architecture: 

The following processing steps will occur when the flow is run: 

  1. The Get Records step will retrieve record data from the Salesforce database.  The record data will be stored into a record list variable and passed to the data table.   
  2. (Optional) Records can be read and stored into a second record list variable in order to cause one or more records to be pre-selected. 
  3. The data table receives the record list, retrieves the field definitions and user permissions from the Salesforce database, and displays the fields for each record.   
  4. The user can sort the records by column and select one or more records.  
  5. The selected records are available in a record list variable for subsequent flow processing. 
  6. The number of selected records is available in a variable for subsequent processing.
  7. If the user selected one record it will be available in an object variable for subsequent processing.  This variable will be empty otherwise.

In Memory Editing

This feature provides the capability for the user to edit the records that are presented in the data table.  In this mode, the data table does not write the records to the Salesforce database.  The following diagram depicts this architecture:  

The following processing steps will occur when the flow is run: 

  1. The Get Records step will retrieve record data from the Salesforce database.  The record data will be stored into a record list variable and passed to the data table.   
  2. The data table receives the record list, retrieves the field definitions and user permissions from the Salesforce database, and displays the fields for each record.   
  3. The user can edit the records in the data table.  When the user clicks the Save button after editing, the changes will be written to the Record List Out variable.  The records are not written to the Salesforce database when the data table operates in this mode. Note that the data table will only enable the edit feature if the user has edit privileges for the object.  Field Level Security is also enforced by the data table. 
  4. The edited records are available in Record List Out for subsequent flow processing. 

Database Editing

This feature provides the capability for the user to edit the records and store those changes to the Salesforce database real time.  The following diagram depicts this architecture: 

The following processing steps will occur when the flow is run: 

  1. The Get Records step will retrieve record data from the Salesforce database.  The record data will be stored into a record list variable and passed to the data table.   
  2. The data table receives the record list, retrieves the field definitions and user permissions from the Salesforce database, and displays the fields for each record.   
  3. The user can edit the records in the data table.  When the user clicks the Save button, the edited records are sent to the Salesforce database.  Records without validation errors will be written to the database.  Records with errors will be rejected, and error messages will be displayed to the user.  

Note that the data table will only enable the edit feature if the user has edit privileges for the object.   Field and Record Level Security is also enforced by the data table.

  1. The edited records are available in Record List Out for subsequent flow processing. 

Additional Resources

Tigerface Systems Web Site

Flow Data Table Ultimate Edition

Flow Data Table Free Edition

About Tigerface Systems, LLC  

Tigerface Systems is a custom software development company based in the suburbs of Maryland, USA. We specialize in custom Salesforce solutions that are marketed and sold on the Salesforce AppExchange. We are a private, family-owned and operated company. We do all work in-house to ensure the utmost highest quality is engineered from the beginning and maintained throughout our product’s lifecycle. 

New ‘Eigensonne’ Orchestrator Demo from the Orchestrator Team

This video shows an actual orchestration created by Orchestrator product manager Abhishek Sharma in collaboration with pilot Orchestrator customer Eigensonne:

In this demo, you can see Orchestrator’s new beta features, including autolaunched flow support and go-to connectors for routing to a previous stage.

Learn more about Orchestrator.

DataPoller and Reactive Screens for Flow

Salesforce is currently piloting a feature called Reactive Screens that allows builders to pipe the output from one screen component to the input of another screen component on the same screen. Each time the source component changes its output, the target component dynamically updates and refreshes. To explore the possibilities of this, we created a simple Flow screen component called DataPoller that makes a SOQL query every X seconds and provides the results as an output. Then we enhanced the Datatable component so it will update every time it gets a new input.

The result is a highly reactive Datatable that responds instantly to any and all record changes:

Join the Reactive Screens Pilot

If you’re interested in checking out the Reactive Screens capabilities, check out the following:

DataPoller

DataPoller is a very simple little screen component that takes a SOQL query and a polling frequency. Even if your org isn’t enabled for the Reactive Screens pilot, you may still find DataPoller useful.

Attributes:

pollingFrequencynumber. Seconds between queries. Default is 3
queryStringa conventional SOQL string, such as ‘SELECT Id, FirstName, LastName, CreatedDate, LastModifiedDate,Status FROM Lead’ Make sure that the object you’re querying here matches the object you select when first configuring the property editor.

This returns a retrievedRecords collection and an error string (which will be displayed on screen).

Install

Version 1.0 10/18/31

Source

source