Access Google Slides via the Google Slides API with managed OAuth authentication. Inspect presentations, create or update slide content, manage layouts, and coordinate deck workflows.
This skill uses ClawLink for hosted connection flows and credentials so you do not need to configure Google Slides API access yourself.
Step 1: InstallStep 2: Pair AccountStep 3: Connect Google Slides
_App-specific connection GIF coming soon_Run the install command in OpenClawSign in and approve the deviceOpen the dashboard and connect Google Slides
text
┌─────────────────┐ ┌──────────────┐ ┌──────────────────┐
│ OpenClaw │────▶│ ClawLink │────▶│ Google Slides │
│ (User Chat) │ │ (OAuth) │ │ (Slides API) │
└─────────────────┘ └──────────────┘ └──────────────────┘
│ │ │
│ 1. Install Plugin │ │
│ 2. Pair Device │ │
│ 3. Connect Slides │ │
│ │ 4. Secure Token │
│ │ 5. Proxy Requests │
│ │ │
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ SKILL │ │ Dashboard│ │ Google │
│ File │ │ Auth │ │ Slides │
└──────────┘ └──────────┘ └──────────┘
Install the verified ClawLink plugin from ClawHub. After the user confirms, complete the full setup so ClawLink tools are visible in the next OpenClaw chat.
bash
openclaw plugins install clawhub:clawlink-plugin
openclaw config set tools.alsoAllow '["clawlink-plugin"]' --strict-json
openclaw gateway restart
Then tell the user: "OpenClaw has been restarted. Send /new as a standalone message to start a fresh chat, then ask for Google Slides again."
bash
# Search for presentations
clawlink_call_tool --tool "googleslides_search_presentations" --params '{"query": "sales deck"}'
# Get presentation details
clawlink_call_tool --tool "googleslides_get_presentation" --params '{"presentation_id": "YOUR_PRESENTATION_ID"}'
# List slides
clawlink_call_tool --tool "googleslides_list_slides" --params '{"presentation_id": "YOUR_PRESENTATION_ID"}'
All Google Slides tool calls are authenticated automatically by ClawLink using the user's connected Google account.
No API key is required in chat. ClawLink stores the OAuth token securely and injects it into every Google Slides API request on the user's behalf.
clawlink_begin_pairing if it is not configured yet.clawlink_list_integrations to verify the connection is active.bash
clawlink_list_integrations
Response: Returns all connected integrations. Look for google-slides in the list.
bash
clawlink_list_tools --integration google-slides
Response: Returns the live tool catalog for Google Slides.
If Google Slides tools are missing or the connection shows an error:
clawlink_list_integrations to verifyclawlink_list_tools --integration google-slidesToolDescriptionModegoogleslides_search_presentationsSearch for presentations by name or queryReadgoogleslides_get_presentationGet a presentation's metadata and slide listReadgoogleslides_get_presentation_thumbnailGet thumbnail images of slidesReadgoogleslides_list_slidesList all slides in a presentationReadgoogleslides_get_slideGet a specific slide's metadata and element listReadgoogleslides_get_page_thumbnailGet a thumbnail for a specific slideRead
ToolDescriptionModegoogleslides_create_presentationCreate a new empty presentationWritegoogleslides_create_slideAdd a new slide to an existing presentationWritegoogleslides_copy_presentationCreate a copy of an existing presentationWrite
ToolDescriptionModegoogleslides_insert_textInsert text into a text box or shapeWritegoogleslides_replace_all_textReplace text throughout a presentationWritegoogleslides_update_text_styleUpdate text formatting (font, size, color, bold, etc.)Write
ToolDescriptionModegoogleslides_create_shapeCreate a shape on a slideWritegoogleslides_create_imageInsert an image onto a slideWritegoogleslides_create_lineCreate a line or connector on a slideWritegoogleslides_update_shape_propertiesUpdate shape fill, stroke, and shadowWritegoogleslides_delete_objectDelete an element (shape, image, table, etc.) from a slideWrite
ToolDescriptionModegoogleslides_create_tableInsert a table onto a slideWritegoogleslides_update_table_row_heightUpdate a table row's heightWritegoogleslides_update_table_column_widthUpdate a table column's widthWritegoogleslides_insert_table_rowsInsert rows into a tableWritegoogleslides_delete_table_rowDelete a row from a tableWrite
ToolDescriptionModegoogleslides_list_page_layoutsList available page layoutsReadgoogleslides_update_page_element_transformMove, resize, or rotate an elementWritegoogleslides_update_slide_positionReorder slides within a presentationWritegoogleslides_update_themeUpdate the presentation theme or color schemeWrite
ToolDescriptionModegoogleslides_update_presentation_titleRename a presentationWritegoogleslides_batch_update_presentationExecute multiple operations in a single requestWritegoogleslides_export_presentationExport a presentation as PDF or other formatRead
ToolDescriptionModegoogleslides_copy_slideDuplicate a slide within or across presentationsWritegoogleslides_duplicate_objectDuplicate any presentation objectWrite
bash
clawlink_call_tool --tool "googleslides_search_presentations" \
--params '{
"query": "Q4 sales deck"
}'
bash
clawlink_call_tool --tool "googleslides_get_presentation" \
--params '{
"presentation_id": "YOUR_PRESENTATION_ID"
}'
bash
clawlink_call_tool --tool "googleslides_create_presentation" \
--params '{
"title": "Product Launch Deck"
}'
bash
clawlink_call_tool --tool "googleslides_insert_text" \
--params '{
"presentation_id": "YOUR_PRESENTATION_ID",
"page_id": "SLIDE_PAGE_ID",
"text": "Welcome to our presentation!",
"element_id": "YOUR_ELEMENT_ID"
}'
bash
clawlink_call_tool --tool "googleslides_replace_all_text" \
--params '{
"presentation_id": "YOUR_PRESENTATION_ID",
"replace_text": "New Company Name",
"search_text": "Old Company Name"
}'
bash
clawlink_call_tool --tool "googleslides_create_slide" \
--params '{
"presentation_id": "YOUR_PRESENTATION_ID",
"layout_index": 1
}'
clawlink_list_integrations to confirm Google Slides is connected.clawlink_list_tools --integration google-slides to see the live catalog.clawlink_search_tools with a short query and integration google-slides.text
┌─────────────────────────────────────────────────────────────┐
│ READ OPERATIONS (Safe) │
│ search → get → list → call │
│ │
│ Example: List slides → Get details → Show results │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ WRITE OPERATIONS (Require Confirmation) │
│ describe → preview → confirm → call │
│ │
│ Example: Describe tool → Preview changes → User approves │
│ → Execute update │
└─────────────────────────────────────────────────────────────┘
clawlink_describe_tool first.whenToUse, askBefore, safeDefaults, examples, and followups to shape the call.clawlink_preview_tool first.clawlink_call_tool. Pass confirmation only after the preview matches the user's intent.get_presentation or get_slide responses.batch_update_presentation allows combining multiple operations into a single API call for efficiency.Status / ErrorMeaningTool not foundThe tool name does not exist in the current catalog. Verify with clawlink_list_tools --integration google-slides.Missing connectionGoogle Slides is not connected. Direct the user to https://claw-link.dev/dashboard?add=google-slides.RESOURCE_NOT_FOUNDPresentation or slide does not exist. Check the ID.INVALID_ARGUMENTInvalid parameter or missing required field. Review the tool schema with clawlink_describe_tool.Write rejectedUser did not confirm a write action. Always confirm before executing writes.
Check that the ClawLink plugin is installed: bash
openclaw plugins list
If the plugin is installed but tools are missing, tell the user to send /new as a standalone message to reload the catalog.
If a fresh chat does not help, run: bash
openclaw config set tools.alsoAllow '["clawlink-plugin"]' --strict-json
openclaw gateway restart
After restart, tell the user to send /new again and retry.
google-slides.clawlink_describe_tool to verify parameter names and types before calling.clawlink_preview_tool first.Powered by ClawLink — an integration hub for OpenClaw
