---
canonical_url: "https://docs.composio.dev/toolkits/microsoft_powerpoint"
markdown_url: "https://docs.composio.dev/toolkits/microsoft_powerpoint.md"
product: "platform"
version: null
last_updated: null
---

# Microsoft PowerPoint

Create, find, inspect, fill, edit, format, share, preview, version, copy, upload, download, organize, and delete Microsoft PowerPoint files through Microsoft Graph and OneDrive, including slide, shape, chart, comment, and geometry workflows.

- **Category:** documents
- **Auth:** OAUTH2
- **Composio-managed OAuth available?** No
- **Tools:** 30
- **Triggers:** 0
- **Slug:** `MICROSOFT_POWERPOINT`
- **Version:** 00000000_00

## Tools

### Check In Presentation

**Slug:** `MICROSOFT_POWERPOINT_CHECK_IN_PRESENTATION`

Check in a checked-out PowerPoint DriveItem and make its version available according to the SharePoint/document-library configuration. Microsoft Graph documents no atomic If-Match/eTag option for this operation.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `comment` | string | No | Optional check-in comment. This action limits comments to 1,024 characters. |
| `item_id` | string | Yes | DriveItem ID of the checked-out PowerPoint presentation. |
| `drive_id` | string | No | Drive ID containing the presentation; omit for the signed-in user's default drive. |
| `check_in_as` | string | No | Set to published to request published status; omit for Microsoft's default check-in status. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Check Out Presentation

**Slug:** `MICROSOFT_POWERPOINT_CHECK_OUT_PRESENTATION`

Check out a PowerPoint DriveItem where its SharePoint/document-library configuration supports checkout, preventing others from editing and hiding changes until check-in. Microsoft Graph documents no atomic If-Match/eTag option for this operation.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `item_id` | string | Yes | DriveItem ID of the PowerPoint presentation to check out. |
| `drive_id` | string | No | Drive ID containing the presentation; omit for the signed-in user's default drive. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Copy Presentation

**Slug:** `MICROSOFT_POWERPOINT_COPY_PRESENTATION`

Start an asynchronous Microsoft Graph copy of a PowerPoint presentation. A successful result means only that Graph accepted the submission; it does not mean the copy completed or ultimately succeeded. The action never returns the bearer-equivalent Location monitor URL. Discover the result by destination and filename with FIND_PRESENTATIONS. conflict_behavior is unsupported on OneDrive Personal. To preserve all versions, omit name and rename the copy after discovery.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Filename for the copy, including .ppt or .pptx. Omit to retain the source name. Cannot be combined with include_all_version_history=true because Microsoft Graph can silently omit the requested history. |
| `item_id` | string | Yes | DriveItem ID of the PowerPoint presentation to copy. |
| `drive_id` | string | No | Source drive ID; omit to use the signed-in user's default OneDrive. |
| `conflict_behavior` | string ("fail" | "rename") | No | Safe create behavior when the destination name exists: fail rejects the conflict and rename creates under a unique name. Microsoft Graph does not support this query option for OneDrive Personal accounts. |
| `destination_drive_id` | string | No | Drive ID containing destination_folder_id. Use this for a cross-drive copy; omit it to use the source drive. Invalid without a folder ID. |
| `destination_folder_id` | string | No | Destination folder DriveItem ID. Omit destination_drive_id to use the source drive; omit both to copy beside the source presentation. |
| `include_all_version_history` | boolean | No | Set true to copy all retained versions; false or omission copies only the latest version. True cannot be combined with name because Microsoft Graph can silently omit the requested history. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Copy Presentation and Wait

**Slug:** `MICROSOFT_POWERPOINT_COPY_PRESENTATION_AND_WAIT`

