# Working with files in the Assistant

Attach by button, by dropping onto the panel or by pasting. The attachment goes through the same file service both audiences share, already workspace-scoped and under row-level security, so nothing new is created to hold it. The Assistant can read it, answer from it, and produce a new version of it — never a silent overwrite.

- **Status:** Available
- **Audience:** both
- **In the app:** #/data, #/inbox, #/home
- **Last verified:** 2026-09-10
- **Canonical:** https://connectbyjbrh.com/docs/assistant/files-in-assistant/

## Getting a document in

1. Use the attach button, drop the document onto the panel, or paste it from the clipboard.
   - Result: It is stored by the workspace file service rather than held in the browser, so it survives the tab and is visible in the workspace's files.
2. Ask your question about it in the same tab.
   - Result: The attachment belongs to that tab's context. A document attached in one tab is not context in another, which is what keeps two pieces of work apart.
3. Link it to a person, company or deal if it belongs to one.
   - Result: It is then findable from the relationship rather than only from the files list — see [Linking a file to a record](/docs/files-data/linking-files/).

One service handles this for both audiences. There is no separate assistant store and no second copy: the isolation, the audit and the version history that apply to anything in your workspace apply here because it is the same place. [One file service for two audiences](/research/files-through-one-service/) covers why that matters more than it sounds.

## What it can read

| Kind | Formats | How it is read |
|---|---|---|
| Images | PNG, JPEG, WebP | The model looks at the image itself |
| Documents | PDF | The text layer where there is one; otherwise the model reads the pages |
| Office | DOCX, XLSX, PPTX | Text and tables extracted from the document |
| Tabular | CSV, TSV | Rows and columns, not prose |
| Plain | TXT, MD, JSON | As written |

> **Careful** Two things are refused outright rather than parsed carefully: DOCTYPE and ENTITY declarations, and archives that expand far beyond their stated size. Both are ways a document attacks the thing reading it, and neither has an innocent version worth accommodating. [Parsing a file safely](/docs/files-data/safe-parsing/) explains the reasoning.

## Creating and changing documents

The Assistant can produce a document and can change one that exists. A change is always a **new version**: the earlier one stays, the provenance says what produced the new one, and the audit entry says when and at whose request. Nothing is edited in place, which is why an answer about version three remains an answer about version three.

Both are writing actions, so both arrive as a proposal first — the name, the content and the destination shown before anything exists. Confirming runs it through the file service; the result names what was created and where to open it.

- A produced document lands in the workspace's files, not in your downloads and not only in the conversation.
- A changed document gains a version rather than replacing one, so an undo is opening the earlier version.
- An answer built from a document cites the document **and** the version it read.
- Nothing about attaching something makes it knowledge. Grounding future answers in it is a separate, deliberate step — [Knowledge in Connect](/docs/knowledge/).

## Where it goes wrong

**The PDF has no readable text** — It is a scan. The model can read the pages as images; a text layer would be better and can be produced outside Connect. See [The PDF has no readable text](/docs/troubleshooting/pdf-no-text/).
**It was refused on upload** — The type is not one of those above, or the content failed the safety checks. The refusal names which — see [The file was refused](/docs/troubleshooting/file-rejected/).
**The answer describes an older version** — Say which version you mean. The Assistant reads the one it was pointed at, and a tab that has been open a while may be pointed at an earlier one.
**A spreadsheet answer looks off** — A very large sheet is read as data rather than in full. Ask a narrower question — a column, a filter, a period — rather than for a summary of everything.

For structured work over many rows, the Data grid is usually the better instrument: thirteen sheets, filtering, saved views and bulk actions, with every change going through the service that owns each row. The Assistant and the grid are two doors into the same rooms.

## Questions

### Is an attachment private to my conversation?

No. It is a workspace file, visible in the files list and to others working the same workspace. Tabs separate context, not access — anything you attach is workspace data from the moment it is stored.

### Can it change a document in place?

No, and that is deliberate. A change produces a new version with provenance and an audit entry. Overwriting would make it impossible to answer what a document said when a decision was taken on it.

### What happens to an attachment when I close the tab?

It stays in the workspace's files, because it was stored there rather than in the tab. What goes with the tab is the conversation about it and any proposal you never confirmed.

## Related

- [Files and data in Connect](https://connectbyjbrh.com/docs/files-data/)
- [File formats Connect reads](https://connectbyjbrh.com/docs/files-data/supported-formats/)
- [File versions](https://connectbyjbrh.com/docs/files-data/file-versions/)
- [Parsing a file safely](https://connectbyjbrh.com/docs/files-data/safe-parsing/)
- [One file service for two audiences](https://connectbyjbrh.com/research/files-through-one-service/)
- [Uploading a file and answering from it, end to end](https://connectbyjbrh.com/docs/workflows/upload-and-answer/)
- [Proposed actions](https://connectbyjbrh.com/docs/assistant/action-cards/)

## What this page is based on

- `docs-source/sources/GENERAL.md` §9 — the file service, formats, refusals and versions
- `docs-source/sources/GENERAL.md` §8 — per-tab files in the Assistant
- Connect capability registry (`docs-source/facts.py`) — `file_workspace`, `file_versions`, `data_workspace`
