ClawLink

How to connect Google Sheets to OpenClaw

Connect Google Sheets to OpenClaw with no Google Cloud project, no OAuth client, and no credentials JSON. Hosted OAuth, 40 Sheets tools, and fixes for the Sheets API errors agents actually hit.

Get started for free
OpenClaw
OpenClaw
ClawLink
ClawLink
Google Sheets
Google Sheets
Google SheetsOAUTH2MCP

Read and write spreadsheet data. Once connected, OpenClaw can read and act on Google Sheets from chat — pairing, token refresh, and tool wiring handled for you.

40 tools

The usual route to Google Sheets access for OpenClaw is an MCP server you configure and keep running, plus your own OAuth app or API keys. ClawLink gives OpenClaw a more practical Google Sheets setup: install one ClawHub skill, connect Google Sheets in the browser, and OpenClaw can call real Google Sheets actions from any chat surface with no auth, token refresh, or tool wiring to build yourself.

Copy this prompt into OpenClaw, or open the Google Sheets skill on ClawHub.

Prompt for OpenClaw
Before installing anything, inspect the ClawHub skill metadata and setup requirements.
If the skill asks you to install a third-party package or CLI, verify its source, maintainer, and package contents before running the install command.
Install the skill "Google Sheets" (hith3sh/google-sheets-spreadsheets) from ClawHub only after those checks pass.
Skill page: https://clawhub.ai/hith3sh/google-sheets-spreadsheets
Keep the work scoped to this skill only.
After install, help me finish setup from verified skill metadata.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Setup

It takes three steps to connect OpenClaw to Google Sheets.

  1. 1

    Install the plugin

    Paste the setup prompt into OpenClaw, or install from the terminal and ask OpenClaw to pair:

    openclaw plugins install clawhub:clawlink-plugin
  2. 2

    Connect Google Sheets

    One-click OAuth in the dashboard.

  3. 3

    Use it from chat

    Ask OpenClaw: "What can you do with Google Sheets?"

Install by command

The setup prompt above does all of this in one paste. By hand, it is one install command plus a browser approval:

openclaw plugins install clawhub:clawlink-plugin

Then ask OpenClaw to set up ClawLink. It starts browser pairing and prints an approval link — open it, approve the device, return to the chat, and say done. Finally, connect Google Sheets in the ClawLink dashboard — a one-click OAuth approval, no API keys.

Verify the connection by asking OpenClaw:

Find the spreadsheet named Q3 budget in my Google Sheets, list its sheet names, then read the first 50 rows of the main sheet and summarize what is in it.

Using a different agent?

The OpenClaw plugin is one client of ClawLink's MCP server. Claude Code, Cursor, Codex, or any agent that can run a shell command pairs with the same ClawLink account through the CLI:

npx -y @useclawlink/cli login

login opens the same browser approval and stores a credential locally. Once Google Sheets is connected in the dashboard, that agent calls the same 40 Google Sheets tools over MCP. Full setup for MCP clients and shell agents: connect apps to any AI agent.

Google Sheets MCP for OpenClaw

Looking for a Google Sheets MCP server for OpenClaw? ClawLink connects Google Sheets to OpenClaw and exposes 40 Google Sheets tools your agent can call over MCP, with hosted auth and nothing to run or maintain yourself. Using Hermes instead? The Hermes Google Sheets integration uses the same hosted Google provider and the same 40 tools, but Hermes pairs through its own CLI handshake rather than the OpenClaw skill flow.

Every walkthrough the answer engines surface for this query starts in the Google Cloud Console: create a project, enable the Sheets and Drive APIs, configure an OAuth consent screen, download a credentials JSON, then run gog auth on the machine OpenClaw lives on. None of those steps exist here, because ClawLink owns the verified Google OAuth app. You install one skill, click Connect next to Google Sheets in the dashboard, approve the two permissions Google shows on its own consent screen, and the 40 tools below work from your next chat. There is no service account in this flow either, so there is nothing to share your sheets with.

