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.

Stable Channel Update for Desktop

The stable channel has been updated to 80.0.3987.132 for Windows, Mac, and Linux, which will roll out over the coming days/weeks.





A list of all changes is available in the log. Interested in switching release channels? Find out how. If you find a new issue, please let us know by filing a bug. The community help forum is also a great place to reach out for help or learn about common issues.


Security Fixes and Rewards
Note: Access to bug details and links may be kept restricted until a majority of users are updated with a fix. We will also retain restrictions if the bug exists in a third party library that other projects similarly depend on, but haven’t yet fixed.


This update includes 4 security fixes. Below, we highlight fixes that were contributed by external researchers. Please see the Chrome Security Page for more information.


[$1000][1050996] High CVE-2020-6420: Insufficient policy enforcement in media. Reported by Taras Uzdenov on 2020-02-11


We would also like to thank all security researchers that worked with us during the development cycle to prevent security bugs from ever reaching the stable channel.

As usual, our ongoing internal security work was responsible for a wide range of fixes:
  • [1057473] Various fixes from internal audits, fuzzing and other initiatives





Krishna Govind
Google Chrome

Everything you need to power your digital advertising business

Every publisher has a unique business model, competitive advantage, and value proposition for their users. Because of this, we built Google Ad Manager to be feature-rich and flexible. From live streaming on connected TVs to rewarded ads in your apps, the Ad Manager platform offers all of the functionality and tools you need to power your digital advertising business.

With Ad Manager, you can manage all of your direct and indirect advertiser demand in one place, deploy a wide variety of engaging ad formats, and access and implement machine learning-generated forecasting, insights, and optimization recommendations. You can even integrate other advertising technology providers in the platform—should you choose to use them. 

Most importantly, we help you protect the value of your inventory by investing in defenses against ad fraud, developing ad monitoring tools, and supporting industry initiatives that help address bad ads for everyone in the ecosystem.

Earn more with Ad Manager  

Over the coming weeks we’ll be publishing a series of blog posts exploring several of Ad Manager’s key features and how they help our publisher partners maximize their ad revenue. Here’s what we’ll cover in the series:

  • Post 1: Earn more from your ads
  • Post 2: Safeguard your advertising business
  • Post 3: Deliver the best ad experience every time
  • Post 4: Use insights to make better business decisions

We hope this series sparks new ideas for how Ad Manager can help you continue to grow your ads business. In the meantime, visit the resources section of our site to learn more about what Ad Manager can do. 

Update on Google at GDC 2020

Posted by the Google for Games Team

Last Friday, GDC 2020 organizers made the difficult decision to postpone the conference. We understand this decision, as we have to prioritize the health and safety of our community.

Every year, we look forward to the Game Developers Conference and surrounding events because it gives our teams a chance to connect with game developers, partners, and friends in the industry.

Although we won’t be connecting in-person this year, we’re still excited to share the latest announcements from Google with everyone through our digital experience. We'll be sharing plans for our digital experience in the coming days.

Thank you to all who keep this community thriving and check back soon at g.co/gdc2020 for more details.

Update on Google at GDC 2020

Posted by the Google for Games Team

Last Friday, GDC 2020 organizers made the difficult decision to postpone the conference. We understand this decision, as we have to prioritize the health and safety of our community.

Every year, we look forward to the Game Developers Conference and surrounding events because it gives our teams a chance to connect with game developers, partners, and friends in the industry.

Although we won’t be connecting in-person this year, we’re still excited to share the latest announcements from Google with everyone through our digital experience. We'll be sharing plans for our digital experience in the coming days.

Thank you to all who keep this community thriving and check back soon at g.co/gdc2020 for more details.

Extending Hangouts Meet premium features to all G Suite customers through July 1, 2020

Quick launch summary

As more employees, educators, and students work remotely in response to the spread of COVID-19, we want to do our part to help them stay connected and productive with G Suite.

