Google Sheets TRIGGER
New Row Added (Instant)
- Trigger
- Polling
- OAuth
- Webhook delivery
IMPLEMENTATION
Deploy this event source
Connect the user's Google Sheets account, configure the source, and choose the webhook where your backend receives events.
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 deployed = await pd.triggers.deploy({
id: "google_sheets-new-row-added",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
google_sheets: { authProvisionId: "apn_xxxxxxx" },
timer: { "intervalSeconds": 900 },
watchedDrive: "Drive",
},
webhookUrl: "https://example.com/webhooks/google-sheets",
})
console.log(deployed.id)curl -X POST https://api.pipedream.com/v1/connect/{project_id}/triggers/deploy \
-H "Content-Type: application/json" \
-H "X-PD-Environment: production" \
-H "Authorization: Bearer {access_token}" \
-d '{
"external_user_id": "{external_user_id}",
"id": "google_sheets-new-row-added",
"webhook_url": "https://example.com/webhooks/google-sheets",
"configured_props": {
"google_sheets": { "authProvisionId": "apn_xxxxxxx" },
"timer": { "intervalSeconds": 900 },
"watchedDrive": "Drive"
}
}'MCP servers expose Google Sheets actions as on-demand tools.
New Row Added (Instant) is an event source, so your application deploys it
with the Connect SDK or API and then either receives each event at a
webhook URL or retrieves events on demand with the trigger events API.MCP exposes on-demand actions. Event sources are deployed through the Connect SDK or API because they continue listening after the initial request.
SCHEMA
Configuration
These inputs define which events the source watches. Dynamic options are loaded from the connected account.
| Property | Type | Description |
|---|---|---|
timer Push notification renewal schedule | $.interface.timer | The Google Drive API requires occasionally renewal of push notification subscriptions. This runs in the background, so you should not need to modify this schedule. Required |
watchedDrive Drive | string | Defaults to My Drive. To select a Shared Drive instead, select it from this list. Optional Dynamic |
sheetID Spreadsheet ID | string | Select a spreadsheet or provide a spreadsheet ID Required Dynamic |
watchDrive Watch Drive | boolean | Set to true to watch the drive for changes. May reduce rate limiting. Optional |
worksheetIDs Worksheet ID(s) | integer[] | Select one or more worksheet(s), or provide an array of worksheet IDs. Required Dynamic |
hasHeaders Has Headers | boolean | Set to true if your spreadsheet contains column headers. When enabled, an additional rowAsObject field will be included in webhook responses with column headers as keys. The original newRow array format is always preserved for backward compatibility. Optional |
headerRow Header Row Number | integer | The row number containing the column headers (e.g., 1 for the first row). Only used when Has Headers is enabled. Optional |
LIFECYCLE
Event delivery
01
Connect
Your user authorizes Google Sheets through Pipedream managed auth.
02
Deploy
Your backend deploys this source with that user's own configuration.
03
Webhook delivery
Every event is sent to the HTTP endpoint you choose when you deploy the source — after each poll.
OR
On-demand retrieval
No webhook required. Your app or agent can fetch recent events from the trigger events API.
REFERENCE
Trigger details
- Registry key
- google_sheets-new-row-added
- Version
- 0.2.7
- App
- Google Sheets
- Authentication
- OAuth
- Delivery
- Polling source
- Output
- Events emitted by Google Sheets.
- Source
- View on GitHub ↗