Configure the finishLocation Attribute in a Flow
If finishLocation isn’t specified, users who click Finish start a new interview and see the first screen of the flow. You can shape what happens when a user clicks Finish on the final screen by using the URLFOR function, the $Page variable, or a controller.
The following sections show the ways that you can configure the <flow:interview> component’s finishLocation attribute.
- You can’t redirect flow users to a URL that’s external to your Salesforce org.
- Don’t call the
Auth.SessionManagement.finishLoginFlowmethod and thefinishLocationattribute in the same flow.Auth.SessionManagement.finishLoginFlowindicates the end of a Visualforce page login flow. IffinishLocationis in the same flow,finishLocationexecutes when the flow starts, giving users full access to the session.
To route users to a relative URL or a specific record or detail page, using its ID, use the URLFOR function.
This example routes users to the Salesforce home page.
This example routes users to a detail page with an ID of 001D000000IpE9X.
For more information about URLFOR, see Functions.
To route users to another Visualforce page without using URLFOR, set finishLocation to the name of the destination page with the format {!$Page.pageName}.
For more information about $Page, see Global Variables.
You can set finishLocation in a few ways with a custom controller.
This sample controller configures a flow’s finish behavior in three different ways.
Here’s a sample Visualforce page that references the controller and sets the flow finish behavior to the first option.
If you use a standard controller to display a record on the same page as the flow, users who click Finish start a new flow interview. They see the first screen of the flow, without the record, because the id query string parameter isn’t preserved in the page URL. If needed, configure the finishLocation to route users back to the record.