Geckoboard Help & Support

Paul Joyce March 03, 2011 2 FAQ

What are simultaneous connections?

Simultaneous connections are the number of web browsers that can connect to dashboards from your account at the same time.

For example, if you have a HDTV displaying your status board 24/7, that counts as 1 connection. Say you want to view it on your laptop too, that’s 2 connections. If you leave the office and want to check it on your smartphone that would also count as 2 connections (assuming your laptop is disconnected but your HDTV is not). If you are on the ‘S’ plan of $9 a month then this will allow you to have 10 of these simultaneous connections at any one time.


What happens if I try to view more connections than my account allows?

If you reach the simultaneous connections limit on your account and someone else attempts to connect they’ll see a message informing them that the maximum number of connections have been made and to try again later. Once one of the connections is disconnected it will take about 30 seconds before another connection can be made. We will be releasing a widget in the future which will allow you to keep track the number of connections on your account at any time.


Can I still log in to my account even if all my connections are in use?

Yes you can. These simultaneous connections only affect your read only URLs so the account holder will always be able to log in to the account even if the maximum number of connections has been reached.


Are the simultaneous connections limit calculated per dashboard or per account?

The connections are for use across you whole account, not per dashboard. If you are on the 'S' account and have 5 dashboards, each being viewed 2 times then this will use up your 10 simultaneous connections.


I want the world to see my dashboards. How can I do that with the connection limit?

As well as the read only URL with limited connections, there is also a 2nd URL which allows you unlimited simultaneous connections. This URL contains the same dashboard but with the addition of an ad. In your settings you will find the names of each of your dashboards and each will have two different links; one for your limited simultaneous connections (ad free) and one for your unlimited ones (with ads). 

 

What is the difference between “ad free” and “with ads” simultaneous connections?

Ad free & limited simultaneous viewers. For when you want to share with others in your company or with clients. If the number of simultaneous connections reaches your plan limit others won't be able to view your dashboard.
With ads & unlimited simultaneous viewers.For when you want the world to see. No limit on the number of simultaneous connections but each dashboard carries an ad.

Ciara January 27, 2011 3 Geckoboard API

If you've been following Geckoboard for any period of time you'll know that we're always adding connections to new services.  With so many great services out there we've recently expanded the development team (again) so we can crank more widgets even faster while the requests keep rolling in.  We'll always keep adding new widgets (keep an eye on the blog tomorrow for more announcements) but today I wanted to talk to you about another way of getting your data on your Geckoboard status board even when we don't have a connection to it.

Your data is locked up in many different places, whether it's in third party applications or in your own database or servers, our goal is to make it as easy as possible for you to see that on your Geckoboard and part of that strategy is to make the Geckoboard API as easy and as flexible as possible.  Wait!  Before your eyes glaze over I want to show you how to get key information onto your status board in a few easy steps using the Geckoboard API.

How it works

It's a pretty straightforward process.  

  1. Create a document in a format that Geckoboard understands
  2. Configure a custom widget to read from that document at a regular interval

Example

Let's say you want to display how many people visited your shop today and compare it to yesterday's number.  As long as you can capture that information somewhere you'll be able to display it on your Geckoboard.  In this case, we know that 238 people visited yesterday but only 123 visited today.  You need to put those 2 numbers into a document that Geckoboard understands; we've got examples of the different document formats in the API section of the support forum.  Here we want to show today's value and the change since yesterday so we're going to choose the Number and secondary stat widget type.  Here's the format:

<?xml version="1.0" encoding="UTF-8"?> <root>  <item>  <value>123</value>  <text></text>  </item>  <item>  <value>238</value>  <text></text>  </item> </root>

If you're not used to XML this might look a bit intimidating but don't worry, we're only interested in 2 parts of this document, the number for yesterday's visitors and then number for today's.  Simply copy the text into a new text document then substitute your numbers as shown in diagram below.

You then need to save the document to a location that Geckoboard can read it from.  This is typically somewhere on you own web server or some publicly accesible site.  In this example I'm going to use the public folder of my free Dropbox account.  You can see the document here.

All that's left is to configure a new custom widget on my Geckoboard status board to display this data.  

Add widget >> Custom Widget >> Number & Secondary Stat