Submit a PowerPoint presentation copy with a required unique filename, then boundedly search the resolved destination folder for an exact-name candidate. Search results cannot be correlated to the copy request, so a discovered candidate is returned as discovered_unverified and may belong to another writer. The bearer-equivalent Graph monitor URL is never returned or read. An exact-name search result is returned only as an uncorrelated candidate, never as confirmed completion, because Graph's secret monitor URL is not exposed or consumed. A timeout or indeterminate result is not proof of failure: verify the destination before retrying. All-version-history copies require the asynchronous COPY_PRESENTATION workflow because Graph does not safely combine that option with a discovery name.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Required unique filename for bounded destination discovery; must end in .ppt or .pptx. A matching item is an uncorrelated candidate, not confirmed copy completion. |
| `item_id` | string | Yes | DriveItem ID of the PowerPoint presentation to copy. |
| `drive_id` | string | No | Source drive ID; omit to use the signed-in user's default OneDrive. |
| `max_poll_attempts` | integer | No | Maximum destination discovery requests after submission (1-8); defaults to 6. Combined with poll_interval_seconds, the sleep budget cannot exceed 35 seconds, leaving at least 25 seconds for provider calls within the 60-second execution limit. |
| `destination_drive_id` | string | No | Drive containing destination_folder_id. Omit for the source drive; invalid without a destination folder. |
| `destination_folder_id` | string | No | Destination folder DriveItem ID. Omit to copy beside the source presentation. |
| `poll_interval_seconds` | number | No | Seconds between destination discovery requests (0-10); defaults to 7, producing five sleeps and a 35-second default sleep budget. |
| `include_all_version_history` | boolean | No | Set true to request all retained versions. Microsoft Graph does not allow this option together with the required discovery name, so true is unsupported by this action. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Folder

**Slug:** `MICROSOFT_POWERPOINT_CREATE_FOLDER`

Create a folder for PowerPoint files in the current or an explicitly selected accessible drive.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Name of the folder to create. |
| `drive_id` | string | No | Target drive ID; omit to use the signed-in user's default OneDrive. |
| `parent_folder_id` | string | No | Parent folder DriveItem ID; defaults to the drive root. |
| `conflict_behavior` | string ("fail" | "rename") | No | Safe create behavior when the name already exists: fail or create the folder under a provider-generated unique name. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Presentation

**Slug:** `MICROSOFT_POWERPOINT_CREATE_PRESENTATION`

Create a bounded macro-free PPTX from one to 50 structured slides containing titles, plain text, nested bullets, rectangular tables, uploaded PNG images, and optional speaker notes. The generated Open XML package, relationships, and semantic readback are validated locally before exactly one Microsoft Graph upload. Limits include 500 content blocks, 500,000 text characters, 10,000 line breaks, 2,000 table cells, and 20 PNGs (10 MiB each, 25 MiB compressed and decoded in aggregate); the final package is limited to 50 MiB.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `slides` | array | Yes | One to 50 structured slides in presentation order. |
| `drive_id` | string | No | Target drive ID; omit for the signed-in user's default OneDrive. |
| `filename` | string | Yes | Path-safe destination basename ending in .pptx. |
| `parent_folder_id` | string | No | Destination folder ID; defaults to the drive root. |
| `conflict_behavior` | string ("fail" | "rename") | No | Fail on an existing filename or let Microsoft Graph generate a unique renamed file. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Presentation Sharing Link

**Slug:** `MICROSOFT_POWERPOINT_CREATE_PRESENTATION_SHARING_LINK`

Create or return a view or edit sharing link for a PowerPoint presentation in the current or an explicitly selected drive.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `scope` | string ("anonymous" | "organization" | "users") | No | Audience for the link. Omit to use the organization's default sharing scope. |
| `item_id` | string | Yes | DriveItem ID of the PowerPoint presentation. |
| `drive_id` | string | No | Drive ID containing the presentation; omit for the signed-in user's default OneDrive. |
| `password` | string | No | Optional link password. Microsoft Graph supports this only for OneDrive Personal. |
| `link_type` | string ("view" | "edit") | Yes | Access granted by the link: view or edit. |
| `expiration_date_time` | string | No | Optional ISO 8601 expiration date and time for the sharing permission. |
| `retain_inherited_permissions` | boolean | No | Whether to retain inherited permissions when sharing the item for the first time. Defaults to Microsoft's true behavior. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Folder

