AppsScriptPulse

Lessons Learned building an Apps Script Add-on | Two Octobers

After joining Two Octobers this March, I was overjoyed to be able to focus on building tools that we can use to help grow client revenues. One tool that I had percolating in the back of my mind was a Google-Sheets-based Add-on for building and managing Google My Business Posts. Our team, codenamed “Skunkworks”, got to work and built our Add-On, AgencyAutomators – POSTS. While in the moment it felt like one small step for each of us, it felt like a huge leap for Two Octobers. We learned a ton along the way that I’ll be sharing with you here.

A very comprehensive guide on the challenges and solutions for developing Google Apps Script projects in teams. The post has lots of tips and tricks Noah and his team at Two Octobers learned along the way including hurdles overcome as part of the Add-on publication process. Follow the link for more details.

Source: Lessons Learned building an Apps Script Add-on | Two Octobers

Theatre by email: This unique virtual project lets you ‘teach’ an AI how to feel | CBC Arts

As part of the Rex Project, the audience is emailed collages like this one. It illustrates the details from the AI's "simulation reports." (The Rex Project)
As part of the Rex Project, the audience is emailed collages like this one. It illustrates the details from the AI’s “simulation reports.” (The Rex Project)

It’s a one-man operation, so it’s just me. I’ve been playing around in Google, and they have a really cool service called Google Apps Script, and basically it’s a little programming language that lets me automate their services. So I’ve been writing a code that triggers the emails.

There’s not much detail as to how Apps Script was used in this art installation but it’s always nice to see script and art combine. The project is described as:

In a futuristic world, where the integration of human memories and computer cores has created artificially intelligent androids, companies are mass-recruiting employees to fast-track production. You, the listener, are hired to be an integral part of the quality-control in the emotional development sector. The Rex Project (workshop presentation) is an immersive, virtual, bite-size theatrical experiment that takes place in real time (over 11 days), and is presented entirely through audio-recordings and online platforms.

Rex Project

Source: Theatre by email: This unique virtual project lets you ‘teach’ an AI how to feel | CBC Arts

Dear Analyst #31: Writing Google Apps Scripts to sync data from Coda to Google Sheets • KeyCuts Blog

Use cases for Google Apps Script include syncing data from Coda to Google Sheets.

Always nice to see other products promoting integrations to Google with Google Apps Script. In this post/podcast Al Chen links to a detailed tutorial and code for syncing data to and from Google Sheets to Coda. If you aren’t familiar:

Coda brings all of your words and data into one flexible surface. Coda comes with building blocks—like tables and buttons—and time-saving templates, so your doc can grow and evolve with the needs of your team.

Follow the link through to the source for code and more details.

Source: Dear Analyst #31: Writing Google Apps Scripts to sync data from Coda to Google Sheets • KeyCuts Blog

Change Tab Detection on Google Spreadsheet using onSelectionChange Event Trigger with Google Apps Script

Change Tab Detection on Google Spreadsheet using onSelectionChange Event Trigger with Google Apps Script – submit.md

An example script from Kanshi TANAIKE which lets you test the new onSelectionChange(e) simple event trigger in Google Sheets.

The onSelectionChange(e) trigger runs automatically when a user changes the selection in a spreadsheet.

In the example shared this is used to detect the user changing Google Sheet tab.

Source: Change Tab Detection on Google Spreadsheet using onSelectionChange Event Trigger with Google Apps Script

Interacting with multiple hyperlinks in Google Sheets cells with Google Apps Script

