AppsScriptPulse

In-person Google Cloud Next ’23 MUST see: Getting the most out of Google Workspace with Apps Script, tips and tricks

In this session learn about combining APIs, automation, configuration as code, and more to improve your productivity using Google Workspace.

If you, or someone you know, is lucky to be at Google Cloud Next ’23 on Day 1 and would like a turbocharge to your Apps Script journey head down to the Moscone South, Lower Level and towards the Innovators Hive Theater for 11am as you’ll be in for a treat as Kara Ireland and Charles Maxson will let you know “How to get the most out of Google Workspace with Apps Script”.

I was part of a similar session at Next ’18 and it was great to meet in person new and established Apps Script users, many of them I’ still in touch with today. If you end up going say ‘hi’ to Kara and Charles from me.

Source: Getting the most out of Google Workspace with Apps Script, tips and tricks

Everything Google Workspace (and a little more) available online at Google Cloud Next ’23 Aug. 29-31, 2023

Next ’23 is our global exhibition of inspiration, innovation, and education. It’s where decision makers, developers, and anyone passionate about an accessible, scalable, socially responsible cloud come together to share challenges, solutions, 10x ideas, and game-changing technologies.

Google Cloud Next ’23 is just around the corner and if you are attending in person the Google Workspace Developer Relations team will be there in force giving various talk as well having a booth at the Innovator Hive. Chanel Greco has also put the call out to:

Bring your biggest smile for the community picture at our booth at the Innovators Hive:
📷 Day 1: 1PM
📸 Day 2: 11AM
😁 Day 3: 1PM

If you weren’t fortunate to snag a ticket to attend in person you can still register for complimentary access with a digital pass. I’ve also compiled the Everything Google Workspace (and a little more) playlist  of sessions that will be available online:

Project history/version history capability for Google Apps Script rolling out now!

NEW Apps Script Project History

The eagerly awaited project history capability for Google Apps Script in now rolling out. The feature is similar to the version history functionality found in other Google Workspace editors like Google Docs. As well as being able to see differences between the current and previous versions you can restore your script project to that point. Unlike Docs, Sheets and Slides there is currently no ability to ‘make a copy’ or ‘name a version’. My experience when using the Drive revisions data is that Google may merge revisions to save storage space.

No official news on the rollout of this feature other than reference to it in the What’s new for developers building solutions on Google Workspace – mid-year recap, posted in July 2023.

[Edit: Official update now posted in Google Workspace Updates]

H/T to my CTS colleague, Colin Birkett, for spotting this change.

AppSheet Core licenses will be included by default for more Google Workspace editions, along with a new Admin security setting

To bring the power of AppSheet to more users, AppSheet Core licenses will now be included for the following Google Workspace editions…

By including AppSheet Core licenses in more Google Workspace editions, the power of AppSheet is accessible to more users. Further, Admins will have the security features they need to ensure their users are using AppSheet appropriately in their organization.

Previously AppSheet Core licenses were included with Workspace Enterprise Plus, Enterprise Essentials Plus, and Education Plus users. Google have recently announced that AppSheet Core licenses will also be included in the following Google Workspace editions:

  • Business Starter, Standard, and Plus
  • Enterprise Starter and Standard
  • Frontline Starter and Standard
  • Non-profits
  • Education Standard

This is great news for Google Workspace users as AppSheet includes a number of out-of-the box features which already integrate into other Workspace products, like dynamic emails, Google Chat and Google Apps Script integration.

Along with the expansion of Workspace editions getting AppSheet Core, is the news that Admins will have basic security controls which can disable external usage of AppSheet apps.

Looking at the associated new security settings support page, it was interesting to see that turning on AppSheet Core security will disable ‘external integration through the app API’:

This caught my eye as the AppSheet API is a feature reported as only being supported on AppSheet Enterprise plans:

Perhaps it’s a mistake in the AppSheet API documentation, but I hope not as the AppSheet API is an incredibly useful addition for developers to do more with AppSheet.

Finally a little plug. If you are interested in AppSheet and would like to find out about training and support services get in touch. At CTS, where I work, we’ve a growing reputation in both products built using AppSheet as well as helping you get the most from the platform in your organisation.

Source: AppSheet Core licenses will be included by default for more Google Workspace editions, along with a new Admin security setting

Register for an online AppSheet ‘no-code’ along with Tim McLardy and Martin Hawksey 3-5 May, 2023

Did you know? We’re offering 20% off registrations for our FIRST public AppSheet no-code-along! ⭐️

With AppSheet, you can simplify business processes without ever needing to write a single line of code. This can help you out if you have users managing data on mobile devices, getting lost in spreadsheets, or even still using pen and paper!

Our two part course will include hands-on experience of building a simple app alongside our in-house expert Martin Hawksey as well as covering all the basics you need to get your creative juices flowing!

Don’t sleep on it, this offer is only available until the end of March. Sign up today to secure your discount

If you are still unsure where to start with Google’s no/low code platform, AppSheet, on 3 + 5 May I’ll be joining Tim McLardy to help you get started on your journey as part of our two part ‘no-code along’. There is a discount if you register in March and Tim and I will be working extra hard to make sure you get the most out of the session.