What the OpenClaw Google Sheets integration can do

40 Google Sheets tools are ready for OpenClaw once the account is connected. The 30 below are the ones people reach for most; your agent can call all 40.

30 of 40 Google Sheets tools for OpenClaw

ToolWhat it does
Add sheet googlesheets_add_sheetAdd a new sheet to a spreadsheet
Aggregate column data googlesheets_aggregate_column_dataAggregate column data by matching and computing
Batch get googlesheets_batch_getRetrieve data from multiple cell ranges
Clear values googlesheets_clear_valuesClear cell content from a range
Create chart googlesheets_create_chartCreate a chart in a Google Sheet
Create google sheet1 googlesheets_create_google_sheet1Create a new Google Spreadsheet
Create spreadsheet column googlesheets_create_spreadsheet_columnCreate a new column in a Google Sheet
Create spreadsheet row googlesheets_create_spreadsheet_rowInsert a new row into a Google Sheet
Find replace googlesheets_find_replaceFind and replace text across cells
Format cell googlesheets_format_cellApply text and background formatting to cells
Get data validation rules googlesheets_get_data_validation_rulesGet data validation rules from a spreadsheet
Get sheet names googlesheets_get_sheet_namesList all worksheet names in a spreadsheet
Get spreadsheet info googlesheets_get_spreadsheet_infoGet metadata for a Google Spreadsheet
Lookup spreadsheet row googlesheets_lookup_spreadsheet_rowFind a row by exact cell content match
Search spreadsheets googlesheets_search_spreadsheetsSearch for Google Spreadsheets by name or content
Set data validation rule googlesheets_set_data_validation_ruleSet data validation rules or dropdowns on a range
Spreadsheets sheets copy to googlesheets_spreadsheets_sheets_copy_toCopy a sheet to another spreadsheet
Spreadsheets values append googlesheets_spreadsheets_values_appendAppend values to the end of a Google Sheet
Spreadsheets values batch clear googlesheets_spreadsheets_values_batch_clearClear values from multiple ranges at once
Update sheet properties googlesheets_update_sheet_propertiesUpdate sheet tab properties like name or color
Update spreadsheet properties googlesheets_update_spreadsheet_propertiesUpdate spreadsheet-level properties like title or locale
Update values batch googlesheets_update_values_batchUpdate values in multiple ranges at once
Upsert rows googlesheets_upsert_rowsUpsert rows by key column, appending or updating
Values get googlesheets_values_getRead values from a range in a Google Sheet
Values update googlesheets_values_updateUpdate values in a range of a Google Sheet
Get conditional format rules googlesheets_get_conditional_format_rulesList conditional formatting rules for each sheet (or a selected sheet) in a normalized
Get spreadsheet by data filter googlesheets_get_spreadsheet_by_data_filterReturns the spreadsheet at the given ID, filtered by the specified data filters
Search developer metadata googlesheets_search_developer_metadataSearch for developer metadata in a spreadsheet
Spreadsheets values batch get by data filter googlesheets_spreadsheets_values_batch_get_by_data_filterReturn one or more ranges of values from a spreadsheet that match the specified data filters
Append dimension googlesheets_append_dimensionAppend new rows or columns to a sheet, increasing its size

Try it: find the Google Sheets tool you need

Browse the 30 Google Sheets tools

Click any tool to see exactly what OpenClaw can do and copy a ready-to-use prompt.

Example prompts

Find the spreadsheet named Q3 budget in my Google Sheets, list its sheet names, then read the first 50 rows of the main sheet and summarize what is in it.

Append these rows to the end of the Expenses sheet in that spreadsheet, using USER_ENTERED so the dates and amounts arrive as typed values rather than text.

In my forecast spreadsheet, update Summary!B2:B13 with the new monthly numbers I paste below, and read the range back to confirm what changed.

