Automate Your Custom Slide Deck with Zapier and Google Slides

A Step-by-Step Guide to Connecting Zapier to Google Sheets and Google Slides (PowerPoint)

Difficulty Level: Advanced

Creating a custom set of slides for your business presentations can be time-consuming, but with Zapier, Google Sheets, and Google Slides, you can automate this process seamlessly. This guide will walk you through the steps to set up your automation, from connecting Zapier to Google Sheets to populating your Google Slides with the data you need.

Create a New Folder in your Google Drive Account

This task will require several files, all of which need to be hosted in your Google Drive account. First, create a new folder in your Google Drive account. Then, download the following two files to your computer.

Download these two files: 

Next, Create two new Google Files and import these templates into your file. 

  1. Create a Google Sheets file and import the Excel spreadsheet.
    1. Choose New > Google Sheets> Import
  1. Then, create a Google Slides file and import the PowerPoint template. 
    1. Choose New > Google Slides > Import Slides

Connecting Zapier to Google Sheets

To get started, you'll need to connect Zapier to your Google Sheets account. We have an in-depth video walkthrough on how to do this. Watch the video below to get set up: 

Building Your Slide Deck

Step 1: Design Your PowerPoint Slides

Your business likely already has a PowerPoint or Google Slide Template presentation. Prepare and locate this template on your computer, and then follow the rest of the steps outlined below.

Step 2: Import Your Slide Deck to Google Slides

  1. Log into Google Drive: Visit Google Drive and log in with your existing Google Account.
  2. Create a New Google Slide Presentation: Choose New > Google Slides > Blank Presentation.
  3. Import Your Slides: In your new slide deck, go to File > Import Slides, then on the Upload tab, choose your template slide deck from your computer.
  4. Add Fields to Your Slides: After importing your slides, focus on adding the fields you want to populate from Google Sheets.

Step 3: Note the Presentation ID

To automate the process of populating your slides, you’ll need the Presentation ID of your Google Slides deck.

  1. Find the Presentation ID: Look at the URL of your Google Slides presentation. The Presentation ID is the long string of characters typically found between /d/ and /edit.
  2. Example: The Presentation ID is underlined in the below example and is: 13rOYqWqcbDp2oF7NLDBCE6G32jR4nbj2EXeVi0_2Nt-8
    https://docs.google.com/presentation/d/13rOYqWqcbDp2oF7NLDBCE6G32jR4nbj2EXeVi0_2Nt-8/edit#slide=id.g27a337204a2_0_0, the Presentation ID is 13rOYqWqcbDp2oF7NLDBCE6G32jR4nbj2EXeVi0

SECTION 3: Making the Google Sheets Account Connect to Google Slides

Step 1: Prepare Your Google Sheets Data

Ensure your Google Sheets contains the data you want to transfer to your Google Slides. Each row should represent a set of variables and values to be inserted into the slides.

Step 2: Run the App Script

Access the Presentation ID for your newly created Google Slides.

To automate the population of your Google Slides:

  1. Open Google Sheets: Go to Extensions > Apps Script.
  2. Run the Pre-Saved App Script: If the script is not available in your Sheets, you can use the code provided below.

Insert the following script into the Apps Script editor, replacing <PRESENTATION_ID> with the actual ID of your Google Slides presentation. You can find the ID in the URL of your presentation (https://docs.google.com/presentation/d/<PRESENTATION_ID>/edit).

function fillTemplate() {

 

 // Id of the slides template

 // Remember to replace this with the Id of your presentation

 var PRESENTATION_ID = "<PRESENTATION_ID>";

 

 // Open the presentation

 var presentation = SlidesApp.openById(PRESENTATION_ID);

 

 // Read data from the spreadsheet

 var values = SpreadsheetApp.getActive().getDataRange().getValues();

 

 // Replace template variables in the presentation with values

 values.forEach(function(row) {

   var templateVariable = row[0]; // First column contains variable names

   var templateValue = row[1]; // Second column contains values

   presentation.replaceAllText(templateVariable, templateValue);

 });

 

}