Zoom alternatives: 3 video conferencing tools you can use instead

Zoom is seeing a surge in users but at the same time, the service’s many vulnerabilities and its questionable privacy practices are putting people off. It has been banned in some companies and many people are looking for Zoom alternatives. If you’re in the same boat, here are three Zoom alternatives that you can use to work from home.

Zoom alternatives

The reason Zoom is so popular is because it’s easy to get a link to meeting in advance and share it, there are calendar invites, lots of people can participate in a single group video chat, and everyone can participate in it.  Here are three apps that check all those boxes.

1. Skype

Skype would generally not be in the running if you were to compare it with Zoom but it has added a new feature in response to the lockdown that lets it compete with the service. You can now invite anyone to a Skype meeting, and they can join it regardless if they have a Skype account or not. You have all of Skype’s features at your disposal.


  • It’s secure and it has a free version that allows you to invite as many people as you want and the call’s length isn’t limited.
  • If you’re only inviting people who use Skype, you can schedule the call from within Skype. This is a new feature that was added a few months ago.
  • You can generate a link to a meeting in advance and share it, allowing others to join it without a Skype account or even the app.
  • You can share your screen with others.


  • Skype doesn’t have a whiteboard feature.
  • It’s not ideal for a classroom set up since there are no meeting managers who have administrative control over the call.

2. Microsoft Teams

Microsoft Teams is part of Office 365 (or Microsoft 365) but you can sign up and use it for free. If you have an Office/Microsoft 365 account, it won’t make much of a difference.


  • There is both a desktop and web app that you can use.
  • You can invite people to your ‘Team’ which makes it easy to interact with everyone and schedule meetings later.
  • Meetings can be scheduled and anyone can join them.
  • Support for conference rooms, dedicated channels, and rooms.


  • It is more a chat/collaboration app than a video conferencing tool. The features are built-in and they work fine but they aren’t intuitive and may not be the best if you’re creating classrooms for younger children.
  • The UI is a bit busy. It’s not bad but a lot of Office 365 is integrated with it and it might be confusing to get started with it.

3. Google Hangouts

Google Hangouts is, as the name describes, a Google product and it’s been around for years. It works with a Gmail account but you can invite anyone to a meeting/hangout. It works entirely from a browser.


  • Anyone can join a meeting regardless if they have a Google account or not.
  • You can schedule the meeting and share a link to it in advance.
  • Any number of users can be invited to a meeting.
  • Background noise is proactively blocked.
  • You can share your screen, and create conference rooms etc.
  • You have administrative control over meetings that allows you to mute others and removing disruptive users.


  • It’s a Google product and that might set off alarm bells for some people regarding privacy.
  • It may not work on all browsers e.g. Safari and users will have to install Firefox or Chrome.


The post Zoom alternatives: 3 video conferencing tools you can use instead appeared first on AddictiveTips.

How to back up and import contacts on Skype

Skype has been around a long time and if you’ve been using it for just as long, chances are you have quite a few contacts saved to it. A Skype ID can be a username or it can an email and either one can be used to find other Skype users. They’re not hard to find if you have either one of these two things but adding a lot of contacts is time-consuming. Here’s how you can back up and import contacts on Skype.

Back up Skype contacts

In order to back up Skype contacts, you have to visit your Skype profile in your browser. Scroll down to the bottom of the page to the ‘Account details’ section. Under ‘Settings and preferences’, click ‘Export contacts (.csv)’. A save file dialog will open. Select where you want to save the file and your contacts will be backed up.

The CSV file will include everything a contact has added to their profile such as Skype usernames, phone numbers, location, links, bios, etc. The file is not encrypted so be careful how you store it.

Import Skype contacts

Generally speaking, you do not need to import Skype contacts. This is because they’re all stored online. If you’re able to back them up, then they are still added to your contacts list. That said, if you were to delete a Skype account and create a new one, you may want to take your old contacts with you. You will be disappointed to know that you can’t import contacts from the CSV file that you backed up. Here’s what you can do instead.

Add contacts again

Open the CSV file that you backed up, and go through the ID column. You will see the ID that each of your contacts use. You can add them again, individually. This is going to take time but the limitation is likely there because Skype doesn’t let you add/chat with people unless they approve your request.

Send contacts

This only works if you have not deleted your old account. Add your new account as a contact to your old account and then start a conversation with it. Click the ‘Send Contact’ button next to the text input field.

