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

# Attachments

> Upload a file in chat and chart it like any other source.

You can attach files to a chat or a discussion with the paperclip on the composer. Tables found inside
them become **datasets**, readable by widgets exactly like a connected data source, with no integration
work.

This is the shortest path from a spreadsheet somebody emailed you to a chart on a dashboard.

## What you can upload

| Kind      | Formats                                  |
| --------- | ---------------------------------------- |
| Tables    | `.csv`, `.tsv`, `.xlsx`, `.json`         |
| Documents | `.pdf`, `.txt`, `.md`                    |
| Images    | `.png`, `.jpg`, `.jpeg`, `.webp`, `.gif` |

A chat message takes up to 10 files.

## What happens to them

Structured formats are parsed directly.

A **PDF** is read through its text layer, with no model involved. Only pages that have no text layer,
which in practice means scans and photographs, are rasterized and transcribed by a vision model. So an
ordinary exported PDF costs nothing beyond parsing, while a scanned report costs a vision pass on the
pages that need one. Two different ceilings apply, one on pages read and a lower one on pages
transcribed. See [Limits](/reference/limits).

**Images** always go through the vision model, which is how a screenshot of a table becomes rows.

Whatever comes out lands in your workspace's datasets, where the agent can chart it. See
[Datasets](/data/datasets).

## Storage

Uploads count against **your** storage quota, 100 MB on a free licence and 10 GB on Pro. Check it under
**Settings → Usage**, or **Settings → Billing** on a personal workspace.

Removing a file from a message before sending deletes it and gives the space back straight away. Files
attached to a draft you abandon are cleaned up on their own.

If your storage is full when a file is uploaded, the upload still succeeds and the extracted text still
lands. What does not happen is the tables being saved as datasets. Free up space and upload again to
get them.

<Warning>
  **A file's audience is wider than the thread it was posted in.** Anyone who can read the chat or
  discussion can read its attachments, and so can anyone who can view a dashboard whose widget is wired
  to a dataset from that file, even with no standing in the conversation.

  That is what makes uploaded data usable on a shared dashboard. It also means charting a file from a
  private chat onto a shared dashboard exposes the underlying table to that dashboard's viewers.
</Warning>

## Managing files

Admins can see and delete every file in the workspace under **Settings → Storage**, but listing is not
reading. Opening a file still requires standing in the thread it was posted in. Everyone else reaches
their own uploads through the **Manage** link on their Usage card.
