Console 3 for Salesforce

Jump to video demo


This is another custom console solution that replaces the other console solution I described in Console 2 for Salesforce.  The things we tried to improve upon are:

  • We wanted to display the record data in standard html tables instead of the Enhanced List controls.  This would be less page heavy, we could have more than 5 tables on a page, and the table heights and column widths would be automatically sized to their records.
  • We wanted users to be able to see on one page a set of tables but still know if there were new records in their other tabs.
  • We wanted to create the queries used to populate the pages with something other than the listviews feature.  It still needed to be something an admin could do without getting into code like the listviews were.
With this new solution there are three main pieces to it.

Query Creation

We created a way for admins to create the different pieces of a SOQL query (columns to display, filter criteria, sorting) much like they did with the listview feature.  They select fields for each section using a Field Browser dialog we created where they can browse all the fields and object relationships starting from the base object for the query.  They can then sort the fields and enter their filter criteria formulas.  Behind the scenes, apex builds the actual SOQL query that is stored and later executed on the console pages.  A custom placeholder is available for the filter criteria that identifies a current user id.  This is later used for easily previewing queries as other users.

Console Template Creation

After admins define the queries, they create a console template.  A console template defines what tabs will be available, what queries will be shown under each tab, and what specific roles and users a template should be shown for.  The admin creates the tabs they want to show at the top of the page and then assigns different queries to the tabs.  The queries will show as tables displayed one after the other under their tab when the tab is selected.  When users view their console page, a template is automatically chosen for them based on the role and user assignments.  Roles are selected for more general assignments but specific users can be selected for a template to override a general role assignment elsewhere.

To easily see what other users would see, there is a Preview dropdown that allows admins to preview the console template as any user in the system.  This makes it easier to verify that your queries are right and to troubleshoot any issues that users submit later.

For each query, admins can choose to display add links, display edit links, display delete links, and to identify unread records.  Identifying unread records is a very helpful feature because it lets users know which records have been created or modified since the last time they marked a table as read.

Console Viewing

When a user goes to their console page, a console template is loaded from the system for them.  It loads the tabs for the queries and then loads all the queries for the first tab and displays the resulting tables.  As users click to a different tab, the page loads the queries and resulting tables for the new tab.  The tables and tabs refresh automatically every so often to make sure the latest data is available.

For queries that have the Identify Unread feature turned on for them, unread queries are highlighted and counted for each table.  Unread records are also counted for the tabs that are not currently being viewed.  This is very helpful in letting users know if there is new information in tabs they are not currently looking at.


This solution uses apex and visualforce for the admin pages and front end page.  The field browser dialog uses apex describe information for listing the objects and fields in the system.  The front end page uses javascript remoting for loading the tabs and tables dynamically.

Video Demo 

Leave a comment


  1. Mats Eriksson

     /  October 19, 2011


    What I liked most was the way you have encapsulated the admin stuff in what looks to be a very slick user interface.

    Are you going to publish the source code for this project like you did for Console2?


    • Kyle Peterson

       /  October 20, 2011

      We may be releasing this as an app so I’m waiting to hear back about that.

  2. raghu

     /  October 30, 2011

    Hi Kyle,

    really nice post. It will be really helpful if you publish the source code.

  3. Matthew Leahy

     /  October 31, 2011

    Console 3 looks fantastic! Yes, I too have my fingers crossed for source code. Project would certainly be a great teaching vehicle for me.


  4. Kyle Peterson

     /  January 14, 2012

    We have been very happy with this solution over the past few months. We are still considering making it an app.

  5. Mats Eriksson

     /  March 12, 2012

    Hello Kyle!

    How are the plans for “appifying” this project going? Or baring that, publishing the source just like for the Console2 project?


  6. Jerome

     /  June 9, 2012

    Hi Kyle:
    Are you publishing the source code. i have some ideas on extending this solution for our needs…..much appreciated.

  7. Mats Eriksson

     /  November 20, 2012

    Hey Kyle,
    How’s it going with the app?


    • Hi Mats, good timing. I’m working on it this week making some final enhancements and then hope to submit it for security review in the next week or two. There’s been a lot of nice additions over the past year. I’ll keep you updated as it moves forward.

  8. Greg Johnson

     /  February 8, 2013

    Hi Kyle,
    Did you release this in the end? Looks awesome!

    • Hi Greg, it has not been released yet. I’m hoping for it to go into security review in the next few weeks. I’ll let you know when it’s released if you send me an email to contact you at.

  9. Mats Eriksson

     /  May 27, 2015

    Hello again Kyle,
    Is this software released yet? Any major changes since I “beta-tested” it with you a couple of years ago? Will the source be available?
    Cheers /Mats

  1. Salesforce Queue Record Delegation « CodeBit

Leave a Reply to raghu Cancel reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: