Grist
DatabaseConnect AI agents to Grist, the relational spreadsheet. Agents run record CRUD including upsert, manage tables and columns, discover documents, and run read-only SQL queries.
What This Integration Enables
Agents keep a Grist table in sync with an external source using Add or Update Records, log or archive events by appending rows, report on document data with read-only SQL, and provision tables and columns before writing data. The upsert takes items carrying a `require` set (the columns that identify a record) and a `fields` set (the values to write), with optional add-only or update-only toggles, which makes it well suited to idempotent syncs. Records are keyed by column id, and a table's id is also its display name in Grist.
Without FlowRunner
With FlowRunner
Use Case Scenarios
Keeping two systems in sync
The agent pulls a source dataset from another connector and calls Add or Update Records to upsert each row into a Grist table keyed on a unique id such as an email. Rows that exist are updated; new ones are created. The two systems stay in step without a manual reconcile.
Relational reporting
The agent calls Query with SQL to aggregate document data, joining across tables with standard SQLite syntax, then posts the summary to the team channel with Slack. The report that used to be a manual join now runs as a flow step, and only SELECT is permitted so the query cannot mutate the document.
Cleanup with a human gate
An agent is asked to remove a set of rows. Before it runs Delete Records above the configured threshold, it does not act on its own. It routes the row ids and a count for approval and deletes only after a person confirms.
Human-in-Loop Highlight
Grist upserts and appends are safe to repeat; a bulk Delete Records is the operation that removes data a team may still depend on. FlowRunner's answer is human-in-the-loop, an execution pattern where the agent pauses on its own, assembles the context and the choices, routes to a human on their preferred channel, and resumes the moment they respond. When a Delete Records would remove more rows than the configured threshold, the agent pauses before executing and asks through Slack: "This Delete Records on the `Contacts` table would remove 210 rows. Here is a sample. Approve, narrow the set, or cancel?" The delete runs only after a person confirms, with the approver and timestamp captured in the run log. A connector can delete any records; an orchestration layer knows which deletes should stop and ask.
Agent Capabilities
15 actionsRecords
5- Add Records Appends new rows to a table, for logging or archiving incoming events.
- Add or Update Records Upserts rows keyed on identifying columns: matching rows are updated, others are created. Optional add-only or update-only toggles make it well suited to idempotent syncs.
- Delete Records Deletes rows by their numeric row id.
- List Records Reads rows from a table, keyed by column id.
- Update Records Updates rows by their numeric row id.
Tables
3- Create Table Creates a table in a document, for provisioning structure on the fly.
- List Tables Lists the tables in a document.
- Modify Table Modifies a table's definition.
Columns
2- Add Columns Adds columns to a table.
- List Columns Lists the columns of a table with their ids.
Documents & Workspaces
3- Get Document Returns the metadata of one document.
- List Documents Lists the documents in a workspace.
- List Workspaces Lists the workspaces available to the API key, for discovery.
SQL
1- Query with SQL Runs a read-only SELECT over the document, joining and aggregating across tables with SQLite syntax. Only SELECT is permitted.
Attachments
1- List Attachments Returns attachment metadata for a document. Uploading attachments is not supported.
Start building with Grist
$100 in credits. No card required. Connect in minutes.