**Slug:** `MICROSOFT_POWERPOINT_DELETE_FOLDER`

Move a folder to the Microsoft Graph recycle bin after a metadata preflight proves the DriveItem has a folder facet. Recycling a nonempty folder removes the entire descendant tree from its current location. Files are rejected. The preflight eTag is used for a concurrency-safe delete when available.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `drive_id` | string | No | Drive ID containing the folder; omit for the signed-in user's default OneDrive. |
| `folder_id` | string | Yes | DriveItem ID of the folder to move to the recycle bin. A metadata preflight rejects non-folder items. |
| `if_match_etag` | string | No | Expected folder eTag or cTag. When omitted, the action uses the eTag returned by its folder metadata preflight when available. |
| `bypass_checked_out` | boolean | No | Send Microsoft's documented bypass-checked-out preference. |
| `bypass_shared_lock` | boolean | No | Send Microsoft's documented bypass-shared-lock preference. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Presentation

**Slug:** `MICROSOFT_POWERPOINT_DELETE_PRESENTATION`

Move a PowerPoint presentation to the Microsoft Graph recycle bin. This action does not permanently erase the file. It can require a matching eTag or cTag and can send Microsoft's documented shared-lock or checkout bypass preferences.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `item_id` | string | Yes | DriveItem ID of the PowerPoint presentation to move to the recycle bin. |
| `drive_id` | string | No | Drive ID containing the presentation; omit to use the signed-in user's default OneDrive. |
| `if_match_etag` | string | No | Expected current eTag or cTag; the presentation is not recycled if the tag does not match. |
| `bypass_checked_out` | boolean | No | Set true to send Microsoft's documented bypass-checked-out preference for checkout conditions. |
| `bypass_shared_lock` | boolean | No | Set true to send Microsoft's documented bypass-shared-lock preference for coauthoring locks. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Download Presentation

**Slug:** `MICROSOFT_POWERPOINT_DOWNLOAD_PRESENTATION`

Download a PowerPoint file in its original format or export it as PDF or JPG. Export conversion is not presentation editing and accepts source files up to 2 MB.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `width` | integer | No | JPG width in pixels; required with height when format is jpg and invalid for other formats. |
| `format` | string ("original" | "pdf" | "jpg") | No | Output format. PDF and JPG are Graph exports, not editable PowerPoint files; Graph limits source files for conversion to 2 MB. |
| `height` | integer | No | JPG height in pixels; required with width when format is jpg and invalid for other formats. |
| `item_id` | string | Yes | DriveItem ID of the PowerPoint file to download. |
| `drive_id` | string | No | Drive ID containing the item; omit to use the signed-in user's default OneDrive. |
| `if_none_match` | string | No | Known eTag; when the file is unchanged, return not_modified without duplicate content. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Download Presentation Version

**Slug:** `MICROSOFT_POWERPOINT_DOWNLOAD_PRESENTATION_VERSION`

Verify that the selected DriveItem is a PPTX, then download one retained previous version as a bounded PPTX file. Non-PPTX items are rejected before content download. Use LIST_PRESENTATION_VERSIONS to obtain a version ID, but do not use its first newest/current entry: Microsoft Graph refuses current-version content here. Use DOWNLOAD_PRESENTATION for the current version.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `item_id` | string | Yes | DriveItem ID of the PowerPoint file whose retained version to download. |
| `drive_id` | string | No | Drive ID containing the item; omit to use the signed-in user's default OneDrive. |
| `version_id` | string | Yes | Retained version ID returned by List Presentation Versions. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Fill PowerPoint Template

