Google Apps Script: New ways to deliver workflow solutions for businesses

Google Sites offers an incredible way to author and distribute content, and we use it extensively both for ourselves and our clients. Therefore it was not surprising that our customers started requesting a content approval workflow in Google Sites. Now with Google Apps Script, we have been able to develop Appogee Content Approval for Google Sites.

The Solution
Appogee Content Approval for Google Sites (ACA) can be set up for any existing Google Site without having to make any changes to the site. ACA works as follows:

  1. The ACA spreadsheet generates a Content Submission Form and any content submitted is routed to a selected approver.
  2. The approver receives an email notification, which they can authorize or reject.
  3. Once authorized, the ACA spreadsheet writes the new content into the target Site using Apps Script’s Sites services. The new content is then visible to anyone with view permissions in the target site.
Approver receives an email containing the submitted content


The content submission URL can be shared to any group or published directly on the target Google Site, which represents the end goal on the workflow diagram below. Content may only be submitted by users that are logged into your domain and content can only be published with Approver sanction.

ACA Workflow Diagram
Google Apps Script made it easy

We used a number of Apps Script services to develop this application. Apps Script was an easy choice as it builds on pooled knowledge from the Google Web Toolkit (GWT) and uses Javascript syntax. Using Apps Script’s UI Services, we were able build up a working user interface quickly. Google has since introduced a new experimental feature to complement the UI Services, which provides a drag and drop GUI for building screens. We expect this feature to reduce development time required for building future apps, as well as offering a wide range of widgets and controls to improve the user experience. We used a standard Google spreadsheet as a kind of a data store in ACA. It’s worth mentioning that Apps Script’s documentation site has a plethora of tutorials covering everything from simple spreadsheet macros to full help desk applications.

One of Google Apps Scripts’ core features is the ability to seamlessly integrate different services together, in our case this was Google Sites and Spreadsheets, but many other services are accessible, such as Mail and Contacts. It was always the aim to make ACA a powerful tool without unnecessary complexity and thanks to Google Apps Script, we have successfully delivered content approval workflow to Google Sites.

The Intelligent Business Apps with the Google Prediction API

The Google Prediction API exposes Google’s machine learning algorithms as a RESTful API for use by applications around the web. This allows developers to replace repetitive manual processes with automated and smarter code, saving users valuable time and preventing headaches. The Prediction API first launched in at I/O 2010 and the team recently added a number of enhancements that make it more powerful for many types of business applications.

What can the Prediction API do?

The basic job of machine learning is to recognize historical patterns in data and use those patterns to make intelligent predictions in the future.

Some great use cases:

  • Spam detection: Does your product allow users to submit content? Do some users abuse this opportunity by submitting spam? Instead of maintaining a large number of regular expressions trying to catch common types of spam, you can use the Prediction API to automatically detect it and react accordingly.
  • Sentiment analysis: Are you building a CRM that keeps track of exchanges with customers? You could use the Prediction API to analyze correspondence with customers and detect when a customer might be communicating with a really negative or positive tone. This can alert you to when you might need to improve a relationship or even start writing a customer success story.
  • Tagging & organizing: Does your application store a lot of unstructured content? You can provide organization for this content by automatically tagging it based on how your users have previously tagged similar content.
  • Message routing: If you have a CRM that needs to route leads to the most appropriate people or a helpdesk ticket system that needs to route tickets to the correct support team, the Prediction API can help. Instead of writing a set of rules for which leads or tickets get routed to which people, use machine learning to predict the routing based on historical patterns.

On example: We built a demo app that uses the Prediction API to predict what types of applications a company might want to add from the Google Apps Marketplace based on the demographics of the company and a sampling of previous install data.

You can also try out some pre-built demonstration models in the Hosted Model Gallery.

How does it work?

Simple process:

  1. Upload training data to Google Storage. Training data is formatted as a CSV file with the first column representing the result (categorical or real-valued) and the remaining columns representing separate features contributing to the result.Example for predicting the size of a person in meters:
    “Height in meters”, “Gender”, “Father’s height”, “Mother’s height”, “Country of origin”

  2. Train a model based on the uploaded data. You only need to make a single REST call to start the asynchronous training process.
  3. Predict results based on new data
  4. (Optional) Tune the training model with new results. If you have new training data, you can now add it to your existing model to tune it.
  5. (Optional) Make your model available to others via the forthcoming Hosted Model Gallery.

June summary of Apps Marketplace

Last month Google  announced Google Apps Marketplace Staff Picks, an effort to highlight personal picks from the Marketplace team that have a combination of great functionality and ease of use due to their deep integrations with Google Apps.

Staff Picks are announced on the @GoogleAtWork Twitter account using #mpstaffpick, promoted on the Marketplace and summarized on the Enterprise Blog. We’ll also summarize the recent Staff Picks on this blog, with a stronger developer focus.

Recent Staff Picks are integrated with Gmail, Calendar, Contacts, Docs, Talk, Apps Script and more:

  • Mavenlink (slideshow) – a project management solution for professional services delivery. Integrates with Calendar, Contacts and Docs plus provides a lot of great getting started information for new users.
  • Solve360 (slideshow) – a CRM that integrates with Google Apps to help manage client projects. Provides a full-featured Gmail Contextual Gadget. Contacts sync is 2-way, and they also provide Google Apps Script code that allows customers to use Spreadsheets forms for lead generation, automatically populating submissions into Solve360.
  • Smartsheet (slideshow) – a project management and collaboration tool based on a spreadsheet concept that makes it easy to keep track of tasks and deadlines. Great Gmail, Calendar, Docs and Contacts integration, allowing users to easily import data from and export data to Google Spreadsheets and collaborate with users in their contact lists. The Gmail Contextual Gadget allows to you receive alerts upon sheet updates, and automatically make changes from within your e-mail.
  • GQueues (slideshow) – a task management app that lets you share lists, assign tasks, get reminders and stay organized. Integrates with Gmail, Calendar, Contacts, Google Talk, and provides great gadgets that can be used in Calendar, Gmail or iGoogle. They also have an offline-capable HTML5 mobile app, which the founder has blogged about recently on the Google Code Blog.

We hope that the deep and valuable integrations in these applications inspire you to develop additional integrations with Google Apps in your own applications.