Connect Hermes to Google Sheets
Give your Hermes agent access to Google Sheets in Melso — 45 tools it can call while it works through a task.
Set it up in Melso
- 1In Melso, open Settings → Agent Apps and hit Connect on Google Sheets.
- 2Finish the OAUTH2 sign-in in the window that opens. Melso stores the connection, not your credentials.
- 3Open your Hermes agent, go to its Agent Apps tab, and allow Google Sheets.
- 4Give the agent a task. It calls Google Sheets itself when the work needs it.
What Google Sheets gives your agent
The tools, permissions, and events Google Sheets exposes — the same ones your agent can use once the app is authorized.
What you sign in with
Google Sheets connects with OAUTH2.
- Client id
- Client secret
Permissions
Tools Google Sheets exposes
Add Sheet to Existing Spreadsheet
Adds a new sheet to a spreadsheet. Supports three sheet types: GRID, OBJECT, and DATA_SOURCE. SHEET TYPES: - GRID (default): Standard spreadsheet with rows/columns. Use properties to set dimensions, tab color, etc. - OBJECT: Sheet containing a chart. Requires objectSheetConfig with chartSpec (basicChart or pieChart). - DATA_SOURCE: Sheet connected to BigQuery. Requires dataSourceConfig with bigQuery spec and bigquery.readonly OAuth scope. OTHER NOTES: - Sheet names must be unique; use forceUnique=true to auto-append suffix (_2, _3) if name exists - For tab colors, use EITHER rgbColor OR themeColor, not both - Avoid 'index' when creating sheets in parallel (causes errors) - OBJECT sheets are created via addChart with position.newSheet=true - DATA_SOURCE sheets require bigquery.readonly OAuth scope Use cases: Add standard grid sheet, create chart on dedicated sheet, connect to BigQuery data source.
Aggregate Column Data
Searches for rows where a specific column matches a value and performs mathematical operations on data from another column.
Append Dimension
Tool to append new rows or columns to a sheet, increasing its size. Use when you need to add empty rows or columns to an existing sheet.
Auto-Resize Rows or Columns
Auto-fit column widths or row heights for a dimension range using batchUpdate.autoResizeDimensions. Use when you need to automatically adjust row heights or column widths to fit content after writing data.
Batch Clear Values By Data Filter
Clears one or more ranges of values from a spreadsheet using data filters. The caller must specify the spreadsheet ID and one or more DataFilters. Ranges matching any of the specified data filters will be cleared. Only values are cleared -- all other properties of the cell (such as formatting, data validation, etc..) are kept.
Batch get spreadsheet
Retrieves data from specified cell ranges in a Google Spreadsheet.
Batch update spreadsheet (Deprecated)
DEPRECATED: Use GOOGLESHEETS_VALUES_UPDATE instead. Write values to ONE range in a Google Sheet, or append as new rows if no start cell is given. IMPORTANT - This tool does NOT accept the Google Sheets API's native batch format: - WRONG: {"data": [{"range": "...", "values": [[...]]}], ...} - CORRECT: {"sheet_name": "...", "values": [[...]], "first_cell_location": "...", ...} To update MULTIPLE ranges, make SEPARATE CALLS to this tool for each range. Features: - Auto-expands grid for large datasets (prevents range errors) - Set first_cell_location to write at a specific position (e.g., "A1", "B5") - Omit first_cell_location to append values as new rows at the end Requirements: Target sheet must exist and spreadsheet must contain at least one worksheet.
Batch Update Values by Data Filter
Tool to update values in ranges matching data filters. Use when you need to update specific data in a Google Sheet based on criteria rather than fixed cell ranges.
Events your agent can react to
Aggregate Metric Changed
Triggers when an aggregate metric (SUM/COUNT/AVG/MIN/MAX) changes in a Google Sheets spreadsheet. This trigger monitors an aggregate calculation on a target column (optionally filtered by a search column/value) and fires when the calculated result changes.
Cell Range Values Changed
Triggers when values in a specified A1 range change in Google Sheets. This trigger monitors a specific cell or range of cells and fires when any values change.
Conditional Format Rule Changed
Triggers when conditional formatting rules change in a Google Spreadsheet. Detects when rules are added, updated, or removed. Uses snapshot-based diffing to detect changes between polls.
Data Validation Rule Changed
Triggers when data validation rules change (added/updated/removed) in a Google Spreadsheet. Uses snapshot-based diffing to detect changes between polls.
Developer Metadata Changed
Triggers when developer metadata entries change (new/updated/removed) in a Google Spreadsheet. Uses snapshot-based diffing to detect changes between polls.
Filtered Range Values Changed
Polling trigger that monitors Google Sheets filtered ranges for value changes. Uses snapshot-based diffing to detect when values matching a data filter change. Emits the matched values when changes are detected.