This blog focuses on any technical projects/challenges that I have a chance to write up afterwards. Topics will include e-learning, Salesforce.com, Wordpress, and anything else I come across really.

Wednesday, 22 May 2013

Data is only useful if you can do something with it. Salesforce.com data on Geckboard

Data is only useful if you can do something with it. Salesforce.com data on Geckboard

Businesses thrive on data and we need faster access to it than ever before. The higher quality, more accurate the information you have at your fingertips the better.

There are a now a range of tools now to help you visualise complex data on a real time basis, available as either installed software (such as Tableau) on your machine or as hosted solutions (such as Geckoboard). Dashboards help you to keep a regular eye on your businesses vital signs. For instance, how many orders did you receive today vs yesterday, are you website visitor numbers increasing, how many Facebook fans does your company have. The quicker you can see a trend developing the quicker you can take action.

This article summarises a piece of recent work that The Code has been conducting using the Geckoboard data dashboard tool. We recently undertook a project to surface information from our Salesforce.com customer relationship management system on the company Geckboard Dashboard as well as a range of other data sources such as Google Analytics, Twitter, PayPal, and other 3rd party sources.

But doesn’t Salesforce.com already come with its own Dashboards?

Salesforce Dashboards

Those of you who already use Salesforce.com dashboards will be aware of the range and breadth of widge/layouts and configuration available within your Salesforce.com environment. They are powerful tools for monitoring your daily account activity.

However, in our case we needed to combine data sources from within and outside of Salesforce. At the moment I don’t think Salesforce.com is set up to handle external data sources in that way so we had to look for a tool to handle multiple data inputs in one place.

Geckoboard Dashboards

After a review of the various tools available we settled on Geckoboard. Marketing themselves with the tagline “It’s your key data. In one place” Geckoboard offers a solution to combine both Salesforce.com and other data on a single dashboard. You can read more about the service here: http://www.geckoboard.com/

Widgets

Once you have Geckoboard account set up you build up your perfect dashboard by configuring a number of different “Widgets” available in the Widget Library on the site.

There are various widgets types available in Geckoboard which are given below. Each widget type has a specific data format model (either in JSON or XML format) that needs to be supplied to the widget in order for it to work.

Pricing

For small organisations, the basic pricing package from Geckoboard might suffice. This allows you to have up to 20 connections on your Geckoboard Dashboard for $19 per month.

Widget Types

Creating Widgets

Once logged in to Geckoboard just click “Add Widget” from your dashboard to see the list of widgets available. You’ll then need to choose the type of widget you want to add:

New widgets are being added all of the time for various platforms but at the time of writing the available widgets for Salesforce.com were:

Opportunity Funnel – Display an Opportunity Funnel graph, which shows the number of opportunities, the total value amount or the expected revenue from opportunities at user-definable stages of the sales funnel, for a specific period in time between 1 day and the last 2 years. For each funnel stage you can show the relative or absolute conversion rate between them.

Opportunities Won – Display the number of opportunities won and optionally the percentage change from the previous period, for a range between 1 day and 2 years.

Top Sales Reps – Display a leaderboard of top sales reps, which lists the names of the reps along with the value of opportunities closed.

Opportunities Won/Lost – Display number and column widget, showing the split between the number of opportunities won and lost in a specific time period, between 1 day and 2 years.

Value of Closed Opportunities Won – Display a bullet graph, showing the value of closed opportunities won, relative to your acceptable, good and maximum sales targets.

Leads by Status Funnel – Funnel showing the number of leads by status in the given period

Leads by Industry or Source Funnel – Funnel showing the number of leads by industry or source in the given period

Converted Leads Bar Chart – Show the number of converted leads over time

New Leads Bar Chart – Display number of new leads over time

Deals in Pipeline – Number of deals in pipeline over time

Value of Closed Deals by Sales Person Funnel – Funnel of salespeople listed by the value of closed deals in the given period

Campaign Win Rate Funnel – Display opportunity win rate percentage by campaign in the given period

Neglected Opportunities List – Opportunities not contacted within a defined time period

Each widget has a different visual layout ranging from bar charts through to funnel type diagrams. Make a note of the data widgets that you would like to use on your dashboard as the data required for each is slightly different. I recommend reading through the data file examples given for each widget on the Geckoboard site.

Understanding the data model for each required widget is particularly important when you are going to be importing Salesforce.com data into Geckboard as each widget will require the creation of a custom Apex class to generate the data. Changing the widget type or creating the wrong data structure will add additional work later on.

Limitations of the built in Salesforce widgets on Geckoboard

Adding a standard Salesforce.com widget type is very straightforward. Just select one of the pre-set widgets, enter your Salesforce.com username/password and the widget data will load. However, with the exception of the SOQL widget type your options are quite limited on the data brought back from Salesforce.com.

How do you create a widget on Geckoboard displaying Salesforce information?

One of the strengths of Geckoboard as a solution is that it can receive data from any source as long as it is formatted in either JSON or XML. In our case, we reviewed all of the standard Salesforce.com widgets and decided that we would need to push a custom report from Salesforce.com to be displayed on our Geckoboard.

Steps:

First, create a custom widget on Geckoboard and copy the Widget key. Make a note of the data model that your chosen widget will require as input.

In Salesforce.com write a new Apex class that will generate the data you want to populate the widget with.

Schedule a batch operation on the apex class to update the data regularly (our environment is set for 1 hourly intervals)

Also add the Geckoboard data URL to your remote site settings in Salesforce.com.

Run the batch manually, or wait for the first scheduled run.

Return to Geckoboard and see whether your custom widget is now populated.

Troubleshooting issues:

If there is an issue with the data format coming into Geckoboard you only see a slightly unhelpful “Error refreshing the widget” message.

Here are a few things to check:

Did you add the URL https://push.geckoboard.comto your remote site settings?

Does the Widget Key of the custom widget match the ID given in your Apex class?

Are your salesforce username and password correct in the Apex class?

Does the format of the data file you are creating match the widget type? (We had a few occasions where we changed widget type and broke our display).

If your data is incorrect check when the last batch operation ran on Salesforce.com. Did your administrator receive a fail message?

Next steps for our Geckoboard

We’ve had our Geckoboard running for a few months now and we’re happy with the service. Geckoboard is the homepage on several of our machines and we have a large monitor in the office displaying it all of the time.

We have a few configuration issues but nothing major, and we’ve come up with a wish list of future enhancements that would just be the icing on the cake. For example we’d like a bit more control on the formatting of the widgets, including colours, labels, and ordering. On a purely aesthetic viewpoint we’ve also completely filled our Geckoboard so we will soon need to split our single dashboard into 2 pages and set a scrolling interval between the 2 pages.

We’re also going to implement more of the comparison features in Geckoboard, (for example show % increase in figure 1 compared to previous value of figure 1). We just have to decide what logical time frame each widget should compare against (i.e. how many new website visitors last month, last 30 days, last 60 days etc).

Conclusion

Geckoboard is a growing platform, with new widgets and functionality being added all of the time. It will be interesting whether future Salesforce.com widgets come along with sufficient customisability that would eventually remove the need for the custom apex classes to generate the data.

Or, as we’ve seen in other software environments perhaps there could even be some sort of Geckoboard widget generator available one day. This generator would be an enhancement of the current setup, but would take you through a wizard type approach to deploy an entirely new widget type and/or connect to a totally different data type.

Our Geckoboard

J

ust in case you are curious, our Geckboard here at TheCode.org includes data inputs from: