From Narender Singh: Launch a Quick Action at the End of a Flow
Narender’s investigation reveals you can use navigation extension like Navigate Everywhere and OpenURL to get Quick Actions to pop up. You just need to use the correct URL syntax.

Narender’s investigation reveals you can use navigation extension like Navigate Everywhere and OpenURL to get Quick Actions to pop up. You just need to use the correct URL syntax.
Gerald Ehret-Franck is a Salesforce Principle Solution Engineer (previously he came from Rivia) who has crafted a powerful combination of extensions that enable flows to be inserted into chat sessions and used to managed those same chat sessions. The pinnacle of his achievement, though, is this surprisingly easy-to-implement synchronized coworking solution, where agents can see and assist their users in real time.
Why doing so? This will help you create great experience from both the Customer and Agent perspective in order to :
This example describe the configuration used for the demo above
You will need to install the packages from these three extensions:
This platform event will be used to synchronise the customer flow with the agent flow. the platform event has two fields
More information about Platform Event on Salesforce Help.
How does the id get used? Let’s say you’re having two customers (A & B) having a chat session at the same time with two different agents (A & B) and both of them running the “synchronized” flow. When customer A is filling his form you want only the agent A’s running flow to react to the platform event created by customer A. You don’t want the agent B’s running flow to react. That’s exactly what this id is for. Customer A will create a platform event with an id and agent A is reacting to only platform events with that id.
How does Agent A and customer A knows which id to use? In the demo you may have notice that customer A’s flow has been initiated by Agent A. When Agent A initiates a flow on the customer side for customer A, agent A initiates this customer side flow with one parameter : the id customer A must use to create platform events. This id can be auto-generated and unique, it can be the ChatTranscriptId or the CaseId (assuming the same customer is not discussing with two different agents for the same case!).
If you need more data to synchronise between customer and agent, just add more fields to the platform event
You need to create a permission set to allow users to create and read the Platform Event created. A platform event is a Salesforce Object and will appear as any other objects in the “Object Settings” section of your permission set. You should assign the proper permission to both internal and external users.
More information about Permission Set on Salesforce Help.
This flow demonstrates the key elements necessary to create a Synchronized Co-Working chat session.
The first node is a screen that will display the question in the form
The second node is a create record node and will create the platform event
The third node is a screen that will display the results
Refer to following post.
Remember that in the demonstration, the flow was initiated from the Case and not the Live Chat Transcript
The first node is a Get Record node in order to retrieve the LivechatTranscriptId from the Case Id. The Case Id will be passed in a variable named recordId
The second node is a Screen that will:
The third node is a screen that will:
We can then store the value in the Case.
You can drop this extension into a Flow Screen and use it to respond to platform events by carrying out flow navigation.
You can refer to this following post Using Flow to Create a Synchronized ‘Co-Work’ Chat Session to have a example of what you could do with this component!
The Platform Event should have at least the following fields :
You need to create a permission set to allow users to create and read the Platform Event created. A platform event is a Salesforce Object and will appear as any other objects in the “Object Settings” section of your permission set. You should assign the proper permission to both internal and external users.
The component has the following attributes:
1.0 Unmanaged 11-25 https://login.salesforce.com/packaging/installPackage.apexp?p0=04t1v000002GyT7
The code is available in this github repository
It’s easy to inject running Flow screens into Salesforce chat sessions using the new Chat Lightning Web Component Pack. This post covers the basics. You may want to also explore the more advanced Synchronized Chat capabilities you can add in this post.
To create a richer chat experience that includes Flow screens, you can replace the default chat component with the richer Chat Lightning Web Component Pack available on the Appexchange as a Salesforce Labs.
Chat Lightning Web Component Pack is the most complete set of example Lightning Web Components for Chat ever assembled! If you are looking for the fastest way to add rich media to your Salesforce Chat and Einstein Bot experience, look no further! The package includes many more capabilities.
Generating a screen flow is done by ‘sending’ a special chat message in the following format: lwc:flow:{flowURL}:{height}.
This message will not be seen by the customer but instead the component will interpret this message and display a flow instead. Parameters:
let’s have a quick example
The syntax will be : lwc:flow:MyFlowName&ContactId=003000000000000000 with “003000000000000000” being the id of the Contact to pass as input variable.
To generate these special chat codes, you can enable your agents to run a simple Flow.In the above video, you can see the agent running a flow that in turn causes the chat session to launch a flow.
From a flow, you can send a message automatically in the chat as described in this post. The previous article provides a package for installing the Manage Chat/Messaging Session with Flow Extensions. From your flow create a formula variable that will output the appropriate syntax and send it automatically with the Manage Chat/Messaging Session with Flow Extensions.
Install the package you can found here : Chat Lightning Web Component Pack
For more information here is the user guide
Open-source package, so you can modify for your use cases here: https://github.com/Colatabajonies/Chat-Lightning-Web-Component-Pack
These two extensions are designed to enable a service agent to use a flow to manage elements of a chat session which rely on the Conversation Toolkit API .
The supported features include:
The functionality is available as both a screen component and a Flow action.
Just drag and drop the component on a screen and fill the parameter. See example below:
In case your flow is not started from the LiveChatTranscript object or the MessagingSession object, you can also retrieve the LiveChatTranscriptId or the MessagingSessionId using a Get Record node in your flow. The example below retrieves the LiveChatTranscriptId from the CaseId:
Just drag and drop an Action node and fill the parameter. See example below:
In case your flow is not started from the LiveChatTranscript object or the MessagingSession object, you can also retrieve the LiveChatTranscriptId or the MessagingSessionId using a Get Record node in your flow. The example below retrieves the LiveChatTranscriptId from the CaseId:
Install the following package : FlowManageChatSession
The package will add two Lightning Component :
The code is available on github as well
In this scenario we will start a flow from a Case during a Web Chat conversation. The flow initiated by the Agent will send a message to the customer.
You need first to enable and configure Web Chat. If you’re not familiar with Web Chat, you can refer to this great Trailhead module : Web Chat Basics.
Create a flow with an input variable recordId. The id of the Case will be passed in this variable:
Add a Get Record node so you can retrieve the LiveChatTranscriptId from the Case id:
Add a Screen node and drag and drop the FlowManageChatSessionSC component into your screen
Finally your flow should look like this:
Let’s put it all together and see how it look like from an Agent point of view:
Now let say you would like to provide the same end results but this time leveraging the Action component.
Create a flow with an input variable recordId. The id of the Case will be passed in this variable:
Add a Get Record node so you can retrieve the LiveChatTranscriptId from the Case id:
Add a Action node and and fill the parameter
Add a Screen node and drag and drop the FlowManageChatSessionSC component into your screen
Finally your flow should look like this:
Let’s put it all together and see how it look like from an Agent point of view:
Continuing his work in Flow Benchmarking (Salesforce Record Automation Benchmarking by Luke Freeland), Luke has done some more interesting benchmarking with performance data on forcing Flow to store all fields in the new ‘Get All Fields’ feature. Interesting stuff and worth considering when forcing Flow to truly store all of the fields in a record collection.
Check it out: https://metillium.com/2020/11/flow-get-records-benchmarking/
The Barcode Scanner component provides you a way to scan various types of Barcodes using a flow and the Salesforce Mobile App, Mobile Publisher for Salesforce, or Mobile Publisher for Communities in Flow screens. It allows you to take the data stored in that barcode and return the variable to be used later downstream in your flow or instantly show Salesforce Data to users in the app all from scanning a barcode. This component uses the existing BarcodeScanner API.
In my example use case I am using it for contactless check in at a job fair. We have a custom object called Registration where I have a QR Code I generated using an formula field using the open API from goqr.me (ex: IMAGE(“https://api.qrserver.com/v1/create-qr-code/?size=150×150&data=”&Id ,”Scan QR code”) I am using the recordId from my Registration that is passed through into the output value of the component.
Flow Setup is really simple right now there are no inputs the barcode is what provides your data as a string to the flow itself. The output variable of scannedBarcode is a string variable that can be used in your flow.
See the scan in action below.
If you are like me, you break your more extensive flows into multiple (sometimes dozens) of subflows. When building out and debugging these subflows concurrently, it can be a massive pain to navigate between them all as Salesforce gives each tab the generic “Flow Builder” title, leaving you with a mess like the screenshot below.
Tab Modifier is a browser extension created by u/sylouuu that allows you to quickly rename your tabs by simply right clicking anywhere on the page and selecting “Rename Tab”.
Once renamed, the new tab titles are stored in your browser and will permanently override the standard “Flow Builder” title unless modified or deleted in the extension options, making it infinitely easier and less frustrating to work with multiple flows at the same time.
Want to easily paste in imges from the clipboard or upload them from your desktop, and then use them in emails and rich text record fields? You can do that with Input Rich Text. Here’s a new video that focuses on image manipulation:
Install the Rich Text Input extension here.
“InstantNavigation Mode” is a new feature added to the Quick Choice component (now located in the new flowscreencomponentsbasepack) that, when set to true, triggers a navigateNext event when a visual card is selected. This allows for fast navigation through a flow, especially when additional processing is needed based on the selection before further inputs/screens can be rendered to the user.
Below, you can see how useful this can be in a mobile form factor, providing a push-button command console:
Why it was added
Currently, in order to achieve this effect an admin can either:
“InstantNavigation Mode” solves both of these issues by eliminating the extra clicks required when using standard flow navigation buttons and (with a subsequent decision element) ensures that only elements relevant to the user’s selection are executed, improving flow efficiency (a bonus side effect of which is reducing counts towards Salesforce’s governor limits, especially since they reset between each screen).
A new InstantNavigation mode checkbox is now available in the property editor, as shown to the left.
In addition to its use as a quick-picklist, “InstantNavigation Mode” can be used as a nice replacement for the lightning-button component since the number of “buttons” is dynamic and look much cleaner as the size of each is larger and the width is uniform rather than being determined by the length of the label. Another advantage to using Quick Choice navigation is the option to include custom images and descriptions in each menu item to further aid your users in getting where they need to go quickly.
*NOTE – The “Next or Finish” navigation control must be enabled in the screen setup options in order for the navigateNext event to fire when an option is selected. A footer is not required but will not affect the component’s ability to navigate should you wish to include one.