**Slug:** `MICROSOFT_POWERPOINT_FILL_TEMPLATE`

Create one presentation from an existing designed PPTX template by replacing unique literal {{tokens}} simultaneously across reachable slides and speaker notes. The template is downloaded and its eTag is rechecked before one create upload; no intermediate provider copy is created. Every requested token must match.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `filename` | string | Yes | Safe destination filename ending in .pptx. |
| `placeholders` | array | Yes | Unique literal {{token}} replacements applied simultaneously to all reachable slides and speaker notes. |
| `template_item_id` | string | Yes | DriveItem ID of the macro-free .pptx template. |
| `conflict_behavior` | string ("fail" | "rename") | No | When filename exists, fail or let Microsoft Graph create a uniquely renamed file. |
| `template_drive_id` | string | No | Drive ID containing the template; omit for the signed-in user's default OneDrive. |
| `destination_drive_id` | string | No | Destination drive ID for a cross-drive create. Supply destination_folder_id with it; omit both to use the template's drive and parent folder. |
| `destination_folder_id` | string | No | Destination folder ID; omit to create beside the template. Required when destination_drive_id is supplied. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Find Presentations

**Slug:** `MICROSOFT_POWERPOINT_FIND_PRESENTATIONS`

List a folder or search a drive and return only PowerPoint files. Omit search_text to browse folder_id; provide it to search the full drive. A page can contain no matching files while has_more remains true.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum provider results to inspect on this page (1-200). Non-PowerPoint results are filtered out. |
| `cursor` | string | No | Opaque continuation cursor from a previous call. It preserves the discovery mode, target, and page size. |
| `drive_id` | string | No | Drive ID to target. Omit to use the signed-in user's default OneDrive. |
| `folder_id` | string | No | Folder item ID to browse when search_text is omitted. Defaults to the drive root. |
| `search_text` | string | No | Filename, metadata, or indexed-content text to search for. Omit to browse one folder. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Current Drive

**Slug:** `MICROSOFT_POWERPOINT_GET_CURRENT_DRIVE`

Return the signed-in user's default OneDrive ID and basic owner, type, and quota details. Use the drive ID to target other accessible-drive actions explicitly.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Presentation

**Slug:** `MICROSOFT_POWERPOINT_GET_PRESENTATION`

Return metadata for one PowerPoint file by item ID, including its current eTag for concurrency-safe updates.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `item_id` | string | Yes | DriveItem ID of the PowerPoint file. |
| `drive_id` | string | No | Drive ID containing the item; omit to use the signed-in user's default OneDrive. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Presentation Content

**Slug:** `MICROSOFT_POWERPOINT_GET_PRESENTATION_CONTENT`