All G Suite customers can use Hangouts Meet today for easy-to-join video calls, but we’ll soon enable free access to more advanced features, including:

  • Larger meetings for up to 250 participants per call
  • Live streaming for up to 100K viewers within domain
  • Record meetings to Google Drive

These features are typically only available in the Enterprise and Enterprise for Education editions of G Suite, but they’ll be available to all G Suite editions at no additional cost until July 1, 2020.

Getting started


  • Admins: If you haven’t yet done so, enable Meet video calling for your organization. You can then turn on live streaming and recording.
    • G Suite Basic, Business, and Nonprofit customers: These advanced features will be OFF by default and can be enabled at the domain, OU, or group level.
    • G Suite for Education customers: These advanced features will be OFF by default and can be enabled at the domain, OU, or group level. Please see our FAQ in the Help Center for additional education-specific considerations when enabling Meet and these features.
    • G Suite Enterprise and Enterprise for Education customers: These features are already available in your domain and will continue to respect your current settings.
  • End users: Once enabled in the Admin console, end users can live stream and record meetings. Visit the Help Center to learn more about how to live stream and record a meeting.


Rollout pace




Availability


  • Available to all G Suite customers


Resources


Accessibility improvements for Google Docs

Quick launch summary 

We’re making several improvements to accessibility features in Google Docs. Some enhancements you’ll notice are:

  • Improvements in how screen readers verbalize content, including for non-text information like comments and suggestions. 
  • Improvements in how Braille displays render content, including symbols, emojis, and other glyphs. 
  • Improved support for navigating through elements such as tables, headers, and footers.
  • Improved caret tracking. 
We hope these improvements make it easier for users of assistive technologies to work in Google Docs.

Getting started 

Admins: There is no admin action required for this feature.

End users: These improvements will be automatically available to end users. Visit the Help Center to learn more about accessibility for Docs editors.

Rollout pace 


Availability 



  • Available to all G Suite customers and users with personal Google Accounts 

Resources 



Bringing the best of Google to the Canadian startup ecosystem

The Google for Startups Accelerator Canada is launching its first cohort in April. Up to ten Canadian startups will be selected for an intensive three-month bootcamp to prepare for their next phase of growth.


In my ongoing conversations with entrepreneurs, I’m inspired every day by the tenacity, innovation and value that they bring to their communities. Our Director of Developer Ecosystem, David McLaughlin, has spent many years working with local markets around the globe to understand how Google can support startups to scale and grow. One of his key takeaways has been that the world's best ideas come from developers on the ground, connected to local communities. He became invested in helping these passionate entrepreneurs turn their ideas into successful and sustainable businesses.


Our Global Accelerator Program was born out of this passion, to help developers be successful as they solve locally-relevant challenges. The accelerators are each tailored to their market to provide startups with the best of Google’s people, network and technology.


Take TerraTalk as an example. As Japanese teachers struggled with teaching English in growing classroom sizes, entrepreneur Yoshiyuki Kakihara looked to technology to create a solution. Working with Google through the Accelerator program in Tokyo, he built an AI-powered app that could hear and process what students in the classroom were saying. The app reinvigorated the classroom, and created an atmosphere filled with conversation and English learning games.


Looking closer to home, we see incredible startup potential. Our ecosystem has never been stronger: the Toronto-Waterloo corridor was recently ranked a top 15 Global startup ecosystem, Canadian venture capital funding levels are unprecedented, and every day there are more and more Canadian success stories. PointClickCare as an example, is an industry innovator based in Canada, aiming to solve the global challenges for long term care. Plum is also a proudly local company that is using AI to help companies hire, grow and retail top talent.

We’ve been working with startups in Canada for many years, through programming and partnerships with other ecosystem builders. We’re excited to take that work to the next level, bringing the best of Google to the Canadian startup community.

The Google for Startups Accelerator Canada

A few weeks ago, we announced that the first Google for Startups Accelerator was opening in Canada. This will be our 12th accelerator around the world, and the program will provide access to Google’s programs, products, people and technology, with the goal of helping startups build great products and services.

