# Google Slides

> Create, read, and modify Google Slides presentations programmatically including adding slides, inserting text and images, and managing slide order.

Source: https://cotera.co/docs/reference/tools/individual-tools/google-slides

---

**Authentication Type:** OAuth
**Description:** Create, read, and modify Google Slides presentations programmatically including adding slides, inserting text and images, and managing slide order.

***

## Beta Notice

**This tool is currently in beta testing and not yet available for general use.**

To get the Google Slides tool added to your Cotera workspace, please contact our support team at [support.cotera.co](https://support.cotera.co).

***

## Presentations

Manage entire presentations.

### Get Presentation

Retrieve the full details of a Google Slides presentation including all slides, page size, locale, and revision ID.

**Operation Type:** Query (Read)

**Parameters:**

* **presentationId** `string` (required): The presentation ID from the URL

**Returns:**

* **presentationId** `string`: Presentation ID
* **title** `string`: Presentation title
* **pageSize** `object | null`: Width and height dimensions
* **slides** `array`: List of slides with objectId, pageType, and pageElements
* **locale** `string | null`: Presentation locale
* **revisionId** `string | null`: Current revision ID

***

### Create Presentation

Create a new blank Google Slides presentation with a given title.

**Operation Type:** Mutation (Write)

**Parameters:**

* **title** `string` (required): Title for the new presentation

**Returns:**

* **presentationId** `string`: ID of the created presentation
* **title** `string`: Title of the created presentation
* **slidesCount** `number`: Number of slides (typically 1 for a new presentation)

***

## Slides

Work with individual slides within a presentation.

### List Slides

List all slides in a presentation with their object IDs and types. Lighter than fetching the full presentation.

**Operation Type:** Query (Read)

**Parameters:**

* **presentationId** `string` (required): The presentation ID
* **limit** `number` (nullable): Maximum slides to return. Null returns all.

**Returns:**

* **slides** `array`: List of slides with objectId, pageType, and slideIndex
* **totalSlides** `number`: Total slide count

***

### Get Page

Get detailed information about a specific slide including all page elements (text boxes, shapes, images).

**Operation Type:** Query (Read)

**Parameters:**

* **presentationId** `string` (required): The presentation ID
* **pageObjectId** `string` (required): The slide's object ID

**Returns:**

* **objectId** `string`: Page object ID
* **pageType** `string | null`: Type of page
* **pageElements** `array | null`: All elements on the page
* **slideProperties** `object | null`: Layout and master page references

***

### Get Thumbnail

Generate a thumbnail image URL for a specific slide.

**Operation Type:** Query (Read)

**Parameters:**

* **presentationId** `string` (required): The presentation ID
* **pageObjectId** `string` (required): The slide's object ID

**Returns:**

* **contentUrl** `string`: URL to the thumbnail image (PNG)
* **width** `number | null`: Width in pixels
* **height** `number | null`: Height in pixels

***

### Create Slide

Add a new slide to a presentation at a specific position, optionally using a layout template.

**Operation Type:** Mutation (Write)

**Parameters:**

* **presentationId** `string` (required): The presentation ID
* **insertionIndex** `number` (nullable): Zero-based position for the new slide. Null appends at the end.
* **layoutId** `string` (nullable): Layout object ID to use. Null creates a blank slide.

**Returns:**

* **objectId** `string`: Object ID of the new slide

***

### Duplicate Slide or Element

Create a copy of an existing slide or page element within the presentation.

**Operation Type:** Mutation (Write)

**Parameters:**

* **presentationId** `string` (required): The presentation ID
* **objectId** `string` (required): The object ID of the slide or element to duplicate

**Returns:**

* **duplicatedObjectId** `string`: Object ID of the new copy

***

### Delete Slide or Element

Remove a slide or page element from the presentation.

**Operation Type:** Mutation (Write)

**Parameters:**

* **presentationId** `string` (required): The presentation ID
* **objectId** `string` (required): The object ID of the slide or element to delete

**Returns:**

* **success** `boolean`: Whether the deletion was successful

***

### Reorder Slides

Move one or more slides to a new position within the presentation.

**Operation Type:** Mutation (Write)

**Parameters:**

* **presentationId** `string` (required): The presentation ID
* **slideObjectIds** `string[]` (required): Object IDs of slides to move
* **insertionIndex** `number` (required): Zero-based target position

**Returns:**

* **success** `boolean`: Whether the reorder was successful
* **movedSlideCount** `number`: Number of slides moved

***

## Content

Add and modify content on slides.

### Replace Text

Find and replace text across all slides or specific slides in the presentation.

**Operation Type:** Mutation (Write)

**Parameters:**

* **presentationId** `string` (required): The presentation ID
* **replacements** `array` (required): List of replacements, each with searchText, replaceText, matchCase, and optional pageObjectIds

**Returns:**

* **totalReplacements** `number`: Total occurrences changed
* **replies** `array`: Per-replacement occurrence counts

***

### Insert Text

Insert text into a text box or shape element on a slide.

**Operation Type:** Mutation (Write)

**Parameters:**

* **presentationId** `string` (required): The presentation ID
* **objectId** `string` (required): Object ID of the text box or shape
* **text** `string` (required): Text content to insert
* **insertionIndex** `number` (nullable): Character index for insertion. Null inserts at the beginning.

**Returns:**

* **success** `boolean`: Whether insertion was successful

***

### Add Image

Insert an image from a URL onto a specific slide.

**Operation Type:** Mutation (Write)

**Parameters:**

* **presentationId** `string` (required): The presentation ID
* **pageObjectId** `string` (required): Slide to place the image on
* **imageUrl** `string` (required): Publicly accessible HTTPS image URL
* **width** `number` (nullable): Width in EMU (1 inch = 914400 EMU)
* **height** `number` (nullable): Height in EMU
* **translateX** `number` (nullable): Horizontal offset in EMU
* **translateY** `number` (nullable): Vertical offset in EMU

**Returns:**

* **objectId** `string`: Object ID of the new image element

***

### Build Presentation

Create a complete, themed presentation from structured slide specifications. Supports preset themes, custom colors/fonts, template cloning, and multiple slide templates.

**Operation Type:** Mutation (Write)

**Parameters:**

* **title** `string` (required): Presentation title
* **theme** `string` (nullable): Theme preset. Options: `"modern-dark"`, `"corporate"`, `"vibrant"`, `"minimal"`, `"warm"`, `"bold"`, `"ocean"`, `"sunset"`, `"forest"`, `"tech"`, `"pastel"`. Defaults to `"corporate"`.
* **customTheme** `object` (nullable): Custom theme color and font overrides. Null/empty/whitespace values are treated as "unset" (no override); only malformed non-empty hex values raise field-specific errors.
  * **background** `string` (nullable): Background hex color
  * **backgroundAlt** `string` (nullable): Alternate background hex color
  * **text** `string` (nullable): Primary text hex color
  * **textSecondary** `string` (nullable): Secondary text hex color
  * **heading** `string` (nullable): Heading hex color
  * **accent** `string` (nullable): Accent hex color
  * **accentSecondary** `string` (nullable): Secondary accent hex color
  * **headingFont** `string` (nullable): Google Font name for headings
  * **bodyFont** `string` (nullable): Google Font name for body text
  * **gradientAngle** `number` (nullable): Gradient angle in degrees
  * **gradientStartColor** `string` (nullable): Gradient start hex color
  * **gradientEndColor** `string` (nullable): Gradient end hex color
* **templatePresentationId** `string` (nullable): Google Slides presentation ID to clone as a template
* **slides** `array` (required): Slide specifications
  * **template** `string` (nullable): Slide template type. Options: `"title"`, `"section"`, `"content"`, `"content-image"`, `"bullets"`, `"stats"`, `"quote"`, `"closing"`, `"two-column"`, `"comparison"`, `"timeline"`, `"table"`. Null auto-detects from slide content.
  * **title** `string` (nullable): Slide title
  * **subtitle** `string` (nullable): Secondary text below heading
  * **body** `string` (nullable): Main body text
  * **imageUrl** `string` (nullable): HTTPS image URL (PNG, JPEG, GIF)
  * **bullets** `array` (nullable): Items with optional `title` and `description` fields. Empty items are dropped; an empty list collapses to null before rendering.
  * **stats** `array` (nullable): Metrics with `value` and `label` fields. Empty items are dropped.
  * **columns** `array` (nullable): Array of `{ heading, body }` objects for two-column slides. Empty items are dropped.
  * **steps** `array` (nullable): Array of `{ title, description }` objects for timeline slides. Empty items are dropped.
  * **tableData** `object` (nullable): Table data with `headers` (array of strings) and `rows` (array of arrays) for table slides. Empty tables collapse to null.
  * **quote** `object` (nullable): Quote slide data with `text` and `attribution` fields.
  * **notes** `string` (nullable): Speaker notes
  * **backgroundColor** `string` (nullable): Per-slide background color override (hex)

**Normalization:** Blank/whitespace strings are normalized to null. Empty items are dropped from arrays. Empty lists and tables collapse to null before rendering. customTheme null/empty/whitespace values are treated as "unset" (no override); only malformed non-empty hex values raise field-specific errors.

**Returns:**

* **presentationId** `string`: Created presentation ID
* **url** `string`: Direct link to open in Google Slides
* **slideCount** `number`: Total slides created
* **templateCloned** `boolean`: Whether created from a cloned template

***

## Common Use Cases

**Presentation Automation:**

* Generate sales decks from CRM data by creating presentations and populating placeholder text
* Build weekly reports by duplicating template slides and replacing text with fresh data
* Create branded presentations with consistent layouts and imagery

**Content Management:**

* Bulk update company branding across presentation templates using text replacement
* Insert charts and images from data pipelines onto specific slides
* Reorganize presentation sections by reordering slides programmatically

**Workflow Integration:**

* Auto-generate pitch decks when new deals are created in your CRM
* Create onboarding presentations for new team members with personalized content
* Build slide thumbnails for preview galleries in internal tools