Read bounded, text-first semantic content from a current macro-free PPTX, including slides, shapes, text, safe hyperlinks, alt text, image metadata, tables, and speaker notes. Default budgets are 100 slides, 200 shapes per slide, 100 paragraphs per shape, 100 runs per paragraph, 20,000 characters per shape, 100,000 total characters, 5,000 structural elements, and 100 comments per slide. Maxima are respectively 500, 1,000, 500, 500, 100,000, 500,000, 20,000, and 200. For ordinary reads, use slide_numbers for only the needed slides and lower budgets instead of reading a whole large deck. Formatting, geometry, supported chart data, and modern comments are opt-ins. Uses eTag consistency and never returns layouts, package bytes, raw XML, unsafe external targets, or preauthenticated URLs.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `item_id` | string | Yes | DriveItem ID of the macro-free PPTX presentation to inspect. |
| `drive_id` | string | No | Drive ID containing the presentation; omit for the signed-in user's default OneDrive. |
| `max_slides` | integer | No | Maximum selected slides to return before truncation (1-500). |
| `slide_numbers` | array | No | Optional unique 1-based slide numbers to return. Results remain in deck order. |
| `include_charts` | boolean | No | Include supported native chart data. Defaults to false; disabled charts and private workbooks are not parsed or budgeted. |
| `include_comments` | boolean | No | Include modern comments and replies. Defaults to false; disabled comments are not parsed or budgeted. |
| `include_geometry` | boolean | No | Include direct shape transform geometry. Defaults to false. |
| `include_formatting` | boolean | No | Include direct paragraph and text-run formatting. Defaults to false for compact text-first output. |
| `max_shapes_per_slide` | integer | No | Maximum direct top-level shapes returned per slide (1-1000). |
| `max_total_characters` | integer | No | Maximum represented Unicode characters across returned slides (1000-500000). |
| `max_comments_per_slide` | integer | No | Maximum modern root comments and replies returned per selected slide when include_comments is true. |
| `max_runs_per_paragraph` | integer | No | Maximum direct run-like children returned per paragraph (1-500). |
| `max_structural_elements` | integer | No | Maximum returned shapes, table cells, paragraphs, run-like elements, and enabled comment/chart records (1-20000). Geometry and formatting do not consume this budget. |
| `max_characters_per_shape` | integer | No | Maximum represented Unicode characters from one shape or notes body (1-100000). |
| `max_paragraphs_per_shape` | integer | No | Maximum paragraphs returned from one shape, table, or notes body (1-500). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Presentation Layouts

**Slug:** `MICROSOFT_POWERPOINT_GET_PRESENTATION_LAYOUTS`

Download and validate the current macro-free PPTX, then return its complete bounded slide-layout catalog. Each layout has a unique opaque selector accepted by UPDATE_PRESENTATION_CONTENT add_slide, plus exact human-facing name and matchingName values and safe type/placeholder summaries for duplicate-name disambiguation. Never returns package paths, raw OOXML, package bytes, or download URLs.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `item_id` | string | Yes | DriveItem ID of the current macro-free PPTX presentation. |
| `drive_id` | string | No | Drive ID containing the presentation; omit for the signed-in user's default OneDrive. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Presentation Preview

**Slug:** `MICROSOFT_POWERPOINT_GET_PRESENTATION_PREVIEW`

Deprecated: return short-lived, human-embeddable UI preview material for a SharePoint or OneDrive presentation, including personal OneDrive. It does not return agent-readable slide content. Agents should use GET_PRESENTATION_CONTENT to inspect content, or DOWNLOAD_PRESENTATION with PDF/JPG output for a rendered artifact. The returned URL is caller-only and bearer-equivalent: never share, log, cache, or persist it.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | string | No | Optional page or provider-specific page token at which the preview should start. |
| `zoom` | number | No | Optional initial zoom level from 0.1 through 10, applied only when the preview app supports it. |
| `item_id` | string | Yes | DriveItem ID of the PowerPoint presentation. |
| `drive_id` | string | No | Drive ID containing the presentation; omit for the signed-in user's default OneDrive. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Presentation Thumbnails

**Slug:** `MICROSOFT_POWERPOINT_GET_PRESENTATION_THUMBNAILS`

List generated thumbnail metadata for a PowerPoint presentation. Microsoft Graph represents only the first slide and can return an empty set; it does not provide per-slide thumbnails. Returned URLs are short-lived bearer-equivalent capabilities for the caller only and must not be shared, logged, cached, or persisted.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `item_id` | string | Yes | DriveItem ID of the PowerPoint presentation. |
| `drive_id` | string | No | Drive ID containing the presentation; omit for the signed-in user's default OneDrive. |
| `selector` | string | No | Optional Graph $select thumbnail identifier: a standard size or one custom c{width}x{height}[_crop] selector, such as c300x400_crop. |
| `original_orientation` | boolean | No | Whether Graph should return the thumbnail with its original EXIF orientation. When true, sends originalOrientation=true; supported only on OneDrive Personal. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Presentation Version

**Slug:** `MICROSOFT_POWERPOINT_GET_PRESENTATION_VERSION`

