Flow: How To Redirect Your Users When Flows Finish (retURL)

I’ve been postponing the writing of this article because, to be honest with you, I don’t use retURL for flow that often! However, it doesn’t mean that I don’t care about a good user experience. In this article, I will share three different types of redirection, including my personal favorite!

Why Redirection?

For Autolaunched Flow – Reduce The Clicks

When you finish an autolaunched flow using a button, you will see “Your flow finished” and the page stays there. Your users will have to close that window and go back to the original one. What’s even worse is when displaying the button in the current window. Your users will then have to go find the original record like in the example. Redirection can make these clicks all go away.

For Screen Flow – Prevent Unintended Runs

Redirection is a nice-to-have for autolaunched flows, but it can actually prevent errors for screen flows! Confusingly if you launch a screen flow using buttons or Lightning pages, the flow will re-run and re-run until your users close the windows. Without redirection, your uses might execute the flows many more times than intended. Like in example, the user couldn’t see the flow has finished and cloned many cases without knowing.

Different Ways To Redirect

We will present three different ways to redirect your users and what types of flow are applicable. Note that you don’t have to choose only one. You can use either one of them, or retURL + Screen, or Quick Action + Screen.

  1. retURL (Autolaunched/Screen)
  2. Quick Action (Screen)
  3. Screen Element (Screen)
retURL – When Using Buttons

retURL is a variable that you can add to the end of your flow URL when creating a button. You can use a static value which links to a specific page (ex. retURL = 5005I00000FkTTPQA3), or a dynamic value so it links to different pages based on where you launch the flow (ex. retURL = {!Case.Id}).

You can find different possible destinations in this help article, but the most common one I use is the recordId one. For example, when creating a detail page button for Case, paste in your flow URL as below.

/flow/flowName?retURL={!Case.Id}

Several important notes when using retURL:

  1. You can only use retURL in buttons, not actions.
  2. retURL is case sensitive, so make sure you type it exactly like that.
  3. We cannot use the variables in flow with retURL. If we redirect to records, it can only be the original record.
  4. If there are already a question mark in your flow URL, use & in front of retURL instead:
Ex. flow/flowName?varId={!Case.Id}&retURL={!Case.Id})

Setup

Back To List

Result

Quick Action – When Having Screen Flows

If you have a screen flow, the easiest way is to launch it with quick actions. It is now possible to use recordId in quick actions so this solution will save you a lot of time.

However, if you use Quick Actions on Case or Work Order objects, the actions will show up in Chatter if feed tracking is enabled. Check out this article for more details.

Result

Back To List

Screen Element – When Having Screen Flows

If we use the solutions above, the outcome would be quite limited. We cannot redirect to the newly created records, or the buttons might show up in a different place. So I want to introduce my favorite redirection – by using a Screen Element. I found this solution myself and not sure if Salesforce would recommend this, but it is working so well that I want to share it with you so much 🙂

Please wait while flipbook is loading. For more related info, FAQs and issues please refer to DearFlip WordPress Flipbook Plugin Help documentation.

It is a really nice solution that you can use for every scenario (buttons, actions, or on Lightning page), but be sure to test thoroughly before you deploy it.

* NOTE * Instead of hardcoding the URL, you can utilize the $API global variable to get the current domain. This will be extremely helpful if you are deploying your solution from the sandbox.

Result

Back To List

Is This Helpful? Check Out Flow Use Cases Or Write Us One!
Subscribe
Notify of
guest
15 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Paula

Hi, would be nice to show under retURL-WhenUsingButtons as a result for Autolaunched flow; you showed for a screen flow. I am saying this, because in my case there is a few miliseconds delay, where the name of the flows is still ugly visible. Thanks

anonymous

so helpful – tried all three and they work perfectly, thank you!!!

Jordan

Hey :), great article. Just wondering if you know of a solution which simply closes the “popup” window once a flow/user clicks “finish”. (when the flow is triggered by a custom button, URL for SF classic).

Ryan Dmello

Hi Melody,

Great article. I have a requirement to display a link to the record in the email that was triggered by the flow. Do you know how this can be accomplished? I read somewhere that $Record.Link merge field can be used on the email template but I can’t seem to find it.

Matthias Schmitz

Great article, thanks Melody!

Leonardo Cesar Nascimento

Hello, Melody!

First of all, excellent article and blog!

I have the following scenario: I created a Flow that is available in a listview button. The user selects the records and when clicks on the button, the Flow updates a field in these records. In this scenario, is it possible to redirect the user back to the listview or to another listview?

Leonardo Cesar Nascimento

Wow, it worked! You can’t imagine how happy I am now! Thank you very much for the help!!!

Lloyd

Hi!
Great article and excellent blog! I find myself here often and it’s extremely helpful.
I have a use case for the 3rd option you presented, I have a screen flow that prompts the user to create an opportunity and I would like to take them directly to the newly created op.

I tried hardcoating the url with {recordId.Id} as you did in your example but flow gave me an error saying I couldn’t use merge fields.

How do I use the $API Global Variable as you mentioned? Would be nice to have an example of how to apply this.

Thanks!