# Google
URL: /reference/blocks/google
Type: reference
Description: Read and write Google Sheets, Docs, and Drive files
Keywords: google, integrations, block, workflow builder
`google` — Read and write Google Sheets, Docs, and Drive files.

Where it appears [#where-it-appears]

The **Google** block lives in the **Integrations** group of the Workflow Builder. Connect the Google integration before adding it.

Fields [#fields]

| Field           | Type                                   | Required | Default  | Description                                                                                                                                    |
| --------------- | -------------------------------------- | -------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| `resource`      | select                                 | Yes      | `sheet`  | Which Google resource to work with. Options: `sheet`, `doc`, `drive`.                                                                          |
| `operation`     | select                                 | Yes      | —        | Which action to perform on the selected resource.                                                                                              |
| `spreadsheetId` | text (supports references)             | Yes      | —        | The target Google Sheet, given as a spreadsheet ID or its full URL. Use literal text or \<StepName.field>.                                     |
| `sheetName`     | text (supports references)             | No       | —        | Optional name of the tab within the spreadsheet to target. Use literal text or \<StepName.field>.                                              |
| `rowData`       | code                                   | Yes      | —        | Use a JSON array of rows with scalar placeholders in quoted cells, or insert a single upstream placeholder that resolves to rows.              |
| `append`        | toggle                                 | No       | `true`   | When on, rows are added to the end of the sheet; when off, rows overwrite existing cells starting at the range. Defaults to on.                |
| `range`         | text (supports references)             | Yes      | —        | A1 notation pointing to the exact cells to overwrite. Required — without a row number this would overwrite row 1.                              |
| `documentId`    | text (supports references)             | Yes      | —        | ID of the Google Doc to operate on. Use a literal ID or \<StepName.field> to reference an ID from a previous step.                             |
| `content`       | text (multi-line, supports references) | Yes      | —        | Text to write into the document, either appended or replacing the body depending on Mode. Use literal text or \<StepName.field>.               |
| `mode`          | select                                 | No       | `append` | Whether the content is appended to the end of the document or replaces the entire body. Defaults to append. Options: `append`, `replace`.      |
| `fileId`        | text (supports references)             | Yes      | —        | Google Drive file ID to read. Google Docs/Sheets are exported as text; other file types are downloaded. Use a literal ID or \<StepName.field>. |

Inputs and outputs [#inputs-and-outputs]

Inputs are the configurable fields above. The block produces these outputs:

**Outputs**

Reference an output downstream with `<Google.field>`.

| Name          | Type    | Description             |
| ------------- | ------- | ----------------------- |
| `success`     | boolean | Whether write succeeded |
| `updatedRows` | number  | Number of rows updated  |
| `error`       | string  | Error message if failed |
| `rows`        | array   | Array of row arrays     |
| `text`        | string  | Document text content   |

Example [#example]

A minimal configuration for this block:

```json
{
  "type": "google",
  "config": {
    "resource": "sheet",
    "operation": "...",
    "spreadsheetId": "<PreviousStep.field>",
    "rowData": "...",
    "append": true,
    "range": "<PreviousStep.field>",
    "documentId": "<PreviousStep.field>",
    "content": "<PreviousStep.field>",
    "mode": "append",
    "fileId": "<PreviousStep.field>"
  }
}
```

Limits and failure modes [#limits-and-failure-modes]

* Requires a connected Google integration. Calls fail if that integration is disconnected or its authorization has expired.
* Required fields (`resource`, `operation`, `spreadsheetId`, `rowData`, `range`, `documentId`, `content`, `fileId`) must be set, or the block fails validation before it runs.
* On failure the `error` output is populated; downstream blocks that reference other outputs may not receive values.

Related [#related]

* [All workflow blocks](/reference/blocks)
* [Workflow Builder overview](/workflow-builder-overview)
* [Integrations](/integrations)