Tuesday, 2 June 2026

Bulk assign Google AI licences without the Admin Console

The following Google Apps Script is designed to automate the assigning of a Google AI licence e.g. "Google AI Pro for Education" in the Google Admin Console, for individual accounts/users via a Google Sheet. The code also adds them to a particular Google Group which was used in this context to control access to Google AI Studio.

You can refer to the Google product and SKU IDs webpage if you need to assign a different licence type. There is no initial checking to see if they have an existing licence or are already in the Group, instead a try/catch is used to collate any failed users.

Screenshot of code for bulk assigning AI licences via Google Apps Script
Snippet of code for bulk assigning AI licences

Tuesday, 7 April 2026

Append Sheet data to a Doc with varying Table sizes

The following Google Apps Script is a slight variation of my post on bulk creating Google Docs from Google Sheet data.

This time I was looking to work with Sheet data where students would get a mark for each module they completed, but not all students completed the same number of modules. I wanted to translate this information into a table in a Doc, one row per module, and avoid empty rows.

So I ultimately went from a table with a header row and one more row for the first module mark (because everybody completed at least one), to having the Apps Script check for any further module results and then appending a new table row to add them.
Screenshot of a Google Doc with a Table for adding Module scores in

Tuesday, 10 March 2026

Granular OAuth consent in Google Workspace Add-ons

At the beginning of 2026 Google started to roll out granular OAuth consent for Workspace Add-ons with the view that it would improve the choice for end users when selecting permissions to run automated script. Unfortunately as end users are not typically aware of the inner workings of Google Apps Script (why would they?) the result is that sometimes they do not select all of the necessary permissions for an Add-on to function correctly when installing.

This leads to additional work for developers to handle enquiries and provide resources/instruction to overcome the issue. It can also result in reduced installations of an Add-on or negative feedback about it not working.