And configure as follows:

URL data feed:  The address where your document can be reached

API Key: Empty

Widget type: Custom

Feed format: XML

Reload time (mins): 60

Label: Today's visitors (or whatever you want).

Then just click "Add to dashboard" and you should have something like this

That concludes the introduction to the Geckoboard API, we've covered the fundamentals but barely scratched the surface.  In the next instalment I'm going to round up the existing wrappers and scripts aimed at making automated scripts easier on the platform of your choice.  In the meantime, if you've already used the API we'd love to hear from you.  What problem were you trying to solve?  How easy or difficult was it?

Paul Joyce October 08, 2010 11 Share Your Custom Widgets

magento_logo.pngImagine being able to keep an eye on your important eCommerce metrics on a large screen that auto updates!  That sounds like a perfect candidate for a Geckoboard widget!

To get the ball rolling we're starting with one of the most widely used eCommerce platforms, Magento.  The implementation is a little different to how we usually do it as Magento is self-hosted software, but it gives us the opportunity to really build what people need and it allows them to customise it to their taste.  Right now, the script outputs either the volume or total value of orders between 2 dates, and optionally also outputs the same data from a different period for the sake of comparison.  The periods can be send via URL parameters.

An example of how it would be used with Geckoboard would be to show the volume/value of sales on your Magento store over the past 30 days and compare it to the previous 30 days.   

Warning

magentoWidgets.pngToday we're releasing v1 of the Magento script, it's not perfect but it's a start and with your help and feedback we can make it into something special.  This script was written by me, Paul, while the developers of Geckoboard (the brains behind the whole operation) were working on some major changes to the dashboard.  My PHP skills are poor so see this as a test script and only deploy to production when you're satisfied it doesn't break anything.  You have been warned.

One final thing before we get on to explaining how this works, please do change the script and adapt it to your purpose but please also share those changes with the rest of the community here.  You've nothing to lose and you could make a lot of people very happy :)

The files need to be unzipped and placed in the same directory (I simply used the root of my local Magento test install).  You'll need to make some modifications to gbwidgets.php before you start:
Line 54.  You need to change the URL here to reflect your server.  My Magento root for testing was http://localhost:8888/magento, I don't know a lot about Magento but I reckon if you substitute your shop's home page for that string it should be OK.  So your URL would look something like http://www.yourmagentoshopname.com/api/soap/?wsdl I reckon.
Line 58.  Substitute your values for apiUser and apiKey.  These are the ones you set up in the admin console under System>>Web Services
Line 62.  This is a filter which tells the script what order statuses to ignore.  It's currently ignores order with a status of 'On Hold', 'Canceled', 'Suspected Fraud' and 'Payment Review'.  Change this if you want to.  You can also add any other filters here.
Line 79.  For security this file can only be accessed by a user with a security key.  At the moment it's set to '123', change this here and keep a note of it, you'll need it for the Geckoboard part.
How to use
Assuming you placed the scripts in the root of your Magento install and that's located at "http://www.yourmagentoshopname.com/" here's an example URL you would use:
This would return 2 values; the value of sales in the 30 days to last night and the value of sales in the 30 days previous to that.  The XML that's produced (or JSON if you prefer, see line 12 of gbwidgets.php) is enough to drive the "Number and secondary stat" Geckoboard widget.  See this page for more info on the custom widget types.  This part is lifted from the documentation in the script:
     * ps - period start (days ago incl.) - default 1 
     * pe - period end - default 1
     * pps - prior period start (for comparison purposes) - optional
     * ppe - prior period end - optional
     * m - metric type - 1=order volume, 2=order value (default 1)
     * The default values will return sales yesterday.  To return sales in past 30 days (including today) and compare against previous 30 days use the following:
     * ps=30&pe=1&pps=60&ppe=31
In Geckoboard
Once your scripts are modified and ready to go, fire up your Geckoboard dashboard and add a new widget.  Use Custom Widget>>Number and secondary stat with the following settings:
URL data feed.  Use the url to the script with whatever parameters you want.  E.g. http://www.yourmagentoshopname.com/gbwidget.php?ps=30&pe=1&...
API key.  Use the value you set in step 4 above.  Default 123
Widget type.  Custom
Feed format.  XML
Reload time.  300
Label.  Whatever you want!
Cross your fingers and hope for the best :)
This is only the beginning - you can enhance this script to return different metrics and format the data for different widget types including the newly introduced custom charts.  Once you confirm this is working I'll open it out to others on the Help & Support forum and hopefully you guys can build on it from there.
In the meantime, let me know if anything is unclear or if you're having any difficulty and I'll do my best to help.

