← All tools

Runs and jobs

Put an answer into a Google Sheet

write_to_sheet

Put an earlier answer into a Google Sheet: new dated columns beside the rows it came from, or a new tab. Never overwrites a cell. The only tool that writes.

Writes to your sheet: adds, never overwrites

Use it when

  • ✓ The user wants the results in their sheet, next to their rows
  • ✓ A background job should fill the sheet as it goes (pass its job_id)
  • ✓ An answer should be kept as a dated tab of its own

Not for

Usual chain: geocode_batch (or any tool) with source { sheet } → write_to_sheet with its run_id

Coverage: Google Sheets shared with the InstaMaps service account as Editor; rows are matched by id, and a row that now holds a different place is skipped and named.

Inputs

run_id

string

The run_id from an answer (run.run_id), or from get_job when a job is done.

job_id

string

Or a background job's job_id.

sheet

string

A Google Sheets link. Default: the sheet the rows came from.

tab

string

The tab. Default: the tab the rows came from.

mode

string

beside: new columns next to the rows they came from (the default when the run came from this tab). new_tab: the rows as a table in a new tab (the default for any other sheet). One of: beside · new_tab

columns

array

Which of the answer's fields to write, by name (e.g. "Latitude", "Confidence", "Nearest A&E", or geocode keys such as postcode or uprn). Default: the tool's usual columns.
The full description, as the server gives it to an agent

Writes an earlier answer into a Google Sheet without overwriting anything. Give run_id (every answer has one) to write its rows as new dated columns beside the rows they came from (matched by id; a row that now holds a different place is skipped and named), or as a table in a new tab; give job_id (a background job) to write each chunk beside its rows as it finishes, or the whole run when it is done. Each write adds a line to an "InstaMaps runs" tab. The sheet must be shared with the InstaMaps service account as Editor; if it isn't, the error names the address.

A real answer

Captured from the live server on 2026-10-13, trimmed to the first rows.

Request

{
  "run_id": "run_ae02fe5fb0d18808",
  "mode": "new_tab",
  "columns": [
    "lat",
    "lng",
    "postcode",
    "council",
    "uprn",
    "confidence"
  ]
}

The answer's first line

Wrote 3 rows to "geocode_batch · 2026-10-13 17:36" (a new tab) in InstaMaps write_to_sheet test (landmarks), and a line in "InstaMaps runs".

The answer (trimmed)

{
  "run_id": "run_ae02fe5fb0d18808",
  "sheet": "InstaMaps write_to_sheet test (landmarks)",
  "tab": "geocode_batch · 2026-10-13 17:36",
  "columns": [
    "ID",
    "Name",
    "Address",
    "Latitude",
    "Longitude",
    "Postcode",
    "Council",
    "UPRN",
    "Confidence"
  ],
  "rows": 3,
  "run_log": "InstaMaps runs",
  "mode": "new_tab"
}

Use it in Claude

Add the connector https://get-instamaps.com/mcp and ask in plain words. 5,000 tool calls a day per person, reset at midnight UTC; a call counts once however many rows it carries; a sheet by reference is one call; checking a job is free.

How to add it →