Reference · Tools
Google Slides
Create and manage presentations, slides, and pages using the Google Slides API.
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
| Direction | Port(s) |
|---|---|
| Input | Input |
| Output | Output, Error |
Credentials
This tool requires Google Slides OAuth2, Google API (Service Account) credentials. See the Credentials Guide for setup instructions.
Resources
| Resource | Value |
|---|---|
| Page | page |
| Presentation | presentation |
Operations
Presentation (presentation)
| Operation | Value | Description |
|---|---|---|
| Create | create | Create a new Google Slides presentation. |
| Get | get | Get a presentation by ID (full JSON including slides, layouts, masters). |
| Get Slides | getSlides | Get only the slides array from a presentation, with optional limit. |
| Replace Text | replaceText | Replace all occurrences of text across slides using batchUpdate. |
Page (page)
| Operation | Value | Description |
|---|---|---|
| Get | get | Get a specific page by its object ID. |
| Get Thumbnail | getThumbnail | Get 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Title | string | Yes | — | Title of the presentation to create. |
Presentation: Get
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
Presentation ID (presentationId) | string | Yes | — | ID of the presentation. Found in the presentation URL: https://docs.google.com/presentation/d/PRESENTATION_ID/edit |
Presentation: Get Slides
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
Presentation ID (presentationId) | string | Yes | — | ID of the presentation. Found in the presentation URL: https://docs.google.com/presentation/d/PRESENTATION_ID/edit |
| Return All | boolean | No | false | Whether to return all slides or only up to a limit. |
| Limit | number | No | 100 | Maximum number of slides to return. Accepts 1–500. (shown when Return All is false) |
Presentation: Replace Text
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
Presentation ID (presentationId) | string | Yes | — | ID of the presentation. Found in the presentation URL: https://docs.google.com/presentation/d/PRESENTATION_ID/edit |
| Search For | string | Yes | — | The text to search for and replace in the presentation. |
| Replace With | string | Yes | — | The replacement text. |
| Match Case | boolean | No | false | Whether the text search is case-sensitive. |
| Restrict to Page Object IDs | string | No | — | Comma-separated list of page object IDs to restrict text replacement to specific slides. Leave empty to replace in all slides. |
Page: Get
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
Presentation ID (presentationId) | string | Yes | — | ID of the presentation. Found in the presentation URL: https://docs.google.com/presentation/d/PRESENTATION_ID/edit |
| Page Object ID | string | Yes | — | The object ID of the page (slide) to operate on. Found in the slide’s objectId property. |
Page: Get Thumbnail
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
Presentation ID (presentationId) | string | Yes | — | ID of the presentation. Found in the presentation URL: https://docs.google.com/presentation/d/PRESENTATION_ID/edit |
| Page Object ID | string | Yes | — | The object ID of the page (slide) to operate on. Found in the slide’s objectId property. |
| Download Image | boolean | No | false | Whether to download the thumbnail PNG image and store it as binary data in the “thumbnail” output property. |
All Operations
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Authentication | options | No | oAuth2 | Authentication method to use. |
Options: oAuth2, serviceAccount | ||||
| Google Account | credential | No | — | Connect or select your Google account. (shown when Authentication is oAuth2) |
| Service Account Email | string | Yes | — | The email address of the Google service account. (shown when Authentication is serviceAccount) |
| Private Key | string | Yes | — | The private key from the service account JSON key file. (shown when Authentication is serviceAccount) |
| Max Concurrency | number | No | 5 | Maximum 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
| Mode | Behavior |
|---|---|
| stop | Halts workflow on first error |
| continue | Skips failed items, passes successful ones through |
| errorPort | Routes 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 BusyBotLast updated . Spotted something wrong? Tell us.