> ## Documentation Index
> Fetch the complete documentation index at: https://docs.thinnest.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Spreadsheet

> Your agent writes what it learns into your spreadsheet while it is still talking, and can look things up in it.

Someone rings and gives their name, their number and what they want. The agent
writes each answer into a row of your spreadsheet as it arrives, so a call that
ends after two questions still leaves those two answers behind. It can also look
somebody up — an order, a booking, a customer record — and answer from what you
already hold.

It works on every channel: website chat, WhatsApp, Telegram and phone calls.

We use **Grist**, a spreadsheet you can sign up for free at
[getgrist.com](https://www.getgrist.com). You connect your own account; we never
put your data in ours.

<Note>
  This is not the same as **Lead capture**, which stores names and numbers in your
  inbox here. This puts them in **your** spreadsheet, in columns you chose, where
  your team already works. You can have both on, and when you do the agent records
  the details in both places rather than choosing between them.
</Note>

## Connecting your spreadsheet

Go to **Actions**, find **Spreadsheet**, and click **Grist**.

<Steps>
  <Step title="Get an API key from Grist">
    In Grist, click your profile picture → **Account settings** → **Developer**,
    and create a key in the **API keys** section.

    It does not expire until you remove it, so unlike a calendar key there is
    nothing here that quietly stops working next year.
  </Step>

  <Step title="Paste it in">
    We call Grist once to check the key really belongs to someone. If it does
    not work you are told immediately.
  </Step>

  <Step title="Give us the document">
    Open the document in Grist, go to **Settings** and find the **API** section.
    Copy the **Document ID** from there.

    <Warning>
      The id in your browser's address bar is a **shorter** one, and the API
      cannot use it. If you paste that, we tell you so rather than letting you
      discover it as "document not found".
    </Warning>
  </Step>

  <Step title="Pick the table">
    We show you every table in the document with how many fields each has. Pick
    one. We then read that table's real column names and remember them.

    That is what the agent fills in. It cannot invent a column, and it cannot
    reach any other table or any other document.
  </Step>
</Steps>

## What the agent may do

Two switches, both **off** until you turn them on. Connecting your spreadsheet on
its own gives the agent nothing.

| Switch                | What happens                                                                                           |
| --------------------- | ------------------------------------------------------------------------------------------------------ |
| **Fill in a row**     | Writes what it has learned into your table — one row per conversation, filled in as the answers arrive |
| **Look something up** | Finds rows by matching one column exactly, so the agent can answer from what you already hold          |

<Note>
  These share a budget with your calendar switches: **eight tools on at once**
  across everything an agent connects. Past that it gets worse at picking the right
  one, so we stop you rather than let it quietly degrade.
</Note>

## Save in the background

A switch on the same card. With it on, the agent **stops waiting for Grist**.

The answer is kept here the moment the customer gives it, and reaches your
spreadsheet within a minute. Nothing is lost if Grist is slow, and nothing is
lost if you have used up a free plan's calls for the month — the work waits and
goes through when it can.

**Turn it on if your agent answers the phone.** A caller hears every second the
agent spends waiting, and this removes all of them.

**Leave it off if you watch the sheet live** — during a campaign, say — and want
the row to appear as the words are spoken.

Either way the agent never claims something is saved when it is not.

## What your customer experiences

> **Them:** Hi, I'd like a quote for a kitchen.
> **Agent:** Of course. Can I take your name?
> **Them:** Priya Nair.
> **Agent:** Thanks Priya. And the best number to reach you on?

By the end of that call there is one row in your spreadsheet with both answers in
it, plus anything else you have columns for.

## Things worth knowing

**One row per conversation.** Every answer goes into the same row, so you get one
line per customer rather than one line per thing they said.

**The agent fills in only what it was told.** A field it never heard is left
empty. It will not guess.

**Formula columns are read, not written.** Grist computes those itself. If
*every* column in the table is a formula we say so when you pick it — the agent
can read that table but cannot save anything into it.

**Looking something up is exact and case-sensitive.** `PRIYA` does not match
`Priya`. Use it for order numbers, phone numbers and reference codes, which is
what customers give verbatim anyway.

**It will not search for nothing.** If the agent has no value to match on it asks
the customer for one, rather than returning whatever happens to be at the top of
your table.

**At most five rows come back from a lookup.** More than that read aloud is a
paragraph nobody can follow on a phone.

<Warning>
  **If you rename or delete a column in Grist, tell us.** We remember your columns
  from when you picked the table. Rename one and saves start failing. Fixing it
  takes ten seconds: open the card and choose the table again.
</Warning>

**Free Grist has limits, and they are Grist's rather than ours.** A free site
allows **3,000 API calls a month** and **5,000 rows per document**. A busy phone
line can use those, and when they are gone Grist refuses — your card says so.
*Save in the background* handles the smaller bumps for you.

**Disconnecting keeps your data.** Rows already written stay in your spreadsheet;
they are your records, not ours to remove. Anything still queued and not yet
written is discarded, and we tell you how many that is before you are left
wondering.

## If it stops working

The card says **Needs attention** and shows what Grist said.

Usually it is one of three things: the key was removed in Grist, the document is
full or out of monthly calls, or a column was renamed. Create a new key and use
**Replace key** if it is the first — your switches and your chosen table are
remembered.

## Deliberately not included

The agent cannot reach **any other document or table**, even though your API key
could. It cannot **create or delete columns, tables or documents**, and it cannot
**delete rows**. It fills the one table you pointed it at, and reads from it.

Nobody phoning your business has a good reason to reshape your spreadsheet, and
the safest way to guarantee that is not to give the agent the ability at all.