Retrieve compact metadata for one retained or current version of a PowerPoint file. Use List Presentation Versions to discover retained version IDs.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `item_id` | string | Yes | DriveItem ID of the PowerPoint file whose version metadata to retrieve. |
| `drive_id` | string | No | Drive ID containing the item; omit to use the signed-in user's default OneDrive. |
| `version_id` | string | Yes | Version ID returned by List Presentation Versions, or current. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Invite People to Presentation

**Slug:** `MICROSOFT_POWERPOINT_INVITE_TO_PRESENTATION`

Grant named people read or write access to a PowerPoint presentation. By default, send_invitation=true also causes Microsoft to send external invitation emails; set it false to grant permission without notifications. A 207 response preserves recipient-level errors and is never reported as complete success.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `role` | string ("read" | "write") | Yes | Permission granted to every recipient: read or write. |
| `item_id` | string | Yes | DriveItem ID of the PowerPoint presentation. |
| `message` | string | No | Optional plain-text invitation message, up to Microsoft's documented 2,000-character maximum. |
| `drive_id` | string | No | Drive ID containing the presentation; omit for the signed-in user's default OneDrive. |
| `password` | string | No | Optional invitation password. Microsoft Graph supports this only for OneDrive Personal. |
| `recipients` | array | Yes | Distinct people who should receive access. By default, Microsoft also sends each person an external invitation email. |
| `require_sign_in` | boolean | No | Whether recipients must sign in to use the invitation. |
| `send_invitation` | boolean | No | True by default, causing Microsoft to send external invitation email notifications. False grants permission without sending a notification. |
| `expiration_date_time` | string | No | Optional ISO 8601 permission expiration date and time, where supported. |
| `retain_inherited_permissions` | boolean | No | Whether inherited permissions remain when the item is first shared. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Presentation Versions

**Slug:** `MICROSOFT_POWERPOINT_LIST_PRESENTATION_VERSIONS`

List retained versions of a PowerPoint file in Microsoft Graph's newest-first order, one provider page at a time. Continue while has_more is true before treating the final version as the oldest retained version. The first entry is current: its metadata is readable, but Graph refuses its content through DOWNLOAD_PRESENTATION_VERSION. Choose a later entry for version download/restore, or use DOWNLOAD_PRESENTATION for current content. Version retention depends on the drive's configuration.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `cursor` | string | No | Opaque continuation cursor from a previous call. It preserves the presentation and drive selected on the first page. |
| `item_id` | string | Yes | DriveItem ID of the PowerPoint file whose retained versions to list. |
| `drive_id` | string | No | Drive ID containing the item; omit to use the signed-in user's default OneDrive. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Replace Presentation File

**Slug:** `MICROSOFT_POWERPOINT_REPLACE_PRESENTATION_FILE`

Replace the bytes of an existing PowerPoint DriveItem with a valid, non-macro-enabled PPTX package no larger than 250 MiB, optionally requiring a matching eTag.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `item_id` | string | Yes | DriveItem ID of the existing PowerPoint file to replace. |
| `drive_id` | string | No | Drive ID containing the item; omit to use the signed-in user's default OneDrive. |
| `presentation` | object | Yes | Replacement PPTX file; it must be a valid Open XML package no larger than 250 MiB. |
| `if_match_etag` | string | No | Expected current eTag; replacement fails if another editor changed the presentation. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Restore Presentation Version

**Slug:** `MICROSOFT_POWERPOINT_RESTORE_PRESENTATION_VERSION`

Restore a retained previous version of a PowerPoint presentation as a new current version while preserving its version history.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `item_id` | string | Yes | DriveItem ID of the PowerPoint file whose previous version to restore. |
| `drive_id` | string | No | Drive ID containing the presentation; omit to use the signed-in user's default OneDrive. |
| `version_id` | string | Yes | Retained version ID to restore as a new current version. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Transform Presentation Text and Properties