We plan to work with Seed to Series A tech startups that are headquartered in Canada. Selected founders will outline the top challenges facing their startup, and will be paired with relevant experts from Google and the industry to solve those challenges. Participating startups receive deep mentorship on technical challenges and machine learning, as well as education and connections to relevant teams from across Google.


Apply Now

The Google for Startups Accelerator will be based out of Kitchener-Waterloo and commences this spring. Applications for the first cohort are now open through March 15th, and we look forward to working with the next generation of Canadian founders and innovators.




Stable Channel Update for Chrome OS

The Stable channel is being updated to 80.0.3987.128 (Platform version: 12739.87.0) for most Chrome OS devices. This build contains a number of bug fixes and security updates. Systems will be receiving updates over the next several days.

If you find new issues, please let us know by vising our forum or filing a bug. Interested in switching channels? Find out how. You can submit feedback using 'Report an issue...' in the Chrome menu (3 vertical dots in the upper right corner of the browser).

Daniel Gagnon
Google Chrome OS

New music controls, emoji and more features dropping for Pixel

New music controls, emoji and more features dropping for Pixel

A few months ago, Pixel owners got a few new, helpful features in our first feature drop. Beginning today, even more updates and new experiences will begin rolling out to Pixel users.

Help when you need it
You can already use Motion Sense to skip forward or go back to a previous song. Now, if you have a Pixel 4, you can also pause and resume music with a tapping gesture above the phone. So you can easily pause music when you're having a conversation, without even picking up your phone.

We’re also rolling out some helpful features to more Pixel devices. Now Live Caption, the technology that automatically captions media playing on your phone, will begin rolling out to Pixel 2 owners.

More fun with photos and video
New AR effects you can use live on your Duo video call with friends make chatting more visually stimulating. These effects change based on your facial expressions, and move with you around the screen. Duo calls now come with a whole new layer of fun.

Selfies on Pixel 4 are getting better, too. Your front-facing camera can now create images with depth, which improves Portrait Blur and colour pop, and lets you create 3D photos for Facebook.

Emoji on Pixel will now be a more customizable and inclusive thanks to the emoji 12.1 update, with 169 new emoji to represent a wider variation of gender and skin tones, as well as more couple combinations to better reflect the world around us.
A more powerful power button

Pixel is making it faster to pick the right card when using Google Pay. Just press and hold the power button to swipe through your debit and credit cards, event tickets, boarding passes or access anything else in Google Pay. This feature will be available to users in the US, UK, Canada, Australia, France, Germany, Spain, Italy, Ireland, Taiwan and Singapore. If you have Pixel 4, you can also quickly access emergency contacts and medical information.
Getting on a flight is also getting easier. Simply take a screenshot of a boarding pass barcode and tap on the notification to add it to Google Pay. You will receive real-time flight updates, and on the day of your flight, you can just press the power button to pull up your boarding pass. This feature will be rolling out gradually in all countries with Google Pay during March on Pixel 3, 3a and 4.

Customize your Pixel’s look and feel

A number of system-level advancements will give Pixel users more control over the look and feel of their devices.

You may know that Dark theme looks great and helps save battery power. Starting today, Dark theme gets even more helpful and flexible in switching from light to dark background, with the ability to schedule Dark theme based on local sunrise and sunset times.

Have you forgotten to silence your phone when you get to work? Pixel gives you the ability to automatically enable certain rules based on WiFi network or physical location. You can now set up a rule to automatically silence your ringtone when you connect to your office WiFi, or go on Do Not Disturb when you walk in the front door of your house to focus on the people and things that matter most.

Pixel 4 users are also getting some unique updates to the way they engage with the content on their phone. Improved long press options in Pixel’s launcher will get more and faster help from your apps. There’s also an update to Adaptive brightness, which now temporarily increases screen brightness to make reading content easier when in extremely bright ambient lighting, like direct sunlight. Check out more options for customizing your screen options.

Here’s to better selfies, more emoji and a quick pause when you need it! Check out our support page for more information on the new features, and look out for more helpful features dropping for Pixel users soon.