Building solutions using the G Suite developer platform

Posted by Charles Maxson, Developer Advocate, G Suite

Millions of users know G Suite as a collection of communication and productivity apps that enables teams to easily create, communicate, collaborate, and discover content to supercharge teamwork. Beneath the surface of this well-serving collection of apps is also an extensible platform that enables developers to build targeted custom experiences and integrations utilizing these apps, allowing G Suite’s vast user base to get even more value out of the platform.

At first glance, it may not be natural to think of the tools you use for day-to-day productivity and collaboration as a developer platform. But consider what makes up a developer platform; Languages, APIs, runtimes, frameworks, IDEs, ecosystem, etc; G Suite offers developers all of these things and more.

Let’s take a closer look at what makes up the G Suite developer platform and how you can use it.

G Suite as a Developer Platform

There are a lot of components that make up G Suite as a platform. As a developer, there is probably none more important than the data that your solution collects, processes and presents. As a platform, G Suite is both highly interoperable, secure, and also interestingly unique.

Being interoperable, G Suite lets you interact with your data–whether your data is in G Suite or elsewhere, no matter how you store it or how you want to analyze it. G Suite allows you to keep your data where it best suits your application, while offering you flexibility to access it easily. Some examples include rich integrations with sources like BigQuery or JDBC databases. Better yet, often little to no code is required to get you connected.

Where G Suite as a platform is unique regarding data is it can be used to store, or perhaps even more interesting, be used to produce data. For native storage, you may use Drive as a content repository, or store information in a Sheets spreadsheet, or collect it via Google Forms as a front end. Additionally, there are many scenarios where the content your users are engaging in (emails, chats, events, tasks, contacts, documents, identity, etc.) can be harnessed to create unique interactions with G Suite. Solutions that build off, or integrate with G Suite provide such unique business value, but regardless where your data resides, accessing it as a developer is a non-issue via the platform.

The core of the G Suite developer platform itself is composed of frameworks for developer features including G Suite Add-ons and Chatbots, as well as a comprehensive library of REST APIs. These allow you to interface with the full G Suite platform to create integrations, build extensions, add customizations, and access content or data.

G Suite Add-ons and Chatbots are frameworks specifically designed for G Suite that allow you to quickly and safely build experiences that enrich the way users interact within G Suite apps, while while the REST APIs give you essentially unlimited access to G Suite apps and data including Gmail, Classroom, Calendar, Drive, Docs, Sheets, Slides, Task, and more. What you build, and what you build with, including languages and dev environments is up to you!

The beauty of G Suite as a platform is how you can unlock complementary technologies like Google Cloud that expand the platform to be even more powerful. Think about a G Suite UI connecting to a Google Cloud Platform backend; the familiar interface of G Suite coupled with the phenomenal power and scale of GCP!

Building with GCP from G Suite, you have access to components like the AI platform. This enables scenarios like using Google Sheets as a front end to AI tools like the Vision, Natural Language and the Translation APIs. Imagine how you can change the way users interact with G Suite, your app and your data combined with the power of ML?

Another useful concept is how you can add natural conversational experiences to your app in G Suite with tools like DialogFlow. This way instead of writing complicated interfaces users have to learn, you could build a G Suite Chat bot that invokes Dialogflow to allow users to execute commands directly from within their team conversations in Chat. So for example, users could just ask a Chat bot to “Add a task to the project list” or “Assign this issue to Matt”. A recent example of this is DataQnA, a natural language interface for analyzing BigQuery data.

BigQuery is another GCP tool that works natively with G Suite to allow you to analyze and leverage larger, complicated data sets while producing unique custom reports that can be surfaced in a user friendly way. One of the ways to leverage BigQuery with G Suite is through Connected Sheets, which provides the power and scale of a BigQuery data warehouse in the familiar context of Sheets. With Connected Sheets, you can analyze billions of rows of live BigQuery data in Google Sheets without requiring SQL knowledge. You can apply familiar tools—like pivot tables, charts, and formulas—to easily derive insights from big data.

One relatively new addition to the Google Cloud family also worth mentioning here is AppSheet. AppSheet is a no-code tool that can be used to quickly build mobile and web apps. Being no-code, it may seem out of place in a discussion for a development platform, but AppSheet is a dynamic and agile tool that makes it great for building apps fast or envisioning prototypes, while also connecting to G Suite apps like Google Sheets, allowing you to access G Suite platform data with ease.

When you do need the power of writing custom code, one of the foundational components of the G Suite developer platform is Apps Script. For over a decade, Apps Script has been the server-less, JavaScript-based runtime that natively powers G Suite extensibility. Built directly into G Suite with its own IDE, Apps Script makes it super fast and easy to get started building solutions with nothing to install or configure, just open and start coding — or you can even let the macro recorder write code for you! Apps Script masks a lot of complexities that developers face like handling user authentication, allowing you to focus on creating solutions quickly. Its native integration and relative simplicity also welcomes developers with diverse skill levels to build customized workflows, menus and UI, automations and more right inside G Suite.

