Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to Microsoft PowerPoint

Scalekit connector
Open markdown

The Microsoft PowerPoint connector lets your AI agent act in each user's Microsoft PowerPoint account. Each user signs in to Microsoft PowerPoint once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 27 tools.

Tools
27
What they doRead · write · destructive
16 · 9 · 216 read9 write2 destructive
Users sign in with
OAuth app
Your own Microsoft PowerPoint app

Setup

  1. Install the SDK

    Terminal window
    npm install @scalekit-sdk/node dotenv
  2. Set your credentials

    Add your Scalekit credentials to your .env file. Find values in app.scalekit.com > Developers > API Credentials.

    .env
    SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
    SCALEKIT_CLIENT_ID=<your-client-id>
    SCALEKIT_CLIENT_SECRET=<your-client-secret>
  3. Create the Microsoft PowerPoint connection

    In AgentKit > Connections, create a Microsoft PowerPoint connection and copy its redirect URI. The name you give it is the connection_name your code passes. See Configure connections.

  4. Register an OAuth app

    Microsoft PowerPoint connections use your own OAuth app. Register one with Microsoft PowerPoint and add the redirect URI you copied.

    Then enter the app's Client ID and Client Secret on the Microsoft PowerPoint connection.

  5. Authorize a user and make your first call

    quickstart.mts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    import { createInterface } from 'node:readline/promises'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENVIRONMENT_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'microsoftpowerpoint'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Microsoft PowerPoint:', link)
    const rl = createInterface({ input: process.stdin, output: process.stdout })
    await rl.question('Press Enter after authorizing...')
    rl.close()
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'microsoftpowerpoint_list_drives',
    toolInput: {},
    })
    console.log(result)
    Terminal window
    npx tsx quickstart.mts

    Each user signs in once. See Authorize a user for the full flow and statuses.

Tools

