View as Markdown
Grist icon

Grist ACTION

Add Or Update Records

Add records in a specified table or updates existing matching records. See the documentation
  • Action
  • Writes data
  • Destructive
  • API key
  • SDK
  • MCP

IMPLEMENTATION

Call this tool

Connect a user's Grist account once, then configure and run Add Or Update Records 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: "grist-add-update-records",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    grist: { authProvisionId: "apn_xxxxxxx" },
    docId: "Document ID",
    tableId: "Table 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.

Add Or Update Records inputs
Property Type Description
docId Document ID string
The ID of the Grist document to operate on. You can find this in the Settings menu of the document.
Required
tableId Table ID string
The ID of the table to operate on.
Required Dynamic
noParse Do Not Parse boolean
Set to true to prohibit parsing strings according to the column type.
Optional
onMany On Many string
Which records to update if multiple records are found to match.
Optional
noAdd No Add boolean
Set to true to prohibit adding records.
Optional
noUpdate No Update boolean
Set to true to prohibit updating records.
Optional
records Data Records string[]
The data for the records to append or update. Each record should be a JSON-formatted string, mapping column names to cell values. Eg. [ { "fields": { "pet": "cat", "popularity": 67 } } ]. Instead of an id, a require object is provided, with the same structure as fields. If no query parameter options are set, then the operation is as follows. First, we check if a record exists matching the values specified for columns in require. If so, we update it by setting the values specified for columns in fields. If not, we create a new record with a combination of the values in require and fields, with fields taking priority if the same column is specified in both. The query parameters allow for variations on this behavior. Eg. [ { "require": { "pet": "cat" }, "fields": { "popularity": 67 } } ]
Required

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
grist-add-update-records
Version
0.0.3
App
Grist
Authentication
API key
Read-only
No
Destructive
Yes
Open world
Yes