Note: I only have Console in my sandbox, so I may be making some assumptions.

When I update a Visualforce page or layout that is used in the console in my sandbox, my sandbox console users only see that new layout/page if they do a hard refresh (Ctrl+Shift+R) in their browsers. Even then, that only works for components. In order to see a change to a page layout, they need to actually close the ones they have open!

As I roll out the Console experience for a subset of my users, I am trying to understand how the deployment process will work.

Currently, (in classic Sales Cloud) I will make a patch change from time to time without informing all users. Because it doesn't impact workflows, people tend to not notice it.

It seems that in order for me to change a page or layout that a Console user may have open, I must rely on users doing a hard refresh AND to close all their open windows. Is that so? Is there a better way to upgrade a user's experience without requiring them to take action?


This is a result of the way the console handles its own state, and the state of tabs inside of it.

When a console is first opened it loads all the configuration details it needs to render properly. This includes things like the console components you see in the footer. The console isn't aware if changes are made to the configuration while it's open until it gets fully reloaded. This explains why your users need to do a refresh of the whole browser tab in order to see the new components.

Tabs are very much the same. When a tab is first opened it determines which page layout is used and based on that it will populate the sidebars and do any VF redirects, etc... After this initial decision, that becomes the final state of the tab until it's closed. When a refresh happens it doesn't go through all of that logic, because it "already knows" what the tab is supposed to look like. This explains why new page layouts only kick in for tabs opened after the page layout is changed, and existing tabs will reflect the older one.

That being said, I don't think there's a really good built-in way to achieve what you want since you don't have programmatic control over the end user's actions. You could possibly do things like brute-force close all user tabs the first time they load the console via the use of a custom component, or force a logout with the SOAP API but that seems like an overall worse experience than being a bit out of date until they refresh the page or open a new tab.

  • Is there any way to brute-force this on the backend? – Charles Koppelman Jun 10 '16 at 20:14
  • Also, is there an Idea to change this behavior? It seems like a bad implementation. Even just tracking the last update date for the cached page/layout and the lastupdate date for the actual page/layout would be useful. It basically kills URLs as a resource identifier. – Charles Koppelman Jun 10 '16 at 20:26
  • You could use the SOAP API to end user sessions which would force them to log back in. If you turn off the 'Save User Sessions' option in the console app then the tabs they had open when they were logged out would be closed as well. I am not sure if there are plans to change this since it's behavior which has always existed. There may be something on the IdeaExchange, or you could post one. – Paul H. Jun 10 '16 at 21:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.