Navigate Everywhere – Flow Action

This action provides a range of navigation choices available in a single, straightforward navigation action for Flow. It provides support for navigation from a flow to:

  • a record page (in edit or view mode)
  • a new record form for an object
  • a list view (object home page)
  • a web page
  • a related object list view
  • an App page
  • a custom Tab page
  • a named page (examples include ”home”, “today”, “chatter” and a variety of community named pages)
  • a Knowledge page

IMPORTANT: This action only works with Screen Flows because it’s a Local Action that requires the presence of a browser session. Autolaunched flows can be launched from a browser but are optimized for server-side operation and can’t do browser redirects.

IMPORTANT: Note that this navigation component is still constrained by some basic limitations constraining navigation in Flow Builder. This will work in normal lightning experience flows, including flows launched from Quick Actions, but will not work when run from inside Flow Builder or via a Custom Button. It will not work from Visualforce pages.

Supported Destination Types

Destination Type = ‘Object’

Will navigate to a New record form or a List view. Note the use of DestinationActionFilter to pass in the name of a specific list view.

Destination Type = ‘Record’

Navigates to a specific recordId in either view or edit mode.

Set Destination Action to ‘edit’, ‘view’, or ‘clone’.

Don’t use this Destination Type if you’re trying to create a new record (Use Destination Type = ‘Object’). DestinationActionFilter is not used.

Destination Type = ‘App’

Navigates to an app. For DestinationName, use either the appId or appDeveloperName to the appTarget. The appId is the DurableId field on the AppDefinition sObject. The appDeveloperName value is formed by concatenating the app’s namespace with the developer name. To find the app’s developer name, navigate to the App Manager in Setup and look in the Developer Name column. For standard apps, the namespace is ‘standard__’. For custom apps it’s ‘c__’. For managed packages, it’s the namespace registered for the package.

DestinationAction and DestinationActionFilter are not used.

Destination Type = ‘URL’

Navigates to a specific url. Use the DestinationURL field.

DestinationName, DestinationAction, and DestinationActionFilter are not used.

Destination Type = ‘NamedPage’

Navigates to a specific Named Page. Use the DestinationName field.

In Lightning Experience and the Salesforce mobile app, possible values are:

  • home
  • chatter
  • today
  • dataAssessment
  • filePreview

In Communities, the value for pageName is the URL value for a supported page. For instance, the default URL value for the Account Management page is /account-management, so the value for pageName would be account-management. The value of home is reserved for the landing page of any community in your org.

Supported pages in Communities are:

  • Home
  • Account management
  • Contact support
  • Error
  • Login
  • Top Articles
  • Topic Catalog
  • Custom pages

DestinationAction, and DestinationActionFilter are not used.

Destination Type = ‘tab’

Navigates to a specific tab. Use the DestinationName field and provide the unique name of a CustomTab. Visualforce tabs, web tabs, Lightning Pages, and Lightning Component tabs are supported.

DestinationAction, and DestinationActionFilter are not used.

Destination Type = ‘knowledge’

Navigates to a knowledge page. Destination URL is required. The value of the urlName field on the target KnowledgeArticleVersion record. The urlName is the article’s URL. DestinationName is ignored for Communities but required otherwise. Use the ArticleType API name of the Knowledge Article record for DestinationName.

DestinationAction, and DestinationActionFilter are not used.

Destination Type = ‘relatedlist’

Navigates to a related items page. Requires 1) a RecordId 2) a DestinationName like Case, 3) a RelationshipName like CaseComments and 4) a DestinationAction (which here has to be view)

Note that the Relationship Name of a related list can be a little nonintuitive. For example, suppose you want to navigate to the Opportunity Products list for an Opportunity. The relationship name is OpportunityLineItems, which you probably wouldn’t guess. Find the relationship name by going to the child object in object manager and inspecting the Lookup field that does a lookup to the parent object, as shown below:

Launching from a Utility Bar?

Check out https://unofficialsf.com/minimize-the-window-when-a-utility-bar-flow-is-finished-evan-ponter/

Attributes

