View as Markdown
Google Sheets icon

Google Sheets ACTION

Upsert Row

Upsert a row of data in a Google Sheet. See the documentation
  • Action
  • Writes data
  • Destructive
  • OAuth
  • SDK
  • MCP

IMPLEMENTATION

Call this tool

Connect a user's Google Sheets account once, then configure and run Upsert Row from your backend or agent.

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_sheets-upsert-row",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    google_sheets: { authProvisionId: "apn_xxxxxxx" },
    drive: "Drive",
    sheetId: "Spreadsheet ID",
  },
})

console.log(result)

SCHEMA

Inputs

Pipedream supplies the connected account. Your application provides the operation-specific values below. Dynamic inputs are resolved against that user's account.

Upsert Row inputs
Property Type Description
drive Drive string
Select a specific drive to search. Defaults to All Drives (My Drive and all Shared Drives you have access to) when no selection is made. To limit to your personal drive or a Shared Drive, select it from this list.
Optional Dynamic
sheetId Spreadsheet ID string
Select a spreadsheet or provide a spreadsheet ID
Required Dynamic
worksheetId Worksheet ID integer
Select a worksheet or provide a worksheet ID
Required Dynamic
insert Insert - Cells / Column Values string[]
Insert statement: the row data you want to add to the Google sheet if the key doesn't exist. If the key does exist and Update is not set, the row will be updated using this array. Enter individual cell values or enter a custom expression to pass an array with each element representing a cell/column value (e.g. {{ [5, "test"] }}).
Required
column Key Column string
The column of the sheet to lookup (e.g. A). This column functions as the key column for the upsert operation.
Required
value Key Value string
The value of the key to search for in Key Column. Defaults to the value in Insert's "key" column if left blank.
Optional
updates Update - Column / Values object
Update statment: if the spreadsheet contains duplicate key Value in some row in the specified Column, individual cells in the first duplicate row will be updated using this object's column-value pairs.<br /> Enter the column name for the key (e.g. B) and the corresponding column value (e.g. test). You may also enter a custom expression and pass a JSON object with key/value pairs representing columns and values (e.g. {{ { A: 5, B: "test" } }}).
Optional

REFERENCE

Tool details

Behavior hints are published with the component in the Pipedream registry and surface as MCP tool annotations, so an agent can reason about a tool before it calls it.

Registry key
google_sheets-upsert-row
Version
0.1.21
App
Google Sheets
Authentication
OAuth
Read-only
No
Destructive
Yes
Open world
Yes