While Apps Script is nimble and useful for many use cases, we know that many developers have preferences around tools, languages and development environments. G Suite is an open platform that encourages developers to choose options that makes them more productive. In continuing to build on that principle, we recently introduced Alternate Runtimes for G Suite Add-ons. This new capability allows you to create solutions using the G Suite Add-ons framework without being bound to Apps Script as a toolset, giving you the choice and freedom to leverage your existing preferences and investments in hosting infrastructure, development tools, source control, languages, and code libraries, etc.

Finally, what completes the vision of G Suite as a developer platform is that you have the confidence and convenience of an established platform that is broadly deployed and backed by tools like Google Identity Management and the G Suite Admin Console for administration and security. This enables you to build your solutions–whether its a customized solution for your internal users or an integration between your software platform and G Suite–and distribute them at a domain level or even globally via the G Suite Marketplace, which is an acquisition channel for developers and a discovery engine for end-users and enterprise admins alike.

Now that you can see how G Suite is a developer platform, imagine what you can build?

Visit the G Suite Developer homepage and get started on your journey today.

Building G Suite Add-ons with your favorite tech stack

Posted by Jon Harmer, Product Manager and Steven Bazyl, Developer Advocate for G Suite

Let’s talk about the basics of G Suite Add-ons. G Suite Add-ons simplify how users get things done in G Suite by bringing in functionality from other applications where you need them. They provide a persistent sidebar for quick access, and they are context-aware — meaning they can react to what you’re doing in context. For example, a CRM add-on can automatically surface details about a sales opportunity in response to an email based on the recipients or even the contents of the message itself.

Up until recently, G Suite Add-ons leaned on Apps Script to build Add-ons, but choice is always a good thing, and in some cases you may want to use another scripting language.. So let’s talk about how to build Add-ons using additional runtimes:

First, additional runtimes don’t add any new capabilities to what you can build. What it does give you is more choice and flexibility in how you build Add-ons. We’ve heard feedback from developers that they would also like the option to use the tools and ecosystems they’ve already learned and invested in. And while there have always been ways to bridge Apps Script and other backends that expose APIs over HTTP/S, it isn’t the cleanest of workarounds. .

So let’s look at a side by side comparison of what it looks like to build an Add-on with alternate runtimes:

function homePage() {
let card = CardService.newCardBuilder()
.addSection(CardService.newCardSection()
.addWidget(CardService.newTextParagraph()
.setText("Hello world"))
).build();
return [card];
}

Here’s the hello world equivalent of an Add-on in Apps Script. Since Apps Script is more akin to a serverless framework like GCF, the code is straightforward — a function that takes an event and returns the UI to render.

// Hello world Node.js
const express = require('express');
const app = express();
app.use(express.json());

