This series will help you understand Salesforce Flow (Lightning Flow or Visual Workflow) aka Flow concepts in depth. Salesforce Flow allows you to automate business processes by building applications, known as Flows, that collect, update, edit, and create Salesforce information, and then make those flows available to the right users or systems. Flows can execute logic, interact with the Salesforce database, call Apex classes, and guide users through screens for collecting and updating data. When you use Salesforce Flow, the apps you build can guide users through complex processes and recommend the next steps. Salesforce Flow lets users cut through the data and get the results and answers they need. Companies that are using Salesforce Flow report seeing dramatic improvements in user adoption, collaboration, and productivity!
Have questions? Join office hours
Join Automation Champion on Slack!
Screen Flow
1) Want to be an Early Adopter of the New Flow Builder? Welcome Aboard!
2) Getting Started with Salesforce Flow – Part 1 (Understand, Create & Use Variables in Flow!)
4) Getting Started with Salesforce Flow – Part 4 (Need to Redirect a User to a New Record?)
5) Getting Started with Salesforce Flow – Part 5 (Dynamic Flow Screen – What is Not to Love?)
6) Getting Started with Salesforce Flow – Part 7 (Launch a Flow using Lightning App)
7) Getting Started with Salesforce Flow – Part 8 (Send an HTML email from Flow)
8) Getting Started with Salesforce Flow – Part 9 (Use an Inline Visualforce Page to auto-launch a Flow)
9) Getting Started with Salesforce Flow – Part 10 (Launch a Flow from an Object-Specific Action)
12) Getting Started with Salesforce Flow – Part 13 (Hide Date Picker and apply Font-family)
15) Getting Started with Salesforce Flow – Part 16 (Take Flow to the Next Level with Stages!)
18) Getting Started with Salesforce Flow – Part 41 (Create a Survey Using Flow? Why Not?!)
19) Getting Started with Salesforce Flow – Part 42 (Running a Flow in System Mode)
21) Getting Started with Salesforce Flow – Part 47 (Mass Transfer Chatter Files)
22) Getting Started with Salesforce Flow – Part 48 (Add a Topic to Multiple Records) Flow Bulkification
23) Getting Started with Salesforce Flow – Part 51 (Add a Flow to a Lightning Page)
27) Getting Started with Salesforce Flow – Part 57 (Adding Validation to Flow Screen Components)
29) Getting Started with Salesforce Flow – Part 59 (Clone a Chatter Group with Members)
31) Getting Started with Salesforce Flow – Part 61 (Clone a Public Group or Queue with Members)
32) Getting Started with Salesforce Flow – Part 63 (Allow Users to Mass Transfer Records They Own)
34) Getting Started with Salesforce Flow – Part 68 (Configure a Record Link Dynamically in Flow)
36) Getting Started with Salesforce Flow – Part 139 (Collapsible Sections in Screen Flow)
37) Getting Started with Salesforce Flow – Part 140 (How to Get Salesforce Org Base URL in Flow)
38) Getting Started with Salesforce Flow – Part 162 (Display Records Data in a Table Using DataTable)
39) Getting Started with Salesforce Flow – Part 167 (Select Multiple Records in the Lookup Component)
40) Getting Started with Salesforce Flow – Part 168 (Create Filtered Lookup with Choice Lookup)
41) Getting Started with Salesforce Flow – Part 169 (Create Lookup with Dynamic Forms for Flow)
Send Email
2) Getting Started with Salesforce Flow – Part 82 (Send a Welcome Email with Attachments to New Users)
3) Getting Started with Salesforce Flow – Part 101 (Custom Email Notification for Completed Tasks)
4) Getting Started with Salesforce Flow – Part 117 (Email Notification on Topic Assignment)
5) Getting Started with Salesforce Flow – Part 118 (Email Notification for Draft Emails in Case Feed)
Salesforce Survey
1) Getting Started with Salesforce Flow – Part 124 (Send Salesforce Survey Without Code)
Post to Chatter
Login Flow
1) Getting Started with Salesforce Flow – Part 3 (Restricting Login Flows to Execute Only Once!)
Before vs After Save Flow Decision Guide
Record-Triggered Flow (Before-Save)
1) Getting Started with Salesforce Flow – Part 21 (Validation Rule using a before-save Flow? Yes!)
4) Getting Started with Salesforce Flow – Part 43 (Dynamic Approval Routing in Salesforce)
5) Getting Started with Salesforce Flow – Part 80 (Auto-update Chatter Email Settings)
8) Getting Started with Salesforce Flow – Part 123 (Flow Formula to Standardize Opportunity Name)
10) Getting Started with Salesforce Flow – Part 163 (Recipes for Automating Chatter Group Management)
Record-Triggered Flow (After-Save)
1) Getting Started with Salesforce Flow – Part 44 (Auto Convert Marketing Qualified Leads)
2) Getting Started with Salesforce Flow – Part 22 (Auto Sync Accepted Quote with Opportunity)
3) Getting Started with Salesforce Flow – Part 24 (Automatically Assign Permission Sets to New User)
4) Getting Started with Salesforce Flow – Part 26 (Automatically Add a Record to Chatter Group)
5) Getting Started with Salesforce Flow – Part 34 (Post Opportunity Details to a Chatter Group)
6) Getting Started with Salesforce Flow – Part 37 (Auto Remove Followers From Closed Opportunity)
7) Getting Started with Salesforce Flow – Part 39 (Out of Office Notification For Chatter Post)
9) Getting Started with Salesforce Flow – Part 54 (Auto-follow a Chatter Question After Reply)
11) Getting Started with Salesforce Flow – Part 65 (Auto Follow Record Based on Criteria)
12) Getting Started with Salesforce Flow – Part 66 (Auto Unfollow Record Based on Criteria)
13) Getting Started with Salesforce Flow – Part 70 (Creating Custom Record Sharing Logic)
14) Getting Started with Salesforce Flow – Part 71 (Now, Generating a Quote PDF is a breeze! Learn how!)
15) Getting Started with Salesforce Flow – Part 78 (Auto Forward Records to a Connection)
16) Getting Started with Salesforce Flow – Part 84 (Auto-generate Renewal Opportunity With Line Items)
17) Getting Started with Salesforce Flow – Part 88 (Auto Revenue Splitting in Opportunities)
18) Getting Started with Salesforce Flow – Part 89 (Auto Create and Activate a Contract)
20) Getting Started with Salesforce Flow – Part 100 (Auto Invite Customers to a Chatter Group)
21) Getting Started with Salesforce Flow – Part 102 (Automatically Add Partner User to Public Group)
22) Getting Started with Salesforce Flow – Part 103 (Auto Assign Package License to New Users)
25) Getting Started with Salesforce Flow – Part 106 (Automatically Add Products to New Opportunity)
28) Getting Started with Salesforce Flow – Part 110 (Define Additional Conditions When Updating Records)
31) Getting Started with Salesforce Flow – Part 121 (Auto Assign a Topic to a Record)
32) Getting Started with Salesforce Flow – Part 127 (Automatically Create a Record from a Flow)
35) Getting Started with Salesforce Flow – Part 130 (Auto Share Events from a Shared Calendar)
36) Getting Started with Salesforce Flow – Part 131 (Automatically Add an Invitee to an Event)
37) Getting Started with Salesforce Flow – Part 138 (Remove Rich Text Formatting Using Flow)
38) Getting Started with Salesforce Flow – Part 142 (Auto Create a Public Group For New Account)
39) Getting Started with Salesforce Flow – Part 143 (Query Records by List of Ids in Flow)
40) Getting Started with Salesforce Flow – Part 144 (Auto Remove a Record From Chatter Groups)
41) Getting Started with Salesforce Flow – Part 145 (Auto Add Account Team Members to Case Team)
42) Getting Started with Salesforce Flow – Part 146 (Auto Add Members to Account Team)
44) Getting Started with Salesforce Flow – Part 150(Auto Add Member to New User’s Default Account Team)
46) Getting Started with Salesforce Flow – Part 156 (Delete Chatter Messages Using Salesforce Flow)
49) Getting Started with Salesforce Flow – Part 165 (Implement Gamification to Your Salesforce)
50) Getting Started with Salesforce Flow – Part 170 (Add Chatter Followers to Record)
Record-Triggered Flow – Prior Value
1) Getting Started with Salesforce Flow – Part 33 (Prior Value of a Record in Record-Triggered Flows)
Record-Triggered Flow – Scheduled Paths
1) Getting Started with Salesforce Flow – Part 32 (Preschedule Chatter Posts)
2) Getting Started with Salesforce Flow – Part 36 (Automatically Add New Users to a Chatter Group)
3) Getting Started with Salesforce Flow – Part 40 (Email-to-Lead with the Help of Salesforce Flow)
5) Getting Started with Salesforce Flow – Part 77 (Running Lead Assignment Rules From Salesforce Flow)
6) Getting Started with Salesforce Flow – Part 98 (Auto Delete System Generated Chatter Posts)
8) Getting Started with Salesforce Flow – Part 132 (Auto Add Chatter Group Members to Public Group!)
9) Getting Started with Salesforce Flow – Part 171 (Multiple Scheduled Actions Within a Single Flow!)
Schedule-Triggered Flow
1) Getting Started with Salesforce Flow – Part 6 (A Christmas Present – Schedule an Autolaunch Flow!)
2) Getting Started with Salesforce Flow – Part 25 (Email Notification on Password Expiration)
3) Getting Started with Salesforce Flow – Part 30 (Reminder Email to Upload Chatter Profile Photo)
5) Getting Started with Salesforce Flow – Part 45 (Click and Join a Chatter Group)
8) Getting Started with Salesforce Flow – Part 92 (Auto Freeze Users Account)
9) Getting Started with Salesforce Flow – Part 93 (Skip Scheduled Flow on Weekends and Holidays)
10) Getting Started with Salesforce Flow – Part 122 (Auto Generate Tasks on Renewal Contracts)
Quick Action
1) Getting Started with Salesforce Flow – Part 99 (Auto Creates a Private Chatter Group)
Subflow
Slack and Salesforce
1) Getting Started with Salesforce Flow – Part 147 (Post a Message to a Slack Channel using Flow)
2) Getting Started with Salesforce Flow – Part 148 (Send A Direct Slack Message Using Flow)
3) Getting Started with Salesforce Flow – Part 149 (Create A Slack Channel Using Flow)
4) Getting Started with Salesforce Flow – Part 166 (Archive A Slack Channel Using Flow)
Architect Topics
1) Getting Started with Salesforce Flow – Part 35 (When to Use Before-Save vs After-Save Record-Triggered Flows) Decision Guide
3) Getting Started with Salesforce Flow – Part 79 (Salesforce Flow Naming Conventions)
6) Getting Started with Salesforce Flow – Part 87 (Mass Delete Paused and Failed Flow Interviews)
7) Getting Started with Salesforce Flow – Part 91 (Verify who Created or Last Modified a Flow)
8) Getting Started with Salesforce Flow – Part 95 (How to Debug a Salesforce Flow as Another User)
10) Getting Started with Salesforce Flow – Part 141 (Find All Record-Triggered Flows for an Object)
13) Getting Started with Salesforce Flow – Part 155 (Rich Text Area Component for Screen Flow)
14) Getting Started with Salesforce Flow – Part 161 (Work With Aggregate Functions in Salesforce Flow)
15) Getting Started with Salesforce Flow – Part 164 (Just Say NO to Hard-Coded ID)
Error Handling
1) Getting Started with Salesforce Flow – Part 133 (How to Fix MIXED DML Operation Error)
2) Getting Started with Salesforce Flow – Part 134 (How to Fix FIELD_CUSTOM_VALIDATION_EXCEPTION Error)
3) Getting Started with Salesforce Flow – Part 135 (How to Fix FIELD_INTEGRITY_EXCEPTION Error)
4) Getting Started with Salesforce Flow – Part 136 (How to Fix MALFORMED_ID Error)
Custom Permissions and Custom Metadata Types
3) Getting Started with Salesforce Flow – Part 151 (Auto Create a Case From Keyword Used in Chatter)
Submit For Approval
1) Getting Started with Salesforce Flow – Part 31 (Auto Submit Record into Approval Process with Flow)
Deployment
1) Getting Started with Salesforce Flow – Part 72 (Deploy Flow(s) or Process(es) Using Change Sets)
2) Getting Started with Salesforce Flow – Part 73 (Distribute Flow(s) or Process(es) Using Packages)
4) Getting Started with Salesforce Flow – Part 75 (Deploy Flow(s) or Process(es) Using Workbench)
Quip
Send Custom Notification / Send Push Notification
Advanced Flows (Old Visual Workflow)
- Add Record to Multiple Chatter Groups – Parsing Multi-Select Picklist fields (Flow)
- Parsing Dynamic choice Multi-Select Picklist fields (Flow) – Reusable component
This is a great post. But why do people use the Text field for names and not the Name field. I used the Name field in lieu of Text and it worked perfectly.
Hi,
I have to create wizard using multiple lightning components and used LC inside visual flow, so we will maintain the data across multiple LC via flow.
Hi Rakesh,
Sharing accounts with community users is not easy when it comes to parent/child relationships. We tie the contact to the correct parent accounts they should have access to however this does not open up access to children accounts automatically. One solution is to add the relationship to every account however when there are thousands that becomes a very manual process.
Would it be possible via a flow that when a relationship with an account is added to a contact on the accountcontactrelation object the same relationship is also created on all children accounts as well so it is automatic vs. manual?
Thanks!
How do I submit multiple records to a flow from a List View (only the ones I have selected) without using VF or Apex?
You mean using drop-down(Picklist or Multi-select picklist) in the Flow?
Hi Rakesh,
Do you ever take scenarios from users to show how it can be solved via flow?
Fantastic site! I’m looking for the most efficient way for a user to take or change ownership of a record. We have criteria that must be met before a sales rep can take over a house account. Currently this is done manually but since the criteria lives in Salesforce it should be doable but I’m having trouble getting the process straight in my head. Any suggestions?
Yes, it is possible to automate this process. Can you shed some light on how you want to handle it?
i am trying to create a Product request through when the quantity on hand goes less than 0, can you please help to get this through flow
thank you… get us more
Hello,
working on a screen flow, where i want to create a time entry record via a quick action from the work order line item. When the time entry record is created, it should automatically include the related work order line item and work order which are both parent to the the time entry record in look up relation ship.
My current solution automatically creates a time sheet entry related to the the correct time sheet but that is not enough…
Help would be much appreciated!! Thanks!
send me an email with screenshots – infoatautomationcahmpiondotcom
I am having the same need for my company, can you share if you successfully created this flow?
Hi All,
We have custom object called Activity ….Standard Event object only support Mutli select lookup fields for Invitees (Contacts)….Basically whenever Standard Event creates with A1, A2 and A3 as Invitees, we should create 4 records as shown below under the Custom object Activity as well as updation of standard events and these invitees are the Internal Contact users associate to one Account and we have user lookup field on contact to populate the Internal user on their Internal contact information
1st record – User who creates the Event should be assigned to and Related to
2nd record – A1 is in Assigned to and on the Invitee
3rd record – A2 is in Assigned to and on the Invitee
4th record – A3 is in Assigned to and on the Invitee
Requirement is to show the Meeting Invitation on the Salesforce calendar for the Internal contacts also in addition to the Meeting creator under the custom object Activity in Salesforce Calendar…..Any help would be appreciated
Thanks,
Vinoth
Hi all,
Does anyone have any working experience of automatically assigning a user to a Territory, Public Group and Queue upon creation of the user.
Best
Jake
Please check out this article Getting Started with Process Builder – Part 19 (Automatically Add New User to Public Group or Queue)
is there anything you dont know about Visual Flow????
Hi Tom,
Yes.
I have not worked on flow before. So don’t know how to map this in flow.
Yes mate, I am still learning from Brian Kwong, Mark Ross, Darrell DeVeaux and others.
Hi Rakesh,
My requirement is now simplified.
Now whenever case is opened for account for particular region ( say WEST-WE), only inside rep ( it’s a rep) should get email alert for the concerned case of his account (not for the account for which he is not rep.)
How to map it in flow?
Hi Rakesh,
Excellent posts on Visual workflow.
I have one requirement where I have to send email notification to account territory team of specific region (example West-WE) whenever case is opened for particular account of that region. Here only related users of the territory team of the account should get the email.
Can it be done through Visual workflow? If yes, how the design will be?
Please let me know.
Thanks for the kind feedback, Dilip! 🙂
to implement the logic, you have to use Flow.
–> First of all, through process pass the CaseID and AccountID to Flow
–> Use Record Lookup element to get the Territory
–> The use Fast Lookup element to get the members of that Territory
–> The Use Loop and Record Lookup to find out email address of Territory members
–> Then use Static action ‘Email Alert.’ to send out email notification
Hi Rakesh,
Thanks for the kind reply.
I am bit confused, while implementing the flow as given by you.
Appreciate if you Could please elaborate it with the help of screenshots.
Alternately, can it be done through process builder?
No, it is not possible to achieve it through Process Builder.
First, i will suggest you understand schema or object relationships between these objects.
Hey Rakesh..,
Brilliant posts/blog and explanation about VFlows…Thanks.
I have a use case where we need to:
1. Verify if the opportunity has associated opptycontact role while it is getting closed won.
2. If there are zero contacts associated then we need to bring up a screen for the rep to input or look up the contacts?
Is this possible using VFlow ?
I know that we cannot invoke screen from auto launched flow.
Let me know.
Thanks in advance.
Cheers
Thank Ajay for your kind words!
Yes, it is possible to achieve with help of VF page, Visual Workflow and bit of JavaScript.
Thanks Rakesh for the reply.
I have managed to get the Vflow called via the button (thru a VF page), but wondering how can it make is possible on a record values ? like calling this page just before the opportunity is marked closed?
Looking for some insight…
Use on of the following methods
Hi Rakesh – thank you for the detailed information on PB and Flows – I reference your site often!
Question around Flow capabilities. I’m wanting to limit the values I find and assign to be unique.
So if I use fast lookup to find owner IDs of records, and the same user is the owner of multiple records, when I go to assign these values and update a text field, how can I “de-dupe” my result set so that JohnDoeUserName is only listed once?
You can make Text filed Unique. I would love to hear more about your use case, can you please email me at info@automationchampion.com
Hi, I’m hoping you can help me with a flow i’m trying to setup to count sold products. For each product we sell, we have a set inventory. The inventory is stored in the Product object. What I am trying to get my flow to do is whenever an opportunity is marked as Closed Won, to go through each line item on the opportunity and update the Sold_c value on the Product object for the corresponding product by taking the current value plus 1.
Using PB i’m able to count how many times a product is added, but since an opportunity stage update doesn’t trigger a change to the line item, i can’t get PB to count booked products. I’m at a loss at this point.
Thanks in advance!
Please let me know if you are still looking for help.
Hi,
I was wondering if this was possible in a visualflow.
Object A has multiple checkboxes that may or may not be checked
Object B has a lookup to Object A
Create a specific number of tasks on Object B depending on how many checked boxes were on Object A.
I tried doing this with a loop and collection, but it only creates one task.
Any help is greatly appreciated
Yes it’s possible with flow.
Can you please email or post the complete screenshot of your Flow.
Hi,
I did not see a way to paste a screenshot.
Thank you.
Email me at info@automationchampion.com
Is it possible to implement this with a visualflow?
Object A has multiple checkboxes that may or may not be checked
Object B has a lookup to Object A
Create a specific number of tasks on Object B depending on how many checked boxes were on Object A.
I tried doing this with a loop and collection, but it only creates one task.
Any help is greatly appreciated
Is it possible to create a Automated dispatcher application based of Skills ? if so, would request you to create a tutorial for the same ?
Could you explain this a bit more?
Sure, so my use case i need to auto assign tickets to Support Engineers basis overlapping skill sets. So far i have:
Created a custom object: Dispatcher
Have following fields:
a. Skills (Multipicklist)
b. Assigned Tickets (to auto increment when a ticket is assigned to a Engineer).
c. Max Tickets (Maximum tickets that can be allocated to a Engineer).
d. Load % (Assigned Tickets / Max Tickets).
e. Active (Checkbox). This will auto enable till the time Max Tickets limit is not reached,
The routing (ticket assignment) would be based on Work Load %.
Thanks,
Gunwinder
Hi Rakesh – Can we use these flow in Lightning console on case object? Please let me know.
AFAIK you can after embedding your Flow in a Visualforce Page.
http://automationchampion.com/2015/07/29/getting-started-with-visual-workflow-part-1-launch-a-flow-using-lightning-app/
Rakesh one more thing, FLOW is used for record create, update, fast lookup looping etc. Can you please provide some experiences with each. Im not as technical as you and have struggled to replicate some examples ive seen online and on youtube. Would be great if you could elaborate soobjects variables and collections how to loop through records and assign new values to those returned records in the loop etc.
Thanks you for your hard work !!!
SObject Variable :- Stores updatable field values for a Salesforce record.
SObject Collection Variable :- Stores updatable field values for one or more Salesforce records.
Checkout this article Out of Office notification for Chatter post to understated Loop, SObject Variable and Collection Variables.
Rakesh this is amazing, but could you kindly put posts on how do to cross object workflows and field updates via Flow.
Most of us use Workflow but as you know it has limitations, when theres a master to detail relaitinship its amazing but on the other hand its limiting if not.
I really want to be able to update records on the child (or from child to parent) or create records in a new object if a parent status=”test” etc.
Are there any examples of these kind of situations where we mimic typical actions the process builder and workflow can do but in a flow.
That woudld be great. Thanks you so much for all these examples, will spend my weekend going through them.
Thank you 🙂
Please checkout this article http://automationchampion.com/2014/03/26/visual-workflow-gamer-changer-for-salesforce-admindeveloper/
Hi Rakesh,
I’m a relative rookie Admin introduced to your fine blog by Mike Gill today. I’ve got a custom Invoice object which I’d like to create from an Opportunity so that the Invoice includes the OppLineItems, or just populates the Product Lookup fields I currently have on the object layout. Do you know if either is possible using Flow?
James
Please checkout this document https://drive.google.com/file/d/0B8kG1DvEFesHWmM3d000cmdUY0k/view?usp=sharing
ok thanks!!
Hi Rakesh, is it possible to use visual flow to guide the user to insert the opportunity team after creating a new opportunity?
Yes, you can
thanks for the quick reply. Do you have some tips or a guideline how to?
Your guide for adding team member to auto follow an oppty record helped me a lot, thanks for that one!
Use Inline VF Page (Embed Flow inside) & Java Script 🙂
Just wondering, can a FLOW be created for PriceBookEntry? I want to notify Finance whenever the price is changed on a PriceBook for a Product, and I cant do this via workflow rules. I dont have access to any developers either, so I need a configurable solution….and was hoping FLOW could do this.
You can’t achieve it, using Process Builder or Workflow rule.
Quick Question: – How they are are going to update the Price? I mean to say using the Salesforce UI or data loader or API call
They will update the price using UI
Then I have a solution for it.
Give me 1-2 days, I’m going to post a detailed article on this.
Thanks Rakesh. I look forward to your solution!
Hi Rakesh. Just wondering if you ever published an article for this…..and perhaps I missed it?
Never, it’s a page not post