Installation

There are two files attached to this post (response.class.php and gbwidget.php, find them at the bottom) that need to be uploaded the same directory on a publicly accessible server capable of executing php (I simply used the root of my local Magento test install).  You'll need to make some modifications to gbwidgets.php before you start:

  1. Line 54:  You need to change the URL here to reflect your server.  My Magento root for testing was http://localhost:8888/magento, I don't know a lot about Magento but I reckon if you substitute your shop's home page for that string it should be OK.  So your URL might look something like http://www.yourmagentoshopname.com/api/soap/?wsdl .
  2. Line 58:  Substitute your values for apiUser and apiKey.  These are the ones you set up in the admin console under System>>Web Services
  3. Line 62:  This is a filter which tells the script what order statuses to ignore.  It's currently ignores order with a status of 'On Hold', 'Canceled', 'Suspected Fraud' and 'Payment Review'.  Change this if you want to.  You can also add any other filters here.
  4. Line 79:  For security this file can only be accessed by a user with a security key.  At the moment it's set to '123', change this here and keep a note of it, you'll need it for the Geckoboard part.

How to use

Assuming you placed the scripts in the root of your Magento install and that's located at "http://www.yourmagentoshopname.com/" here's an example URL you would use:

http://www.yourmagentoshopname.com/gbwidget.php?ps=30&pe=1&pps=60&ppe=31&m=2

This would return 2 values; the value of sales in the 30 days to last night and the value of sales in the 30 days previous to that.  The XML that's produced (or JSON if you prefer, see line 12 of gbwidgets.php) is enough to drive the "Number and secondary stat" Geckoboard widget.  See this page for more info on the custom widget types.  This part is lifted from the documentation in the script:    

  • ps - period start (days ago incl.) - default 1
  • pe - period end - default 1
  • pps - prior period start (for comparison purposes) - optional
  • ppe - prior period end - optional
  • m - metric type - 1=order volume, 2=order value (default 1)
  • The default values will return sales yesterday.  To return volume of sales in past 30 days (including today) and compare against previous 30 days use ps=30&pe=1&pps=60&ppe=31

In Geckoboard

Once your scripts are modified and ready to go, fire up your Geckoboard dashboard and add a new widget.  Use Custom Widget>>"Number and secondary stat" with the following settings:

Custom Widget Settings
URL data feed Use the url to the script with whatever parameters you want.  E.g. http://www.yourmagentoshopname.com/gbwidget.php?ps=30&pe=1&pps=60&ppe=31&m=2
API key Use the value you set in step 4 above.  Default 123
Widget type Custom
Feed format XML
Reload time 300
Label Whatever you want!

Now just hit "Add to dashboard", and you're done!

What now?

This is only the beginning - you can enhance this script to return different metrics and format the data for different widget types including the newly introduced custom charts.  Once you confirm this is working I'll open it out to others on the Help & Support forum and hopefully you guys can build on it from there.
In the meantime, let me know if anything is unclear or if you're having any difficulty and I'll do my best to help.

Paul Joyce October 07, 2010 14 Share Your Custom Widgets

Google Alerts allow you to know when something you're interested in is mentioned around the internet.  You tell Google what it should look for and it will alert you every time it finds it either by email or via a RSS feed.

I've had a few requests for how to add Google Alerts to your geckoboard so I thought I knock up a quick tutorial on how you can do it yourself using YQL and some online storage.  Before you begin you'll need 2 things:

  1. The URL for the Google Alert RSS feed you're interested in.  Go to http://www.google.com/alerts/manage to get the feed URL for an existing Google Alert, or create an new one.
  2. Some online storage to put a file.  You can use anything at all here as long as it's publicly accessible.  The files doesn't contain any private data.  I've found using a free Dropbox account works really well with the file in the public folder.

