> For the complete documentation index, see [llms.txt](https://docs.swingsoftware.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.swingsoftware.com/seascape-for-notes/faq/why-notes-attachments-are-extracted-under-their-unique-name.md).

# Why Notes Attachments Are Extracted Under Their Unique Name

avoids data loss and keeps hotspot lookups intact

**Background**

Every attachment in a Notes document's $FILE item has two names; a **Domino-generated unique file name** and a **human-readable original file name**, that renders its icon/link in the rich text.\
The converter extracts every $FILE attachment to disk, in full, before it ever goes through the document's rich text to decode hotspots. At extraction time, the original name simply doesn't exist yet in the program - it's a hard ordering constraint, not a design choice.

**Problems with re-naming the original name of the attachment**

Notes allows different attachments in the same document to have the same original name

* **Data loss** - If we renamed the files when extracting them, one could overwrite the other.
* **Not every attachment has an hotspot** - Some attachments may not be linked to any hotspot—for example, because they were added automatically or the link was later removed—so their original name cannot always be determined reliably.
* **The original name isn't known yet** - The original names are only available after the document’s content has been processed, so safely renaming files would require keeping all attachments in memory until that process is complete.
* **Breaking hotspot lookups** - When a hotspot is processed, PDF Converter uses the attachment’s unique name to find the corresponding file. This name comes directly from Domino and must remain unchanged, so renaming the file beforehand would prevent the system from finding it and would break hotspot handling altogether.
* **Links pointing to wrong file** - Some links are built directly from the attachment’s original name, rather than from the actual file found on disk. If we renamed files to avoid duplicate names, the system could generate the wrong link—causing it to fail or, worse, open a different attachment without the user realising it.

**Why the current design is the right one**

The current approach keeps the file’s unique identifier separate from the name shown to users. The unique identifier is used to find and store the correct file, while the original name is only used for display.

This means all files can be safely prepared in advance, without depending on how the rich text is used later. It also ensures that each hotspot always points to the correct file, even when multiple attachments have the same displayed name.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.swingsoftware.com/seascape-for-notes/faq/why-notes-attachments-are-extracted-under-their-unique-name.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
