How to connect Google Docs to OpenClaw
Connect Google Docs to OpenClaw with ClawLink in one click — 33 tools your AI agent can call from chat via hosted OAuth. No API keys, no manual setup.


Create and edit documents online. Once connected, OpenClaw can read and act on Google Docs from chat — pairing, token refresh, and tool wiring handled for you.
The usual route to Google Docs 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 Docs setup: install one ClawHub skill, connect Google Docs in the browser, and OpenClaw can call real Google Docs 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 Docs skill on ClawHub.
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 Docs" (hith3sh/google-docs-documents) from ClawHub only after those checks pass.
Skill page: https://clawhub.ai/hith3sh/google-docs-documents
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 Docs.
1Install 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
Connect Google Docs
One-click OAuth in the dashboard.
- 3
Use it from chat
Ask OpenClaw: "What can you do with Google Docs?"
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-pluginThen 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 Docs in the ClawLink dashboard — a one-click OAuth approval, no API keys.
Verify the connection by asking OpenClaw:
Create a Google Doc titled "<title>" with googledocs_create_document_markdown, using the notes above as the body. Keep my headings and bullet structure, then give me the document link.
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 loginlogin opens the same browser approval and stores a credential locally. Once Google Docs is connected in the dashboard, that agent calls the same 33 Google Docs tools over MCP. Full setup for MCP clients and shell agents: connect apps to any AI agent.
Google Docs MCP for OpenClaw
Looking for a Google Docs MCP server for OpenClaw? ClawLink connects Google Docs to OpenClaw and exposes 33 Google Docs tools your agent can call over MCP, with hosted auth and nothing to run or maintain yourself. Using Hermes instead? The Hermes Google Docs integration works the same way.
Every AI Overview on this topic answers the same way: create a Google Cloud project, enable the Google Docs API, build an OAuth consent screen, then wire the credentials into your agent. That route works, and it also means your app sits in testing mode issuing refresh tokens that expire after seven days until you take it through Google's verification. ClawLink connects through Google's consent screen with an app that is already registered, so you approve access once and OpenClaw can call the 33 Google Docs tools below — no Cloud Console, no client secret, and nothing about Docs in openclaw.json.
What the OpenClaw Google Docs integration can do
33 Google Docs tools are ready for OpenClaw once the account is connected. The 26 below are the ones people reach for most; your agent can call all 33.
26 of 33 Google Docs tools for OpenClaw
| Tool | What it does |
|---|---|
Create document googledocs_create_document | Create a new Google Docs document |
Create document markdown googledocs_create_document_markdown | Create a Google Docs document from Markdown |
Export document as PDF googledocs_export_document_as_pdf | Export a Google Docs document as PDF |
Get document by ID googledocs_get_document_by_id | Get Google Docs document metadata and structure |
Get document plaintext googledocs_get_document_plaintext | Get the plain text content of a Google Docs document |
Insert inline image googledocs_insert_inline_image | Insert an inline image into a Google Docs document |
Insert page break googledocs_insert_page_break | Insert a page break into a Google Docs document |
Insert table action googledocs_insert_table_action | Insert a table into a Google Docs document |
Insert text action googledocs_insert_text_action | Insert text at a specific position in a Google Docs document |
Replace all text googledocs_replace_all_text | Replace matching text everywhere in a Google Docs document |
Search documents googledocs_search_documents | Search Google Docs documents in Drive |
Update document markdown googledocs_update_document_markdown | Update a Google Docs document from Markdown |
Update existing document googledocs_update_existing_document | Update content in an existing Google Docs document |
List spreadsheet charts googledocs_list_spreadsheet_charts | Retrieve a list of all charts from a specified Google Sheets spreadsheet |
Copy document googledocs_copy_document | Create a copy of an existing Google Document |
Create footer googledocs_create_footer | Create a new footer in a Google Document |
Create footnote googledocs_create_footnote | Create a new footnote in a Google Document |
Create header googledocs_create_header | Create a new header in a Google Document, optionally with text content |
Create named range googledocs_create_named_range | Create a new named range in a Google Document |
Create paragraph bullets googledocs_create_paragraph_bullets | Add bullets to paragraphs within a specified range in a Google Document |
Insert table column googledocs_insert_table_column | Insert a new column into a table in a Google Document |
Replace image googledocs_replace_image | Replace a specific image in a document with a new image from a URI |
Unmerge table cells googledocs_unmerge_table_cells | Unmerge previously merged cells in a table |
Update document section markdown googledocs_update_document_section_markdown | Insert or replace a section of a Google Docs document with Markdown content |
Update document style googledocs_update_document_style | Update the overall document style, such as page size, margins, and default text direction |
Update table row style googledocs_update_table_row_style | Update the style of a table row in a Google Document |
Try it: find the Google Docs tool you need
Browse the 26 Google Docs tools
Click any tool to see exactly what OpenClaw can do and copy a ready-to-use prompt.
Example prompts
Create a Google Doc titled "<title>" with googledocs_create_document_markdown, using the notes above as the body. Keep my headings and bullet structure, then give me the document link.
Open "<title>", find the section headed "<heading>", and replace just that section's text with the copy I paste next. Use googledocs_update_document_section_markdown and show me what changed before saving anything else.
In the doc "<title>", use googledocs_replace_all_text to change every occurrence of "<old term>" to "<new term>". Tell me how many replacements were made.
How the Google Docs tools behave
Argument-level facts from the manifest that decide whether a Docs prompt works first time.
- Markdown tools are the reliable write path.
googledocs_create_document_markdownandgoogledocs_update_document_markdowntake structured content in one call. Building the same document through individualgoogledocs_insert_text_actioncalls is where formatting drifts. - Document ids come from search, not from guessing.
googledocs_search_documentsreturns real ids forgoogledocs_get_document_by_id. An id copied from an example is the classic placeholder trap and returns a permission error, not a not-found. - Plaintext and full document are different reads.
googledocs_get_document_plaintextgives you the text for summarizing;googledocs_get_document_by_idreturns the structured document including styling. Ask for plaintext when the answer is about content, since it is far cheaper for the model to read. - Section-level updates exist.
googledocs_update_document_section_markdownchanges one part of a document, which is safer than a whole-document rewrite when you only meant to touch one heading. googledocs_export_document_as_pdfends the workflow. When the deliverable is a file to send rather than a doc to share, this is the last step and avoids a manual File → Download round trip.
ClawLink vs. building it yourself
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 Docs working from chat.
| Manual | ClawLink | |
|---|---|---|
| Connection flow | Register a Google Docs app, configure redirect URLs, manage consent details, and reconnect users when auth settings drift. | Users connect Google Docs through the hosted browser flow and ClawLink keeps the token lifecycle out of your app code. |
| Ongoing maintenance | You own refresh logic, permission debugging, environment config, and every provider-specific edge case for Google Docs. | ClawLink handles the repetitive integration plumbing so your team can focus on the workflow instead of the infrastructure. |
| Agent usability | You still need to expose the right Google Docs actions to the runtime in a format your agent can reliably use. | 33 tools for Google Docs are already exposed through ClawLink, so the agent can read and act from chat immediately. |
ClawLink vs. Composio
Composio also exposes Google Docs 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 Docs in the browser, and the 33 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 Docs skill but can't call the tools
The ClawHub skill teaches OpenClaw about Google Docs, but the calls run through the ClawLink plugin and your connected account. Make sure Google Docs 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 Docs 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 Docs tools
Google Docs 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 Docs 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 Docs 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.
Google Docs returns 403 "The caller does not have permission" or "insufficient authentication scopes"
Check these in order. First, sharing: the connected Google account must have access to that specific document. Opening it fine in your browser proves nothing if the browser is signed in as a different account than the one you connected. Second, which account is connected — personal versus work is the usual split, and each sees a different set of files. Third, scope: Google's consent screen allows unticking individual permissions, and a partial approval leaves a connection that reads but cannot write. Reconnect and accept the full set. Fourth, and least likely but real: the agent may have passed a placeholder document id from an example, such as YOUR_DOCUMENT_ID or an id copied from documentation, which Google rejects with a permission error rather than a not-found. Have the agent search for the document and use the id from the result.
Ask the agent to diagnose it:
Run googledocs_search_documents for the document title and tell me exactly which documents you can see and which Google account you are connected as. Do not retry the failed call yet.Google Docs search returns nothing but the document clearly exists
Almost always the account, not the search. googledocs_search_documents looks only at documents the connected account can reach, so a file living in a workspace you joined with a different identity is invisible to it. The second cause is scope of expectation rather than permission: search matches on document metadata and content Google has indexed, so a brand-new document, or one shared seconds ago, may not be findable yet even though fetching it by id works immediately. If you have the id or the URL, ask the agent to use googledocs_get_document_by_id directly instead of searching for it.
Ask the agent to diagnose it:
Tell me which Google account you are connected as, then run googledocs_search_documents with just one distinctive word from the title and show me everything it returns.Google Docs worked for a week and then every call started failing
If you built the integration yourself with your own Cloud project, check the publishing status of your OAuth consent screen first. Google issues refresh tokens that expire after seven days to any project whose external consent screen is still in Testing, unless the only scopes requested are name, email, and profile — which Docs scopes are not. That is why a hand-rolled Google Docs agent works for exactly a week and then stops, and publishing the app is the fix rather than re-running auth. On a ClawLink connection there is no consent screen of yours to publish, so this shape does not apply; a connection that stops here means the grant was revoked, and reconnecting from the dashboard restores it.
OAuth finished in the browser but the account is still missing
Try reconnecting Google Docs 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 Docs integration?
Yes. ClawLink is the fastest way to connect OpenClaw to Google Docs: link your Google Docs account once in the browser and OpenClaw can call the Google Docs API through 33 ready-made tools — no custom code or token handling.
How do I add Google Docs to OpenClaw with ClawLink?
Paste the setup prompt from this page into OpenClaw. It installs the ClawLink Google Docs skill from ClawHub, then you click Connect in the dashboard to authorize Google Docs. OpenClaw calls the tools from the next message — no config files or API keys to manage.
How long does it take to connect Google Docs to OpenClaw?
About two minutes. Sign in, click Connect next to Google Docs in the dashboard, authenticate, and OpenClaw can use it from the next chat message.
Why use ClawLink instead of wiring Google Docs 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 Docs working from chat.
Do I need a Google Cloud project to use Google Docs with OpenClaw?
No, and this is the difference worth understanding because nearly every guide assumes you do. Building it yourself means creating a project, enabling the Docs API, configuring an OAuth consent screen, and living with the fact that an unverified app in testing mode issues refresh tokens that stop working after seven days. ClawLink runs the connection through an already-registered app, so the only thing you see is Google's own consent screen asking whether to grant access to your documents. Google's permission model is unchanged by this — the agent gets what you approve, nothing more.
Can the agent read a document someone else shared with me?
Yes, if your Google account can open it. The connection carries your access, so anything shared with you directly, or shared with a group you belong to, is reachable. What does not work is a document that was never shared with the connected account — a link you can open in a browser because you are signed in as a different Google identity will not be visible to the agent. That mismatch is the single most common cause of a 403 here, and it is a sharing problem in Google Docs rather than anything to fix in OpenClaw.
Which Google account does the agent use if I have several?
Whichever one you picked during the connect flow. Google shows an account chooser when you are signed into more than one, and the grant attaches to the account you select there. Because personal and work accounts usually see completely different document sets, choosing the wrong one produces a connection that looks healthy and finds nothing. If searches come back empty while you can plainly see the file, reconnect from the dashboard and pick the other account.
Can OpenClaw create and format documents, or only read them?
Both. The toolset covers creation and editing, not just retrieval: googledocs_create_document and googledocs_create_document_markdown make new documents, googledocs_insert_text_action and googledocs_replace_all_text change existing ones, and there are tools for headers, footers, footnotes, page breaks, tables, bullets, and inline images. There is also googledocs_export_document_as_pdf when the end product is a file rather than a document. The markdown-based tools are usually the ones to ask for, because writing structured content through them is far more reliable than describing formatting operations one at a time.
OpenClaw installed the Google Docs skill but can't call the tools
The ClawHub skill teaches OpenClaw about Google Docs, but the calls run through the ClawLink plugin and your connected account. Make sure Google Docs 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.