Reference · Tools

Google Slides

Create and manage presentations, slides, and pages using the Google Slides API.

Action (binary) Productivity v1 Binary data

The Google Slides node gives your workflows direct access to the Google Slides API — create presentations, read their full structure, do bulk text replacement across every slide at once, or pull a PNG thumbnail of any page. A typical use case is generating a branded deck from template data and saving the thumbnail to a file store without touching the browser.

Node type
Action (binary)
Parameters
19
Outputs
Output, Error
Credentials
Google Slides OAuth2 , Google API (Service Account)

Google Slides

Create, retrieve, and update Google Slides presentations and pages.

Overview

Google Slides tool provides full access to the Google Slides API. Presentation operations: create a new presentation with a title; get a presentation by ID (returns full JSON including slides, layouts, masters, notes); get presentation slides (returns the slides array with optional limit); replace all occurrences of text across slides using batchUpdate with replaceAllText. Page operations: get a specific page (slide, layout, master, or notes page) by its object ID; get a thumbnail image URL for a page, with optional download of the PNG image as binary data. Authentication supports both OAuth2 (recommended) and Service Account (googleApi). Binary output is only produced by the page/getThumbnail operation when downloadImage=true — the PNG is fetched from the contentUrl and stored via prepareBinaryData in the “thumbnail” binary property.

Category: Productivity
Tool Name: google_slides
Version: 1

Appearance: Icon: lucide-MonitorCheck | Color: #F4B400

Node Type

Action (Binary) — handles file/binary data operations

Input / Output

DirectionPort(s)
InputInput
OutputOutput, Error

Credentials

This tool requires Google Slides OAuth2, Google API (Service Account) credentials. See the Credentials Guide for setup instructions.

Resources

ResourceValue
Pagepage
Presentationpresentation

Operations

Presentation (presentation)

OperationValueDescription
CreatecreateCreate a new Google Slides presentation.
GetgetGet a presentation by ID (full JSON including slides, layouts, masters).
Get SlidesgetSlidesGet only the slides array from a presentation, with optional limit.
Replace TextreplaceTextReplace all occurrences of text across slides using batchUpdate.

Page (page)

OperationValueDescription
GetgetGet a specific page by its object ID.
Get ThumbnailgetThumbnailGet the thumbnail image URL for a page, with optional PNG download.

Parameters

String parameters accept {{ $json.field }} expressions, which are evaluated once per input item.

Presentation: Create

ParameterTypeRequiredDefaultDescription
TitlestringYesTitle of the presentation to create.

Presentation: Get

ParameterTypeRequiredDefaultDescription
Presentation ID (presentationId)stringYesID of the presentation. Found in the presentation URL: https://docs.google.com/presentation/d/PRESENTATION_ID/edit

Presentation: Get Slides

ParameterTypeRequiredDefaultDescription
Presentation ID (presentationId)stringYesID of the presentation. Found in the presentation URL: https://docs.google.com/presentation/d/PRESENTATION_ID/edit
Return AllbooleanNofalseWhether to return all slides or only up to a limit.
LimitnumberNo100Maximum number of slides to return. Accepts 1–500. (shown when Return All is false)

Presentation: Replace Text

ParameterTypeRequiredDefaultDescription
Presentation ID (presentationId)stringYesID of the presentation. Found in the presentation URL: https://docs.google.com/presentation/d/PRESENTATION_ID/edit
Search ForstringYesThe text to search for and replace in the presentation.
Replace WithstringYesThe replacement text.
Match CasebooleanNofalseWhether the text search is case-sensitive.
Restrict to Page Object IDsstringNoComma-separated list of page object IDs to restrict text replacement to specific slides. Leave empty to replace in all slides.

Page: Get

ParameterTypeRequiredDefaultDescription
Presentation ID (presentationId)stringYesID of the presentation. Found in the presentation URL: https://docs.google.com/presentation/d/PRESENTATION_ID/edit
Page Object IDstringYesThe object ID of the page (slide) to operate on. Found in the slide’s objectId property.

Page: Get Thumbnail

ParameterTypeRequiredDefaultDescription
Presentation ID (presentationId)stringYesID of the presentation. Found in the presentation URL: https://docs.google.com/presentation/d/PRESENTATION_ID/edit
Page Object IDstringYesThe object ID of the page (slide) to operate on. Found in the slide’s objectId property.
Download ImagebooleanNofalseWhether to download the thumbnail PNG image and store it as binary data in the “thumbnail” output property.

All Operations

ParameterTypeRequiredDefaultDescription
AuthenticationoptionsNooAuth2Authentication method to use.
Options: oAuth2, serviceAccount
Google AccountcredentialNoConnect or select your Google account. (shown when Authentication is oAuth2)
Service Account EmailstringYesThe email address of the Google service account. (shown when Authentication is serviceAccount)
Private KeystringYesThe private key from the service account JSON key file. (shown when Authentication is serviceAccount)
Max ConcurrencynumberNo5Maximum number of items to process concurrently. Accepts 1–20.

Output Data

The Google Slides API response is merged into the item JSON at the top level, so the response fields sit alongside the fields the item already carried. The rest of the input item passes through unchanged and upstream binary data is forwarded.

One input item produces one output item for Presentation: Create, Presentation: Get, Presentation: Replace Text, Page: Get and Page: Get Thumbnail.

Presentation: Get Slides is the only operation that fans out: it emits one output item per slide, each merging that slide’s fields — including the objectId you pass back into the Page operations — into the input item’s JSON. With Return All off, the slides array is trimmed to Limit first. A presentation with no slides still emits exactly one item, carrying the input item’s JSON unchanged, so the branch never goes empty.

