Access Google Sheets via the Google Sheets API with managed OAuth authentication. Create spreadsheets, read and write cell values, manage sheets, append rows, create charts, and automate data operations.
This skill uses ClawLink for hosted connection flows and credentials so you do not need to configure Google Sheets API access yourself.
Step 1: InstallStep 2: Pair AccountStep 3: Connect Google Sheets
_App-specific connection GIF coming soon_Run the install command in OpenClawSign in and approve the deviceOpen the dashboard and connect Google Sheets
text
┌─────────────────┐ ┌──────────────┐ ┌──────────────────┐
│ OpenClaw │────▶│ ClawLink │────▶│ Google Sheets │
│ (User Chat) │ │ (OAuth) │ │ (Sheets API) │
└─────────────────┘ └──────────────┘ └──────────────────┘
│ │ │
│ 1. Install Plugin │ │
│ 2. Pair Device │ │
│ 3. Connect Sheets │ │
│ │ 4. Secure Token │
│ │ 5. Proxy Requests │
│ │ │
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ SKILL │ │ Dashboard│ │ Google │
│ File │ │ Auth │ │ Sheets │
└──────────┘ └──────────┘ └──────────┘
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 Sheets again."
bash
# Search for spreadsheets
clawlink_call_tool --tool "googlesheets_search_spreadsheets" --params '{"query": "budget"}'
# Get spreadsheet info
clawlink_call_tool --tool "googlesheets_get_spreadsheet_info" --params '{"spreadsheet_id": "YOUR_SPREADSHEET_ID"}'
# Get sheet names
clawlink_call_tool --tool "googlesheets_get_sheet_names" --params '{"spreadsheet_id": "YOUR_SPREADSHEET_ID"}'
All Google Sheets 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 Sheets 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-sheets in the list.
bash
clawlink_list_tools --integration google-sheets
Response: Returns the live tool catalog for Google Sheets.
If Google Sheets tools are missing or the connection shows an error:
clawlink_list_integrations to verifyclawlink_list_tools --integration google-sheetsToolDescriptionModegooglesheets_search_spreadsheetsSearch for spreadsheets by name, content, or dateReadgooglesheets_get_spreadsheet_infoGet spreadsheet metadata (ID, title, sheet properties)Readgooglesheets_get_sheet_namesList all worksheet names in a spreadsheetReadgooglesheets_get_spreadsheet_by_data_filterGet spreadsheet filtered by data filtersRead
ToolDescriptionModegooglesheets_values_getRead values from a specific cell rangeReadgooglesheets_batch_getRetrieve data from multiple ranges in one callReadgooglesheets_lookup_spreadsheet_rowFind a row by exact cell content matchReadgooglesheets_aggregate_column_dataSearch rows by column value and perform math operationsReadgooglesheets_spreadsheets_values_batch_get_by_data_filterRead ranges matching data filtersRead
ToolDescriptionModegooglesheets_values_updateSet values in a cell rangeWritegooglesheets_update_values_batchUpdate multiple ranges in one callWritegooglesheets_spreadsheets_values_appendAppend new rows to a tableWritegooglesheets_batch_update_values_by_data_filterUpdate values matching data filtersWritegooglesheets_find_replaceFind and replace text across a spreadsheetWritegooglesheets_format_cellApply text and background formatting to cellsWrite
ToolDescriptionModegooglesheets_clear_valuesClear cell content from a range (preserves formatting)Writegooglesheets_spreadsheets_values_batch_clearClear multiple ranges at onceWritegooglesheets_batch_clear_values_by_data_filterClear ranges matching data filtersWritegooglesheets_clear_basic_filterRemove the basic filter from a sheetWrite
ToolDescriptionModegooglesheets_add_sheetAdd a new sheet (GRID, OBJECT, or DATA_SOURCE type)Writegooglesheets_delete_sheetDelete a sheet from a spreadsheetWritegooglesheets_update_sheet_propertiesRename, reposition, or change tab color of a sheetWritegooglesheets_update_spreadsheet_propertiesUpdate spreadsheet-level properties (title, locale, timezone)Write
ToolDescriptionModegooglesheets_create_spreadsheet_rowInsert a new row at a specific indexWritegooglesheets_create_spreadsheet_columnInsert a new column in a spreadsheetWritegooglesheets_delete_dimensionDelete rows or columns by rangeWritegooglesheets_insert_dimensionInsert empty rows or columns at a locationWritegooglesheets_append_dimensionAppend rows or columns to a sheetWritegooglesheets_update_dimension_propertiesHide/unhide rows or columns, set row height/column widthWritegooglesheets_auto_resize_dimensionsAuto-fit column widths or row heights to contentWrite
ToolDescriptionModegooglesheets_upsert_rowsUpdate existing rows by key column, append new ones if not foundWrite
ToolDescriptionModegooglesheets_create_chartCreate a chart from a data range with configurable chart typeWrite
ToolDescriptionModegooglesheets_set_basic_filterSet or update a basic filter on a sheetWritegooglesheets_set_data_validation_ruleApply data validation rules or dropdowns to a rangeWritegooglesheets_get_conditional_format_rulesList conditional formatting rules for a sheetReadgooglesheets_mutate_conditional_format_rulesAdd, update, delete, or reorder conditional format rulesWritegooglesheets_get_data_validation_rulesExtract data validation rules from a spreadsheetRead
ToolDescriptionModegooglesheets_create_google_sheet1Create a new spreadsheet, optionally in a specific Drive folderWrite
ToolDescriptionModegooglesheets_spreadsheets_sheets_copy_toCopy a single sheet to another spreadsheetWrite
ToolDescriptionModegooglesheets_search_developer_metadataSearch for developer metadata in a spreadsheetRead
bash
clawlink_call_tool --tool "googlesheets_search_spreadsheets" \
--params '{
"query": "budget tracker"
}'
bash
clawlink_call_tool --tool "googlesheets_values_get" \
--params '{
"spreadsheet_id": "YOUR_SPREADSHEET_ID",
"range": "Sheet1!A1:C10"
}'
bash
clawlink_call_tool --tool "googlesheets_values_update" \
--params '{
"spreadsheet_id": "YOUR_SPREADSHEET_ID",
"range": "Sheet1!A1:B2",
"values": [["Product", "Revenue"], ["Widget", 1500]]
}'
bash
clawlink_call_tool --tool "googlesheets_spreadsheets_values_append" \
--params '{
"spreadsheet_id": "YOUR_SPREADSHEET_ID",
"range": "Sheet1!A:C",
"values": [["New Item", "Description", 100]]
}'
bash
clawlink_call_tool --tool "googlesheets_upsert_rows" \
--params '{
"spreadsheet_id": "YOUR_SPREADSHEET_ID",
"sheet": "Sheet1",
"key_column": "Email",
"headers": ["Email", "Phone", "Status"],
"data": [["john@example.com", "555-0101", "Active"]]
}'
bash
clawlink_call_tool --tool "googlesheets_create_chart" \
--params '{
"spreadsheet_id": "YOUR_SPREADSHEET_ID",
"sheet_id": 0,
"chart_type": "BAR",
"data_range": "A1:B5",
"title": "Monthly Revenue"
}'
clawlink_list_integrations to confirm Google Sheets is connected.clawlink_list_tools --integration google-sheets to see the live catalog.clawlink_search_tools with a short query and integration google-sheets.text
┌─────────────────────────────────────────────────────────────┐
│ READ OPERATIONS (Safe) │
│ search → get → read → call │
│ │
│ Example: List sheets → Read range → 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.null in value arrays to skip updating specific cells."" (empty string).Sheet1!A1:C10).upsert_rows auto-adds missing columns and performs partial column updates.find_replace is useful for fixing formula errors or bulk text updates.index field can cause conflicts.Status / ErrorMeaningTool not foundThe tool name does not exist in the current catalog. Verify with clawlink_list_tools --integration google-sheets.Missing connectionGoogle Sheets is not connected. Direct the user to https://claw-link.dev/dashboard?add=google-sheets.SPREADSHEET_NOT_FOUNDSpreadsheet does not exist. Check the spreadsheet_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-sheets.clawlink_describe_tool to verify parameter names and types before calling.clawlink_preview_tool first.Powered by ClawLink — an integration hub for OpenClaw
