Ad-hoc Data Workflows with Google Apps Script

At tonight’s Manchester Google Technology User Group’s meetup at Madlab, I gave a talk on building ad-hoc data workflows with Google Apps Script.

The Google Apps application set, combined with the universally accessible and always-on nature of Google Apps Script, with its access to a ridiculously large set of useful APIs (in the form of Services), makes an ideal platform for rich collaborative data workflow solutions that can be quickly prototyped, and built into robust, reliable and incredibly useful mashups for you and your users.

I’ve become a big fan of the technology, the platform and the approach, and Google are introducing more features all the time – just this week access to API services have been introduced, starting with BigQuery, Prediction, UrlShortener and Tasks APIs.

2 thoughts on “Ad-hoc Data Workflows with Google Apps Script

  1. Saqib Ali

    DJ,

    As you noted, Google Apps Script is excellent for data workflows. It acts as a super glue for various data repositories (e.g. spreadsheets, sites, gdocs, gmail) in the Google Apps suite. However, I am noticing that it is not so good for process workflows. By process workflows, I am referring to workflows that require human input.

    Let me explain with some examples. We have built an application using Google Apps Script and APIs where individual contributors to our company projects can come and enter the weekly project status, and then it rolls-up the management chain at the end of the week. Now we would like to add the ability to add a workflow where the person’s manager/director has to approve each status before it rolls-up to the VP and displayed on the dashboard, and also would like to provide the ability to edit the status before the roll-up. Pretty staight-forward. Should be easy to define. Doable using Google Apps Scripting, but not so easy. You have to define the approval hierarchy, and the manage the workflows states as JSON objects in spreadsheet etc. etc. This works ok for simpler workflows with linear approvals with 1 or 2 parties involved, but becomes super complex and almost impossible to manage with non-linear multi-node workflow approvals. It feels like I’m writing my own workflow engine using a tree parser :). Compare this to products like OrangeScape or LongJump which provide a visual workflow builder to define workflows like these. Couple of days worth of work vs. couple of hours of work. Also most of these departmental workflows are designed by non-developer power users. Try explaining what JSON is to these folks :)

    Another example is an workflow which simply triggers an event in another system using REST APIs. This requires logging of the the multi-level approval history for auditing purposes. Again, doable using Google Apps Scripting and Spreadsheets, but definitely not something that can be developed by a power-user. They would require a developer to develop this workflow.

    Yet another example, an application I wrote that allows the end-users to upload files to a GDocs collection from an spreadsheet. Spreadsheet is used for tracking the metadata of the uploaded content. We would like to add a simple workflow where the manager has to approve before uploaded file is shared with rest of the group or added to a site. Again this would require setting up of the management hierachy and manually tracking the workflow state as JSON objects in the spreadsheet.

    Like I said earlier, all of these are possible using Google Apps Scripting / APIs. But can a non-developer define these workflows? Probably not. That is where a visual workflow designer comes in handy.

  2. Pingback: Manchester Google Technology User Group | Manchester Digital Laboratory

Comments are closed.