AppsScriptPulse

Bulk create Drive folders with subfolders with Google Apps Script

Bulk create Google Drive folders with multiple subfolders. Control the naming of the folders and how many you want.

Use this tool to bulk create folders with subfolders

Use this tool to bulk create folders with subfolders

The following Google Apps Script is designed to bulk create Google Drive folders with multiple subfolders. You control the naming convention of each folder and exactly how many you want.

Features include:

  1. Runtime control – currently set to 5 minutes 30 seconds. Will ignore rows that have a ‘Folder Link’ so you can continue from where you left off and append further folders should you require.
  2. More subfolders – the Google Sheet has columns for 10 subfolders but you can technically add more (columns) and the code will account for this automatically.
  3. Toast popups to inform you of the progress as folders are created.
  4. ‘Log’ sheet and popup error messages if something goes wrong.
  5. Concatenation – create those useful descriptive folder/file names so items are easier to search for in the future. Concatenate will let you combine values that may exist in different columns in another spreadsheet for example, or take those folder names and prepend/append words around them.

Source: The Gift of Script: Bulk create Drive folders with subfolders

AppSheet x Slack — Sending notifications on your Slack Channel using Google Apps Script

Make your team acknowledged when there is a new eventEven though a data scientist can do coding, it doesn’t mean that we have to code all the time. In some use case, I found out that no-code development tools benefits us as it reduces time to develop applications for collecting data or small systems for uncomplex internal uses. I have developed several AppSheet applications which help us automate works, make tasks paperless and trackable by records.

We’ve featured a couple of examples of integrating with Slack using Apps Script. Here’s a variation using AppSheet to do some of the heavy lifting with the data automation. To push data to Slack the solution uses AppSheet’s Apps Script integration. I’ve not tested but I’m sure you could skip the Apps Script integration and use AppSheets webhooks feature.

Source: AppSheet x Slack — Sending Notifications on Your Slack Channel

Adding users to Google Chat spaces on demand with Google Apps Script

Image credit: Pablo Felip

A Chat space membership authorization workflow built using Google Forms, Sheets and Apps Script. … In the coming sections, we’ll build a workflow for process managers to review and authorize membership requests sent by users willing to join a predefined set of chat spaces.

Lots of talk about Meta’s new Threads … is there an API for that. Meanwhile Pablo Felip has been busy putting together this very comprehensive tutorial which explains how you can use Google Forms as part of a process to administer Google Chat Spaces membership.

The API call spaces.members.create is relatively straightforward when compared to the amount of effort to setup the Google Cloud project. This is all covered in the source post and the code provided can easily be modified to suit other worksflows.

Source: Adding users to Google Chat spaces on demand with Apps Script

How to transcribe audio and video files from Google Drive with Google Apps Script

Learn how to automatically transcribe audio and video files in Gmail messages with the help of OpenAI speech recognition API and Google Apps Script

Amit Agarwal highlights a no-code solution for transcribing audio in Gmail attachments available in his ‘Save Gmail to Google Drive’ Google Sheets Add-on. As part of this he shares the code and tips for transcribing audio files using OpenAI’s Whisper API. When you look at the snippet provided you’ll see once the audio file is in Google Drive it is very easy to use the Whisper API to get a transcript.

Text-to-speech services aren’t new, but approaches and larger training datasets are improving accuracy and if you prefer to work in the Google ecosystem you can find out more about Cloud Speech-to-Text.

Source: How to Transcribe Audio and Video Attachments in Gmail – Digital Inspiration

Announcing AppSheet database General Availability!

Image credit: Google

We are excited to announce the General Availability (GA) of our native data store: AppSheet database. Our goal is to blend the simplicity of a table-driven data editing interface with the performance and scale of a relational database for non-technical users.

During testing, AppSheet database was faster than Sheets for processing adds, updates, and deletes of larger tables. In other words, the performance benefits of AppSheet databases are more apparent for a table with 50,000 rows compared to a table with 1,000 rows. AppSheet databases also have better support for concurrent edits.

It’s also worth noting that quick sync is enabled by default for all apps backed by AppSheet databases, even for security filters, so data updates automatically for app users.

Google AppSheet Databases went into public preview in October 2022, the announcement and context being covered in the Pulse post ‘Introducing AppSheet databases: Build data driven apps for Google Workspace‘. The recommendation while AppSheet databases were in preview was not to use them for production as there may have been breaking changes, which limited how much testing I could do, but I still found the occasional prototype project to give them a try. As noted in the general availability announcement the performance is more noticeable on databases with more rows. Where I saw big gains were around ‘quick sync’, particularly when making changes using the AppSheet API.

