All integrations

Google Slides

GOOGLE WORKSPACE · FILES & DOCS

Build and edit decks without handing over the whole Drive.

Connect Google Slides with Fabriq Developer

Your user consents at Google Slides. The credential lands in a vault your agent cannot read, and the tool list it gets back is the intersection of that user’s grant and the agent’s own scopes.

provider “slides”
from af_sdk import AgenticFabriq

af = AgenticFabriq()                      # reads AF_APP_ID / AF_APP_SECRET

url = await af.initiate_connection(request, provider="slides")   # consent at Google Slides
return redirect(url)

async with await af.for_user(request) as session:
    tools = await session.get_tools()     # only what this user granted

Provider names are surfaces, not vendors, and the authoritative list is the capabilities endpoint rather than any page including this one — an unknown name returns 400 with the valid list. Fabriq Developer is free to start and needs no provider paperwork. Start free or read the quickstart.

Connecting Google Slides in practice

Slides bills reads and writes against separate per-minute buckets, and writes are the narrow one: 600 write requests a minute per project against 3,000 reads, and only 60 writes a minute per user. Rendering a slide to an image is charged as an "expensive read" from a third bucket of 300 a minute, so a deck-generating agent runs out of write quota long before it runs out of read quota.

Scopes that draw scrutiny

  • https://www.googleapis.com/auth/presentations Sensitive. "See, edit, create, and delete all your Google Slides presentations", so it needs verification before general users can connect.
  • https://www.googleapis.com/auth/presentations.readonly Sensitive as well, which surprises teams who picked read-only to stay out of review.
  • https://www.googleapis.com/auth/drive Restricted. batchUpdate accepts it, and it grants every Drive file, which pulls in the annual third-party security assessment.
  • https://www.googleapis.com/auth/drive.file The scope Google marks Recommended and non-sensitive, but it only ever sees files the app created or the user explicitly picked, so it cannot open a deck someone else made.
  • https://www.googleapis.com/auth/spreadsheets Sensitive, and required in addition to a Slides scope for the chart operations that link a Google Sheets chart into a slide.

Rate limits

  • Read requests: 3,000 per minute per project, 600 per minute per user per project.
  • Write requests: 600 per minute per project, 60 per minute per user per project.
  • Expensive read requests, which is presentations.pages.getThumbnail: 300 per minute per project, 60 per minute per user per project.
  • No daily cap. Google states that "provided you stay within the per-minute quotas below, there’s no limit to the number of requests you can make per day".
  • Exceeding a quota returns 429 Too many requests, and the guidance is exponential backoff.

Who has to approve

A Google Workspace admin sets each app to Trusted, Limited, Specific Google data, or Blocked. If the admin restricts unconfigured third-party apps, a user’s attempt to connect lands in the Apps pending review list rather than working. Slides is not one of the three services (Gmail, Drive and Docs, Chat) for which Google publishes a predefined list of high-risk scopes an admin can restrict individually.

Worth knowing

  • Every edit goes through one batchUpdate call that is validated as a unit: "If any request is not valid, then the entire request will fail and nothing will be applied", so one stale object ID discards the whole deck edit.
  • Passing WriteControl with a requiredRevisionId makes the call fail with 400 if a collaborator touched the presentation since your read, which is the only way to avoid silently overwriting them.
  • getThumbnail is ten times more expensive than a plain read per the quota tables, so previewing every slide in a 40-slide deck spends two thirds of a user’s minute-long thumbnail budget.
  • Charts that stay linked to their source spreadsheet need a Sheets scope alongside the Slides one, so a "just make slides" integration ends up asking for spreadsheet access.

Checked against Google Slides API usage limits (2026-09-29), Choose Google Slides API scopes (2026-09-29), presentations.batchUpdate reference (2026-09-29), Control which apps access Google Workspace data (2026-09-29)

Acts as the person, not as itself

Each user connects their own account. Every call carries both identities — the agent and the person it is acting for — so the agent can never reach past what that individual can already do.

Credentials never touch the agent

Tokens live in the vault and attach server-side at call time. The agent holds a session, not a secret, and revoking access does not mean rotating a key.

Every call on the record

Who asked, which agent acted, which action ran, and the verdict that let it through — one audit trail across every integration, not one per vendor.

What an agent can do

Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.

google_slides_add_imageWRITE

Add an image to a slide at a specified position. The image must be publicly accessible. IMPORTANT: You must first call google_slides_get to get the slide_id.

presentations
google_slides_add_slideWRITE

Add a new slide to a Google Slides presentation. IMPORTANT: You must first call google_slides_list to get the presentation_id.

presentations
google_slides_add_textWRITE

Add a text box with text to a slide at a specified position. IMPORTANT: You must first call google_slides_get to get the slide_id.

presentations
google_slides_createWRITE

Create a new Google Slides presentation. Returns the presentation ID and URL.

presentations
google_slides_delete_slideWRITE

Delete a slide from a Google Slides presentation. WARNING: This cannot be undone. IMPORTANT: You must first call google_slides_get to get the slide_id.

presentations
google_slides_getREAD

Get the content and metadata of a Google Slides presentation including all slides. IMPORTANT: You must first call google_slides_list to get the presentation_id.

presentations.readonly
google_slides_listREAD

List Google Slides presentations. Returns presentation IDs, names, and links.

drive.readonly
google_slides_update_slideWRITE

Update slide properties like background color. IMPORTANT: You must first call google_slides_get to get the slide_id.

presentations

Put Google Slides behind one governed endpoint.

Same permissions, same audit trail, whatever else you connect next.