CONNECT APP
Build with Google Slides
File Storage
- OAuth
MCP
Give your agent Google Slides tools
Every Google Slides action is exposed as an MCP tool on Pipedream's remote server. Point a client at it with your end user's ID and Connect resolves that user's Google Slides account for each tool call — you store no tokens.
// accessToken: mint a short-lived token with the Connect SDK — see the MCP guide
const transport = new StreamableHTTPClientTransport(
new URL("https://remote.mcp.pipedream.net/v3"),
{
requestInit: {
headers: {
Authorization: `Bearer ${accessToken}`,
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
"x-pd-app-slug": "google_slides",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// e.g. run Create Image:
const result = await mcp.callTool({
name: "google_slides-create-image",
arguments: {
presentationId: "Presentation",
slideId: "Slide ID",
},
})# access_token: mint a short-lived token with the Connect SDK — see the MCP guide
headers = {
"Authorization": f"Bearer {access_token}",
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", # any stable ID for this user in your system
"x-pd-app-slug": "google_slides",
}
async with streamablehttp_client("https://remote.mcp.pipedream.net/v3", headers=headers) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
tools = await session.list_tools()
# e.g. run Create Image:
result = await session.call_tool("google_slides-create-image", {
"presentationId": "Presentation",
"slideId": "Slide ID",
})API PROXY
Call the Google Slides API directly
For an endpoint with no pre-built tool, the Connect proxy forwards your request to the Google Slides API with the connected user's credentials attached. You store no tokens and write no refresh logic.
const resp = await pd.proxy.get({
externalUserId: "{external_user_id}", // any stable ID for this user in your system
accountId: "apn_xxxxxxx",
url: "https://www.googleapis.com/oauth2/v1/userinfo",
})
// Any allowed Google Slides endpoint works here. Pipedream attaches the
// connected account's credentials to the outgoing request.# The path segment is the target URL, URL-safe base64 encoded:
# https://www.googleapis.com/oauth2/v1/userinfo
curl "https://api.pipedream.com/v1/connect/{project_id}/proxy/aHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vb2F1dGgyL3YxL3VzZXJpbmZv?external_user_id={external_user_id}&account_id=apn_xxxxxxx" \
-H "Authorization: Bearer {access_token}" \
-H "x-pd-environment: production"SDK
Run Google Slides actions from your backend
Connect a user's Google Slides account once, then run Create Image on their behalf from your own code — TypeScript, Python, or plain HTTP.
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-image",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
google_slides: { authProvisionId: "apn_xxxxxxx" },
presentationId: "Presentation",
slideId: "Slide ID",
},
})from pipedream import Pipedream
pd = Pipedream(
client_id="{oauth_client_id}",
client_secret="{oauth_client_secret}",
project_id="{project_id}",
project_environment="production",
)
result = pd.actions.run(
id="google_slides-create-image",
external_user_id="{external_user_id}", # any stable ID for this user in your system
configured_props={
"google_slides": {"authProvisionId": "apn_xxxxxxx"},
"presentationId": "Presentation",
"slideId": "Slide ID",
},
)curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
-H "Content-Type: application/json" \
-H "X-PD-Environment: production" \
-H "Authorization: Bearer {access_token}" \
-d '{
"external_user_id": "{external_user_id}",
"id": "google_slides-create-image",
"configured_props": {
"google_slides": { "authProvisionId": "apn_xxxxxxx" },
"presentationId": "Presentation",
"slideId": "Slide ID"
}
}'TOOLS
Google Slides actions
On-demand operations your product or agent can configure and run on behalf of a connected user.
-
Create Image
actionCreates an image in a slide. See the documentationWritev0.0.6 -
Create Page Element
actionCreate a new page element in a slide. See the documentationWritev0.0.6 -
Create Presentation
actionCreate a blank presentation or duplicate an existing presentation. See the docs hereWritev0.0.9 -
Create Slide
actionCreate a new slide in a presentation. See the documentationWritev0.0.6 -
Create Table
actionCreate a new table in a slide. See the documentationWritev0.0.5 -
Delete Page Element
actionDeletes a page element from a slide. See the documentationWritev0.0.6 -
Delete Slide
actionDeletes a slide from a presentation. See the documentationWritev0.0.6 -
Delete Table Column
actionDelete column from a table. See the documentationWritev0.0.5 -
Delete Table Row
actionDelete row from a table. See the documentationWritev0.0.5 -
Find a Presentation
actionFind a presentation on Google Drive. See the docs hereRead-onlyv0.0.9 -
Format Paragraph
actionApply paragraph formatting (alignment, line spacing, indentation, bullets) to the text of a shape or table cell in a Google Slides presentation. Use Get Presentation to find the page element's object ID. See the documentationWritev0.0.2 -
Format Shape
actionSet the background fill, outline, content alignment, or link of a shape in a Google Slides presentation. Use Get Presentation to find the shape's object ID. Shadow is not settable. See the documentationWritev0.0.2 -
Format Slide Background
actionSet the background fill of a single slide in a Google Slides presentation. Use Get Presentation to find the slide's object ID. See the documentationWritev0.0.2 -
Format Table Cell
actionSet the background fill or content alignment of table cells in a Google Slides presentation. Applies to a single cell, or to a block of cells via Row Span and Column Span. Omit the cell location to format the whole table. Use Get Presentation to find the table's object ID. See the documentationWritev0.0.2 -
Format Text
actionApply character formatting (bold, italic, underline, strikethrough, font, size, color, link) to the text of a shape or table cell in a Google Slides presentation. Use Get Presentation to find the page element's object ID. See the documentationWritev0.0.2 -
Get Presentation
actionGet a Google Slides presentation by its ID. Returns the presentation's metadata and structure (title, slides, masters, layouts, page size, etc.) according to requestedfields. Use Find a Presentation first to resolve a presentation's name to its ID. See the documentationRead-onlyv0.0.3 -
Insert Table Columns
actionInsert new columns into a table. See the documentationWritev0.0.5 -
Insert Table Rows
actionInsert new rows into a table. See the documentationWritev0.0.5 -
Insert Text
actionInsert text into a shape. See the documentationWritev0.0.6 -
Insert Text into Table
actionInsert text into a table cell. See the documentationWritev0.0.5 -
Merge Data
actionMerge data into a presentation. See the docs hereWritev0.0.8 -
Position Element
actionMove, scale, rotate, or restack a page element in a Google Slides presentation. Unspecified properties keep their current values. Use Get Presentation to find the element's object ID. See the documentationWritev0.0.2 -
Refresh a chart
actionRefresh a chart from Sheets. See the docs hereWritev0.0.9 -
Replace All Text
actionReplace all text in a presentation. See the documentationWritev0.0.5
EVENTS
Google Slides triggers
Event sources your backend can deploy for users and receive through a webhook.
MULTI-APP
Use Google Slides with other popular apps
Most products don't stop at one integration. Pair Google Slides with the other apps your users rely on, and ship use cases that span both.
- App slug
- google_slides
- Authentication
- OAuth
- Categories
- File Storage
- Actions
- 24
- Triggers
- 1
- API proxy
- Available
OAuth scopes
These are the scopes Pipedream's managed Google Slides OAuth client requests when one of your users connects an account. Supply your own OAuth client to request a different set.
- profile
- https://www.googleapis.com/auth/drive
- https://www.googleapis.com/auth/drive.file