AttributeTypeNotes
DestinationTypeStringAllowable values include ‘object’
DestinationNameStringWhen DestinationType is ‘object’, this must be an object name like ‘Account’ or ‘MyObj__c’.
DestinationActionStringWhen DestinationType is ‘object’, supported values are ‘list’, ‘new’, and ‘home’.
When DestinationType is ‘record’, supported values are ‘view’, ‘edit’ and ‘clone’
DestinationActionFilterStringWhen DestinationType is ‘object’ and DestinationAction is ‘list’ or ‘home’, this allows the specification of a specific list view by name. Example ‘mycustomlistview’
Destination URLString
Relationship NameStringUsed with Destination Type = relatedlist
Destination Record IdString

Install

Unmanaged Package 1.0.1 (small error message improvements)

Old Versions

Unmanaged Package 1.0

View Source

Source

Subscribe
Notify of
guest
57 Comments
Inline Feedbacks
View all comments
Mark Riley

Any other documentation on this flow action?. I cant get it to work and I am uncertain as to how the inputs should be configured. I am getting the following error: C:NAVIGATEEVERYWHERELFA (LOCAL ACTIONS): NavToRecentItems Inputs: destinationName = Cash_Flow_Period__c destinationType = Object Error Occurred: This flow contains local actions, so this flow runs only in Lightning runtime. I want the flow to finish on the tab for the custom object Cash Flow Period so the user will see the most recently created records generated by the flow. I have set the flow to execute in lightning run time. It appears… Read more »

Mark Riley

Just, discovered that I think the reason I could not get it to work is that flow was being launched from vf page which forces classic runtime. Sorry for the distraction.
Mark

Alex Edelstein

Yeah, unfortunately the events that navigation relies on only play nice in pure Lightning.

Penny Rodie

Hi! Thank you so much for this resource, navigating to a new record form might be the answer to my problems. is there any way to prefill fields and determine record type on the record being created?

Dan Hardy

Hi Alex-

I’m getting the error message:

C:NAVIGATEEVERYWHERELFA (LOCAL ACTIONS): New_Procurement_Record
Inputs:
destinationType = {!Procurement} (true)
Error Occurred: Action failed: c:navigateEverywhereLFA$controller$invoke [component.get(…).toLowerCase is not a function]
Salesforce Error ID: 370325080-4918 (241678413)
Any ideas what I’m doing wrong?

Thanks.
Dan

Dolly Choi

I had to remove references to toLowerCase in the js controller in the component and used all lower case for my input parameters to get this to work. Ex: Destination Type = record

Felix

Hi there, great tools here 🙂 What are the exact options to navigate to a record-id? unfortunately i always get an error. the flow refers to a contact and should jump to the account after completion.

Felix

Error Occurred: Action failed: c:navigateEverywhereLFA$controller$invoke [Cannot read property ‘toLowerCase’ of undefined]

Filled fields in flow:
Destination Type: record
Destination Record Id: id of account

John

You need to add a value for Destination Action. Valid values are ‘edit’, ‘view’, or ‘clone’

Felix

Thank you!

Emmanuel

Hallo, very useful tool! I have a small question: What are the exact options to navigate to a relatedlist? I tried with following inputs: destinationAction = view relationshipName = Proposal_Requests (it is the Child Relationship Name, but I tried also with the Object API name) destinationType = relatedlist destinationName = Opportunity destinationRecordId = {!ParentOpportunity.Id} but I received back: Error Occurred: Action failed: c:navigateEverywhereLFA$controller$invoke [Missing required data. Since you have DestinationType set to relationshiplist, you need to pass in 1) a RecordId 2) a DestinationName like Case, 3) a RelationshipName like CaseComments and 4) a DestinationAction (which here has to be… Read more »

Jacob G

You may have already solved this by now, but two ideas in case you want to try other possibilities for destinationRecordId:

Is ParentOpportunity a custom field/on a custom object? If so, try just the field name–probably {!ParentOpportunity__c}.

Is it possible ParentOpportunity.Id wasn’t asked for in SOQL? If so, try just {!ParentOpportunity}. (though that error usually produces a friendly email asking you to think about what you’ve done)

Good luck!

Tim Lomison

I am having a similar issue. Did you ever figure it out? In my case the parent record is on the object Customer_Dispensation__c and the Child Relationship Name in the lookup field from the child Approval Requests up to Customer Dispensation is Approval_Requests. C:NAVIGATEEVERYWHERELFA (LOCAL ACTIONS): Redirect_to_App_Req_Related_List Inputs: destinationAction = view destinationName = Customer_Dispensation__c destinationRecordId = {!recordId} (aCk21000000CfBmCAK) destinationType = RelatedList relationshipName = Approval_Requests ________________________________________ Error Occurred: Action failed: c:navigateEverywhereLFA$controller$invoke [Missing required data. Since you have DestinationType set to relationshiplist, you need to pass in 1) a RecordId 2) a DestinationName like Case, 3) a RelationshipName like CaseComments and 4)… Read more »