It would be great if we could just use any feed and pass it straight to Geckoboard but we can't.  Geckoboard needs to be fed data in a particular way to allow it to know what it needs to display where.  This is where Yahoo's excellent YQL comes in.  Don't worry if you're not technically minded, I'll make the instructions easy to follow.  In a nutshell, YQL allows you to take data from the internet and use it elsewhere; in this case we're going to take the data from your Google Alerts feed and put it into a format that Geckoboard can read and display.

googleAlerts.png

Step 1: Create a new file

In order to put it into a structure Geckoboard can understand we need to manipulate it using XSLT.  I've done all the work for you so you just need to open a text editor and paste the code below.

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
   <xsl:output method="xml" encoding="utf-8"/>
<xsl:template match="/">
<xsl:apply-templates select="/atom:feed"/>
</xsl:template>
<xsl:template match="/atom:feed">
<root>
<xsl:apply-templates select="atom:entry"/>
</root>
</xsl:template>
<xsl:template match="atom:entry">
<item>
<text>
<xsl:value-of select="concat(substring-before(atom:updated,'T'),': ','&#60;a href=&#34;',atom:link/@href,'&#34;&#62;',atom:title,'&#60;/a&#62;')"/>
</text>
<type>0</type>
</item>
</xsl:template>
</xsl:stylesheet>
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:dc="http://purl.org/dc/elements/1.1/">
  	<xsl:output method="xml" encoding="utf-8"/>
	
	<xsl:template match="/">
		<xsl:apply-templates select="/atom:feed"/>
	</xsl:template>
	
	<xsl:template match="/atom:feed">
		<root>
			<xsl:apply-templates select="atom:entry"/>
		</root>
	</xsl:template>
	
	<xsl:template match="atom:entry">
		<item>
			<text>
			<xsl:value-of select="concat(substring-before(atom:updated,'T'),': ','&#60;a href=&#34;',atom:link/@href,'&#34;&#62;',atom:title,'&#60;/a&#62;')"/>
			</text>
			<type>0</type>
		</item>
	</xsl:template>

</xsl:stylesheet>

You need to save this a file called googlealerts.xsl on the public folder of your Dropbox account or somewhere else where it's publicly accessible.  

TIP:  See this article to find how to get the URL for your file using Dropbox

Now, just verify it's publicly accessible by typing the url into your search engine - if you can see the file then keep the URL somewhere safe; we're ready to go on the next step.

 

Step 2: Using YQL

So now you should have 2 URLs.  Your Google Alert feed URL and the URL to that you created in the previous step.  You're now going to combine them together in a YQL query.

1.  Go to http://y.ahoo.it/utQ78uZe  In the top part of the window you'll see the following YQL query:

select * 
from xslt 
where url = 'PUT YOUR GOOGLE ALERT LINK HERE' 
and stylesheet = 'PUT YOUR googlealerts.xsl LINK HERE '

2.  Simply paste the 2 links in the appropriate part of the query so it looks something like this:

select * 
from xslt 
where url = 'http://www.google.com/alerts/feeds/02409934318269871026/17580548552...' 
and stylesheet = 'http://dl.dropbox.com/u/512939/GB/googleAlerts.xsl'

3.  Directly beneath the query window there are a series of buttons.  You should ensure JSON is selected, the text field next to it is empty and Diagnostics is unchecked.  See the image below if you're unsure.  Now hit the TEST button.  If all is well you should see a bunch of data in the main window, if you don't or it displays an error please review the steps above.

YQLsetup.png

4.  Finally copy the REST URL by using the "COPY URL" button at the bottom right of the page in the blue section.  Keep this URL somewhere safe, we need it for the last step.


Step 3: Geckoboard

Log on to your Geckoboard then...

1.  Add widget >> Custom Widgets >> Text >> Choose the middle, 2x1 option

2.  Fill in the config form as follows:

URL data feed: Use the URL you got from the previous step.  This should start with http://query.yahooapis.com
API key: leave blank
YQL
JSON
60
Label:  Give it a name, e.g. Google Alerts.

3. Click "Add to Dashboard", and you're done!

Paul Joyce July 29, 2010 9 Announcements

Read the full article "Dashboard Updates: Google Calendar and More" on the Geckoboard Blog.