If a Sheets call fails saying spreadsheet_id is required, search my spreadsheets by name first and retry the same call with the real id from the search results instead of asking me.

What the Google Sheets tools actually expect

The argument rules behind most of the Sheets failures we log. The first two account for more real errors than everything else combined.

  • Every tool wants the spreadsheet ID, never the name, and the missing id is the most common real Sheets failure in ClawLink logs. The ID is the long string in the sheet's URL between /d/ and /edit. An agent can get it two ways: you paste the sheet's URL into chat, or it calls googlesheets_search_spreadsheets with a name query and reuses the id from the results.
  • The argument name flips between snake_case and camelCase across the 40 tools. googlesheets_values_get, googlesheets_values_update and googlesheets_batch_get want spreadsheet_id; googlesheets_spreadsheets_values_append and googlesheets_update_sheet_properties want spreadsheetId. Same value, different key, and an agent that carries arguments from one call into the next gets arguments.spreadsheetId is required with no hint that only the casing changed.
  • value_input_option is required on updates and appends, and the two values behave differently. USER_ENTERED parses input the way typing does, so dates become dates and =SUM(A1:A3) becomes a live formula; RAW stores every string exactly as sent. Omitting it is our second most common validation failure, 107 logged calls. On appends, insertDataOption takes OVERWRITE or INSERT_ROWS.
  • Ranges are A1 notation with the sheet name in front. Sheet1!B2:D10 works, a sheet name containing spaces needs single quotes ('Monthly budget'!A1:C10), and a wrong sheet title fails with the literal Invalid sheet identifier or cell reference provided. Get real titles from googlesheets_get_sheet_names before building the range.
  • values is an array of arrays, one inner array per row. A flat array or a bare string fails validation with arguments.values[0][0] must be a string style messages before the request reaches Google.
  • The read tool is googlesheets_values_get. Agents regularly invent googlesheets_get_values, googlesheets_get_spreadsheet_values and googlesheets_get_spreadsheet, 32 logged not-found calls. The error names the closest real tools, so the retry is free.
  • googlesheets_search_spreadsheets runs on the Drive API, not the Sheets API. Its query syntax is Drive's (name contains 'budget', fullText contains 'sales'), its order_by fields are Drive's, and it is the first tool to break when the Drive permission was left unticked at consent.
  • Per-cell loops burn quota. Google's documented Sheets read quota is 60 requests per minute per user; a loop that reads one cell at a time hits 429 (Too many requests. Try again shortly.) well before a batch call would. googlesheets_batch_get and googlesheets_update_values_batch do the same work in one request. On a 429, wait and retry; reconnecting changes nothing.

The alternative to ClawLink is usually manual OAuth app setup plus your own token handling, permission troubleshooting, and tool plumbing for OpenClaw. That is fine if you want to build and maintain the integration yourself. Most teams just want Google Sheets working from chat.

ManualClawLink
Connection flowRegister a Google Sheets app, configure redirect URLs, manage consent details, and reconnect users when auth settings drift.Users connect Google Sheets through the hosted browser flow and ClawLink keeps the token lifecycle out of your app code.
Ongoing maintenanceYou own refresh logic, permission debugging, environment config, and every provider-specific edge case for Google Sheets.ClawLink handles the repetitive integration plumbing so your team can focus on the workflow instead of the infrastructure.
Agent usabilityYou still need to expose the right Google Sheets actions to the runtime in a format your agent can reliably use.40 tools for Google Sheets are already exposed through ClawLink, so the agent can read and act from chat immediately.

Composio also exposes Google Sheets to AI agents. It is developer infrastructure: Python and TypeScript SDKs, an MCP server, and a catalog past 1,000 apps, aimed at teams shipping agent products. ClawLink is built for OpenClaw users instead. You install the plugin once, connect Google Sheets in the browser, and the 40 tools above work from chat. There is no SDK, no config file, and no API key handling. Choosing between them? Read the full Composio alternatives comparison.

