And Spreadsheet Automation 101 is a great way to learn most of what I go over in this video.
Members-only tutorial
Watch the video and get the practice sheet with membership.
About this Tutorial
And Spreadsheet Automation 101 is a great way to learn most of what I go over in this video.
Sheet Resources
Video Transcript
<div>00:00 So in this tutorial, I'm going to walk you through the technical version, the technical stuff of how I power this testimonials page with a Google Form Learn how to create and manage Google Forms for collecting testimonials. Opens in new tab and a Google Sheet.<br>00:12 So kick back, relax, and check it out. So this site, I'm not going to go through the CSS or the JavaScript, but I might show that to you a little bit.<br>00:19 But for right now, I'm going to show you how this works on the Google Sheet side. You can go to bettersheets.co slash testimonials.<br>00:27 You will see literal testimonials or reviews, actually. These are reviews from AppSumo Discover how AppSumo reviews can enhance your testimonials page. Opens in new tab that I put up here.
These are real people.<br>00:34 You can also check them out at the AppSumo Discover how AppSumo reviews can enhance your testimonials page. Opens in new tab page. I just copied and pasted them here and said who they were from.<br>00:40 And then, I also allow you to add your own testimonials. So, I've sent this out to BetterSheets members. And and also anyone who visits this page can go and fill out this form.<br>00:53 So, let me show you that it works. Here's a testimonial. How do you like BetterSheets? I like it. Because, I made it.<br>01:02 My name, Andrew Kempfey. My role? Mmm, Wizard, maybe? Sheets Wizard? Where Understand how to filter data using the WHERE clause in queries. Opens in new tab ? What company? BetterSheets? I'm gonna click send.
Great, I've sent it.<br>01:19 Where Understand how to filter data using the WHERE clause in queries. Opens in new tab to? That is a Google form Learn how to create and manage Google Forms for collecting testimonials. Opens in new tab that goes through. It goes directly to this Google sheet, and here's testimonials, and here, let's go to the bottom.<br>01:26 Let's go to the top. There it is. It's right here. It's a, it's a, so it's inserting lines, right?
And right now, this test, quote unquote, testimonial from the owner Find out how to identify the owner of a Google Sheet or document. Opens in new tab of BetterSheets that I just filled out, is unapproved.<br>01:41 I added this, so what's going on is that every time that a form is filled out, it will add this approve and edit column, and they check boxes.<br>01:52 I'll show you that in a second. Now, if I don't, it's not I did, I can approve it.
If I like it, and I want to show it off, I can.<br>02:01 I can click approve, click approve, it will go over to this display tab, so if it's not approved, it is not on the display tab, see the made, it's not me, and if I click approve, and it's on the display tab, let's see, here it is, I made it.<br>02:21 If it's on the display tab, it is on the website, so I'll click refresh, let it load, and let's see, made, I like it because I made it, right?<br>02:33 So right away, it is there, so if the next person who sees this page wants to see this, you saw me just two minutes ago enter this, it's already on the page.<br>02:46 All I had to do was click approve, but let's say I want to edit this somehow, like, instead of I like it because I made it, I'll just say I made it.<br>02:57 What would happen in this sort Explore sorting techniques to organize your data effectively. Opens in new tab of sentence when I say edit, I don't mean like edit from a bad review to a good review or a bad testimonial to a good testimonial.<br>03:06 I mean like some people say a lot of things and also they say a lot of things in a lot of different ways and sometimes you just want to edit down the stuff and so when I click edit here and again I'll show you how this works later it creates a copy be.<br>03:21 Exact copy with the same name, same role, same company, same exact text and I can edit it, delete it, and I can also uncheck approve of the other one or maybe I didn't at all yet and I can approve this one.<br>03:36 So now on the display tab it says I made it and now if we go to here right now I haven't refreshed it yet, but let me refresh this.<br>03:45 We will wait a moment for it to load, it does take a moment to load, and now I made it.<br>03:50 It is edit.
That is like magic. This page is being refreshed not refreshed, but updated every time I update that Google Sheet.<br>03:58 It is reading directly from that Google Sheet, so you must be wondering. How did I do that?
Okay, let's go to Apps Script Get insights into using Google Apps Script for automation. Opens in new tab , and I'll show you how.<br>04:09 First off, I did make a little custom here that if you want this sheet, you want this testimonial sheet get it, and then I'll give you the down below as a better sheets member, you get this sheet.<br>04:22 And in the custom menu Learn how to create custom menus in Google Sheets for easy access. Opens in new tab , you will be able to create a form, and that will automatically create a form tied to your sheet.<br>04:29 Let's see. And it will also have all of this stuff in it.
So, from sort Explore sorting techniques to organize your data effectively. Opens in new tab of reverse engineering this, what we're sending to the website where Understand how to filter data using the WHERE clause in queries. Opens in new tab I have a little bit of JavaScript, I have a script, I have a script. I have a little bit of CSS and HTML to, like, make these nice looking things.<br>04:46 But the data Understand how to manage and manipulate data in Google Sheets. Opens in new tab from the Google Sheet is literally these three lines. I've created a function Discover the power of functions in Google Sheets for calculations. Opens in new tab called doGet Learn about the doGet function for creating web apps with Google Apps Script. Opens in new tab . I get the last row on the display sheet.<br>04:54 I get all of the data Understand how to manage and manipulate data in Google Sheets. Opens in new tab that's on there from the first row to the last row, and then I return it through this content service dot create text output.<br>05:02 And I format Explore formatting options to enhance the appearance of your data. Opens in new tab it as JSON.
And that's just so that the website, on the website side, I've created, I'm getting the data Understand how to manage and manipulate data in Google Sheets. Opens in new tab as JSON, I'm hoping, and then I'm parsing through that to get the different text, the different authors, different roles, the different companies, all that in the right proper area.<br>05:22 But just from the Google Sheet, to the website, it's this do get. But how do you actually implement this do get?<br>05:29 You go up here to deploy, new deployment, and you would select Understand how to use the SELECT clause in queries for data retrieval. Opens in new tab web app here. It's already selected for me.
And I'm just going to click deploy.<br>05:40 And literally it will set when you use the function Discover the power of functions in Google Sheets for calculations. Opens in new tab do get, it creates. Well, I'll copy this and I'll show you.<br>05:49 It does all of this for us. We don't have to do anything. We literally just have to use the function Discover the power of functions in Google Sheets for calculations. Opens in new tab do get with a capital G and it will return this stuff.<br>05:56 Watch. If I go to a incognito window and I paste just that web app URL Find out how to deploy and access your web app URL. Opens in new tab . That I got that that Google deployed for me.<br>06:05 I click enter and this is the data Understand how to manage and manipulate data in Google Sheets. Opens in new tab from that sheet. So it's in the JSON format Explore formatting options to enhance the appearance of your data. Opens in new tab structure.
It's all of the text, the authors, the roles, the companies, all of that different stuff from the testimonials all all structured here.<br>06:22 There's a you can probably see it actually, and I will copy this and I will go to JSON beautifier, which I like to use.<br>06:30 I will paste it and now you see it's structured data Understand how to manage and manipulate data in Google Sheets. Opens in new tab . Computers can read this very well. The first it's an array of testimonials.<br>06:39 Here's the first testimonial.
The person who wrote it, the role they have in their company and the company they have.<br>06:45 So in my case, I put AppSumo Discover how AppSumo reviews can enhance your testimonials page. Opens in new tab as their customer of AppSumo Discover how AppSumo reviews can enhance your testimonials page. Opens in new tab because they left a review. But as people start filling this in, you'll see they'll say other things like what their role is at the company that they work at.<br>07:01 The other things in this app script Get insights into using Google Apps Script for automation. Opens in new tab that you'll find is an on open function Discover the power of functions in Google Sheets for calculations. Opens in new tab with which automatically creates that custom menu Learn how to create custom menus in Google Sheets for easy access. Opens in new tab .<br>07:10 And you can then click that button and you'll copy the sheet to your Google Drive.
Once you click this button, create form, what does that do?<br>07:19 It'll create a Google Sheet form. It'll have a how do you like it? Your thing? What's your name? Your role?<br>07:30 Your company? It'll create that form for you to send to users. How does it create? It creates also, if you go to settings, put your name or your site name or your app name here in B1 on settings.<br>07:41 It will include that in the form.
If, however, you do not do that, if you're like, oh, you jumped the gun and you actually have better seats here, go to the testimonials tab, unlink, delete this, and try again.<br>07:55 Literally, you can just make another one. Delete it, unlink it, then delete this tab. You'll still have that form somewhere in your Google Drive, but it should be fine.<br>08:04 But then you'll create a new form that's linked to this sheet, and it'll be called testimonials. It will always rename it testimonials.<br>08:11 That's in this app script Get insights into using Google Apps Script for automation. Opens in new tab here. We can find it here.
Set name, it sets the name to testimonials. What it also does is, it, creates the approve and the edit columns.<br>08:29 Then on, Okay, so here's a tricky thing. It also creates a trigger Learn about triggers in Google Apps Script for automating tasks. Opens in new tab so that whenever that form is edited, there is an edit to the form, it will insert checkbox Discover how to use checkboxes in Google Sheets for approvals. Opens in new tab .<br>08:43 In the appropriate row. So we saw those approve and edit checkboxes already created once someone enters a new row. Answers Understand how to handle responses from Google Forms. Opens in new tab your Google form Learn how to create and manage Google Forms for collecting testimonials. Opens in new tab .<br>08:55 I would double check this a few times off on your own.
We also have on edit here, and this function Discover the power of functions in Google Sheets for calculations. Opens in new tab is using the normal, built in on edit function Discover the power of functions in Google Sheets for calculations. Opens in new tab of Google Sheets and Google Apps Script Get insights into using Google Apps Script for automation. Opens in new tab , and it says whenever someone's on the testimonial sheet.<br>09:13 No, I think I have to fix that. No, no, I don't need to fix that. No sheet is supposed to be testimonials.<br>09:19 Yeah, that is an error Get tips on troubleshooting common Google Sheets errors. Opens in new tab . Get sheet by name. If it's, testimonials, and the column is seven, and the row is greater than one, it will insert a row, and it will copy paste.<br>09:31 So this is the edit here. Oh, yeah, I see a little error Get tips on troubleshooting common Google Sheets errors. Opens in new tab here.
This is supposed to be is equal to testimonials.<br>09:38 Okay, so now it'll work. It worked before, but it didn't take into consideration this testimonial. Page, meaning if you edit the seventh column on any of the other ones, it would have done this as well.<br>09:51 But now it won't. It fixes that bug. So now it'll only happen on the testimonial sheet. So yeah, on this on edit is pretty cool because it's going to copy the line that you're on, copy it and insert it right below it and paste it.<br>10:07 And then it sets the value. Yeah, setting the values Learn how to work with values in Google Sheets for data analysis. Opens in new tab .
And so now you have a copy of each one. Why I do that is because if you're working in a team, if you have more than one person doing this, dealing with testimonials, reviews, whatnot, and you edit, a testimonial, sometimes you'll want the original<br>10:29 in other places. You'll want to, like, copy and paste the original so that, like, you have it as, like, here's the full version or you just want, like, a record Explore how to keep records of changes in your Google Sheets. Opens in new tab of it.<br>10:42 And all of the ones that are the original will have a time.
The ones that are the edits will not have a time stamp, so that's one indicator that you've edited, edited it and I think it's better to keep that data Understand how to manage and manipulate data in Google Sheets. Opens in new tab around just so I'm actually gonna prove it just so that, again, for record Explore how to keep records of changes in your Google Sheets. Opens in new tab , if<br>11:00 you're working with other people, they might want to read the original one, you might want to do that.
Do that for market research, like, if you take testimonials and you're like, how do people describe what we do, what is our positioning are we missing some segment of the population and how they<br>11:15 talk you'll, you don't want to edit it for that market research purposes. Yeah, so go ahead, take a look at this testimonials.<br>11:25 Sheet. I'll share Find out how to share your Google Sheets with others effectively. Opens in new tab it again. If you're a better sheets member down below, copy the sheet, check it out. Check out this app script Get insights into using Google Apps Script for automation. Opens in new tab .<br>11:30 If you want, we had a lot of things going on. We have an a do get web function Discover the power of functions in Google Sheets for calculations. Opens in new tab .
We have on open function Discover the power of functions in Google Sheets for calculations. Opens in new tab to create the menu.<br>11:42 We have a form being created. If you click that menu. Item and create a testimonial form. Then we also have it create a trigger Learn about triggers in Google Apps Script for automating tasks. Opens in new tab .<br>11:49 We had to create this trigger Learn about triggers in Google Apps Script for automating tasks. Opens in new tab so that on form submission, it would add the checkbox Discover how to use checkboxes in Google Sheets for approvals. Opens in new tab . We have that checkbox Discover how to use checkboxes in Google Sheets for approvals. Opens in new tab function Discover the power of functions in Google Sheets for calculations. Opens in new tab and we have an on edit function Discover the power of functions in Google Sheets for calculations. Opens in new tab for the edit.<br>12:00 So when you click that edit checkbox Discover how to use checkboxes in Google Sheets for approvals. Opens in new tab , it will create another row. Let's double. Check this that it's working perfect. It is working.<br>12:08 And now if I edit the G column on another sheet, it won't work, which is good. All right.
And we, yeah, we're sending Jason to a website.<br>12:19 So I should probably go over that, that JavaScript that's going on. So let's look at inspect this. See if we can find the JavaScript going on here.<br>12:34 Actually, probably better to show you in VS code. So in VS code, here's the testimonials page. We're taking this URL.<br>12:45 URL, which is literally the web app URL Find out how to deploy and access your web app URL. Opens in new tab that I showed you that is just a bunch of data Understand how to manage and manipulate data in Google Sheets. Opens in new tab . And we're doing a fetch URL.<br>12:51 So if you're used to Apps Script Get insights into using Google Apps Script for automation. Opens in new tab and you know URL fetch dot URL. Sorry.
Yeah, fetch URL in Apps Script Get insights into using Google Apps Script for automation. Opens in new tab .<br>13:01 This is the JavaScript version, fetch and URL. What we're doing is we're doing a fetch URL. Is taking that response.<br>13:07 We're reducing it down to figure out how many there are. We're then formatting Explore formatting options to enhance the appearance of your data. Opens in new tab them in like columns to be nicer.<br>13:15 Like it's a masonry grid Understand how to create and manage grids in your data presentation. Opens in new tab so that they don't have big gaping holes. If there's a big one, there's like a long text and a short text next to it.<br>13:23 It's going to be very lot of white. We'll be right back.
Space so I tried to fix that by sort Explore sorting techniques to organize your data effectively. Opens in new tab of just doing columns here for each item.<br>13:32 We're taking the text, the author, the role, the company. We're getting all of that.
We're putting it into a card.<br>13:38 We're styling the card with this background white with a bit of shadow with some border with some rounded corners and we.<br>13:46 Piece together the HTML of the text, the author, the role at company, and I can edit all of this if I want to on the website side.<br>13:54 I don't need to edit the data Understand how to manage and manipulate data in Google Sheets. Opens in new tab at all and we're putting into a grid Understand how to create and manage grids in your data presentation. Opens in new tab where Understand how to filter data using the WHERE clause in queries. Opens in new tab we're saying put the first third in the grid Understand how to create and manage grids in your data presentation. Opens in new tab to the left second third in the grid Understand how to create and manage grids in your data presentation. Opens in new tab to the middle and.<br>14:06 And a column, sorry, a column in the left middle and right.
And I think if, I think there's also, if it's a smaller size, if it's like mobile, it's only one column should be.<br>14:21 Yeah, great column one. And then on a larger size, it's three columns. That's the point there. That's it. That's the JavaScript.<br>14:30 Some HTML, little bit of HTML, bunch of JavaScript, little CSS. And we are grabbing that data Understand how to manage and manipulate data in Google Sheets. Opens in new tab from the Google sheet because of that do get.<br>14:40 So let me remind you here from the beginning of the video or early on the video, it's literally this do get function Discover the power of functions in Google Sheets for calculations. Opens in new tab .<br>14:46 Deploy and it's this web app URL Find out how to deploy and access your web app URL. Opens in new tab that we're getting here.
And what this is doing is just again grabbing the data Understand how to manage and manipulate data in Google Sheets. Opens in new tab that's in display display sheet, setting it as JSON and sending it out to the world.<br>15:02 Whoever goes to that URL will grab that JSON, which is really cool. In a few ways, right? This doesn't sound very private and it's not very secure in data Understand how to manage and manipulate data in Google Sheets. Opens in new tab .<br>15:15 It's not very good data Understand how to manage and manipulate data in Google Sheets. Opens in new tab security, but in case of having a public website like this, it's okay.
It's okay to have this data Understand how to manage and manipulate data in Google Sheets. Opens in new tab sort Explore sorting techniques to organize your data effectively. Opens in new tab of at this URL level, and if anybody finds this URL, they can grab that data Understand how to manage and manipulate data in Google Sheets. Opens in new tab .<br>15:28 They can't edit the sheet because if they want to edit the sheet and add some testimonials that are like bad and they want it to go on their website, they can't because I have to approve them.<br>15:37 I have that act, that human action. I have to take that checkbox Discover how to use checkboxes in Google Sheets for approvals. Opens in new tab to get it onto display tab. And this you web app URL Find out how to deploy and access your web app URL. Opens in new tab .<br>15:47 Only works on the display tab because I've said get sheet by name here.
So they cannot edit that URL to get something else in the sheet.<br>15:58 For instance, I've noticed people will use like import Learn how to import data into Google Sheets from various sources. Opens in new tab range Discover how to define and use ranges in Google Sheets. Opens in new tab in a spreadsheet Get familiar with the features and functions of Google Sheets. Opens in new tab to grab data Understand how to manage and manipulate data in Google Sheets. Opens in new tab from another spreadsheet Get familiar with the features and functions of Google Sheets. Opens in new tab . But that's what we're going to need to say, what is the what is the range Discover how to define and use ranges in Google Sheets. Opens in new tab ?<br>16:12 And if you edit that range Discover how to define and use ranges in Google Sheets. Opens in new tab and you guess correctly the other tabs, you can grab information from that other sheet when you're like, oh, I want to just send this one tab.<br>16:19 Not everything. But if somebody guesses what the other tab names are or edits at range Discover how to define and use ranges in Google Sheets. Opens in new tab , you are scared.
Your data Understand how to manage and manipulate data in Google Sheets. Opens in new tab 's out there in this.<br>16:26 In this case, our data Understand how to manage and manipulate data in Google Sheets. Opens in new tab is very much secure because it's only grabbing this data Understand how to manage and manipulate data in Google Sheets. Opens in new tab here and it's deployed on Google servers.<br>16:34 So we don't have to host this at all. It's not necessarily HIPAA compliant. I had a question earlier about like only sheets being HIPAA compliant and I don't think it is.<br>16:47 It's not HIPAA compliant because my Google sheets might not be HIPAA compliant. If your Google Workspace is HIPAA compliant and your Google sheets are, then yes it is.<br>16:58 But in my case, this is probably not very much.
This is not very good HIPAA compliance here.
Feel free to email me, ask me any questions, if this is a little too, this is definitely an advanced video, I understand that.<br>17:14 And if you're very much wanting to learn a lot of the pieces of this, I go over that in spreadsheet Get familiar with the features and functions of Google Sheets. Opens in new tab automation 101, the entire three hour course will get you up to speed on writing app script Get insights into using Google Apps Script for automation. Opens in new tab .<br>17:25 It will also get you, e-mailing, I don't do any e-mail in this one, but it'll also get you accessing APIs, I don't actually access any APIs in this, but it'll get you very familiar and very confident in app script Get insights into using Google Apps Script for automation. Opens in new tab I do not yet go over the do get in app script Get insights into using Google Apps Script for automation. Opens in new tab spreadsheet Get familiar with the features and functions of Google Sheets. Opens in new tab automation 101, I <br>17:42 do, however, do go over the on open and the on edit functions Explore various functions available in Google Sheets for data manipulation. Opens in new tab there, so those two, if you're looking for more information about that, and more piecemeal, like stepping blocks and want to learn that, go check out the spreadsheet Get familiar with the features and functions of Google Sheets. Opens in new tab automation 101, the course is available for free for all Betasheets members<br>17:57 , so grab that at betasheets.co slash courses, spreadsheet Get familiar with the features and functions of Google Sheets. Opens in new tab automation 101, bye.</div>
Topics
Courses
Sheet Stories / Video Notes + ADDED: Email Notifications
00:00:00
Fast FAQS
Enter Google Drive File Name Get URL
ChatGPT Clone in Google Sheets Part 2
Create an Internal Google Sheets Add-on
Tweet From a Sheet
Why Different Cell References in AI Integration in Sheets?
Show Sheet Tabs Based on Edit
Add Title Case to Google Sheets
How to Power Testimonials with Google Forms and Sheets
Getting Started Coding in Apps Script
Seek Errors When Coding Apps Script
Think Like a Programmer: Develop The Mindset of an Apps Script Coder
ChatGPT Clone in Google Sheets Part 1
Embed a Number in a Website from a Google Sheet
Create Navigation Like A Book or Presentation
Add Click Tracking To Your Google Sheets | Bitly in a Google Sheet
00:29:08
Hold a Giveaway Raffle in a Google Sheet
Quickstart Tutorial OpenAI API in Google Sheets
Capture Emails from Website Form to a Google Sheet (Without Zapier)
Embed a Headline in a Website from Google Sheets
Create a new Spreadsheet from just a Name in a Sheet.
00:05:21
Bjarne Asks: Can I show the Last Time of the Last Edit in a sheet?
00:05:43
Email Yourself a Cell from a Google Sheet, Every Day
OpenSea Data Inside Sheets
Create an Email Campaign Stats Calculator
00:35:13
Twitter App Clone in a Google Sheet
Dylan Asks: How to Automatically Delete Rows If Cell Contains Value
Highlight Row as You Move Your Cell Selection
Create a Timer with Apps Script
LinkTree in a Google Sheet
00:11:22
Password Protecting Data In a Google Sheet
Automatic Weekly Backup of Google Sheets
Create a CPM Custom Function (Create Better Calculators!)
Move Entire Row when a Cell is changed to "Yes" - The $75,000 Google Script
00:12:29
What Can You Automate in Google Sheets? Every single trigger available to Google Sheet users
Sync Two Tabs Without ImportRange()
Google Sheets Stories? No! But we'll add timestamped video notes to your google sheets.
00:00:00
Password Protecting Data In a Google Sheet Part 2 The Basics
Benoit Asks: How to Convert Case
00:07:35
Learn to Code in Google Sheets, For Programmers
Add a Checkbox to Turn on Dark Mode
00:05:10
Write Your First Script
00:08:31
Find Keywords in Any Column. Create quick search dropdown to find keywords
00:09:37
Basic CRM - Add a Powerful Script To Move Row Based on Status
How To Improve: 1,000 Business ideas: Business Idea Generator
00:11:20
Let's Make a Bookmarklet!
00:12:37
Troubleshooting Bitly in a Google Sheet Script
00:07:07
Unique Features - Design a Better Dashboard Part 2
00:04:13
How To Set Up Stripe Webhook to Google Sheets with Google Script
00:22:10
How to Edit a Macro
00:08:22
Sheet Stories / Video Notes + Clear 24 Hour Old Videos
00:35:10
Add A Timestamp to Task Lists (without Now Formula)
00:07:44
Make your Custom Functions Like Native Functions | Custom Function Autocomplete
00:17:58
Create a Changelog Between 2 Cells Custom Function | To learn Double For Loop
00:23:26
New Syntax for WhatChanged Formula in Google Script
00:07:14
How to Record Macros
00:06:20
2 Ways to Delete Lines Quickly (CAREFUL, it's a script!)
00:09:53
Deep Inside Dark Habits Google Script
00:18:54
How to Trigger Macros Daily
00:06:58
5 Ways to Create Coupon Codes | Create UUIDs
Create a Radio Button From Checkboxes Using Google Apps Script
00:15:01