Google Slides

Service domainPRESENTATIONS
Google Slides icon
Arcade Optimized

Arcade.dev LLM tools for Google Slides

Author:Arcade
Version:5.0.1
Auth:User authorization via the Google auth provider
10tools
8require secrets

Google Slides toolkit for Arcade provides LLM-callable tools to create, read, edit, comment on, and search Google Slides presentations via the Google Slides and Drive APIs.

Capabilities

  • Presentation creation & templating — Create new presentations from scratch or derive branded decks from existing templates, preserving masters, layouts, and themes with optional token replacement.
  • Reading & snapshotting — Retrieve full addressable snapshots of decks (slide/element object IDs, placeholder types, text, speaker notes, layout/master inventory) and render individual slides as thumbnails (URL or base64 PNG data URI).
  • Batch editing — Apply atomic batches of Slides API requests: add/delete/restyle slides and elements, insert/replace text, set speaker notes, reorder slides, duplicate objects, and brand decks in a single call.
  • Comments & lifecycle management — Create top-level comments or threaded replies, list paginated comments, and resolve or reopen comment threads.
  • Search & discovery — Full-text search across a user's Drive presentations by title or body content, with paginated results.
  • Account & file access — Retrieve the connected Google account profile and generate Google Drive inline picker URLs to grant per-file access when a presentation is inaccessible.

OAuth

Authentication uses OAuth 2.0 via the Google provider. See the Arcade Google auth provider docs for configuration details.

Secrets

ENABLE_GOOGLE_DRIVE_INLINE_PICKER_URL — A flag/URL secret that enables the GenerateGoogleFilePickerUrl tool, which renders an inline Google Drive file picker so users can grant per-file access to specific presentations. When this secret is absent or the feature is not configured, GenerateGoogleFilePickerUrl returns status: "unavailable" rather than an error.

To obtain or configure this value: this is not a credential issued by Google directly. It is an application-level configuration value set up within your Arcade deployment or integration — typically a URL pointing to a hosted Drive Picker page you control (using the Google Picker API) that is registered with Arcade. You build or host the picker endpoint using a Google API key with the Picker API enabled (create one in the Google Cloud Console → APIs & Services → Credentials), then supply that endpoint URL as the secret value.

Manage secrets via the Arcade secrets dashboard and refer to the Arcade secrets configuration docs for setup instructions.

Available tools(10)

10 of 10 tools
Operations
Behavior
Tool nameDescriptionSecrets
Add a comment to a presentation, or reply within an existing comment thread. Comments are file-level, not anchored to a slide; to reference a slide, name it in the text. Pass reply_to_comment_id to post within that thread instead of starting a new comment.
1
Derive a new on-brand deck from an existing branded deck, preserving its masters, layouts, and theme, then optionally filling tokens. Use this instead of building from scratch when the user wants a deck in their company template; the new deck inherits the source's branding.
1
Generate a URL where the user grants this app access to specific Drive files. Check `status` first. "unavailable" is not an error: either this app already reaches every presentation the connected account can open, so there is no per-file grant to request, or the picker is not configured here. Either way `reason` explains it, no URL exists, and a presentation that could not be read is one the account itself cannot open. Do not retry it. On "available", use this when a prior tool reported a file was not found or access was denied and the user expects the file to exist; after the user completes the picker, retry the prior tool. Opens Google's first-party Drive picker, not a sign-in prompt.
Return an addressable snapshot of a deck: slide and element object ids, placeholder types, text, speaker notes, and the layout and master inventory. This is the read side of the read-edit loop: the object ids it returns are the addresses that edit requests target. Each layout in the inventory reports its placeholders with type, index, and object id, the identity a createSlide placeholderIdMappings entry needs (by {type, index} or by layoutPlaceholderObjectId), even when a layout repeats a placeholder type. What this response leaves out is reported in words by next_step, which is empty only when nothing was left out: read it before answering anything about slides it does not contain.
1
Render one slide to a PNG. By default this returns a short-lived content URL and pixel size. Set include_image to get the PNG as a data URI so you can visually confirm layout, overflow, and branding before sharing. Use this after creating or editing a slide when you need a preview, not when you only need object ids or text. data_uri is omitted unless include_image is true; it is a PNG in the form data:image/png;base64,... Prefer SMALL or MEDIUM when including the image; LARGE occupies more of the context window.
1
List a page of comments and their replies on a presentation, newest first.
1
Close (resolve) or reopen a comment thread on a presentation. Posts an action reply on the thread, so the lifecycle change is attributed to the connected account; the thread's existing comments and replies are preserved.
1
Create a deck or apply a batch of edits to one, returning created object ids, replace counts, and a fresh addressable snapshot. Use this single tool for all deck construction and editing: add, delete, or restyle slides and elements, insert and replace text, and brand a deck in one batch. Reorder slides with an updateSlidesPosition request; duplicate a slide or element with a duplicateObject request. To set speaker notes, insertText into a slide's notes_object_id (surfaced per slide in the snapshot). To add a slide into a specific branded layout, first read the deck and consult the snapshot's layout inventory: each layout reports its placeholders (type, index, and object id), so you can pick a layout that already carries the title/body/other placeholders you intend to fill rather than guessing which layout holds what, and address a specific placeholder in placeholderIdMappings (by {type, index} or by layoutPlaceholderObjectId) even when a layout repeats a type. Read the snapshot to discover the object ids later edits target. The batch is atomic: one invalid request rejects the whole batch, so target object ids that exist in the snapshot. Object ids you assign to new objects are validated before the batch is sent.
1
Search the user's Drive for presentations, newest first by default. Keyword matching is full-text: a keyword matches a deck's body content as well as its title, so a deck can match on words that never appear in its title. A keyword search that matches nothing returns an empty list (not an error). An empty list is only a definitive no-match when next_step is empty. When next_step is set, the listing was not walked to its end and the pages it did not reach may hold the match, so do not report that no such presentation exists from that response alone.
1
Return the connected Google account's profile (name, email, picture).

Last updated on