**Slug:** `MICROSOFT_POWERPOINT_TRANSFORM_PRESENTATION_TEXT_AND_PROPERTIES`

Transform text, slide order, or embedded core document properties inside a macro-free PPTX, then conditionally replace the same file. Supports literal, run-normalized text and {{placeholder}} replacement within DrawingML paragraphs, complete slide reordering, and core document-property updates. Provide at least one non-empty text_replacements, slide_order, or core_properties transformation. Rules run sequentially; a find string crosses a line break only when it includes a newline. Use UPDATE_PRESENTATION_METADATA instead to rename or move the DriveItem or change its filesystem metadata. It does not add or delete slides or edit layouts, themes, animations, charts, tables, or images.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `item_id` | string | Yes | DriveItem ID of the .pptx file to edit in place. |
| `drive_id` | string | No | Drive ID containing the item; omit to use the signed-in user's default OneDrive. |
| `slide_order` | array | No | Complete new order of all slides as 1-based original slide numbers, with no omissions or duplicates. |
| `core_properties` | object | No | Core document properties to set: title, subject, creator, keywords, description, category, or last_modified_by. |
| `text_replacements` | array | No | Replacement rules; each item requires find and replace strings and optionally accepts match_case and include_notes booleans. Rules run sequentially and match literal text across formatting runs. Example: [{"find": "Q3", "replace": "Q4", "match_case": true, "include_notes": false}]. |
| `allow_no_text_matches` | boolean | No | Allow requested text rules to match nothing. A wholly unchanged package is still uploaded only when this is true. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Presentation Content

**Slug:** `MICROSOFT_POWERPOINT_UPDATE_PRESENTATION_CONTENT`

Atomically update one macro-free PPTX under an exact eTag and one conditional upload. Supports slide lifecycle, shape and run edits, comments, native bar/line/pie charts, text boxes, PNG images, speaker notes, and tables. The delete_slide mode permanently removes a slide and eligible private dependencies; delete_shape permanently removes a top-level shape and unreferenced relationships; delete_comment permanently removes a root comment and its replies. Because this compatibility action exposes destructive modes, every call carries the static irreversible-update hint and requires irreversible-update approval, even when its submitted operations do not delete content; inspect targets before approval. Validates the package graph and semantic result. Limits include 50 MiB packages, 100 operations, 500,000 text characters, 20 uploaded PNGs, and 10,000 generated line breaks. Unsupported, shared, external, macro, combo, pivot, grouped, field, or ambiguous mutation targets are rejected before upload.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `item_id` | string | Yes | DriveItem ID of the macro-free PPTX. |
| `drive_id` | string | No | Drive ID; omit for the signed-in user's current drive. |
| `operations` | array | Yes | Ordered typed content operations applied atomically, with at most 10,000 generated line breaks across text boxes, table cells, and notes paragraphs. |
| `expected_etag` | string | Yes | Exact source eTag required for the transaction. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Presentation Content Destructively

**Slug:** `MICROSOFT_POWERPOINT_UPDATE_PRESENTATION_CONTENT_DESTRUCTIVE`

Atomically update one macro-free PPTX with at least one irreversible delete operation, under an exact eTag and one conditional upload. delete_slide permanently removes a slide and eligible private dependencies; delete_shape permanently removes a top-level shape and unreferenced relationships; delete_comment permanently removes a root comment and its replies. Supporting non-delete operations may be included in the same transaction, but every call must contain delete_slide, delete_shape, or delete_comment and requires irreversible-update approval. Validates the package graph and semantic result. Limits include 50 MiB packages, 100 operations, 500,000 text characters, 20 uploaded PNGs, and 10,000 generated line breaks.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `item_id` | string | Yes | DriveItem ID of the macro-free PPTX. |
| `drive_id` | string | No | Drive ID; omit for the signed-in user's current drive. |
| `operations` | array | Yes | Ordered typed content operations applied atomically, with at most 10,000 generated line breaks across text boxes, table cells, and notes paragraphs. |
| `expected_etag` | string | Yes | Exact source eTag required for the transaction. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Presentation Content Safely