A window will open listing your contacts. Select all the contacts that you want to import and click Send.

All your contacts will be sent to the new account and you can click the Chat button (from the new account) to add and chat with the user. You will still be sending individual requests but you won’t have to copy and paste usernames from the CSV file into Skype.

Need to back up your chat history? Here’s how.

The post How to back up and import contacts on Skype appeared first on AddictiveTips.

How to highlight the active tab in Chrome

Chrome lets you customize the color of its UI. You can do so freely and it’s a quick way to create a Chrome theme. The customization tool in Chrome allows you to pick one color, and then shades of it are used for the tabs’ bar. It looks good aesthetically but often the active tab is hard to distinguish from the ones in the background tab.

If you’re not particularly attached to a theme, and just want to highlight the active tab in Chrome so that it is much easier to identify, you should use the Black & White theme.

Highlight active tab

The Black & White theme is a Chrome theme (i.e. Google theme) and it is, for the most part, a dark theme featuring black on the tabs’ bar and on the new tab page. For the active tab, it features a nice white color which is easy to distinguish from the black of the background tabs.

Install the Black & White theme from the Chrome Web store. It will modify the look of the browser as soon as it is installed.

This is just one of many themes that you can install to highlight the active tab in Chrome. You can go through the other themes available in the Chrome Web store, some of which are high contrast themes and created for this very purpose.

If the themes that are available don’t do the job, or you’re still attached to the particular color your current theme uses, you can always create your own theme. We mentioned earlier that they are fairly easy to create.

You can create a theme that uses the same color as your current one but have it use either a darker or lighter color for the active tab. The theme won’t install the same way as a theme from the Chrome Web store but it will work the same way.

Changing themes is fairly easy in Chrome but you can only have one theme installed at a time which means if you like to have different themes for morning and evening, you’re going to have to install and uninstall them every day. Keep this in mind when you’re making the theme so that it isn’t too bright to use at night. One trick you can use is, instead of highlighting a tab with a different color, you can highlight the color that the title of the tab is displayed in. The color can be set so that it contrasts against the color of the tab.

The post How to highlight the active tab in Chrome appeared first on AddictiveTips.

Real-Time and Historical Flight Data with the Aviationstack API (2020 Review)

If your business at all relies on flight data, you owe it to yourself to check out Apilayer’s robust Aviationstack API. This generously provisioned, competitively priced, highly scalable SaaS offering makes it possible to track a wealth of flight data from all over the world, from real-time statistics to historical records with equal aplomb.

So how does it work? Below, we take an eagle-eyed look at Aviationstack’s rich feature set. You’ll learn all about how the API handles forward and reverse geocoding, plus discover a vast array of advanced features to fully flesh out integration with your company’s app. We also help you get up and running with Aviationstack in our simple quick-start guide. Towards the end of the article, we review the API’s performance, then lay out Aviationstack’s various pricing tiers to help you assess which level of service is best for you.

Real-time Flight Status & Global Aviation Data API

Ready for takeoff? Onward and upward!

The Aviationstack API in a nutshell

Aviationstack is the go-to microservice API for real-time flight data, trusted by over 5,000 companies worldwide. Whether you’re building a booking platform; flight visualization, tracking, or monitoring applications; or something more novel, you can count on Apilayer’s expert team and globalized infrastructure to deliver the mission-critical results you need.

Aviationstack offers easy integration into virtually any app or platform thanks to its wide compatibility with all the major programming languages, including PHP, Python, Node.js, jQuery, Go, and Ruby. Requests return JSON, XML, or any geocode-specific GeoJSON files for optimum utility in any use-case. The API is extremely responsive, and generally returns on your requests within 10-100 ms.

Results are generated through forward and reverse geocoding, stemming from a truly massive database encompassing over 2 billion locations across the globe. What’s more, you can tailor its parameters for encryption, support for multiple languages, embeddable map URLs, and much more.

What can you do with Aviationstack?

So what does this all mean in layman’s terms? It’s not an exaggeration to say that Aviationstack gives you ready access to basically any piece of information you could want on any aspect of the aviation industry, anywhere in the world. Need some examples? You can request data on:

  • Live flight tracking
  • Historical flight lookups
  • Scheduling and routes
  • Countries, cities, airports, airlines, and even individual aircraft
  • Aviation taxes