Pass the exact name to execute_tool
Try in PlaygroundRequest a tool
  • microsoftpowerpoint_download_presentationDownload the original .pptx file of a presentation by item ID.Read-only

    Download Presentation

    Download the original .pptx file of a presentation by item ID. Returns a redirect to a short-lived pre-authenticated download URL, or the raw .pptx bytes; the response is not JSON. Use to retrieve the editable file. Use microsoftpowerpoint_export_presentation_pdf for a PDF rendering. Requires Files.Read or Files.ReadWrite scope.

    Inputs

    item_idstringrequired
    The unique OneDrive/SharePoint item ID of the presentation (.pptx file). Obtain it from microsoftpowerpoint_search_presentations, microsoftpowerpoint_list_presentations or microsoftpowerpoint_list_recent_presentations. Example: "01BYE5RZ6QN3ZWBTUFOFD3GSPGOHDJD36K".
  • microsoftpowerpoint_export_presentation_pdfConvert a PowerPoint presentation to PDF server-side and return the file.Read-only

    Export Presentation as PDF

    Convert a PowerPoint presentation to PDF server-side and return the file. Returns a redirect to the PDF download, or the PDF bytes; Microsoft Graph does not return slide text or JSON. Use to read or share a deck as a fixed-layout document. Use microsoftpowerpoint_download_presentation for the original .pptx file. Requires Files.Read or Files.ReadWrite scope.

    Inputs

    item_idstringrequired
    The unique OneDrive/SharePoint item ID of the presentation (.pptx file). Obtain it from microsoftpowerpoint_search_presentations, microsoftpowerpoint_list_presentations or microsoftpowerpoint_list_recent_presentations. Example: "01BYE5RZ6QN3ZWBTUFOFD3GSPGOHDJD36K".
  • microsoftpowerpoint_export_presentation_pdf_in_driveConvert a presentation in a specific drive, such as a SharePoint library, to PDF server-side and return the file.Read-only

    Export Presentation as PDF in Drive

    Convert a presentation in a specific drive, such as a SharePoint library, to PDF server-side and return the file. Returns a redirect to the PDF download, or the PDF bytes; not JSON. Use for decks outside personal OneDrive. Use microsoftpowerpoint_export_presentation_pdf for the personal drive. Requires Files.Read.All or Files.ReadWrite.All scope.

    Inputs

    drive_idstringrequired
    The ID of the drive (OneDrive or SharePoint document library) that holds the item. Obtain it from microsoftpowerpoint_list_drives or from the parentReference.driveId field of any returned item.
    item_idstringrequired
    The unique OneDrive/SharePoint item ID of the presentation (.pptx file). Obtain it from microsoftpowerpoint_search_presentations, microsoftpowerpoint_list_presentations or microsoftpowerpoint_list_recent_presentations. Example: "01BYE5RZ6QN3ZWBTUFOFD3GSPGOHDJD36K".
  • microsoftpowerpoint_get_presentationRetrieve metadata for a PowerPoint presentation by its item ID.Read-only

    Get Presentation Metadata

    Retrieve metadata for a PowerPoint presentation by its item ID. Returns name, size, webUrl, createdDateTime, lastModifiedDateTime, file mimeType and hashes, parentReference (including driveId) and the pre-authenticated @microsoft.graph.downloadUrl. Use to inspect a known presentation. It does not return slide content; use microsoftpowerpoint_export_presentation_pdf or microsoftpowerpoint_download_presentation for content. Requires Files.Read or Files.ReadWrite scope.

    Inputs

    item_idstringrequired
    The unique OneDrive/SharePoint item ID of the presentation (.pptx file). Obtain it from microsoftpowerpoint_search_presentations, microsoftpowerpoint_list_presentations or microsoftpowerpoint_list_recent_presentations. Example: "01BYE5RZ6QN3ZWBTUFOFD3GSPGOHDJD36K".
    selectstring
    Optional comma-separated list of driveItem properties to return, which trims the response. Example: "id,name,size,webUrl,lastModifiedDateTime". Leave empty to return the default properties.
  • microsoftpowerpoint_get_presentation_by_pathRetrieve metadata for a file or folder in the signed-in user's OneDrive using its path instead of an item ID.Read-only

    Get Presentation by Path

    Retrieve metadata for a file or folder in the signed-in user's OneDrive using its path instead of an item ID. Returns the driveItem with id, name, size, webUrl, lastModifiedDateTime, file facet and parentReference. Use when you know the location, such as "Documents/Decks/Q1 Review.pptx", but not the item ID. Use microsoftpowerpoint_search_presentations when the location is unknown. Requires Files.Read or Files.ReadWrite scope.

    Inputs

    item_pathstringrequired
    Path of the presentation relative to the root of the user's OneDrive, with no leading slash. Example: "Documents/Decks/Q1 Review.pptx".
  • microsoftpowerpoint_get_presentation_in_driveRetrieve metadata for a presentation in a specific drive, such as a SharePoint document library.Read-only

    Get Presentation Metadata in Drive

    Retrieve metadata for a presentation in a specific drive, such as a SharePoint document library. Returns name, size, webUrl, timestamps, file mimeType, parentReference and @microsoft.graph.downloadUrl. Use for decks outside personal OneDrive. Use microsoftpowerpoint_get_presentation for the personal drive. Requires Files.Read.All or Files.ReadWrite.All scope.

    Inputs

    drive_idstringrequired
    The ID of the drive (OneDrive or SharePoint document library) that holds the item. Obtain it from microsoftpowerpoint_list_drives or from the parentReference.driveId field of any returned item.
    item_idstringrequired
    The unique OneDrive/SharePoint item ID of the presentation (.pptx file). Obtain it from microsoftpowerpoint_search_presentations, microsoftpowerpoint_list_presentations or microsoftpowerpoint_list_recent_presentations. Example: "01BYE5RZ6QN3ZWBTUFOFD3GSPGOHDJD36K".
    selectstring
    Optional comma-separated list of driveItem properties to return, which trims the response. Example: "id,name,size,webUrl,lastModifiedDateTime". Leave empty to return the default properties.
  • microsoftpowerpoint_get_presentation_thumbnailsRetrieve thumbnail images of a presentation, typically for the first slide.Read-only

    Get Presentation Thumbnails

    Retrieve thumbnail images of a presentation, typically for the first slide. Returns thumbnail sets with small, medium and large image URLs and sizes. Use to show a visual preview of a deck. Use microsoftpowerpoint_preview_presentation for an interactive embedded preview. Requires Files.Read or Files.ReadWrite scope.

    Inputs

    item_idstringrequired
    The unique OneDrive/SharePoint item ID of the presentation (.pptx file). Obtain it from microsoftpowerpoint_search_presentations, microsoftpowerpoint_list_presentations or microsoftpowerpoint_list_recent_presentations. Example: "01BYE5RZ6QN3ZWBTUFOFD3GSPGOHDJD36K".
  • microsoftpowerpoint_list_drivesList the drives the signed-in user can access, including personal OneDrive and SharePoint document libraries.Read-only

    List Available Drives

    List the drives the signed-in user can access, including personal OneDrive and SharePoint document libraries. Returns drive objects with id, name, driveType and webUrl. Use to get a drive_id for the *_in_drive tools, which reach presentations stored in SharePoint libraries. Requires Files.Read or Files.ReadWrite scope.

    Inputs

    selectstring
    Optional comma-separated list of driveItem properties to return, which trims the response. Example: "id,name,size,webUrl,lastModifiedDateTime". Leave empty to return the default properties.
    topinteger
    Maximum number of drives to return.