Troubleshooting

OpenClaw installed the Google Sheets skill but can't call the tools

The ClawHub skill teaches OpenClaw about Google Sheets, but the calls run through the ClawLink plugin and your connected account. Make sure Google Sheets is connected in the dashboard, then start a fresh chat so OpenClaw reloads the tool catalog. If OpenClaw runs as a persistent gateway, restart it so the new tools register.

Connection succeeds but no tools appear

Reconnect Google Sheets from the dashboard, then start a fresh chat if the runtime still has the old tool catalog loaded.

"Tool schema not loaded yet" error when calling Google Sheets tools

Google Sheets tool schemas load on demand the first time a tool runs and are cached after that, so this error usually clears on its own: wait a few seconds and retry the same request. If every Google Sheets call keeps failing with it in a fresh chat, reconnect from the dashboard, and contact support if it still persists — that pattern points to a configuration problem on our side, not something you can fix by reconnecting again.

Google Sheets returns 403 or "permission denied" on one action while others work

Two usual causes. The connected account may not have access to the specific workspace, inbox, store, or project in the request — check that first. If access looks right, the agent may have sent a placeholder value (like "YOUR_ID" or an example id from documentation) instead of a real one: ask it to run a list or search tool first, then retry the action with a real id from those results. Most failures at this stage are one of these two, not ClawLink bugs.

"arguments.spreadsheet_id is required" (or "arguments.spreadsheetId is required") from Google Sheets

The agent referred to the sheet by its name, and no Sheets tool accepts a name. Both spellings are real: values_get, values_update and batch_get take spreadsheet_id, while spreadsheets_values_append and update_sheet_properties take spreadsheetId, so the same mistake shows up under two messages. The fix is one extra step: paste the sheet's URL into chat, or have the agent call googlesheets_search_spreadsheets with a name query and reuse the returned id. This family is the most common real Sheets failure we log.

"arguments.value_input_option is required" when updating a Google Sheet

googlesheets_values_update will not guess how to interpret your data, because the two options produce different spreadsheets. USER_ENTERED behaves like typing: 3/1/2026 becomes a date, =AVERAGE(B2:B20) becomes a live formula. RAW stores the exact strings. Tell the agent which you want; for most tasks that move real data into a sheet, USER_ENTERED is the right answer. 107 logged calls failed by omitting it.

"Invalid sheet identifier or cell reference provided" from Google Sheets

The range did not resolve: the sheet title in front of the ! does not exist in that spreadsheet, or the A1 reference is malformed. Sheet titles are exact, including spaces and case, and titles with spaces must be wrapped in single quotes, as in 'Monthly budget'!A1:C10. Have the agent call googlesheets_get_sheet_names first and build the range from a title in that response instead of assuming Sheet1 exists.

"Tool 'googlesheets_get_values' not found" and other missing Google Sheets tools

Two different problems share this shape. If the message names a specific tool and suggests alternatives (Did you mean: 'googlesheets_values_get'), the agent invented a plausible name; the suggestion is almost always the right tool, so retry with it. If entire Google Sheets tools are missing from the catalog in a fresh chat, the runtime has a stale tool list: reconnect from the dashboard and start a new chat. There is no local server process to restart and no token.json to delete in this flow; advice mentioning either belongs to self-hosted MCP setups, not this one.

"Request had insufficient authentication scopes" (403) when searching Sheets while reads still work

The connection is alive but its Google grant is missing the Drive permission. ClawLink requests two non-sign-in permissions, spreadsheets and Drive, so Google shows a consent screen with a checkbox for each; unticking the Drive box produces a connection where values_get works and googlesheets_search_spreadsheets or googlesheets_get_spreadsheet_info fail exactly like this, which is the pattern in our logs. Reconnect Google Sheets from the dashboard and leave every box on Google's consent screen ticked.

"Connected account is not in an ACTIVE state. Current status is REVOKED" from Google Sheets

