> For the complete documentation index, see [llms.txt](https://docs.samita.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.samita.io/sa-request-a-quote/quote-form/file-uploads.md).

# Allow file uploads

What the app accepts when customers attach drawings, specifications or artwork to a quote request, and how uploads use your plan's storage.

For custom work, a file is often worth more than a paragraph of description. A drawing, a spec sheet or a piece of artwork sent with the request is usually the difference between quoting accurately and quoting twice.

This page covers the two things that are fixed whatever your form looks like: which file types the app accepts, and how uploads eat into your plan's storage. What your own form offers is decided in the **Form builder**, so check there before you promise customers anything.

## What the app accepts

These file types are allowed on uploads:

<table><thead><tr><th width="260">Kind of file</th><th>Types</th></tr></thead><tbody><tr><td>Documents and data</td><td><code>pdf</code>, <code>doc</code>, <code>docx</code>, <code>txt</code>, <code>csv</code></td></tr><tr><td>Images and artwork</td><td><code>jpg</code>, <code>jpeg</code>, <code>png</code>, <code>psd</code>, <code>ai</code>, <code>eps</code></td></tr><tr><td>CAD and manufacturing</td><td><code>stl</code>, <code>stp</code>, <code>step</code>, <code>dxf</code>, <code>gbr</code>, <code>ex2</code></td></tr></tbody></table>

Anything outside that list won't go through, so a customer sending a format you didn't expect is the most likely reason an attachment never arrives.

{% hint style="info" %}
Say in your form which formats you want. Someone who uploads a phone photo of a drawing technically succeeded, but you still can't quote from it.
{% endhint %}

## Where to check in your form

Your form's questions live in the **Form builder**, on the **Quote form** tab of the **Customize** editor — open **Quote settings**, click **Customize**, then **Quote form**.

The builder is organised into sections, and which sections you get depends on your **Form template**. The **Detailed quote form** arrives with **Contact information**, **Shipping address** and **Extra info**; the **B2B customer form** also brings **Company information**, **Billing address** and **Payment terms**. Each section expands, with **Add element** for one more question inside it and **Add section** for a whole new group.

Open **Add element** in the section where an attachment would belong — usually the free-text one, **Extra info** — and read the list of elements it offers. That list is the authority on what your form can ask for, and it is worth checking before you write "send us your drawing" anywhere a customer will see it.

<figure><img src="https://2993310686-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIvNtDAMNVIdy5nl9kiOU%2Fuploads%2FDLwCa27OfB3fzC1A0YgV%2Fimage.png?alt=media&amp;token=a1788f0f-1a8b-403e-b1fc-6882047b8472" alt=""><figcaption><p>A file field is added like any other element.</p></figcaption></figure>

<figure><img src="https://2993310686-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIvNtDAMNVIdy5nl9kiOU%2Fuploads%2FCwNbqKEvU7htqYld4d5A%2Fimage.png?alt=media&amp;token=0db4cf37-ed66-4956-9542-f29d2c94005c" alt=""><figcaption><p>Set what the field accepts before customers meet it.</p></figcaption></figure>

{% hint style="warning" %}
If **Add element** doesn't offer an element that takes an attachment, don't assume it's hidden somewhere else in the editor. Email <support@samita.io>, or use **Contact us** in the app, and ask what's available on your plan. A greyed control with a padlock line reading "🔐 This feature is available on …" is a plan limit rather than a fault, and **Pricing plans** in the app will tell you which plan lifts it.
{% endhint %}

{% hint style="info" %}
Whatever your form offers, a customer can always email you a file after they submit. Your reply to the request is a perfectly good place to ask for one, and it costs you nothing in form length.
{% endhint %}

## File size and storage

Uploads use your plan's storage. Your current allowance is on the app dashboard, in the **Pricing plan details** card — it shows your **Current plan** alongside **Storage size**, **Used storage** and **Maximum file size**.

<figure><img src="https://2993310686-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIvNtDAMNVIdy5nl9kiOU%2Fuploads%2FnC35lArWOr3Q2iM6h6aX%2Fimage.png?alt=media&amp;token=8753cbed-01b1-4ea6-90cd-761b22112245" alt=""><figcaption></figcaption></figure>

The PRO plan lists a maximum allowed file size of 50MB, a storage size of 2GB, and file history of 3 month. Compare the plans in [Plan comparison](/sa-request-a-quote/reference/plan-comparison.md).

{% hint style="info" %}
If you handle large design or CAD files regularly, download what you need into your own systems. File history is limited, and the app is not meant to be your archive.
{% endhint %}

## Next steps

* [View and edit a quote](/sa-request-a-quote/managing-quotes/view-and-edit.md) — where to find what a customer sent
* [Add reCAPTCHA](/sa-request-a-quote/quote-form/recaptcha.md) — keep spam out of a form that accepts uploads
* [Build a standard form](/sa-request-a-quote/quote-form/build-standard-form.md) — the rest of the form


---

# 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.samita.io/sa-request-a-quote/quote-form/file-uploads.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.