What’s more, there’s a wealth of historical data to parse as well. Since its creation, Aviationstack has vigilantly collected and stored data on millions upon millions of flight records. This allows you to take a granular look into routes, flight numbers, dates, time, and location information. You can also view which cities, airports, terminals, and even gates a flight has departed from or landed in.

Getting started with Aviationstack in 3 steps

Up to this point, we’ve taken a high-level view of Aviationstack’s abilities. Now, it’s time to take a closer look at what it’s like to actually use the API.

Aviationstack’s documentation details a three-stage roadmap to getting their API successfully integrated into your app. Of course, there’re a ton of parameters to consider “under the hood”, but for now we’ll summarize the sign-up process along with their Quickstart Guide.

Aviationstack - review

First, you’ll need to create a free account. Navigate to aviationstack.com, and click “Sign Up Free” in the top-right corner of the window. This will take you to their pricing page, where several subscription packages are available. For now, just sign up for the Free tier–we’ll review the other options later on in this guide, and it’s easy enough to upgrade your account at any time.

Once you’ve entered your credentials, click “Sign Up” once again to create your account. From there, you’ll be presented with Aviationstack’s 3-Step Quickstart Guide. This is a broad overview of the process you’ll follow to get their API working for you.

  1. The first step deals with your API key, which you can use as-is, or rotate out as necessary. Simple!
  2. Next, you’ll choose your API endpoints. In plain English, that simply means you’ll choose which datasets Aviationstack delivers to your app. This is also where you’ll configure things like encryption, batch requests, etc. You’ll also see the API’s base URL: http://api.aviationstack.com/v1/ This is the address where your app will direct its requests for the data points we mentioned above. Aviationstack is kind enough to provide code for an example API request, as well.
  3. Finally, integration! Aviationstack links you to the full documentation where you can find comprehensive integration guides and more code examples. Obviously, complete app integration will take some doing, but these three steps stress how easy it is to pass the required milestones to make it happen.

Dashboard overview

Before getting into the nitty-gritty of understanding and configuring Aviationstack’s API endpoints, take a moment to browse your Dashboard. By default, you’ll see quick links to the 3-Step Quickstart Guide and their APT Documentation page. You can see your API access key here as well, plus reset it whenever you want.

Looking over to the sidebar, you’ll find:

  • Upgrade/Subscription Plan – A quick overview of the different pricing models and their respective benefits. This is also where you can see your billing period and quick stats of your API usage.
  • Account – Configure your basic identity and sign-in details here. Nothing too mysterious!
  • Payment – Easily manipulate your payment methods, and view past invoices for easy accounting.
  • API Usage – By far the most substantial sidebar option, here is where you’ll see how close you are to reaching your monthly quota for API requests. There’s also a handy readout for your historical usage statistics, designed to help you refine your strategy over time. You’ll also get Dashboard and email alerts whenever you exceed 75%, 90%, and 100% of your request quota (though they allow some wiggle-room up to 120% capacity to allow for the inevitable variability of real-world flights).


Here’s where things get interesting. Aviationstack’s documentation page is a massive trove of endpoints, parameters, configurations, and code. To cover every point fully is beyond the scope of this article, but we will provide you with descriptions of everything you need to know–some briefly, some more in depth.

We’re actually going to go out of order, covering the all-important API endpoints first.

About endpoints

So, we’ve mentioned endpoints over and over. Many of our readers will take this term in confident stride, while others may be left scratching their head at the lingo. Just so we’re all on the same page, it helps to think of API endpoints as specific categories of information your app can ask to receive from Aviationstack. The process of doing so is literally known as a “request”, and it generally looks like this:

    ? access_key = YOUR_ACCESS_KEY

You probably recognize the base API URL from earlier, which is simply the address where your app sends its request. Similarly, it’s easy to understand YOUR_ACCESS_KEY is where you input your assigned access key. But look at the end of the base URL. ENDPOINT is where you specify which information your app is requesting from Aviationstack.

Aviationstack’s API endpoints

Note: Most of these endpoints support 256-bit SSL encryption, JSONP Callbacks, results limits, and pagination offset. We’ll cover these after we touch on Aviationstack’s array of endpoints.

