I’m back from maternity leave and holy SMOKES (get it? The west coast is on fire): an update to Flow in Summer ’20 totally broke the Unsubscribe Link App. It’s okay, though. It’s fixed now and this Flow improvement is worth it.

It’s now much simpler to expose a Flow to folks who aren’t logged into Salesforce. They can click a link which launches a Flow that modifies, deletes and creates all sorts of records! (Be careful!)
All you have to do now is save your flow as System Context without Sharing–Access All Data. This eliminates the need to give a Site Guest User permission, adjust your sharing settings, and create sharing rules.
So my example is the Unsubscribe Link. You send an email through Salesforce with this link. Your recipient clicks on it and that launches the Flow which will update their contact and lead records with Email Opt Out. It’s pretty sweet.
How to Build your own externally visible Flow
- Create a screen Flow. (This is the hard part).
- Set up My Domain (it’s probably already set up).
- Create a Site domain.
- Create a new Site.
- Create a Visualforce Page to house the Flow.
- Build your link that includes variables for your flow. That looks like:
https://yourSiteDomain/YourVisualforcePageName?flowVariable1={{{MergeField1}}}&FlowVariable2={{{MergeField1}}}
In the Unsubscribe Link app, that looks like this. recordId and Email are two variables in my Flow. Everyone who sets up the app will substitute their site domain for “yourSiteDomain.”
http://yourSiteDomain/Unsubscribe?recordId={{{Recipient.Id}}}&Email={{{Recipient.Email}}}"
When I put in my site domain and the fields are merged in the email, it looks like this:
https://powerfulsolutions-developer-edition.na139.force.com/Unsubscribe?recordId=0034W000029huR8&Email=georgeBailey@bbbs.com
Read the instructions on the Unsubscribe Link App for details on how to create a Site and Site Domain.
Thanks for the super-easy walkthrough! When I tried to run my flow I get the error message
“We can’t display component ‘forceContent:fileUpload’, because it isn’t supported in Classic runtime. Ask your Salesforce admin to distribute this flow in Lightning runtime instead.”
Does that mean in order to use the file upload component I need to use a Community instead of a Site? I saw this walkthrough on how to do that https://www.youtube.com/watch?v=weoRR2qUu5o on how to do that but haven’t tried it yet.
Dan, great question! I’m really not sure. I haven’t tried that element on a site before. See if this might help you.
Alas, we already have Lightning runtime for flows enabled. I found this stackoverflow article https://salesforce.stackexchange.com/questions/273911/enable-lightning-runtime-for-flows/284517#284517?newreg=ae6f0c9bfac7409f92bc46e96280a7ba
“…flows that are embedded in a visual force page will run using the classic runtime regardless of if lightning runtime for flows is enabled or not.”
oof! Bummer! Maybe a lightning component?