# Insert Text — Google Docs

> Insert text into a Google Doc at the beginning, end, or a specific character index. Use Find Document to resolve a document's name to its ID. To append text to the end of a doc, use position: end (the default). In a multi-tab document, set…

- Key: `google_docs-insert-text`
- Type: Action (Write)
- Version: 1.1.0
- App: Google Docs (`google_docs`) — https://pipedream.com/apps/google-docs.md
- This page (HTML): https://pipedream.com/apps/google-docs/actions/insert-text
- Hints: open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/google_docs/actions/insert-text/insert-text.mjs

## Description

Insert text into a Google Doc at the beginning, end, or a specific character index. Use **Find Document** to resolve a document's name to its ID. To append text to the end of a doc, use `position: end` (the default). In a multi-tab document, set **Tab ID** to choose which tab receives the text — without it the text goes into the document's first tab; use **List Tabs** to get the IDs. [See the documentation](https://developers.google.com/docs/api/reference/rest/v1/documents/request#InsertTextRequest)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `documentId` | `string` | Yes | The ID of the Google Doc. This is the long string in the document's URL: https://docs.google.com/document/d/{DOCUMENT_ID}/edit. Use Find Document to resolve a document's name to its ID. |
| `text` | `string` | Yes | The text to insert. |
| `position` | `string` | No | Where to insert the content: end to append to the end of the document (default), beginning to insert at the start, or a numeric character index (e.g., 1) for a specific location. |
| `tabId` | `string` | No | For a multi-tab document, the ID of the tab to write into (e.g. t.0). Get tab IDs from List Tabs, or use the ID returned by Create Tab. Omit to write into the document's first tab — the Google Docs API sends every untargeted edit there, so pass this whenever the document has more than one tab. |

## Run it

**MCP**

```ts
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const accessToken = await pd.rawAccessToken

const transport = new StreamableHTTPClientTransport(
  new URL("https://remote.mcp.pipedream.net/v3"),
  {
    requestInit: {
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "x-pd-project-id": process.env.PIPEDREAM_PROJECT_ID!,
        "x-pd-environment": "production",
        "x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
        "x-pd-app-slug": "google_docs",
      },
    },
  },
)

const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)

const { tools } = await mcp.listTools()

// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
  name: "google_docs-insert-text",
  arguments: {
    documentId: "Document ID",
    text: "Text",
  },
})
```

**TypeScript**

```ts
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const result = await pd.actions.run({
  id: "google_docs-insert-text",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    google_docs: { authProvisionId: "apn_xxxxxxx" },
    documentId: "Document ID",
    text: "Text",
  },
})

console.log(result)
```

**cURL**

```bash
curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
  -H "Content-Type: application/json" \
  -H "X-PD-Environment: production" \
  -H "Authorization: Bearer {access_token}" \
  -d '{
    "external_user_id": "{external_user_id}",
    "id": "google_docs-insert-text",
    "configured_props": {
      "google_docs": { "authProvisionId": "apn_xxxxxxx" },
      "documentId": "Document ID",
      "text": "Text"
    }
  }'
```

---

- App: https://pipedream.com/apps/google-docs.md · All apps: https://pipedream.com/apps
