> ## Documentation Index
> Fetch the complete documentation index at: https://docs.callers.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Google Sheets

> Connect Google Sheets with Callers to read and write rows, create worksheets, and automate spreadsheet operations.

<Note>
  All Google Sheets integration actions are sent from the following IP addresses:

  ```copy theme={null}
  35.245.204.86
  35.221.61.75
  ```

  If your systems are behind a firewall, whitelist these IP addresses to ensure action requests are delivered.
</Note>

### Connecting Google Sheets to Callers

<Steps>
  <Step title="Open App Center and select Google Sheets">
    * Click **Connect**

    <Frame caption="Select Google Sheets and click Connect">
      <img src="https://mintcdn.com/voxiaai/PLwwPi9EfRJCP-aU/images/documentation/integrations/google-sheets-app-center.png?fit=max&auto=format&n=PLwwPi9EfRJCP-aU&q=85&s=8c0617354b8a1ccc2f5695d5caa22cc9" alt="google sheets connect" style={{borderRadius: '10px'}} width="835" height="576" data-path="images/documentation/integrations/google-sheets-app-center.png" />
    </Frame>
  </Step>

  <Step title="Authorize in Google">
    * Sign in to your Google account and grant access

    <Frame caption="Consent screen — allow access">
      <img src="https://mintcdn.com/voxiaai/PLwwPi9EfRJCP-aU/images/documentation/integrations/google-sheets-auth.png?fit=max&auto=format&n=PLwwPi9EfRJCP-aU&q=85&s=ac05f2c013b63eba7859fdfbd0e093c7" alt="google sheets auth" style={{borderRadius: '10px'}} width="1225" height="1799" data-path="images/documentation/integrations/google-sheets-auth.png" />
    </Frame>
  </Step>

  <Step title="Finish and verify">
    * Return to Callers and ensure the connection shows as **Connected**
  </Step>
</Steps>

***

## Available Actions

<br />

<Frame caption="Google Sheets — available actions">
  <img src="https://mintcdn.com/voxiaai/PLwwPi9EfRJCP-aU/images/documentation/integrations/google-sheets-actions.png?fit=max&auto=format&n=PLwwPi9EfRJCP-aU&q=85&s=bad749daabba8dc9c4f4088d6782a5a1" alt="google sheets actions" style={{borderRadius: '10px'}} width="3305" height="1499" data-path="images/documentation/integrations/google-sheets-actions.png" />
</Frame>

<AccordionGroup>
  <Accordion title="Insert Row / Insert Multiple Rows">
    Append one or more rows into an existing worksheet.
  </Accordion>

  <Accordion title="Update Row / Update Multiple Rows">
    Overwrite values in a row by row number, or update many at once.
  </Accordion>

  <Accordion title="Find Rows / Get next row(s)">
    Search by column and value, or iterate through rows in pages.
  </Accordion>

  <Accordion title="Get Row">
    Fetch a specific row by its number.
  </Accordion>

  <Accordion title="Create Spreadsheet / Create Worksheet / Copy Worksheet">
    Create a spreadsheet or tabs, or duplicate an existing worksheet.
  </Accordion>

  <Accordion title="Create Spreadsheet Column">
    Add a new column to a worksheet.
  </Accordion>

  <Accordion title="Clear Sheet / Export Sheet">
    Clear all rows or export a sheet to CSV/TSV.
  </Accordion>

  <Accordion title="Find Spreadsheet(s) / Find Worksheet(s)">
    Locate spreadsheets and worksheets by name.
  </Accordion>

  <Accordion title="Custom API Call">
    Call a specific Google Sheets API endpoint when a built‑in action is not available.
  </Accordion>
</AccordionGroup>

***

### Insert Row

* **When to use**: append a single row of values to a worksheet.
* **Required fields**:
  * Spreadsheet — pick by name or ID
  * Worksheet — tab name
  * Values — array/object mapping columns to values

<Tip>
  Use variables like `{{ firstName }}` and `{{ phone }}` inside values to pass data from earlier steps.
</Tip>

***

### Find Rows

* **When to use**: find row(s) where a column equals a value.
* **Required fields**:
  * Spreadsheet, Worksheet
  * Column Name, Search Value

***

### Custom API Call

* **When to use**: you need an endpoint not covered by built‑in actions.
* **Parameters**: Method, Endpoint, Headers, Body (JSON)

***

## Using Variables

You can inject scenario/transcript variables into fields. Make sure:

* Variables are defined in previous steps
* Value types match the expected column formats (Text, Number, Date/Time)
* Arrays/objects are structured as the action expects

***