app.post('/home', (req, res) => {
let card = {
sections: [{
widgets: [{
textParagraph: {
text: 'Hello world'
}
}]
}]
};
res.json({
action: {
navigations: [{
pushCard: card
}]
}
});
}

This is the equivalent in NodeJS using express, a popular web server framework. It shows a little bit more of the underlying mechanics — working with the HTTP request/response directly, starting the server, and so on.

The biggest difference is the card markup — instead of using CardService, which under the covers builds a protobuf, we’re using the JSON representation of the same thing.

function getCurrentMessage(event) {
var accessToken = event.messageMetadata.accessToken;
var messageId = event.messageMetadata.messageId;
GmailApp.setCurrentMessageAccessToken(accessToken);
return GmailApp.getMessageById(messageId);
}

Another area where things differ is accessing Google APis. In Apps Script, the clients are available in the global context — the APIs mostly ‘just work’. Moving to Node requires a little more effort, but not much.

Apps Script is super easy here. In fact, normally we wouldn’t bother with setting the token when using more permissive scopes as it’s done for us by Apps Script. We’re doing it here to take advantage of the per-message scope that the add-on framework provides.

const { google } = require('googleapis');
const { OAuth2Client } = require('google-auth-library');
const gmail = google.gmail({ version: 'v1' });

async function fetchMessage(event) {
const accessToken = event.gmail.accessToken;
const auth = new OAuth2Client();
auth.setCredentials({access_token: accessToken});

const messageId = event.gmail.messageId;
const res = await gmail.users.messages.get({
id: messageId,
userId: 'me',
headers: { 'X-Goog-Gmail-Access-Token': event.gmail.accessToken },
auth
});
return res.data;
}

The NodeJS version is very similar — a little extra code to import the libraries, but otherwise the same — extract the message ID and token from the request, set the credentials, then call the API to get the message contents.

Your Add-on, Your way

One of the biggest wins for alternate runtimes is the testability that comes with using your favorite IDE, language, and framework–all of which helps you make developing add-ons more approachable.

Both Apps Script and alternate runtimes for G Suite Add-ons have important places in building Add-ons. If you’re getting into building Add-ons or if you want to prototype more complex ones, Apps Script is a good choice.. If you write and maintain systems as your full time job, though, alternate runtimes allow you to use those tools to build your Add-on, letting you leverage work, code and processes that you’re already using. With alternate runtimes for G Suite Add-ons, we want to make it possible for you to extend G Suite in a way that fits your needs using whatever tools you’re most comfortable with.

And don’t just take our word for it, hear from one of our early access partners. Shailesh Matariya, CTO at Gfacility has this to say about alternate runtimes: “We’re really happy to use alternate runtimes in G Suite Add-ons. The results have been great and it’s much easier to maintain the code. Historically, it would take 4-5 seconds to load data in our Add-on, whereas with alternate runtimes it’s closer to 1 second, and that time and efficiency really adds up. Not to mention performance, we’re seeing about a 50% performance increase and thanks to this our users are able to manage their workflows with just a few clicks, without having to jump to another system and deal with the hassle of constant updates.”

Next Steps

Read the developer documentation for Alternate Runtimes and sign up for the early access program.

Introducing an easier way to design your G Suite Add-on

Posted by Kylie Poppen, Senior Interaction Designer, G Suite and Akshay Potnis, Interaction Designer, G Suite

You’ve just scoped out an awesome new way to solve for your customer’s next challenge, but wait, what about the design? Building an integration between your software platform and another comes with a laundry list of things to think about: your vision, your users, their experience, your partners, APIs, developer docs, and so on. Caught between two different platforms, many constraints, and limited time, you’re probably wondering: how might we build the most intuitive and powerful user experience?

Imagine making a presentation, with Google Slides you have all sorts of templates to get you started, and you can build a great deck easily. But, to build a seamless integration between two software platforms, those pre-built templates don’t exist and you basically have to start from scratch. In the best case scenario, you’d create your own components and layer them on top of each other with the goal of making the UI seem just about right. But this takes time. Hours longer than you want it to. Without design guidelines, you’re stuck guessing what is or is not possible, looking to other apps and emulating what they’ve already done. Which leads us to the reality that some add-ons have a suboptimal experience, because time is limited, and you’re left to build only for what you know you can do, rather than what’s actually possible.

To simplify all of this, we’re introducing the G Suite Add-ons UI Design Kit, now live on Figma. With it you can browse all of the components of G Suite Add-ons’ card-based interface, learn best practices, and simply drag-and-drop to create your own unique designs. Save the time spent recreating what an add-on will look like, so that you can spend that time thinking about how your add-on will work .

While the UI Design Kit has only been live for a little over a month, we’ve already been hearing feedback from our partners about it’s impact.

“Zapier connects more than 2,000 apps, allowing businesses to automate repetitive, time-consuming tasks. When building these integrations, we want to ensure a seamless experience for our customers,” said Ryan Powell, Product Manager at Zapier. “However, a partner’s UI can be difficult to navigate when starting from scratch. G Suite’s UI Design Kit allows us to build, test and optimize integrations because we know from the start what is and is not possible inside of GSuite’s UI.”

Here’s how to use the UI Design Kit:

Step 1

Find and duplicate design kit

  • Search for G suite on Figma community or use this link
  • Open G Suite Add Ons UI Design Kit
  • Just click the duplicate button.

Step 2

Choose a template to begin

  • Go to UI templates page
  • Select a template from the list of templates

Step 3

Copy the template and detach from symbols to start editing

Helpful Hints: Features to help you iterate quickly

Build with auto layout, you don’t need to worry about the details.

  • Copy paste maintains layout padding & structure.

  • Maintained padding & structure while editing.

  • Built in fixed footer and peek cards.

Visualize your design against G-Suite surfaces easily.

Documentation built right into the template.

  1. Go to the component page (e.g section)
  2. Find layout + documentation / api links on respective pages

Next Steps to Consider:

With G Suite Add-ons, users and admins can seamlessly get their work done, across their favorite workplace applications, without needing to leave G Suite. With this UI Design Kit, you too can focus your time on building a great user experience inside of G Suite, while simplifying and accelerating the design process. Follow these steps to get started today:

Download the UI Design Kit

Get started with G Suite Add-ons

Hopefully this will inspire you to build more add-ons using the Cards Framework! To learn more about building for G Suite, check out the developer page, and please register for Next OnAir, which kicks off July 14th.

Automate & Extend with Apps Script (Google Cloud for Student Developers)

Posted by Wesley Chun (@wescpy), Developer Advocate, Google Cloud

In the previous episode of our new Google Cloud for Student Developers video series, we introduced G Suite REST APIs, showing how to enhance your applications by integrating with Gmail, Drive, Calendar, Docs, Sheets, and Slides. However, not all developers prefer the lower-level style of programming requiring the use of HTTP, OAuth2, and processing the request-response cycle of API usage. Building apps that access Google technologies is open to everyone at any level, not just advanced software engineers.

Enhancing career readiness of non-engineering majors helps make our services more inclusive and helps democratize API functionality to a broader audience. For the budding data scientist, business analyst, DevOps staff, or other technical professionals who don’t code every day as part of their profession, Google Apps Script was made just for you. Rather than thinking about development stacks, HTTP, or authorization, you access Google APIs with objects.

This video blends a standard “Hello World” example with various use cases where Apps Script shines, including cases of automation, add-ons that extend the functionality of G Suite editors like Docs, Sheets, and Slides, accessing other Google or online services, and custom functions for Google Sheets—the ability to add new spreadsheet functions.

One featured example demonstrates the power to reach multiple Google technologies in an expressive way: lots of work, not much code. What may surprise readers is that this entire app, written by a colleague years ago, is comprised of just 4 lines of code:

function sendMap() {
var sheet = SpreadsheetApp.getActiveSheet();
var address = sheet.getRange('A1').getValue();
var map = Maps.newStaticMap().addMarker(address);
GmailApp.sendEmail('[email protected]',
'Map', 'See below.', {attachments:[map]});
}

Apps Script shields its users from the complexities of authorization and “API service endpoints.” Developers only need an object to interface with a service; in this case, SpreadsheetApp to access Google Sheets, and similarly, Maps for Google Maps plus GmailApp for Gmail. Viewers can build this sample line-by-line with its corresponding codelab (a self-paced, hands-on tutorial). This example helps student (and professional) developers…

  1. Build something useful that can be extended into much more
  2. Learn how to accomplish several tasks without a lot of code
  3. Imagine what else is possible with G Suite developer tools

For further exploration, check out this video as well as this one which introduces Apps Script and presents the same code sample with more details. (Note the second video emails the map’s link, but the app has been updated to attach it instead; the code has been updated everywhere else.) You may also access the code at its open source repository. If that’s not enough, learn about other ways you can use Apps Script from its video library. Finally, stay tuned for the next pair of episodes which will cover full sample apps, one with G Suite REST APIs, and another with Apps Script.

We look forward to seeing what you build with Google Cloud.

Google Cloud for Student Developers: Accessing G Suite REST APIs

Posted by Wesley Chun (@wescpy), Developer Advocate, Google Cloud

Recently, we introduced the “Google Cloud for Student Developers” video series to encourage students majoring in STEM fields to gain development experience using industry APIs (application programming interfaces) for career readiness. That first episode provided an overview of the G Suite developer landscape while this episode dives deeper, introducing G Suite’s HTTP-based RESTful APIs, starting with Google Drive.

The first code sample has a corresponding codelab (a self-paced, hands-on tutorial) where you can build a simple Python script that displays the first 100 files or folders in your Google Drive. The codelab helps student (and professional) developers…

  1. Realize it is something that they can accomplish
  2. Learn how to create this solution without many lines of code
  3. See what’s possible with Google Cloud APIs

While everyone is familiar with using Google Drive and its web interface, many more doors are opened when you can code Google Drive. Check this blog post and video for a more comprehensive code walkthrough as well as access the code at its open source repository. What may surprise readers is that the entire app can be boiled down to just these 3-4 lines of code (everything else is either boilerplate or security):

    DRIVE = discovery.build('drive', 'v3', http=creds.authorize(Http()))
files = DRIVE.files().list().execute().get('files', [])
for f in files:
print(f['name'], f['mimeType'])

Once an “API service endpoint” to Google Drive is successfully created, calling the list() method in Drive’s files() collection is all that’s needed. By default, files().list() returns the first 100 files/folders—you can set the pageSize parameter for a different amount returned.

The video provides additional ideas of what else is possible by showing you examples of using the Google Docs, Sheets, and Slides APIs, and those APIs will be accessed in a way similar to what you saw for Drive earlier. You’ll also hear about what resources are available for each API, such as documentation, code samples, and links to support pages.

If you wish to further explore coding with G Suite REST APIs, check out some additional videos for the Drive, Sheets, Gmail, Calendar, and Slides APIs. Stay tuned for the next episode which highlights the higher-level Google Apps Script developer platform.

We look forward to seeing what you build with Google Cloud!

Google Cloud for Student Developers: G Suite APIs (intro & overview)

Posted by Wesley Chun (@wescpy), Developer Advocate, Google Cloud

Students graduating from STEM majors at universities with development experience using industry APIs (application programming interfaces) have real-world practice that can prove valuable in terms of career readiness.

To that end, the Google Cloud team is creating a “Google Cloud for Student Developers” YouTube video series crafted specifically for the student developer audience.

While viewable by developers with any experience with Google Cloud, this series focuses on developing skills that will help student developers in their future careers. Google Cloud includes a pair of well-known product groups, Google Cloud Platform (GCP) as well as G Suite. While most equate GCP for developers and G Suite for users, many don’t know that behind each G Suite application like Gmail, Google Drive, Calendar, Docs, Sheets, and Slides, are developer APIs.

The Google Cloud higher education team is happy to announce the first of a 5-episode mini-series to kickoff the video collection that shows student developers how they can code G Suite, starting with this first one introducing the G Suite developer landscape. Viewers will hear about the HTTP-based RESTful APIs as well as Google Apps Script, a serverless higher-level development environment that allows for automation, extension of G Suite app functionality, as well as integration of your apps with Gmail, Drive, Calendar, Docs, Sheets, Slides, and many more G Suite, Google, and even external services.

Succeeding episodes dig deeper into the RESTful APIs as well as Apps Script, with the final pair of videos showing students full-fledged apps they can build with G Suite developer tools. To learn more about integrating with G Suite, see its top-level documentation site and overview page as well as the set of all G Suite developer videos. Also stay tuned for new episodes in the series that focus on GCP developer tools. We look forward to seeing what you can build with G Suite, but also with GCP as well… or both at the same time!

Evolving automations into applications using Apps Script

Posted by Wesley Chun (@wescpy), Developer Advocate, Google Cloud

Editor’s Note: Guest authors Diego Moreno and Sophia Deng (@sophdeng) are from Gigster, a firm that builds dynamic teams made of top global talent who create industry-changing custom software.

Prelude: Data input & management … three general choices

Google Cloud provides multiple services for gathering and managing data. Google Forms paired with Google Sheets are quite popular as they require no engineering resources while being incredibly powerful, providing storage of up to 5 million rows of data and built-in analytics for small team projects.

At the other end of the spectrum, to support a high volume of users or data, Google Cloud provides advanced serverless platforms like Google App Engine (web app-hosting) and Google Cloud Functions (function/service-hosting) that can use Google Cloud Firestore for fast and scalable data storage. These are perfect for professional engineering teams that need autoscaling to respond to any level of user traffic and data input. Such apps can also be packaged into a container and deployed serverlessly on Google Cloud Run.

However, it’s quite possible your needs are right in-between. Today, we’re happy to present the Gigster story and their innovative use of Google Apps Script—a highly-accessible service conventionally relegated to simple macro and add-on development, but which Gigster used to its advantage, building robust systems to transform their internal operations. Apps Script is also serverless, meaning Gigster didn’t have to manage any servers for their application nor did they need to find a place to host its source code.

The Gigster story

Gigster enables distributed teams of software engineers, product managers and designers to build software applications for enterprise clients. Over the past five years, Gigster has delivered thousands of projects, all with distributed software teams. Our group, the Gigster Staffing Operations Team, is responsible for assembling these teams from Gigster’s network of over 1,000 freelancers.

Two years ago, our team began building custom software to automate the multi-stage and highly manual team staffing process. Building internal software has allowed the same-size Staffing Operations Team (3 members!) to enjoy a 60x reduction in time spent staffing each role.

The Apps Script ecosystem has emerged as the most critical component in our toolkit for building this internal software, due to its versatility and ease of deployment. We want to share how one piece of the staffing process has evolved to become more powerful over time thanks to Apps Script. Ultimately, we hope that sharing this journey enables all types of teams to build their own tools and unlock new possibilities.

End-to-end automation in Google Sheets

Staffing is an operationally intensive procedure. Just finding willing and able candidates requires numerous steps:

  1. Gathering and formatting customer requirements.
  2. Communicating with candidates through multiple channels.
  3. Logging candidate responses.
  4. Processing paperwork for placement

To add complexity, many of these steps require working with different third-party applications. For awhile, we performed every step manually, tracking every piece of data generated in one central Sheet (the “Staffing Broadcast Google Sheet”). At a certain point, this back-and-forth work to log data from numerous applications became unsustainable. Although we leveraged Google Sheets features like Data Validation rules and filters, the Staffing Broadcast Sheet could not alleviate the high degree of manual processes that were required of the team.

centralized Staffing Broadcast Google Sheet

The centralized Staffing Broadcast Google Sheet provided organization, but required a high degree of manual entry for tracking candidate decisions.

The key transformation was integrating Sheets data with third-party APIs via Apps Script. This enabled us to cut out the most time-consuming operations. We no longer had to flip between applications to message candidates, wait for their replies, and then manually track responses.

To interact with these APIs, we built a user interface directly into the Staffing Broadcast Google Sheet. By introducing an information module, as well as drop-down lists and buttons, we were able to define a small set of manual actions versus the much wider list of tasks the tool would perform automatically across multiple applications.

integrating Apps Script with third-party APIs

By integrating Google Apps Script with third-party APIs and creating a user interface, we evolved the Staffing Broadcast Tool to centralize and automate almost every step of the staffing process.

doPost() is the key function in our staffing tool that facilitates third-party services triggering our Apps Script automations. Below is a snippet of how we listened to candidates’ responses from a third-party messaging application. In this case, queueing the third-party message in a Google Sheet so it can be processed with improved error-handling.

/**
* Receive POST requests and record to queue.
*/
doPost(e) {
var payload = e.postData.contents;
SpreadsheetApp.openById(SPREADSHEET_ID)
.getSheetByName("Unprocessed")
.appendRow([payload]);
return ContentService.createTextOutput(""); // Return 200
}

Almost all manual work associated with finding candidates was automated through the combination of integrations with third-party APIs and having a user interface to perform a small, defined set of actions. Our team’s day-to-day became shockingly simple: select candidates to receive messages within the Staffing Broadcast Tool, then click the “Send Broadcast” button. That’s it. The tool handled everything else.

Leveraging Sheets as our foundation, we fundamentally transformed our spreadsheet into a custom software application. The spreadsheet went from a partially automated datastore to a tool that provided an end-to-end automated solution, requiring only the click of a few buttons to execute.

Evolution into a standalone application

While satisfied, we understood that having our application live in Google Sheets had its limitations, namely, it was difficult for multiple team members to simultaneously use the tool. Using doGet(), the sibling to doPost(), we began building an HTML frontend to the Staffing Broadcast Tool. In addition to resolving difficulties related to multiple users being in a spreadsheet, it also allowed us to build an easier-to-use and more responsive tool by leveraging Bootstrap & jQuery.

Having multiple users in a single Google Sheet can create conflicts, but Apps Script allowed us to build a responsive web app leveraging common libraries like Bootstrap & jQuery that eliminated those problems while providing an improved user experience.

When other teams at Gigster got wind of what we built, it was easy to grant access to others beyond the Staffing Operations Team. Since Apps Script is part of the G Suite developer ecosystem, we relied on Google’s security policies to help deploy our tools to larger audiences.

While this can be done through Google’s conventional sharing tools, it can also be done with built-in Apps Script functions like Session.getActiveUser() that allow us to restrict access to specific Google users. In our case, those within our organization plus a few select users.

To this day, we continue to use this third version of the Staffing Broadcast Tool in our daily operations as it supports 100% of all client projects at Gigster.

Conclusion

By fundamentally transforming the Staffing Broadcast Tool with Apps Script, Gigster’s Staffing Operations Team increased its efficiency while supporting the growth of our company. Inspired by these business benefits, we applied this application-building approach using Apps Script for multiple tools, including candidate searching, new user onboarding, and countless automations.

Our team’s psychological shift about how we view what we are capable of, especially as a non-engineering team, has been the most valuable part of this journey. By leveraging an already familiar ecosystem to build our own software, we have freed team members to become more self-sufficient and valuable to our customers.

To get started on your Apps Script journey, we recommend you check out the Apps Script Fundamentals playlist and the official documentation. And if you’re a freelancer looking to build software applications for clients, we’re always looking for talented software engineers, product managers or designers to join Gigster’s Talent Network.

Thank you to Sandrine Bitton, the third member of the Staffing Operations Team, for all her help in the development of the Staffing Broadcast Tool.

How Bailey Nelson keeps customers in sharp focus with Chrome Enterprise

Editor’s note: Bailey Nelson is a global eyewear brand based in Sydney, Australia, with retail stores in Australia, the United Kingdom, Canada, and New Zealand. The company uses Chrome Enterprise, G Suite, and Chrome Browser to simplify and personalize the process of eyewear shopping.

If you wear glasses or contact lenses, you know that buying eyewear is challenging. Prescription glasses and contacts can be expensive, and you have to sort through a ton of optometry jargon. Bailey Nelson started in Australia’s iconic Bondi Beach to take down those barriers with service that’s down to earth, friendly, and affordable. Our service gets a big boost from Chrome Enterprise, Chrome Browser, and G Suite. Here’s how my IT team and I work behind the scenes to create a stylish tech experience.

Simplified IT management makes opening new stores a breeze

Our bid to make glasses-buying enjoyable has helped our business grow quickly—from one store to 70 during the past six years. But we have to match our rapid growth with consistently great service. 

I’ve got 11 people on my head-office IT team. That might sound like a lot, but in a company rolling out new locations on an almost monthly basis like we are, I might worry that IT couldn’t keep up. But any potential concerns disappear once I log into Google Admin console for Chrome Enterprise to centrally manage our 300 Chromeboxes. 

We have the process of opening stores and onboarding employees down pat. My IT team created a checklist of everything that needs to be done to get a store ready for customers: networking, HP Chromeboxes, policies—you name it. Chrome Enterprise and Chrome OS makes this “get new stores ready” process fast and relatively stress-free.) .