Here’s a brief rundown of each endpoint you can use:

  • Real-Time Flights – By appending /flights onto your base URL, you can request real-time information on any number of current flights. There are a ton of parameters to narrow down your request, but generally you can filter by various combinations of arrivals/departures, IATA/ICAO codes and flight numbers, min/max delays, and more. Here’s the example response provided by Aviationstack’s documentation:
    "pagination": {
        "limit": 100,
        "offset": 0,
        "count": 100,
        "total": 1669022
    "data": [
            "flight_date": "2019-12-12",
            "flight_status": "active",
            "departure": {
                "airport": "San Francisco International",
                "timezone": "America/Los_Angeles",
                "iata": "SFO",
                "icao": "KSFO",
                "terminal": "2",
                "gate": "D11",
                "delay": 13,
                "scheduled": "2019-12-12T04:20:00+00:00",
                "estimated": "2019-12-12T04:20:00+00:00",
                "actual": "2019-12-12T04:20:13+00:00",
                "estimated_runway": "2019-12-12T04:20:13+00:00",
                "actual_runway": "2019-12-12T04:20:13+00:00"
            "arrival": {
                "airport": "Dallas/Fort Worth International",
                "timezone": "America/Chicago",
                "iata": "DFW",
                "icao": "KDFW",
                "terminal": "A",
                "gate": "A22",
                "baggage": "A17",
                "delay": 0,
                "scheduled": "2019-12-12T04:20:00+00:00",
                "estimated": "2019-12-12T04:20:00+00:00",
                "actual": null,
                "estimated_runway": null,
                "actual_runway": null
            "airline": {
                "name": "American Airlines",
                "iata": "AA",
                "icao": "AAL"
            "flight": {
                "number": "1004",
                "iata": "AA1004",
                "icao": "AAL1004",
                "codeshared": null
            "aircraft": {
               "registration": "N160AN",
               "iata": "A321",
               "icao": "A321",
               "icao24": "A0F1BB"
            "live": {
                "updated": "2019-12-12T10:00:00+00:00",
                "latitude": 36.28560000,
                "longitude": -106.80700000,
                "altitude": 8846.820,
                "direction": 114.340,
                "speed_horizontal": 894.348,
                "speed_vertical": 1.188,
                "is_ground": false
  • Historical Flights – This is actually a parameter nested under the /flights endpoint, but bears mention on its own as a useful tool for parsing historical flight data. The format is YYYY-MM-DD, and can be requested alongside all other standard flights parameters.
  • Airline Routes – Appending /routes enables you to hone in on specific routes taken by individual flights or entire airlines. Filter by flight number, and/or IATA/ICAO code by departures/arrivals. A route will look something like this:
   "pagination": {
       "limit": 100,
       "offset": 0,
       "count": 100,
       "total": 208033
   "data": [
         "departure": {
            "airport": "Brussels Airport",
            "timezone": "Europe/Brussels",
            "iata": "BRU",
            "icao": "EBBR",
            "terminal": null,
            "time": "06:10:00"
         "arrival": {
            "airport": "Girona-Costa Brava",
            "timezone": "Europe/Madrid",
            "iata": "GRO",
            "icao": "LEGE",
            "terminal": "1",
            "time": "07:55:00"
         "airline": {
            "name": "Brussels Airlines",
            "callsign": "B-LINE",
            "iata": "SN",
            "icao": "BEL"
         "flight": {
            "number": "3683"
  • Airports – So long as you have the Basic plan or better, you can request info on /airports around the world. This endpoint also supports the search parameter, which lets you get autocomplete suggestions from string inputs. More on autocomplete below.
  • Airlines – Appending /airlines will allow you to collate info on your chosen airline. This endpoint supports the search parameter as well.
  • Airplanes – Want to grab data about specific aircraft? Here’s an example of what appending /airplanes will return:
   "pagination": {
       "limit": 100,
       "offset": 0,
       "count": 100,
       "total": 19052
   "data": [
         "registration_number": "YR-BAC",
         "production_line": "Boeing 737 Classic",
         "iata_type": "B737-300",
         "model_name": "737",
         "model_code": "B737-377",
         "icao_code_hex": "4A0823",
         "iata_code_short": "B733",
         "construction_number": "23653",
         "test_registration_number": null,
         "rollout_date": null,
         "first_flight_date": "1986-08-02T22:00:00.000Z",
         "delivery_date": "1986-08-21T22:00:00.000Z",
         "registration_date": "0000-00-00",
         "line_number": "1260",
         "plane_series": "377",
         "airline_iata_code": "0B",
         "airline_icao_code": null,
         "plane_owner": "Airwork Flight Operations Ltd",
         "engines_count": "2",
         "engines_type": "JET",
         "plane_age": "31",
         "plane_status": "active",
         "plane_class": null
  • Aircraft Types – For data on types of aircraft, append /aircraft_types to the base URL. The API response will return info on a wealth of different aircraft types, but if you want to narrow it down, we recommend you add the search parameter to type in specific models like DC-10, 737, or Cessna 172.
  • Aviation Taxes – You can easily source data on various aviation taxes with /taxes. Doing so will return the name of the tax, plus the associated IATA code. This endpoint also supports search for Basic customers and above.
  • Cities, Countries – Appending /cities or /countries will return valuable data on specific locations. You can view IATA/ISO codes, longitude/latitude, time zone, population, capital, currency, phone prefixes and more.

Other features

To help you control how data is requested and transmitted, the Aviationstack offers a few advanced options to customize your requests:

  • 256-bit HTTPS Encryption – While this is optional, Addictive Tips has written many articles on the virtues of encrypting, well… basically everything. Provided you have at least the Basic Aviationstack subscription, and security is something you value, there’s a simple way to alter your API request: simply replace http in the base API URL with https, like this: https://api.aviationstack.com. Doing so will shroud your communication with Aviationstack’s server in impenetrable 256-bit SSL encryption–the industry standard for good reason.
  • JSONP Callbacks – Cross-domain policies can get in the way of getting your API request returned. Evoking JSONP callbacks will bypass this issue, requesting an external script instead. In layman’s terms, this is a tool you can apply to cross roadblocks that may gum up transmission of vital data.
  • Autocomplete – This function is evoked adding the “search” parameter to your request. Essentially, if you don’t know the exact term for a specific aircraft, airport, or anything else, you can ask Aviationstack to meet you halfway. This creates a dialogue box where you can start typing plain English, and the API will interpret the string and suggest the proper nomenclature. It’s an extremely useful function, but is unavailable for Free subscribers. Supported endpoints include: /airports, /airlines, /airplanes, /aircraft_types, /taxes, /cities, /countries.
  • API Errors – As with anything, sometimes things go wrong with your API request. In this case, Aviationstack will return a JSON object containing a message describing the problem, along with the error code. You can also see the context wherein the error occurred, allowing you to more easily hone in on and squash the bug.


At this point, you should have a pretty good idea of what Aviationstack can do. But to truly grasp how powerful the API is, let’s consider how many data points are in Aviationstack’s network:

  • 10,000+ Airports
  • 13,000+ Airlines
  • 19,000+ Airplanes
  • 300+ Aircraft types
  • 9,000+ Cities
  • 250+ Countries
  • 500+ Aviation taxes

To put some of those numbers into context, according to the Airports Council International, there are around 17,000 airports globally. Additionally, estimates put the total number of active planes at around 39,000. Both figures take into consideration commercial and military infrastructure. When you consider Aviationstack’s piece of the pie focuses solely on civilian flights, you realize their API covers the vast majority of non-military flight activity worldwide.

Even setting its network aside, Aviationstack’s remains highly impressive. They report 99.9% uptime in the last 12 months, showing that they’re not just touting theoretical performance–they’ve got the stability to back it up. What’s more, the data returned by your requests is typically delayed by less than a minute, which is by all accounts extremely fast for a consumer SaaS product.

Perhaps most critically, these figures retain their fidelity no matter how big you scale up your requests. Whether you’re making just a few thousand requests a month or processing millions of data points per day, Aviationstack delivers fast, reliable performance 99.9% of the time. Just reach out to their support team with your requirements, and they’ll make it happen.


Aviationstack offers five tiers of service. Whether you’re running a startup, SMB, or enterprise, there’s a package to meet your needs in a cost-efficient way.

Pricing Plans That Fit Your Business

Let’s take a look:

  • Free – True to its name, this tier costs nothing to use. What’s more, you don’t even have to provide credit card details, so it’s best for anyone who wants to test out Aviationstack with no obligation. Free users have a 500/month API request quota, a personal license, and full access to Aviationstack’s massive trove of real-time aviation data. There’s limited customer support, so you’ll need to have some understanding of API integration to make good use of this tier.
  • Basic – $49.99 per month, with a $10 monthly discount for year-long subscriptions. This tier sees a significant step up in your request quota to 10,000 requests per month. You also get expanded access to real-time and historical data, plus info on airline routes. Crucially, you also unlock encryption and autocomplete, for a more secure and streamlined user experience overall. Basic subscribers get a commercial license, plus full access to Aviationstack’s incredible customer support.
  • Professional – $149.99 per month, with a $30 monthly discount for year-long subscriptions. What’s more, Aviationstack offers extended access limits for companies looking to scale up. The Professional tier their most popular package, and ideally suited for the vast majority of commercial applications. Monthly requests balloon to a quota of 50,000, and you have full access to real-time, historical, and airline route data. Encryption and autocomplete also come standard in this tier, along with a commercial license and comprehensive customer support.
  • Business – $499.99 per month, with a $100 monthly discount for year-long subscriptions. The Business tier includes everything in the Professional tier, except your quota skyrockets to 250,000 monthly requests. This is more than enough horsepower for anything but the largest enterprises.
  • Enterprise – If you’re looking for full-scale monitoring of the aviation industry, you’ll want to contact Aviationstack for a custom quote. Together, you will identify your estimated volume requests, and configure your subscription accordingly. Rest assured, Aviationstack is ready to deploy its considerable resources to achieve custom solutions to best fit your needs.


Aviationstack is the go-to solution for tracking real-time and historical flight data. Whether you’re building a novel startup, scaling a SMB, or expanding your enterprise, Aviationstack’s robust API has the performance and reliability you need to access mission-critical data. With Aviationstack, you can have your thumb on the pulse of nearly the entire civilian airline industry worldwide. No matter what your requirements, expert customer support is ready to make this API work for you.

Do you have any questions about the Aviationstack API? What sort of integrations do you have in store? Leave us a comment below.

The post Real-Time and Historical Flight Data with the Aviationstack API (2020 Review) appeared first on AddictiveTips.

How to stop ‘failures for Google Apps Script’ emails

Google Scripts is a useful tool that allows you to run scripted actions on files in Google Docs, Drive, Sheets, Slides, etc. If you’re willing to invest a little time in it, you can probably write your own Google Script but you’ll find there are plenty of them available online that you can simply import. A Google Script, like most other scripts, relies on triggers or certain parameters to run and when those triggers fail to run, the script itself cannot run and ultimately fails. When a script fails to run, you get an email with the subject “failures for Google Apps Script” that tells you which triggers failed. Here’s how you can stop getting these emails.

Fix “failures for Google Apps Script”

The first thing you should do is check out which script has a failing trigger. You can find out from the email itself. Decide if the script is still useful for you and if it isn’t, it’s a good idea to just delete it. If you still need to use the script, you need to figure out why those triggers are failing.

Error Messages

A script can fail for any number of reasons but you generally get one of these error messages in the email. An error message will be accompanied by triggers that are failing.

  • Authorization is required to perform that action
  • Exceeded maximum execution time
  • Service using too much computer time for one day

Analyzing triggers

The “failures for Google Apps Script” email will help here again. Look through it and it will show you two things; filters and triggers that are being used by a script, and that are failing. The subject will tell you which script is having problems e.g., in the screenshot below, I have a script called ‘Google Drive Expiration’ that is failing to run. The trigger that is failing is a time-based trigger that is supposed to expire a file at a certain time. The error message says it needs “authorization to perform the action” which it’s unable to get.

First, examine the scripts that are running by visiting this link. If you find the script, you can troubleshoot it. Troubleshooting steps generally depend on the type of script so we can’t go into detail on how to fix a script.

Next, you want to look at the filters and triggers. Visit this link, and select the Filters and the Triggers tab in the column on the left. You will see the triggers that have been configured. You can edit them, or delete them. It depends on what you need to do to fix the script. In many cases, you will be able to reapply the trigger and fix the problem.

Delete Triggers

It is possible that you once used a script and deleted it later. Its triggers may still exist and they are trying to run but failing which is why you get the email for a failed script run. In that case, you can just delete the trigger and the emails will stop.

If all else fails, you can block the email but we don’t advise that you do so if you use a lot of Google Script.

The post How to stop ‘failures for Google Apps Script’ emails appeared first on AddictiveTips.