View as Markdown
Google Slides icon

Google Slides ACTION

Create Slide

Create a slide from one of the presentation's layouts and, optionally, fill its title, subtitle and body placeholders in the same request. When building a deck, set Layout and the text in one call per slide instead of following up with Insert Text: no positioning is needed. Pick a layout that has the placeholders you fill, e.g. TITLE_AND_BODY for a title and body, TITLE for a title and subtitle, or TITLE_AND_TWO_COLUMNS for a title and two bodies; if a placeholder is missing, the error lists the ones the layout has. Without Layout the slide uses the BLANK layout and cannot take text. Create slides one at a time rather than in parallel. Returns the new slide's objectId and a placeholders array (type, index, objectId, filled) for each title, subtitle and body placeholder, so unfilled ones can be written later with Insert Text. See the documentation
  • Action
  • Writes data
  • OAuth
  • SDK
  • MCP

IMPLEMENTATION

Call this tool

Connect a user's Google Slides account once, then configure and run Create Slide from your backend or agent.

import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const result = await pd.actions.run({
  id: "google_slides-create-slide",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    google_slides: { authProvisionId: "apn_xxxxxxx" },
    presentationId: "Presentation ID",
    layoutId: "Layout",
  },
})

console.log(result)

SCHEMA

Inputs

Pipedream supplies the connected account. Your application provides the operation-specific values below. Dynamic inputs are resolved against that user's account.

Create Slide inputs
Property Type Description
presentationId Presentation ID string
The ID of the presentation. This is the long string in the URL: https://docs.google.com/presentation/d/{PRESENTATION_ID}/edit. A full presentation URL is also accepted. Use Find Presentation to resolve a name to its ID.
Required
layoutId Layout string
The layout to base the slide on, given as its name (e.g. TITLE_AND_BODY, TITLE, TITLE_AND_TWO_COLUMNS), its display name (e.g. Title and body) or its object ID. Use Get Presentation and read layouts[] to see the layouts in a deck with a custom template. If omitted, the slide uses the BLANK layout and has no title or body placeholders.
Optional
title Title string
Text for the slide's title placeholder (e.g. Q3 Results). Requires Layout.
Optional
subtitle Subtitle string
Text for the slide's subtitle placeholder, found on title layouts such as TITLE (e.g. Quarterly business review). Requires Layout.
Optional
body Body string
Text for the slide's first body placeholder (e.g. Revenue grew 20% YoY\nExpansion into 3 new markets). Put each paragraph on its own line; a literal \n is also treated as a line break. Requires Layout.
Optional
secondBody Second Body string
Text for the slide's second body placeholder, such as the right-hand column of TITLE_AND_TWO_COLUMNS (e.g. Next steps). Put each paragraph on its own line; a literal \n is also treated as a line break. Requires Layout.
Optional
insertionIndex Insertion Index integer
The zero-based position to insert the slide at (e.g. 0 for the first slide). Must not exceed the current number of slides. If omitted, the slide is added at the end.
Optional

REFERENCE

Tool details

Behavior hints are published with the component in the Pipedream registry and surface as MCP tool annotations, so an agent can reason about a tool before it calls it.

Registry key
google_slides-create-slide
Version
0.1.0
App
Google Slides
Authentication
OAuth
Read-only
No
Destructive
No
Open world
Yes