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

# Attachments

> Add files to tickets, preview images, video, PDFs, audio, and text inline, and download all attachments on a message as a zip.

Attachments let you share files on a ticket. Files appear as tiles that are visible to everyone with access to the ticket across the web app, Slack, email, and the customer portal. You can add files to a message, to the ticket description, or through a form.

***

## Add files to a message

Add files from the message compose box in three ways:

* **Paperclip button** - Select the paperclip icon in the compose toolbar to open your file picker. You can select multiple files at once, and any file type is accepted.
* **Drag and drop** - Drag files from your desktop onto the compose area. A drop overlay appears while you drag.
* **Paste** - Paste a file or screenshot straight from your clipboard into the message editor.

Each file uploads as soon as you add it. A spinner on the tile shows the upload in progress, and the send button stays disabled until every upload finishes. Files added here become attachments on that message.

<Info>
  Each file can be up to 100 MB. There is no limit on the number of files per message.
</Info>

***

## Add files to the ticket description

Attach files directly to a ticket from the description area on the ticket detail view. There is no separate widget, the whole description area is a drop target:

* **Drag and drop** - Drag files onto the description. A drop overlay appears while you drag.
* **Paste** - Paste a file or screenshot into the description editor.

Files uploaded this way are ticket-level attachments. They appear as tiles directly below the description text, separate from any message attachments.

***

## Collect files with a form

Forms can gather files from requesters at submission time. There are two field options in the [form builder](/documentation/tickets/forms/overview):

* **Attachments** - A built-in system field. Add it from the **System** tab in the form builder's field picker. Files submitted through it become ticket-level attachments, shown in the description area.
* **File Picker** - A custom field. Add it from the **File** category in the **Create** tab. You can set a **Label**, optional **Description**, whether the field is **Required**, and which **Accepted file types** are allowed (documents, spreadsheets, images, audio, video, archives, and more). Leave file types unset to accept any type. Files submitted through it are stored on the custom field and shown in the ticket's custom fields panel.

Requesters upload to either field by dragging files onto it or selecting it to open a file picker.

<Callout icon="link" color="#6B7280">
  Learn more about [form custom fields](/documentation/tickets/forms/custom-fields)
</Callout>

***

## Preview attachments

Select an attachment to open it in a preview with a header, the filename, and a one-click download button. Preview behavior depends on the file type:

| Type                                    | Behavior                                           |
| --------------------------------------- | -------------------------------------------------- |
| Images (jpg, jpeg, png, gif, svg, webp) | Render full size inline; select to open fullscreen |
| Video (mp4, mov, webm, avi, wmv, mkv)   | Play inline with player controls                   |
| PDF                                     | Opens in the preview modal                         |
| Audio (mp3, wav, ogg, flac)             | Plays in a compact audio player in the preview     |
| Text (txt, csv, log, md, json)          | Renders the file contents in the preview           |

<Info>
  File types that aren't supported for preview (including HEIC and HEIF photos from iPhones) show a "can't be previewed here" message. You can still download them with the download button.
</Info>

***

## Download all attachments

When a message has more than one attachment, open the message **...** menu and select **Download all attachments**. Ravenna packages every file on the message into a single zip (`message-<id>-attachments.zip`).

A progress toast shows the download and lets you cancel it. If two files share the same name, Ravenna disambiguates them automatically (for example, `report.pdf` and `report (1).pdf`).

***

## Attachments across channels

Attachments stay in sync wherever a ticket is visible:

* **Slack** - Files mirror to the request thread, the triage thread, and relevant direct message threads.
* **Email** - Attachments on inbound emails appear on the ticket alongside other files.
* **Portal** - Requesters see message attachments when they view their tickets in the [customer portal](/documentation/platform/web-portal).

<Info>
  An attachment sent by a user in Slack stays owned by Slack. Editing or deleting it in Ravenna is not reflected back in Slack.
</Info>