Before this, when a cell has only one hyperlink. In this case, the hyperlink was given to a cell using =HYPERLINK(“http://www.google.com/”, “Google”) but by a recent update, a cell got to be able to have multiple hyperlinks … In this report, I would like to introduce the method for setting and retrieving the multiple URLs for a cell.

Hyperlinks in Google Sheets cells is a bit of an obsession of mine and it’s nice to see Kanshi TANAIKE has a similar passion. Google are rolling out multiple hyperlinks in Google Sheet cells and Tanaike has provided details on how the hyperlink values can been get/set with Google Apps Script (the official docs are still catching up with Tanaike’s discovery :)

Source: Updated Specification of Google Spreadsheet: Multiple Hyperlinks to a Cell

The Gift of Script: Create a Shortcut in Google Drive with Google Apps Script

The following Google Apps Script is designed to create a Shortcut to an existing Google Drive folder, within another folder..

For Google Drive pros you can currently place a file in multiple folders, but Google will be removing this functionality on 30 September 2020. In March Google announced general availability of shortcuts in Google Drive, is is designed to replace the ‘file in multiple locations’ feature. For Google Apps Script developers wanting to migrate to Drive Shortcuts Phil Bainbridge provides this useful Apps Script snippet.

Source: The Gift of Script: Create a Shortcut in Google Drive

DNSQuery and G Suite domain detection in Google Sheets using the Cloudflare name resolution service

Dos funciones personalizadas para hojas de cálculo de Google desarrolladas en Apps Script que proporcionan un envoltorio para la función NSLookup, tal y como aparece en la documentación del servicio de resolución de nombres de CloudFlare. Consulta el registro indicado en el o los dominios que se pasan como parámetro utilizando el servicio de resolución de nombres de CloudFlare. Determina si un email o dominio (o lista de emails o dominios) está gestionado por Google o no. – pfelipm/dnsquery

Pablo Felip Monferrer has shared two custom functions for Google Sheets that provide an extension to the NSLookup function originally shared by Cloudflare. The first is a wrapper that makes it easy to list specific DNS record types for a single or list of domains. The second function uses the domains MX record to automatically detect if a domain has G Suite Gmail settings applied.

Source: pfelipm/dnsquery

Marketing Data Extraction using SOAP API — Apps Script Automation

Recently I had setup a daily extraction automation from a marketing platform and they had SOAP API. I had worked with xml before, so after some trial and error I was able to fetch marketing data from trafficvance.com platform right inside Google Sheets

Nice post from Urwa Shabir highlighting how to interact with 3rd party APIs using SOAP which relies heavily on XML. The post covers formatting a SOAP request now that SOAPService is deprecated in Apps Script, as well as parsing the XML response.

Source: Marketing Data Extraction using SOAP API — Apps Script Automation

DNS in Google Sheets – Cloudflare Resolver

They thought we wouldn’t go there, but they thought wrong. If you want or need to find out some DNS records inside of Google Sheets, create a Google Function

Eric Koleda spotted (see tweet) that Cloudflare has been having some fun with Google Apps Script sharing a custom function that lets you do a DNS lookup for domain names in Google Sheets. Eric notes he can’t imagine when you would need to do this, but I always find it encouraging to see big companies using and promoting Google Apps Script.

Source: DNS in Google Sheets – Cloudflare Resolver

Proof of concept of how to get namespaces (sorta) in Google Apps Scripts libraries

Proof of concept of how to get namespaces (sorta) in Google Apps Scripts libraries – classroomtechtools/NamespacedLib

For the seasoned Google Apps Script library author a continual frustration is the inability to get the online Script Editor to autocomplete if you have sub methods within your namespace. Adam Morris has discovered that the @name attribute can be used to fake this behavior … to a degree.

Source: classroomtechtools/NamespacedLib

Firefast is a Firebase SDK for Apps Script V8 Runtime. Read and write data in Firebase using Google Apps Script

Firebase Realtime Database is a cloud-hosted NoSQL database. Data is stored as JSON and can be accessed in your Web, iOS, Android app using Google’s Firebase SDK. But, Google doesn’t provide such SDK for Apps Script. This library solves that problem. It gives you Firebase SDK for Apps Script.

Nice Google Apps Script library from Mani Doraisamy that makes it easy to read/write data from a Firebase Realtime Database. The site also highlights the performance gain of writing this library from the V8 runtime compared to the older FirebaseApp library shared by Romain Vialard. Mani’s code is open source and if you have issues, feedback or contributions you can add these via the Github repo.

Source: Firefast – Getting Started

Streamline access to resources for vendors via Google Sheet – Sheets to Apps

Need to share a variety of documents with vendors? Don’t want to share access one by one? In this episode of Sheets to Apps, we’ll cover how to use an Apps Script in a Google Sheet to automatically add members to a Google Group, helping you share documents at a large scale that will save you time.

We’ve previously shared the Medium post that provides more details for setting up this solution. If you missed that post or were unclear Alexandrina Garcia-Verdin, better known in the community as AGV, provides a very useful overview.

The code and other resources presented in this episode are available from the video description.

Reliable, Secure & Scalable use of Google Apps Script | Google Developers Experts

Most conversations around solutions or automations created using Apps Script eventually get to a point where being able to address concerns around its reliability, security and scalability becomes a challenge — more so if compared to having similar applications being built on other platforms (say: AWS, GCP, Firebase etc.).

In this post, we’ll see how to navigate our way through said constructs by addressing parts of these problems and also explore ways in which we can bake some solutions right from the get-go!

In this post Sourabh Choraria provides some very useful answers for common questions organisations have when using Google Apps Script as part of their infrastructure. Points covered in this post include: managing concurrent executions; being able to securely store, access & manage API keys, tokens; and considerations around quotas.

Source: Reliable, Secure & Scalable use of Apps Script | Google Developers Experts

Integrate Google sign-in using Firebase authentication on your Google Apps Script web app

make use of firebase’s pre-built ui to authenticate users on our google apps script web app

Sometimes with Google Apps Script web apps you need a way to authenticate the user whilst also publishing the web app to run under a specific account. Sourabh Choraria details how Firebase can be setup allowing you to authenticate users with their Google account.

Source: integrate google sign-in using firebase auth on your google apps script web app

Capture Gmail Messages in a Google Sheet using Google Apps Script | Practical Ecommerce

With Google Apps Script, marketers can capture Gmail messages, parse them for relevant information, and add them row-by-row to a Google spreadsheet. This can be especially helpful for capturing leads or contacts.

A comprehensive write-up from Armando Roggio on using Google Apps Script to copy emails from your Gmail account to Google Sheets. As an added bonus the tutorial is also written using the new V8 runtime syntax.

Source: Capture Gmail Messages in a Google Sheet | Practical Ecommerce

Take Your Business Online Integration to a Whole New Level with 56 Hours of Instruction on Google Scripts, Apps, Projects & Tips — Source Code Included

The training in The Increase Your Google App Productivity with Google Script Bundle can show you all you need to know to navigate the entire scene like a pro.

The training starts the introductory level Google Apps Script Complete Course: Beginner to Advanced. Here, even first time users get a velvet glove experience learning Script, how it operates and the ways you can use it to power up your app projects immediately.

For those of you who track Google Apps Script with Google Alerts your inbox is probably full of notifications about this Google Apps Script course provided by Google Developers Expert Laurence Svekis. Don’t delay to get this course discount…

Source: Take Your Business Online Integration to a Whole New Level with 56 Hours of Instruction on Google Scripts, Apps, Projects & Tips — Source Code Included

A bulk email/mail merge with Gmail and Google Sheets solution evolution using V8 – MASHe

Last year I had a ‘mail merge using Gmail and Google Sheets’ contribution accepted on the G Suite Developers Solution Gallery. Just over 6 months on there has been lots of useful feedback and requests for solutions to some of the limitations of the original published script. In the meantime Google has also made the new V8 runtime for Google Apps Script generally available. Given this it seemed appropriate to revisit the original solution updating it for V8 as well as covering the most commonly asked for changes. In this post I’ll highlight some of the coding changes as well as some easy modifications.

This post picks up some common requests I get for features like advanced send parameters (cc, bcc, sender name/from, replyTo), sending emails with emoji/unicode and scheduling/triggering bulk emails. Some other areas covered in this post might be of general interest to Apps Script developers interested in using formatted Google Sheets cell values for currencies, dates and more as well as detecting/ignoring filtered hidden rows.

Source: A bulk email/mail merge with Gmail and Google Sheets solution evolution using V8 – MASHe

Apps Script V8: Keystore for global space – Desktop liberation

One of the challenges with V8 compared to Rhino is that you can’t be sure of the order of global variable initialization. Personally this is not an issue for me, as I avoid any such use of global space, but it is an issue for some. A nice way of dealing with global space is to use namespaces and IEF as I described in Apps Script V8: Multiple script files, classes and namespaces but another, perhaps less obvious way, is put all the variables (and even functions) you need to access from multiple functions in a keystore.

Interesting solution for storing/retrieving variables, particularly when you are using the new V8 runtime.

Source: Apps Script V8: Keystore for global space – Desktop liberation

Using Google Apps Script to capture who sends email from your delegated gmail account

Overview of the power of Apps Script – Apps Script in a Snap

In this first episode of Apps Script in a Snap, Joanna Smith will go over what exactly Apps Script is and how you can use it to tailor any of G Suite’s productivity apps – such as Google Drive, Google Sheets, Google Docs, and Google Drive – to match and streamline your workflow.

The G Suite DevRel team have been busy. As well as AGV’s excellent Sheets to Apps series, some new videos are coming out from Joanna Smith in ‘Apps Script in a Snap!’. Currently these are very top level intro videos and it will be interesting to see where they go with this series.

 

Subscribe to Apps Script Pulse...