Like many IT leaders, I’m concerned about staying in control. I want employees to have freedom to deliver excellent customer service, but I also don’t want them to install software or go places online that might bring malware into our networks, or result in a bunch of trouble tickets. Since I can set policies in Chrome Enterprise, I decide who can use which apps and how they can use them. Store associates can’t break things, and I can control what I need to control, which keeps us all working safely.

Chrome Enterprise is fantastic because we can manage everything from the web. Since we can be decentralized, it doesn’t matter if you have two computers or 2,000. It’s easy at a large scale to group devices, and assign different policies. It’s very logical and intuitive. Carles Vallecillo
IT Manager, Bailey Nelson
chrome ent x bailey nelson 2.jpg

Delivering a great in-store experience with easy-to-use devices

We’re an innovative retail business, and one that’s more complicated because we’re selling a clinical device. That’s why we want employees to have technology that’s as simple to use as possible, so they can deliver a great retail experience at the same time they write up orders for prescription glasses. 

The process starts when I create a profile for an employee in G Suite. I assign a Google account to that profile, and in about 15 minutes, a new sales associate can start working on any Chromebox that I’ve shipped to Bailey Nelson stores. That short timeframe for account setup is a massive advantage for me and my IT colleagues, and for the business as well. 

While we work our magic in the background with Chrome Enterprise, store associates on the front lines of customer service log in and get started with work in less than a minute. As Ollie, one of our assistant managers, explains, he can start a document on a laptop in Google Docs, switch over to the same document on a desktop computer, and finish it and share it with coworkers from his phone—without a hitch. Every application store employees need—from our optical practice software, and Gmail, Drive, and Sheets—is accessed through Chrome Browser.