Something to keep in mind before lifting/shifting your existing Google Sheet based AppSheet apps are the usage limits. For example, Google Workspace customers eligible for the AppSheet Core licence at no additional cost are limited to 2,500 rows per database and 10 databases. The 2,500 rows is also the total amount across all tables in a database, for example, you will hit your quota if 1 database has 5 tables with 500 rows. Moving up to AppSheet Enterprise Standard increases the limit to 200,000 rows with a current maximum of 50,000 rows per table. In the later case Google have said this is a current technical limit and they are looking at increasing this soon. For AppSheet Core users it doesn’t sound like Google will be increasing the quotas anytime soon so it is worth making sure your data source and/or licence aligns with your anticipated data needs. There is an active discussion about usage limits in the source post.

Source: Announcing AppSheet database General Availability!

Automatic meeting minutes with Google Gen AI in Google Workspace (new opportunities with LLMs)

Who takes the notes ? Simple question we always ask at the begining of the meeting, maybe it will be over in a near future with Generative AI. Using Meet recording, included in the Google Workspace licences, we can generate the transcript of the meeting with Google Speech to Text API and then generate the minutes.

Lots of chatter around ‘Gen AI’, but cutting through the hype and, in particular, the Platform-As-A-Service opportunities created with generally available Large Language Models (LLM) opens lots of new doors for Workspace Developers.

This example from fellow Google Developer Expert, Stéphane Giron, is an area I think has the most potential, using LLMs in Google Workspace Add-ons such as Gmail, Docs, Calendar etc. With Google’s Vertex AI LLMs there is really opportunity to create powerful solutions whilst preserving data sovereignty. Exciting times!

Source: Automatic meeting minutes with Google Gen AI in Google Workspace

One Code to Rule Them All: Deploying Editor Add-Ons Across Google Sheets, Docs, Slides, and Forms

Mastering Google Apps Script: Deploy Once, Run Everywhere 🚀

What’s The Issue? 🤔

Building add-ons with Google Apps Script is akin to owning a magic wand for distributing your application. And if you’re like me, you’ve probably created an army of internal add-ons for clients and personal use, especially those sweet editor add-ons. But here’s the catch: every time you deploy your add-on, you need to specify the script ID and the deployment version for each context (Docs, Sheets, Slides, and Forms). Keeping up with 4 different files isn’t just tedious; it’s like trying to juggle flaming swords while on a unicycle 🙃. But don’t worry, there’s a better way!

Source: One Code to Rule Them All: Deploying Editor Add-Ons Across Google Sheets, Docs, Slides, and Forms

Easily merge data from Google Sheets into Google Docs and Slides with the TemplateApp Google Apps Script

This report introduces the method for easily processing the template of Google Documents and Google Slides using Google Spreadsheet as a database using Google Apps Script. Google Spreadsheet is used as a database. Google Documents and Google Slides are used as templates. The simple method for creating new Google Documents and Google Slides using the database and the templates is introduced.

Latest Apps Script magic from Kanshi Tanaike, this time they turn their addition to an easy way to use data from Google Sheets as a ‘document merge’ for templates created in Google Docs and Google Slides. This is achieved by using the TemplateApp Apps Script library, which has lots of useful features including simply methods for sheetRangeToDocuments() as well as the ability to embeded and fixed width images from placeholders. There are some llimitations documented in the GitHub repo, as well as examples for all the methods available in the library.

[In other ‘merge’ news Google have announced that you can now use Google Sheets with Google official mail merge in Gmail]

 

Source: Easily Processing Templates of Google Documents and Google Slides using Google Spreadsheet with Google Apps Script

List all files and folders in a selected folder’s directory tree in Google Drive using Google Apps Script

A fast approach to get all items in a directory tree in Google Drive with Google Apps Script. Contains video and edge case handling.

This is an excellent detailed step-by-step tutorial from Scott Donald all about how to efficiently list all files and folders in a folder’s directory tree in Google Drive using Google Apps Script. The in parents method is one we’ve covered before in Pulse, but Scott provides a very comprehensive explanation of what’s going on, plus all the code is available if you would like to reuse in your own projects.

Source: List all files and folders in a selected folder’s directory tree in Google Drive: Apps Script – Yagisanatode

Master Google Apps Script UIs — Part 9: Elevating Your Game with TypeScript 👾

Taking JavaScript to the Next Level with TypeScript for your Google Apps Script Projects

A Warm Welcome Back to the Series 🎉

Hey there, and welcome back to our hands-on series on mastering Google Apps Script UIs! Now, if you’re serious about JavaScript, it’s high time we chat about TypeScript. TypeScript is a superset of JavaScript that brings static typing to the game. It’s like JavaScript put on its best suit and turned into a more organized, reliable version of itself. 😎

The reason a lot of developers are switching to TypeScript is because it can catch errors at compile-time, making debugging less of a headache (it’s like having a personal assistant who checks your work for mistakes so you don’t look silly later). In this part, we’ll let the Emojibar project rest (it’s earned it, after all!), and we’ll switch over to a different repository I frequently use as a boilerplate for my projects. This boilerplate is a work in progress, so don’t be surprised if it changes faster than you change your socks. 😅

Source: Master Google Apps Script UIs — Part 9: Elevating Your Game with TypeScript 👾