Source: AppSheet No-Code-Along

How Google Workspace is delivering innovation for the future of hybrid work | Google Cloud Blog

Google Workspace is the most popular productivity tool on the planet — relied on by more than 3 billion users. To help organizations thrive in a hybrid world, we’ve invested heavily in immersive connections, our approach to bringing people closer together through our communication products, and smart canvas, our next-generation collaboration experience, while enhancing our cloud-first security model to help people work safer.

Today is the first day of Google Cloud Next ’22 and this flagship event is being used to announce a number of upcoming features for Google Cloud and Workspace. This post (source link at the end) from the Google Cloud blog gives a summary of some of the key announcements including:

  • Bringing people together with immersive connections – which announces a number of new features being introduced to enhance Google Meet, the much requested feature to include inline threaded conversations in Google Chat as well as broadcast only Chat spaces
  • Collapsing the boundaries between people and apps with smart canvas – which highlights updates, mainly to Google Docs, to enhance productivity with custom building block and user defined variables. Google Sheets is also getting some smart chips enhancements including smart chips data extraction and third party integration as well as a new timeline view rolling out this month
  • Work safer with Google – a reiteration of Google’s commitment to security with updates on data loss prevention being extended to Google Chat, Trust rules in Drive and client side encryption for Gmail and Calendar
  • Extending the power of Workspace – the one perhaps of most interest to Pulse readers are the opportunities to build on Google Workspace with additional APIs for Meet and Chat, a Meet add-on SDK to third party integrations directly in Meet, and an official Google Chat integration from AppSheet apps.

For some of these announcements you’ll have to wait until 2023 at the earliest to get your hands on them. For a wider narrative and to see how the tech press is responding to today’s Google Cloud Next ’22 announcements here are some stories that have caught my eye:

Source: How Google Workspace is delivering innovation for the future of hybrid work | Google Cloud Blog

How to automate Google Apps Script deployments with GitHub Actions

Build an automated system that will be automatically deployed to one of the destination spreadsheets when the code is committed to the GitHub repository.

Managing code particularly in container bound projects can be a real headache for Apps Script developers. The Script REST API has made this a lot easier both is terms of managing scripts but also opening up options for different development environments, including local development using clasp and your preferred IDE.

In terms of version control there are a number of solutions Apps Script developers can now consider. The Google Apps Script GitHub Assistant Chrome Extension is a popular option as it extends the existing online Script Editor with integration with GitHub and several other Source Code Management services (GitHub Enterprise/Bitbucket/GitLab).

For developers interested in developing projects locally there is perhaps even more choice. One solution we’ve featured a couple of times in Pulse is the use of GitHub Actions:

GitHub Actions makes it easy to automate all your software workflows, now with world-class CI/CD. Build, test, and deploy your code right from GitHub. Make code reviews, branch management, and issue triaging work the way you want.

The latest example for using GitHub Actions comes from Goran Kukurin (gorankukurin.com). Goran has shared a setup for developing code in Google Sheets with development and production versions. As well as using GitHub Actions to automatically push code to the correct Google Sheet version a shell script is used to modify the custom menu name as a useful reminder so you can see what version you are testing:

You can visit Goran’s post (linked below) for an example repo and instructions on how to setup. If you are using a UNIX based operating system it should be straightforward. If like me you are on a Windows machine there are some minor tweaks and possibly big node-gyp headaches to overcome, which I’ve highlighted below (in Goran’s website post some commands with -- are displaying as - – this GitHub repo and Medium version are ok).

Windows Tips

You are better using PowerShell rather than CMD so you don’t have to modify things like $HOME to %HOMEPATH%.

If you’ve not already got node-gyp  installed the setup that worked for me on Windows 11 was:

  • Node 14.19.3
  • Python 3.10
  • Visual Studio Build Tools 2017

After installing with npm install -g node-gyp there are Windows specific setup instructions (don’t forget npm config set msvs_version 2017).

After creating the spreadsheets I needed to specify the directory by including src (I think this is a nit) e.g.:

mv src\.clasp.json .clasp-prd.json

To encrypt your clasp credentials you might need to install install GnuPG.

If you are running the setup build tasks in VS Code and get:

'.' is not recognized as an internal or external command

I solved this by configuring npm to use bash.exe, some other options are give in this SO answer.

Final thought

There is a lot more you could do with GitHub Actions like pushing to multiple production spreadsheets and much more. This post from Goran Kukurin is a great insight to what is possible and we look forward to seeing where other Apps Script devs go with it.

Source: How to automate Google Apps Script deployments with GitHub Actions (also published on Medium)

Report: Obtaining current and historic stock data from Google Sheets GOOGLEFINANCE function using Google Apps Script

This is a report for obtaining the values from GOOGLEFINANCE using Google Apps Script. When I tested to retrieve the values from GOOGLEFINANCE function on Google Spreadsheet using Google Apps Script, I noticed that the values can be retrieved.

Another interesting report from Kanshi Tanaike where they test the ability to get values from the Google Sheets GOOGLEFINANCE function with Google Apps Script. For context, as highlighted in the report, Google announced in 2016 that historical data from the GOOGLEFINANCE function would no longer be accessible using either Google Apps Script or the Google Sheets API.