chrome ent x bailey nelson 3.jpg

Real-time employee collaboration on design docs

Google Drive isn’t only useful for backing up data—although knowing we can’t lose important company information is a relief. Now that we’re in four countries, we use Drive to share new store marketing campaign materials and updated branding guidelines. It’s incredibly easy to file everything away and share it globally.

In addition to Drive, we share and store important communications for staff in our intranet. Using Chrome Browser and Chromeboxes, store employees access information about the products that will be landing that week, receive direction on how to visually merchandise products in windows and on shelving, and even get training modules focused on the customer experience or policy changes.

chrome ent x bailey nelson 4.jpg

A fast and personalized experience in every store 

As Bailey Nelson grows, we’re very aware that fast and easily managed devices and operating systems are just as important to customer service as friendly, knowledgeable store associates. Chromeboxes and Chrome OS minimize the time that store employees spend on computers, which gives them more time to advise customers on their eyewear purchases. The technology isn’t just something that makes the IT team happy: It’s critical to helping us maintain that hyper-personal touch Bailey Nelson is known for.

Exploring Hangouts Chat’s built-in bots

I recently wrote an overview of how bots work in Hangouts Chat, and what you can do with them. If you haven’t explored chatbots in Chat, or if you’re a developer looking for ideas for the types of chatbots you can build, this post explores two useful chatbots, built right into Chat, that you can get started with.