Page: Get Thumbnail merges the thumbnail metadata the API returns — the contentUrl to fetch the image from, plus its width and height. With Download Image on, the node also fetches that PNG and attaches it as binary under the property name thumbnail, named {pageObjectId}.png with MIME type image/png; any binary the item already carried is kept alongside it.

Reference the result downstream by expression, e.g. {{ $json.contentUrl }}.

Usage Examples

  • Create a new blank Google Slides presentation
  • Get full presentation data including all slides and layouts
  • Retrieve only the slides array from a presentation
  • Replace all instances of placeholder text across slides
  • Get a specific slide page by its object ID
  • Download a slide thumbnail as a PNG image
  • Get thumbnail metadata (URL, width, height) without downloading

Example Configuration

Create a new presentation:

{
  "type": "google_slides",
  "parameters": {
    "authentication": "oAuth2",
    "resource": "presentation",
    "operation": "create",
    "title": "My New Presentation"
  }
}

Get the full presentation JSON:

{
  "type": "google_slides",
  "parameters": {
    "authentication": "oAuth2",
    "resource": "presentation",
    "operation": "get",
    "presentationId": "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms"
  }
}

Fan out every slide in a presentation as its own item:

{
  "type": "google_slides",
  "parameters": {
    "authentication": "oAuth2",
    "resource": "presentation",
    "operation": "getSlides",
    "presentationId": "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms",
    "returnAll": true
  }
}

Return only the first five slides:

{
  "type": "google_slides",
  "parameters": {
    "authentication": "oAuth2",
    "resource": "presentation",
    "operation": "getSlides",
    "presentationId": "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms",
    "returnAll": false,
    "limit": 5
  }
}

Replace a placeholder everywhere in the deck, taking the replacement from the item:

{
  "type": "google_slides",
  "parameters": {
    "authentication": "oAuth2",
    "resource": "presentation",
    "operation": "replaceText",
    "presentationId": "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms",
    "text": "CLIENT_NAME",
    "replaceText": "{{ $json.clientName }}",
    "matchCase": false
  }
}

Replace text on named slides only, matching case:

{
  "type": "google_slides",
  "parameters": {
    "authentication": "oAuth2",
    "resource": "presentation",
    "operation": "replaceText",
    "presentationId": "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms",
    "text": "CLIENT_NAME",
    "replaceText": "{{ $json.clientName }}",
    "matchCase": true,
    "pageObjectIds": "SLIDE_ID_1,SLIDE_ID_2,SLIDE_ID_3"
  }
}

Get one page by its object ID:

{
  "type": "google_slides",
  "parameters": {
    "authentication": "oAuth2",
    "resource": "page",
    "operation": "get",
    "presentationId": "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms",
    "pageObjectId": "SLIDE_ID_1"
  }
}

Get thumbnail metadata without downloading the image:

{
  "type": "google_slides",
  "parameters": {
    "authentication": "oAuth2",
    "resource": "page",
    "operation": "getThumbnail",
    "presentationId": "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms",
    "pageObjectId": "SLIDE_ID_1",
    "downloadImage": false
  }
}

Download the thumbnail PNG as binary data:

{
  "type": "google_slides",
  "parameters": {
    "authentication": "oAuth2",
    "resource": "page",
    "operation": "getThumbnail",
    "presentationId": "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms",
    "pageObjectId": "SLIDE_ID_1",
    "downloadImage": true
  }
}

Error Handling

ModeBehavior
stopHalts workflow on first error
continueSkips failed items, passes successful ones through
errorPortRoutes failed items to Error output port

Tips

Create presentations, get slides, replace text, and download page thumbnails using the Google Slides API.

Frequently asked questions

Which authentication method should I use — OAuth2 or Service Account?

OAuth2 (Google Slides OAuth2 credential) is the recommended choice for most users because it authenticates as a real Google account and respects that account's Drive permissions. Service Account (Google API credential) is better for server-to-server automation where no human login is practical, but the service account must be explicitly granted access to any presentation it needs to read or edit.

How does text replacement work — can I target a specific slide?

The replaceAllText operation uses Google Slides' batchUpdate with a replaceAllText request, which scans every slide in the presentation and replaces all matching occurrences in one API call. There is no parameter to restrict replacement to a single slide — if you need per-slide control, you would need separate workflow logic to manage that outside this node.

When does the node actually produce binary output instead of JSON?

Binary output is only produced by the page/getThumbnail operation when the downloadImage option is set to true. In that case the node fetches the PNG from the thumbnail's contentUrl, stores it via prepareBinaryData, and places it in the 'thumbnail' binary property on the output item. Every other operation returns JSON data only.

What does getPresentation return, and is it the same as getSlides?

getPresentation returns the full presentation JSON from the API, including slides, layouts, masters, and notes pages — the entire document object. getSlides returns only the slides array from that structure, with an optional limit on how many slides are included. Use getSlides when you only need slide content and want a smaller, cleaner payload.

Can I use this node to edit slide content beyond text, such as images or shapes?

The node's built-in operations cover creating presentations, reading presentation and page data, replacing text, and downloading thumbnails. Inserting or modifying images, shapes, or other elements is not exposed as a named operation — those would require direct API calls outside this node's current parameter set.

Build with the Google Slides node

Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need Google Slides OAuth2 credentials first.

Open BusyBot

Last updated . Spotted something wrong? Tell us.