Newer Version Available
Control a Flow’s Finish Behavior in a Lightning Component
By default, when a flow user clicks Finish, the component
starts a new interview and the user sees the first screen of the flow again.
However, you can shape what happens when the flow finishes by using the onstatuschange action. To redirect to another
page, use one of the force:navigateTo* events
such as force:navigateToObjectHome or force:navigateToUrl.
1<aura:component access="global">
2 <aura:handler name="init" value="{!this}" action="{!c.init}" />
3 <lightning:flow aura:id="flowData" onstatuschange="{!c.handleStatusChange}" />
4</aura:component>1// init function here
2handleStatusChange : function (component, event) {
3 if(event.getParam("status") === "FINISHED") {
4 // Redirect to another page in Salesforce, or
5 // Redirect to a page outside of Salesforce, or
6 // Show a toast, or...
7 }
8}Example
This function redirects the user to a case created in the flow by using the force:navigateToSObject event.
1handleStatusChange : function (component, event) {
2 if(event.getParam("status") === "FINISHED") {
3 var outputVariables = event.getParam("outputVariables");
4 var outputVar;
5 for(var i = 0; i < outputVariables.length; i++) {
6 outputVar = outputVariables[i];
7 if(outputVar.name === "redirect") {
8 var urlEvent = $A.get("e.force:navigateToSObject");
9 urlEvent.setParams({
10 "recordId": outputVar.value,
11 "isredirect": "true"
12 });
13 urlEvent.fire();
14 }
15 }
16 }
17}