Native chatbots 

Often when I introduce the concept of chatbots, folks assume I’m talking about building your own or using one of the many third-party chatbots available from our chatbot catalog. And for good reason—there are a lot of compelling use cases to integrate Chat with third-party apps or your own solutions. 

But if you want an easy way to explore the power and utility that chatbots offer to enhance conversations in Chat, look no further than our native @Meet and @Drive chatbots. Unlike many chatbots that integrate other apps with G Suite, @Meet and @Drive directly leverage the functionality of the popular G Suite apps Calendar and Drive, respectively. 

A case for bot automation

Imagine you and your team are busy chatting about an important topic, when you collectively realize you’ll need to schedule a follow-up meeting. The conversation pivots from the real work you were tackling to a round-robin scheduling exercise as someone asks,  “What’s a good time for everyone to meet again?” This sends everyone scrambling to look at their calendars. Precious minutes slip away as messages flood back into Chat such as “I can do Tuesday at 10 a.m.,” followed by the inevitable, “No, I can’t do Tuesday, how about Wednesday at 9:30?” And on it goes until you end up with a scheduled meeting—and a lot of wasted time.

Meet @Meet

The @Meet bot integrates Chat with Calendar using natural language processing and machine learning to automatically schedule and manage meetings. To avoid the scheduling scenario above, you can simply add @Meet to a room in Chat and give it a command using natural language:

 “@Meet find us a time to meet next week” 

