Create and Run Polls in Google Slides using Google Forms & Google Sheets

Prateek Sharma
5 min readMay 30, 2022

--

Photo by Jason Goodman on Unsplash

I wanted to give a presentation to a group of people. In order to make the presentation more engaging & eliminate silences during the slideshow, I thought of conducting polls in between. I searched for tools online & came across a few options:

These are amazing tools with freemium pricing structure.

Since I am giving presentation using Google tools, I thought let's try it out with Google Apps Script.

Step 1: Create a new presentation using Google Slides

You can create a new slide deck either by going through Google Drive or typing slide.new in the address bar of your browser.

Note down the Google Slide deck file ID from the browser address bar:

The yellow highlighted area in the address bar is your ID for this presentation

Step 2: Create a new poll using Google Form

You can create a new form either by going through Google Drive or typing form.new in the address bar of your browser.

Note down the Google Form file ID from the browser address bar:

The yellow highlighted area in the address bar is your ID for this form

Let's put a question in Google Form:

Now, link a Google Sheet with this form:

You will be taken to Google Sheet by clicking Create button. Select Column B which will hold your answer for Google Form. Go to Insert & click on Chart.

If your audience size is larger than 100, then you can add more rows at bottom of sheet & then select Column B so that your data range in chart reflects new settings.

Step 3: Insert chart in Google Slides deck from Google Sheets

Go to your slide deck and import chart from Google Sheet.

Select Google Sheet associated with Google Form
Select chart in Google Sheet which will hold responses
Chart is inserted in Google Sheet

Step 4: Writing script for Google Form

Go to Script Editor
Give the name to your script file & paste the following code in the editor
You can copy the code by visiting this link — https://pastebin.com/41D89VAZ

Please note that you need to paste the Google Slides ID (from Step-1) & Google Forms ID (from Step-2) in place of SLIDE-ID & FORM-ID respectively.

In this code, we are registering a trigger which will run when user submits the Google Form (poll which you have created).

Now select createTrigger function & click Run button

When you run this script for the first time, it will ask your permission. Just select your Google account, give permission to this script, click on advanced & continue. You can verify whether the trigger has been created successfully or not.

Now, in order to try your poll, click on the Preview button. It will take you to a new tab where you can fill in the sample response.

Now, if I select Nelson Mandela & submit the form, it will automatically be updated in the Google Slide Deck.

You can update the chart settings accordingly to your requirement.

Please note:

  • If you are in slideshow mode of your presentation, then you won't be able to see the live poll results. You need to go back to your editor mode to see real time results.
  • You can use URL Shortner or QR Codes to share the Google Form link. I have created a sample slide for you to take a clue.
  • In updateSlidesChart function mentioned in script file, I am checking every slide for Sheets Charts & if chart is present, then I am updating the same with latest data. You can update the selective slide by using getSlideById function instead of getSlides (if you want to).
  • Please note that Google Apps Script has limitations on Apps Script runtime. For every form submission, in the above-mentioned example, it takes around ~2 seconds. You can bring down this time by selective updation of slide which contains Sheets Charts by using getSlideById function. Apart from this, there are other errors which users might face like “Script invoked too many times per second for this Google user account” which I am not able to reproduce due to limited audience sample set.

--

--

Prateek Sharma

A lifelong learner with keen interest in tech automation, finance & economics.