The grant behind this connection was removed on the Google side, usually under Third-party apps and services or by a workspace admin, and every call will fail until it is re-established. Reconnect Google Sheets from the ClawLink dashboard and approve the consent screen again. This is the one Sheets error where reconnecting is the whole fix.

OAuth finished in the browser but the account is still missing

Try reconnecting Google Sheets and complete the consent flow in the same browser session. Partial OAuth approvals or switching accounts mid-flow can leave the connection incomplete.

FAQ

Is there a OpenClaw Google Sheets integration?

Yes. ClawLink is the fastest way to connect OpenClaw to Google Sheets: link your Google Sheets account once in the browser and OpenClaw can call the Google Sheets API through 40 ready-made tools — no custom code or token handling.

How do I add Google Sheets to OpenClaw with ClawLink?

Paste the setup prompt from this page into OpenClaw. It installs the ClawLink Google Sheets skill from ClawHub, then you click Connect in the dashboard to authorize Google Sheets. OpenClaw calls the tools from the next message — no config files or API keys to manage.

How long does it take to connect Google Sheets to OpenClaw?

About two minutes. Sign in, click Connect next to Google Sheets in the dashboard, authenticate, and OpenClaw can use it from the next chat message.

Why use ClawLink instead of wiring Google Sheets up myself?

The alternative to ClawLink is usually manual OAuth app setup plus your own token handling, permission troubleshooting, and tool plumbing for OpenClaw. That is fine if you want to build and maintain the integration yourself. Most teams just want Google Sheets working from chat.

Do I need a Google Cloud project, an OAuth app, or gog auth to connect Google Sheets to OpenClaw?

No. That checklist belongs to the self-hosted route: create a Cloud project, enable the Sheets and Drive APIs, configure a consent screen, download a credentials JSON, authenticate a CLI on the machine running OpenClaw. ClawLink replaces the whole list with its own verified Google OAuth app. Install the skill, click Connect, approve on Google's consent screen; the token lives with ClawLink and refreshes itself, and nothing is stored on your machine.

Do I need to share my sheet with a service account email?

No, and if a guide tells you to find a client_email and share your sheet with it, that guide is describing a different setup. Service accounts are robot identities used by self-hosted integrations; ClawLink's flow has none. The connection signs in as you, so it sees exactly the sheets your Google account can open, with no sharing step. If a call fails with a 403 anyway, the cause is almost always a wrong or invented spreadsheet id, not a missing share.

Which Google permissions does the Sheets connection request?

Two non-sign-in scopes, https://www.googleapis.com/auth/spreadsheets and https://www.googleapis.com/auth/drive, plus your email address to label the connection; we read that string off a live connection rather than the catalog. The Drive scope is there because finding a spreadsheet by name or content is a Drive API call. Google's consent screen shows a checkbox per permission, and the search tools stop working if the Drive box is unticked. Revoke the grant any time under Third-party apps and services in your Google account, or delete the connection in the dashboard.

Is it safe to connect Google Sheets to an AI agent?

The mechanics are inspectable rather than a trust claim. The consent screen names the two permissions being granted, and the tool table on this page is the complete list of what the agent can invoke; there is no API key or credentials file that can leak, because none exists in this flow. Revocation is immediate from either side: remove the grant in your Google account or delete the connection in the dashboard. ClawLink keeps tool execution logs for 90 days and then deletes them. The strongest lever stays with you: connect a Google account that only sees the sheets you want an agent touching, and keep write-heavy work in a spreadsheet you can restore from version history.

OpenClaw installed the Google Sheets skill but can't call the tools

The ClawHub skill teaches OpenClaw about Google Sheets, but the calls run through the ClawLink plugin and your connected account. Make sure Google Sheets is connected in the dashboard, then start a fresh chat so OpenClaw reloads the tool catalog. If OpenClaw runs as a persistent gateway, restart it so the new tools register.