// Check to see if running in a Console var workspaceAPI = component.find("workspace"); workspaceAPI.isConsoleNavigation().then(function(consoleResponse) { console.log("IsConsole: ", consoleResponse); if (consoleResponse) { // Save current tab info workspaceAPI.getFocusedTabInfo().then(function(tabResponse) { var closeTabId = tabResponse.tabId; var closeTitle = tabResponse.title; var parentTabId = tabResponse.parentTabId; var isSubtab = tabResponse.isSubtab; console.log("Current Tab: ", closeTabId + " | " + closeTitle); console.log("Is Sub: ",isSubtab," ParentId: ",parentTabId); // Open Visualforce Page in a new tab if (isSubtab) { workspaceAPI.openSubtab({ parentTabId: parentTabId, url: vfURL, focus: true }).then(function(openSubResponse) { console.log("New SubTab Id: ", openSubResponse); }) .catch(function(error) { console.log(error); }); } else { workspaceAPI.openTab({ url: vfURL, focus: true }).then(function(openParResponse) { console.log("New ParentTab Id: ", openParResponse); }) .catch(function(error) { console.log(error); }); } // Because exiting the VF page will reopen the object record, // close the tab we started on if (tabResponse.closeable && !tabResponse.pinned) { workspaceAPI.closeTab({ tabId: closeTabId }).then(function(closeResponse) { console.log("Closed: ", closeTitle); }) .catch(function(error) { console.log(error); }); } else { console.log("Left Open: ", tabResponse.title); } }) .catch(function(error) { console.log(error); })