The 2016 announcement followed news in 2014 that the Finance Service, which allowed direct access to current and historical stock data, was deprecated (if you are interested in seeing what you are missing out on here is the Internet Archive snapshot of Finance Service from 2013).

So clearly there is a trend here in Google not wanting you to programmatically access stock data with their services and I anticipate the GOOGLEFINANCE function will be updated to prevent access from Google Apps Script, but in the meantime you can have some fun :)

Source: Report: Obtaining Values from GOOGLEFINANCE using Google Apps Script

NEW COURSE: Mastering the QUERY Function in Google Sheets

Image credit: Ben Collins (benlcollins.com)

Master the QUERY function, the most powerful function in Google Sheets, to become a more effective data analyst

Friend of Pulse and Google Sheets guru, Ben Collins, has a new course ‘The QUERY Function in Google Sheets’. The QUERY function it lets you perform various data manipulations making it easy to reshape, aggregate and explore your data in Google Sheets. The course is designed to be suitable for everyone from beginner to advanced who are interested in ways to work more effectively with your data.

If you are not familiar with the QUERY function Ben provides one example of what is possible in Sheets Tip 204: How To Use Dates In The QUERY Function (check the linked post in this Sheet Tip for an example worksheet).

Bonus: Sheets Tip 204 includes a 50% discount on the course valid until Friday 20 May 2022 at midnight EDT.

Finally, if you are interested in using the QUERY language in Google Apps Script it is possible! Below is some code used in this copy of Ben’s example workbook based on:

// based on https://gist.github.com/tanaikech/053d3ebbe76fa7c0b5e80ea9d6396011#sample-script

function myFunction() {
  const doc = SpreadsheetApp.getActive()
  const spreadsheetId = doc.getId(); // or set another Spreadsheet ID.
  const sheetId = doc.getSheetByName('Data').getSheetId(); // or set another Sheet ID from Spreadsheet ID.

  const query = "select C, B where B > date '2000-01-01' and B <= date '2002-12-31'"; // your QUERY

  const url = `https://docs.google.com/spreadsheets/d/${spreadsheetId}/gviz/tq?tqx=out:csv&gid=${sheetId}&tq=${encodeURI(query)}&access_token=${ScriptApp.getOAuthToken()}`;

  const res = UrlFetchApp.fetch(url,);
  console.log(res.getContentText());

  const array = Utilities.parseCsv(res.getContentText());
  console.log(array);

  // SpreadsheetApp.getActiveSpreadsheet(); // This comment line is put for automatically detecting the scopes if directly adding a spreadsheet ID.
}

Source: The QUERY Function in Google Sheets

Tips, tricks and scripts for automating your Gmail inbox with Google Apps Script

Image credit: rixxo.com

One the powerful features of Google Apps Script is with a couple of lines of code you can quickly start automating and organising your inbox. For people just getting started with Apps Script Google provide a introductory codelab ‘Accessing Google Sheets, Maps, and Gmail in 4 lines of code!’ and for those wanting to do a bit more the Google Workspace Developer documentation includes a ‘create a mail merge‘ solution.

Mail merge solutions are bit or a reoccurring theme in the world of Google Apps Script. In 2011 the official G Suite Developers Blog featured 4 ways to do Mail Merge using Google Apps Script with community contributions from James Ferreira, Steve Webster and Romain Vialard. The post references Romain’s ‘Yet another Mail Merge’ script, which he went on to develop as a very successful YAMM add-on before refocusing on the Mergo Mail Merge. Even further back when Google Apps Script was officially launched in 2009 this included a introductory video with a mail merge example.

A well as Google official channels the ability to automate your Gmail inbox has regularly caught the attention of the wider tech press. In 2013, Computerworld highlighted Jonathan Kim’s ‘Gmail No Response’ script which goes through your inbox and finds recent emails where you were the last respondent.  Jonathan’s blog post is no longer available but the Gmail No Response’ script is on GitHub where it has been forked 100 times.

One of those forks is a variation by Christopher Gee published in Find emails with no reply automatically in Gmail which:

runs through the emails in your inbox and checks your outgoing messages for a question mark. Once it finds these emails it checks to see if they are in a date range and then sees if you have had a response. If you have not had a reply to your email containing a “?” then it adds the label “No Response”. You can then quickly see all of the threads for which you are awaiting a reply.

If you are interested in more Gmail script solutions then I highly recommend you have a look at content shared by Amit Agarwal. This doesn’t just include Apps Script solutions but also a number of Gmail tips and tricks. As many of these feature the way you can search your Gmail inbox they can also be used with GmailApp.search() or if using the Gmail Advanced Service Gmail.Users.Messages.list. A nice example of where a Gmail user tip can be used in Apps Script is Amit’s post which includes how to Search Emails by Specific Time in Gmail.

The list of examples could go on (and I’ve not even mentioned Stonian’s recent post Keep your Gmail inbox size in check with google app scripts :). Do you have a favourite ‘tip, trick or script’ for Gmail and Google Apps Script?

Sources: