Courses > How To Create a Google Sheets™ Add-on

32 Tutorials

We'll go step-by-step taking an apps script bound to a your spreadsheet and turn it into a published Google Sheets add-on. We'll go all way from sheet to published. Your add-on, by the end of the course will be available to the public on the Google Workspace Marketplace.

You See Everything

In this course I've recorded the entire process of publishing my 6th Google Sheets Add-on.

We walk through the exact steps to go from a blank sheet, with no script all the way to an approved, published Add-on that's now available in the Google Workspace Marketplace. The add-on is available to 2 billion Google Sheets users.

Super Helpful

This process is usually a P-I-T-A but I've developed templates and a streamlined method to get you through what could take weeks in less than day. You won't worry so much.

I've gone through this now 6 times. 

Released 5 Add-ons:
  1. Sheet Styles: Color Your Sheets Nicely
  2. Tiny Sheets: Delete Unnecessary Cells
  3. Button Styles:  Make cool buttons
  4. Spintax: Spin Syntax Parser
  5. Asa: AI Assistant in Sheets
  6. and the 6th add-on I've published is featured in this course.

Get Started

If you're not a Better Sheets member, you can get this course at:

Watch the 1st video free here:

Hall of Fame

These Google Add-ons were created by students of this Add-on Course


In this course we'll go step by excruciating step how to take a simple apps script from a bound script to your spreadsheet and turn it into a published Google Sheets add-on available to the public on the Google Workspace Marketplace.
Discover what an Add-on is, what it could possibly do and what kind of problems an add-on can solve. There are much more in depth idea driven videos later in the course. For those who might want to know exactly what an add-on is, this video help you out!
In this section of the Add-on course we'll be making the apps script work as an Add-on.
Create a brand new custom formula in Apps Script. We'll do this for our Add-on we'll be publishing to the Google Workspace Marketplace.
We'll make sure our additional custom formula acts like a native formula with autocomplete in a cell.
The most important part of the whole add-on creating process is naming it correctly. Avoid any and all existing names, as well as avoid any names that might conflict with Google Sheets itself.
In this section we're going to turn our apps script into an add-on. complete with add-on menu. (Yes it's different than a custom menu, slightly).

The things I go over in this section took a lot of trial and error. The first time I created a Google Sheets Add-on I was flabbergasted that it just didn't work like a Google Sheets Add-on. Until I did all the things I go over in this section.
Instead of just adding a custom menu to a sheet, we're going to turn this apps script into an add-on menu operable add-on. 
We need to bridge the gap between an add-on not being installed to actually being installed. We add a simple apps script.
We need to fill out our Apps Script manifest. In this video I show you how to get that to show up in our Apps Script.
This part can be very confusing. So I show you step-by-step how to do it.
Configure the OAuth consent screen with information about your application.
A little bit about how to write scopes and where to write them. For your own add-on these might change. 
In this section of our Add-on course we'll get out of sheets for a bit and create marketing materials. I'll show you the templates I use to make websites very quickly. hint: It's CARRD!
I'll also show you how quickly I make the banner and logo. You might be as quick if you have your own company logo or you already have something made.
Using Canva, we'll make a quick logo. A very quick logo for our Google Sheets™ Add-on
Create a banner. This is the thumbnail image that will appear in the Google Workspace Marketplace
We need to take screenshots of the add-on in action. These will be available for users to see how the ad-on works with in the Google Workspace Marketplace. We'll also use these same screenshots later on for launching and on our website. 
Create a Carrd website for our Add-on. In this video I show you the exact template I use to make this process smooth as butter.

Get yourself a Carrd membership and copy the template here:

The website needs to include:
  • Privacy Policy
  • Terms of Service
  • Support
In this section we'll put our marketing materials to the test. We'll go through the ENTIRE process of asking for approval, getting rejected, and overcoming rejection to ultimately publish our Google Sheets Add-on to the world!
In this lesson we'll check if the add-on actually works and record a client ID video. A weird little thing that I've now done a few times so can hopefully show you how to easily do it without getting frustrated.
Here's the exact OAuth Consent Screen YouTube Video I made. I took this and uploaded it as an unlisted video.
We'll finish up the OAuth consent screen form in this video.
We got a reply from our OAuth submission. It says "Action Needed" In this video we'll go over the action needed and I'll show you what to do.
This is what the request granted email looks like! 
Phase 1 of 2 done. The next thing we need to do is submit our application to the Google Workspace Marketplace.
Yet another confusing step in this whole process. In our cloud project we will have to search for, and enable the Marketplace SDK. Watch as I do it in this step-by-step guide.
We will write our Store listing in this video.
After you get OAuth consent screen approval you can go ahead and submit the store listing for review.
We get our Add-on rejected. Oh no! But wait, stay calm. We'll read the email and see why it was rejected.
We did it! The Add-on is approved. You can now go find the Add-on in the Google Workspace Marketplace.
Wanted to share with you some opportunities where you can optimize your listing and get the most people installing your Add-on.
The entire process to create and publish a Google Sheets Add-on internally to your own domain.
How to update your add-on when you update your code for fixes or add functionality.