**Slug:** `MICROSOFT_POWERPOINT_UPDATE_PRESENTATION_CONTENT_SAFE`

Atomically update one macro-free PPTX without delete operations, under an exact eTag and one conditional upload. Allowed operations are add_text_box, add_image, replace_image, set_existing_speaker_notes, add_table, add_slide, duplicate_slide, set_slide_hidden, set_shape_text, format_text_run, set_shape_bounds, set_shape_alt_text, set_shape_hyperlink, set_text_run_hyperlink, add_comment, reply_comment, add_chart, and replace_chart_data. delete_slide, delete_shape, and delete_comment are rejected during request validation before any network request. Validates the package graph and semantic result. Limits include 50 MiB packages, 100 operations, 500,000 text characters, 20 uploaded PNGs, and 10,000 generated line breaks.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `item_id` | string | Yes | DriveItem ID of the macro-free PPTX. |
| `drive_id` | string | No | Drive ID; omit for the signed-in user's current drive. |
| `operations` | array | Yes | Ordered non-delete operations applied atomically. Allowed types: add_text_box, add_image, replace_image, set_existing_speaker_notes, add_table, add_slide, duplicate_slide, set_slide_hidden, set_shape_text, format_text_run, set_shape_bounds, set_shape_alt_text, set_shape_hyperlink, set_text_run_hyperlink, add_comment, reply_comment, add_chart, and replace_chart_data. The transaction allows at most 10,000 generated line breaks across text boxes, table cells, and notes paragraphs. |
| `expected_etag` | string | Yes | Exact source eTag required for the transaction. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Presentation Metadata

**Slug:** `MICROSOFT_POWERPOINT_UPDATE_PRESENTATION_METADATA`

Update Microsoft Graph DriveItem metadata or path only: rename a PowerPoint presentation, move it within its current drive, or set supported filesystem metadata. This action does not edit slide text, slide order, document properties inside the PPTX package, or other presentation content. Optionally require a matching eTag. Provide at least one of name, parent_folder_id, description, created_datetime, or last_modified_datetime. OneDrive may accept a description without persisting it; the response reports that limitation.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | New presentation filename, which must end in .ppt or .pptx. |
| `item_id` | string | Yes | DriveItem ID of the PowerPoint file to update. |
| `drive_id` | string | No | Drive ID containing the presentation; omit to use the signed-in user's default OneDrive. |
| `description` | string | No | OneDrive Personal item description to request. Microsoft Graph may accept but ignore this value. |
| `if_match_etag` | string | No | Expected current eTag; the update fails if another editor changed the presentation. |
| `created_datetime` | string | No | Client file-system creation time to set as an ISO 8601 timestamp with a UTC offset. |
| `parent_folder_id` | string | No | Destination folder ID in the same drive as the presentation. |
| `last_modified_datetime` | string | No | Client file-system modification time to set as an ISO 8601 timestamp with a UTC offset. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Upload New Presentation

**Slug:** `MICROSOFT_POWERPOINT_UPLOAD_NEW_PRESENTATION`

Create a new PPTX in a Microsoft Graph drive folder, with configurable filename-conflict behavior. The file must be a valid, non-macro-enabled PPTX package no larger than 250 MiB.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `drive_id` | string | No | Target drive ID; omit to use the signed-in user's default OneDrive. |
| `filename` | string | Yes | Destination filename ending in .pptx. |
| `presentation` | object | Yes | PPTX file to upload; it must be a valid Open XML package no larger than 250 MiB. |
| `parent_folder_id` | string | No | Destination folder ID; defaults to the drive root. |
| `conflict_behavior` | string ("fail" | "rename") | No | Behavior when the destination filename already exists: fail or create this presentation under a provider-generated unique name. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