Behind the scenes, @Meet will check the calendars of everyone in the room, find the best available times and respond with those options so you can quickly choose one: 

Here are some times I found; which of these should I schedule?

A) Mon, Feb 17, 9:00 AM – 10:00 AM PST
B) Tue, Feb 18, 9:00 AM – 10:00 AM PST
C) Thu, Feb 20, 9:00 AM – 10:00 AM PST
D) Fri, Feb 21, 9:00 AM – 10:00 AM PST

hangout chat meeting schedule.gif

@Meet “understands” several commands related to managing your schedule and working with meetings; you can direct message the bot or @mention it in a room in a number of useful contexts: 

  • Look up your schedule

  • Schedule new meetings

  • Modify a meeting that was just scheduled

  • Reschedule or cancel existing meetings

These capabilities make @Meet not just a showcase example of chatbots, but a useful, time-saving utility as well.

Test drive @Drive 

@Drive is an example of using a bot to deliver information and notifications based upon events or activities that don’t rely on direct user interaction. Unlike @Meet, where the user invokes the bot via conversation, @Drive enables you to “subscribe” to be notified of changes that happen to any of your content stored in Google Drive. This helps you stay on top of content changes from inside of Chat, without having to “watch” Drive for updates. 

Say you’re waiting for a colleague to add their remarks to one of your documents. @Drive notifies you as soon as new comments occur, eliminating the need to check Drive regularly or pester your colleague about whether they’ve reviewed your document yet.

hangout chat drive.jpg

The @Drive bot can be enabled by simply adding it to Chat. It starts “listening” immediately for any updates to your content or for new items shared with you. It can also easily be toggled to limit an abundance of notifications if it gets too chatty. I personally keep it on all the time since I use Chat throughout my day more frequently than Drive. This way I can quickly grant permissions or respond to comments without having to invoke Drive or worry about activities getting overlooked in my Gmail inbox. 

The @Drive bot provides notifications for:

  • New files or folders shared with you
  • Comment or action assigned to you
  • Access requests for files you own
  • When you’re close to running out of storage

Key resources to help you get started

The best way to understand the value of @Meet and @Drive is to experience them yourself. Here are some resources to get you started learning more about chatbots. 

Start using bots available from Google:

Build your own Chat bots:

From revenue growth to IT savings: See how G Suite can help boost your business

How do you connect the dots between the business productivity software you buy, and what you get for the money? This is something big businesses do all the time—hiring consultants who study things like employee productivity, IT operations, and budgets to come up with bottom-line numbers on what kind of return they’ll get for the investment. 

Fortunately, there’s now a fast and easy way for business owners to do the math on G Suite using our new Business Value Calculator.

If you’re like most business owners, you keep careful watch on budgets (as you should!)—and you want to see clear benefits when you decide to spend money on business software. According to “The Total Economic Impact of Google G Suite,” a commissioned study conducted by Forrester Consulting on behalf of Google, G Suite delivers measurable impact in four areas:

  • Revenue growth
  • Employee efficiency
  • Risk mitigation
  • IT cost savings