Tim Lomison

I got this to work by:
– Adding __r at the end of the relationship name when assigning the variables in the Action in the Flow, and
– In the component controller changing the IF under the relatedlist. I used the initial code (!destinationRecordId || !dest…) and added console logs to confirm those values were present but it was still erring. I changed it to the following and it started working: if(destinationRecordId && destinationName && destinationAction && relationshipName) {

Jeff Berger

Tim, nice work. That solved it for me!

Richard Alsobrooks

is it possible for the destination to open in the same tab rather than a new tab?

Alex Edelstein

Not with this action, because the underlying PageReference interface doesn’t support it. However, if you’re trying to load a web page over the existing flow, try using https://unofficialsf.com/new-ways-to-open-web-pages-from-flow/

Dom T

Is there a way to force the user to select a record type? Right now it just goes to the profile default record type

Alex Edelstein

There doesn’t appear to be support for this in the underlying navigation technology: https://developer.salesforce.com/docs/atlas.en-us.lightning.meta/lightning/components_navigation_page_definitions.htm

Bruce Perry

Didn’t realized one needs to create an action of type navigateEverywhereLFA to make use of this. I’m now able to do a destination type of record with an action of “view”. When I try edit as the action, I see a window appear briefly then I’m back in the record where I started. Am I missing something?

Jannis Bernhardt

Same here… did u eventuelly find a solution for this issue?

Bruce Perry

I did figure out how to do this. If the last element in the flow is your edit action, you get the behavior I described above. If you have an information screen as the last element, you will end up in edit mode

I have no idea why this works. I think I was tinkering and trying to get more information when I discovered this.

Jannis Bernhardt

Not really the most “elegant” solution 🙂 but works fine. Thank you!

Rachel Beach

I got this to work for viewing a record, but I can’t figure out how to make it work for viewing a related list. In my org, Contact has a related list for custom object Biographical_Entry__c records. In the metadata for Biographical_Entry__c, I see a lookup field that looks back up to Contact and includes the following attributes: Contact__c Contact Biographical Entries Biographical_Entries Lookup To to say “go to the Biographical_Entry__c records related to Contact record held in variable myRecordIDVariable” I would think I would put: Destination Type = relatedlist Destination Action = view Destination Name = Contact Destination Record… Read more »

Rachel Beach

The text editor stripped my tags—for those attributes of the lookup field on Biographical_Entry__c:

Contact__c = fullName
Contact = referenceTo
Biographical Entries = relationshipLabel
Biographical_Entries = relationshipName

Frank

Can I navigate to the Opportunity Products Related list in edit mode using this action?

Alex Edelstein

You can’t really ‘edit’ a list of related objects. Not sure if this works or errors. I added a section above about finding the name of the related items.

[…] Navigate Everywhere: Navigate to records, list views, and other destinations. […]

Jannis Bernhardt

Hi, thanks a lot for this tool, it seems to be exactly what I was looking for… Unfortunately it does not work for me. I have a quick action on Object A that launches a flow which creates a record of object B. After the flow, I need to jump to the created record in edit mode.

I set the Destination Type to “record”, Destination Action to “edit” and Destination Record Id to var_NewObjectBRecord.recordId and get the following error message:

“Looks like there’s a problem.

This record is no longer available. Ask your administrator for help.”

Alex Edelstein

It might be causing a problem to use a period in your recordID variable. Try just calling the var something simple like newObjectBId.

Heath Parks

I am testing this and I can’t get it to go to the record I created. I am using this in a subflow. The first flow creates the contact with just a first and last name and using the record type ID to set an ID. In the sub flow at the end, I want to either go back to the contact record or a newly created record from a custom object called Stability Assessment. So I created a decision and ended with action but it’s not taking me back to either record. I have “Destination Type” set to “Record”… Read more »

Heath Parks

ok, so I did get it to go back to the record, I am guessing that it will not work in regular run or debug mode? It also looks like I had an issue with the decision I was doing, so at least I know what to work on.

Alex Edelstein

Right. It doesn’t work in the normal launch-from-flow builder environment. see the bold section above.

Michael Pankhurst

Have installed in a Sandbox but can not find the navigateEverywhereLFA on the Actions component.
Did I miss a step to make it active ?
When installing i made it visible to all users and I am an Admin

[…] G. After the flow is completed, we want to take the user to the selected case. This is not a native feature of flow builder so we need to supersize flow with a custom action component from UnofficialSF called NavigateEverwhereLFA. […]

Mark Bruso

I am having trouble with this component and its previous version (navigatetorecord). It works perfectly for me (System Admin) but for another Profile, it doesn’t work. No error, it just fails to navigate as expected and remains in the original record.
– Installed Package for All Users
– It’s obvious a Profile issue, but what did I miss?

Mark Bruso

Disregard. The issue had nothing to do with this component. It is working great.

eilon

Hi! Thank you so much, this is amazing!!
I need to open a new URL from flow (who trigger by button), do you have a solution on how i can do it? or bypass the limitation that this extension has

[…] the showToast and NavigateEverywhere community built components from UnofficialSF into your […]

Mary

Love this! Question – is there a way to also close the flow after it navigates to the new record? We are launching the flow from the Utility Bar and at completion we have it set to navigate to the record (which it does) however the flow remains open and ready for the next time – is there a way to automatically minimize the flow? Secondarily, if I choose to navigate to the record in Edit mode – it opens the popup edit window – as opposed to the edit you get when you click on the pencil icon next… Read more »

Alex Edelstein

Check out this component that Evan Ponter built: https://unofficialsf.com/minimize-the-window-when-a-utility-bar-flow-is-finished-evan-ponter/

Mary

That is perfect! Thank you Alex!

EL1234

Hi! Did you find an answer to your second question? I am trying to set up the same thing (ie: navigate to Edit Record the way it looks when you click a pencil icon, as opposed to opening up a popup in front of the record).
 
Thanks!

Mary

No I didn’t – negotiated with the users that they were still saving a click so while not ideal, it is better than clicking once to get to the record and a second time to get to edit mode.

EL1234

Oh well, thanks for letting me know!

Erik Hansen

I’m trying to open a URL (outside Salesforce) when a flow ends. Was expecting this Flow Action would do the trick by adding it after the final screen with a “Destination Type” of URL and a “Destination URL” of whatever external site I needed to direct my user to. But undfortunately it doesn’t seem to work. The flow ends as it should and opens a new tab inside Salesforce with the URL appended to the salesforce URL resulting in an unavailable page in Salesforce. I need to be able to open an external site based on choices in a flow,… Read more »

E L

I’m having the same issue. Did you ever figure it out?

EL1234

I was able to get this working right with this action instead:
https://unofficialsf.com/new-ways-to-open-web-pages-from-flow/
 

Last edited 1 month ago by EL1234
Lauren Block

Hello – Thanks .. I’m having two issues.. i wasn’t able to install in a sandbox directly (despite substituting test for login in the url pop). I ended up grabbing the ID of this navigate component package, going to the other navigate component and choosing sandbox, and substituting the IDs. It worked. Not sure if that were intentional, I’m missing something, or just having bad luck, but thought I’d share. I also cannot get my flow builder to recognize this component from an autolaunched flow. In reading the description, it says ‘flows launched from quick actions’ however flow builder will… Read more »

Andy

I’m having exactly the same issue – any luck?

Andrey Shestakov

I installed this in production today, and not able to find this action when trying to add it on autolaunched flow.

Alex Edelstein

This is a Local Action and only works with Screen Flows because it needs the presences of a local browser session to achieve browser redirection.

TJ Pol

Wonderful. Simply wonderful. Big thanks for this gentlemen and ladies.

Will look to see if there is any way I can contribute to this wonderful community here on out!.

Wayne Chung

This tool is super useful, only one scenario i can’t achieve: how to navigate to a lightning component tab and in edit mode? Thanks!

David Russell

Currently the action exists the flow and launches the record in view mode in the same tab. Is it possible for the action to launch the record in a new tab and continue the flow in the existing tab?
Thanks Dave

S A

I recently discovered something really neat which is not mentioned in the article and should perhaps be pointed out. If you choose List for the destination action, and don’t specify a list view id, it will take the user to their most recently viewed list view for that object! That is super useful if you are calling a flow from a URL button on a list view, and want to send the user back to the list view when the flow is finished.