AppsScriptPulse

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.

 

Automate onboarding of company resources from a Google Sheet – Sheets to Apps

In this episode of Sheets to Apps, we cover how to give newcomers access to resources via Google Forms and an Apps Script that lives in a Google Sheets, making on-boarding new employees simple and easy.

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

Apps Script V8 Runtime Explained For Non-Professional Developers

Learn how to use modern JavaScript features in your Apps Script code with the release of the Apps Script V8 runtime engine.

Somehow we missed this post from Ben Collins when it was originally published in February, 2020, but it is well worth visiting and adding to our V8 collection of posts. For those still catching up V8 is the new runtime for Google Apps Script which enables modern JavaScript syntax to be used in your code. Ben covers some of the basic differences now possible with V8, with lots of examples.

Source: Apps Script V8 Runtime Explained For Non-Professional Developers

How to Send SMS Messages with Google Sheets and your Android Phone – Digital Inspiration

Send personalized text messages to your contacts with the help of Google Sheets and your Android phone. The SMS messages go directly from your phone SIM, no third-party SMS service is required.

Amit Agarwal (@labnol) has highlighted a really interesting model to integrate G Suite with Android mobile apps using Google Apps Script and MIT’s App Inventor. In Amit’s example he illustrates how you can quickly create your own Android app as a proxy for sending SMS messages from a Google Sheet. Given the flexibility of App Inventor this opens up numerous other opportunities to integrate G Suite and your Android phone.

Source: How to Send SMS Messages with Google Sheets and your Android Phone – Digital Inspiration

Track Coronavirus (COVID-19) Cases in India with Google Sheets – Digital Inspiration

The Coronavirus (COVID-19) tracker uses sparklines in Google Sheets to help you visualize the spread of the coronavirus outbreak across different states of India over time.

You can always depend on Amit Agarwal (@labnol) to come up with clever solutions. In this post Amit outlines how he uses Google Apps Script to collect/parse data from the Indian Government website so you can track COVID-19 cases. Already Andrew Roberts has used Amit’s solution to create another version of the tracker for Wales (UK). Ping us at @AppsScriptInfo if you make a variation for your own region and we’ll list it in this post.

Source: Track Coronavirus (COVID-19) Cases in India with Google Sheets – Digital Inspiration

Apps Script V8: Multiple script files and namespaces – Desktop liberation

Apps Script doesn’t have a module loader system. If you’re used to developing in NodeJs, you’ll also be familiar with importing and exporting to include required modules in your project. With Apps Script, you have no control over the order in which multiple script files are executed. In Legacy Apps Script, there seemed to be some kind of workaround going on so that global statements were executed in a sensible order (I don’t know the details), but in V8 this is not the case. …

My golden rules are

  • Nothing executable should be in global space
  • Don’t rely on the order that things are processed
  • Minimize the number of executable functions (1 is good)
  • Always assume your code will be reused somewhere else.

Source: Apps Script V8: Multiple script files and namespaces – Desktop liberation

Apps Script V8: spreading and destructuring – Desktop liberation

V8 adds destructuring from  JavaScript ES6. Legacy Apps Script already had destructuring of arrays added fairly recently, but v8 gives full a destructuring capabilitity. These destructuring and spreading capabilities, which at first may again seem a little like syntactic sugar, have contributed greatly to  the development of state management frameworks such as Vuex and Redux for client side apps. V8 brings some of that cleanliness to Apps Script.

Source: Apps Script V8: spreading and destructuring – Desktop liberation

Subscribe to Apps Script Pulse...