Salesforce released its latest features this summer of 2018. I’ve gone through the 521 Pages release notes and providing you the summary of the features. Heavily focused on Lightning, as usual, the norm in Salesforce releases now, I have split the highlights into 4 different posts: Lightning Experience Highlights, Development Highlights, Lightning App Builder Highlights, Lightning Flow Highlights.
This post is about Lightning Flow Highlights.
Flows in Essentials and Professional Editions
Everything you love about flows is now available in Essentials and Professional editions. With these editions, you can have up to five active flows.
Capture Date/Time Values in Flow Screens
Use the new Date/Time screen field type in the Cloud Flow Designer to capture times in the flows, such as when scheduling events or appointments. No Lightning components or other code required.
Use Lightning Components as Flow Actions (GA)
Pull data from an on-premises or private cloud database directly into your flow without going through the Salesforce server. Or do things directly in the browser, such as open a particular URL or confirm that a record was created with a toast message. Local Action elements call the client-side controller of a Lightning component, which means you can integrate directly with the browser.
Example: Let’s say you have a flow that creates a case. At the end of the flow, you want the user to be redirected to the detail page of the created case. To do so, you create a Lightning component that uses the force:navigateToSObject event and use a Local Action element to add it to your flow.
When you create a Lightning component that implements the lightning:availableForFlowActions interface, the component appears in the Cloud Flow Designer’s palette under the Local Actions section.
Track Progress Through a Flow with Stages
Indicate a user’s point in the flow using the new stage resource and two new system variables: $Flow.ActiveStages and $Flow.CurrentStage
For example, the Online Purchase flow includes stages for users to review their cart, enter shipping details, enter payment details, and confirm the order. The stages display at runtime using a custom Lightning component.
At this point, $Flow.ActiveStages contains the Review Cart, Shipping Details, Payment Details, and Order Confirmation stages, and $Flow.CurrentStage is set to Review Cart.
Update Active Stages and Collections with New Assignment Operators
Now you can easily remove specified items and truncate collections and active stages. You can count the number of collection items or active stages and store that number in a variable. You can add items to the beginning instead of only the end.
For example, to clear all active stages with an Assignment element, select the remove all operator, and enter the$Flow.ActiveStages system variable in both Variable and Value columns.
Take a look at all the assignment operators here
Launch Flows as Subtabs in Lightning Console Apps (GA)
Guide your users through multi-step processes with Lightning Guided Engagement and the Guided Action List component. Associate records to flows using Salesforce automation tools. When a record that has an associated flow is opened in a console app, the flow is launched as a subtab.
Debug Your Flows in Cloud Flow Designer
Cloud Flow Designer now offers a debug option to help you test and troubleshoot your flows. Easily set input variables, quickly restart flows, and view all the gory details of what’s happening in real time as your flow executes.
Note that debugging a flow runs the flow and performs its actions, including DML operations and Apex code execution. As is always the case when running flows, if you close or restart a flow mid-run, previously executed actions, database changes, and callouts aren’t rolled back.
If you opt to show details, they appear in a panel on the right.
Control Who Receives Flow and Process Error Emails
When a process or flow interview fails, Salesforce sends a detailed flow error email to the admin who last modified the process or a flow. To change where flow error emails are sent, go to the Process Automation Settings page in Setup. Then update the Send Process or a Flow Error Email To field.
To specify users and email addresses as Apex exception email recipients, go to the Apex Exception Email page in Setup.
We added the org name and ID in the error email so that you know which org to troubleshoot if you are managing multiple orgs.
Monitor Process and Flow Usage Against Per-Transaction Governor Limits
Processes and flows can do powerful things, and those things often count toward your per-transaction limits. Now you can use debug logs to identify which actions contribute the most against those limits.
Access debug logs from the Logs tab in the Developer Console. Or from Setup, enter Debug Logs in the Quick Find box. In the debug level, set Workflow to Finer
... |FLOW_START_INTERVIEW_LIMIT_USAGE|SOQL queries: 1 out of 100 ... |FLOW_START_INTERVIEW_LIMIT_USAGE|SOQL query rows: 100 out of 50000 ... |FLOW_START_INTERVIEW_LIMIT_USAGE|SOSL queries: 0 out of 20 ... |FLOW_START_INTERVIEW_LIMIT_USAGE|DML statements: 1 out of 150
Demystified Process Errors for Your Users
The error messages are now friendlier and include the process name and error ID. If the error occurs when creating or updating a record, the message also includes technical details for the user to give you to help with troubleshooting.
Flow Interviews End When User Sessions End
To be consistent with Classic runtime, a flow interview in Lightning runtime ends when a user is logged out. When a user session expires while a flow interview is in progress, some actions during the interview could be lost. Interviews don’t perform actions, such as sending emails or creating, editing, or deleting records, until the associated transaction completes. Transactions complete either when the interview finishes, executes a Screen element or executes a Wait element.
Granular Batching for Scheduled Actions and Flow Interviews
|Use Case||Spring ’18 and Earlier||Summer ’18 and Later|
|A process has a scheduled action that executes 50 SOQL queries. Three sets of the scheduled action have the same execution time, but they were triggered by three different users.||The scheduled actions for all three users are batched together and executed in the same transaction. The process fails because the transaction exceeds the Apex governor limit of 100 SOQL queries per hour.||The scheduled actions are batched together per user, so they’re executed in three separate transactions. Each transaction stays below the Apex governor limit of 100 SOQL queries per hour.|
|The following scheduled actions have the same execution time.
||Both scheduled actions are batched together in the same transaction. The batch fails because a single transaction can’t execute DML operations on both standard and Setup objects.||The scheduled actions are batched together per process and executed in two transactions. The two batches succeed because the DML operations for standard objects are executed separately from the DML operations for Setup objects.|
Enable Partial Save for Create and Update Operations in Processes
This update prevents a failed process from causing all running processes in the transaction to fail. Instead, Salesforce rolls back only the records that fail to save. Previously, if a failed process blocks one record in a batch from being saved, all records in the batch aren’t saved. Check critical updates to activate this feature.