But what exactly will that look like at your company? That’s where the Business Value Calculator comes in. After answering a few simple questions about your business—like number of employees and annual profit margin—you’ll receive a personalized report showing how much time you can save and how much more revenue you can generate by switching to G Suite. It’s an eye-opening exercise that can help you place a dollar value on the benefits of using G Suite.

As you explore the Business Value Calculator, we hope you’ll discover how G Suite can help you increase revenue, help employees be more efficient, reduce risk, and save money down the road.

Once you have some numbers to crunch from the Business Value Calculator, make sure to start your 14-day free G Suite trial to put those findings into action.

Plan your Next ‘20 journey: Session guide available now

Get ready to make the most of Google Cloud Next ‘20: our session guide is now available.

At Google Cloud Next, our aim is to give you the tools you need to sharpen your technical skills, expand your network, and accelerate personal development. Across our hundreds of breakout sessions you’ll get the chance to connect and learn about all aspects of Google Cloud—from multi-cloud deployments, to application modernization, to next-level collaboration and productivity. Developers, practitioners, and operators from all over the world will come together at Next, and we hope you’ll join them.

This year we’re going deep on the skills and knowledge enterprises need to be successful in the cloud. Our catalog of technical content keeps growing, and this year we’re offering more than 500 breakout sessions, panels, bootcamps, and hands-on labs. These sessions will give you in-depth knowledge in seven core areas: 

  • Infrastructure—Migrate and modernize applications and systems on premises and in the cloud.
  • Application modernization—Develop, deploy, integrate, and manage both your existing apps and new cloud-native applications.
  • Data management and analytics—Take advantage of highly available and scalable tools to store and manage your structured and unstructured data, then derive meaningful insights from that data.
  • Cloud AI and machine learning—Leverage your data by applying artificial intelligence and machine learning to transform your business.
  • Business application development—Reimagine app development by helping you innovate with no-code development, workflow automation, app integration, and API management. 
  • Cloud security—Keep your systems, apps, and users better protected with world-class security tools.
  • Productivity and collaboration—Transform the ways teams grow, share, and work together.

This means you can troubleshoot and debug microservices in Kubernetes, get a primer on big data and machine learning fundamentals, then finish up your day by learning to build, deploy, modernize and manage apps using Anthos. Or pick from hundreds of other topics

Want to learn which sessions you don’t want to miss? Beginning in March, we’ll be publishing guides to Next from Google experts. Keep an eye on our blog.

Cardinal Group: How G Suite helps us foster a more collaborative culture

Editor’s note: Today’s post is written by Cara Athmann, VP of IT and Data at Cardinal Group, a Colorado-based property management, investment, and consulting company. Cardinal Group recently deployed Google Drive and G Suite to build a more collaborative and productive working environment for their more than 1,000 team members.

At Cardinal Group, we have four distinct lines of business, each of which are critical to our overall company performance: real estate investment, third-party property management, construction management, and marketing. As the VP of IT and Data, one of my top priorities is giving each of our team members across these teams the tools they need to be productive, while also ensuring all of our company’s data is safe, secure, and properly managed. And with a variety of different business units, it’s critical that our team members are able to collaborate effectively across teams. We rely heavily on Google Drive and G Suite to help us accomplish these goals.

Prior to partnering with Google, we relied on a legacy content storage and management solution. Our team members found this tool cumbersome and unintuitive—finding the right file at the right time was very difficult, and it was challenging to collaborate and share content effectively across the various teams within our company. We also struggled with document ownership and version control. One team would start working on a contract, and then share it with a collaborator over email, who would then share it with a third collaborator, and so on. It was never clear which version of the document was the most up to date, who owned it, and who should be working on it. Our team members relied on these tools every day to get their jobs done, and the subpar experience was impacting productivity and morale. 

Moving toward a more collaborative company culture

We began to explore various solutions to these problems, and quickly realized that Google’s approach to productivity was most closely aligned with Cardinal Group’s desire to build a more collaborative and innovative culture. We worked closely with Cloudbakers, a Google partner, to migrate all of our existing content and data to Drive. And most of our team members were already familiar with Drive and found it very intuitive and easy to use, so change management was minimal and we were quickly up and running. 

With Drive, it’s easy for our team members to quickly find and access the files they need at that moment, which saves them valuable time and increases productivity across our teams. Live, real-time collaboration across Drive and our other G Suite apps is a huge selling point for us. For example, if we’re building a marketing plan, our onsite, marketing, and operations teams can all work simultaneously on the same plan, which saves us a ton of time and also eliminates version control and ownership issues. We’re also moving towards a “work from anywhere” model, and Drive is a huge enabler of this transition, with team members able to easily access and collaborate on files, whether they’re working in our main office, at home, or at a customer’s community. 

Fewer support tickets lets IT spend time on more impactful projects

Since we started working with Google a few years ago, our company has grown significantly, from 800 to 1,400 team members. During this tremendous growth, the number of productivity-related support tickets we see has remained flat; this translates to a 43% decline in the number of support tickets per team member. As a result, our team members can spend more time being productive and my IT team can focus less on resolving support tickets and more on creating business value for Cardinal Group and our team members. 

Moving to Google Drive and G Suite has been a big part of our journey towards being a more collaborative and innovative company. We’re looking forward to continuing this partnership with Google and we’re excited to see what’s next!