# Signature

This question type is used in cases where the responder needs to sign a document.&#x20;

{% hint style="info" %}
If you would like the responder to check a confirmation box instead of a signing, use [confirm](/adding-questions-and-content/question-reference/confirmation.md) type instead.
{% endhint %}

### Universal Signature

The universal signature component allows responders to either **type** their name and adopt a generated signature or **draw** their signature directly within the form.

**Type (adopted signature):** The responder enters their name and clicks *Adopt and sign*. This creates a valid electronic signature and submits signature metadata to your [answers endpoints](/integrations/getting-data-out.md#sending-answers) and [Formsort Data Storage](/saving-and-retrieving-responses.md). This method does **not** generate an image file for file upload integrations.

<div align="left" data-full-width="false"><figure><img src="/files/64QTUxtjvUPnR3LhfZMS" alt="" width="518"><figcaption></figcaption></figure></div>

**Draw:** The responder draws their signature using their mouse or touch input. This method behaves like the default signature component and will generate an image file that can be sent to your configured file storage integration.

<div align="left"><figure><img src="/files/jEoQsAyWdOOYqmhETh3q" alt="" width="482"><figcaption></figcaption></figure></div>

Both methods capture key signature data, including the signer’s name, timestamp, and signature method, which are included in webhook submissions and stored response data.

### Managing File Storage

By default, Formsort securely stores uploaded files and images with our [data storage service](/saving-and-retrieving-responses.md) — no setup required.\
If you prefer to manage your own storage, you can optionally configure an **S3** or **GCS** bucket as a custom file destination.

To set up a custom integration, follow our detailed guides for:

* [Amazon S3 setup](/integrations/integration-reference/s3.md)
* [Google Cloud Storage setup](/integrations/integration-reference/google-cloud-storage.md)

### Creating a filename pattern&#x20;

You can opt to define a naming pattern for the signature images that your responders upload by enabling **Filename pattern** in the question settings.&#x20;

You can [template](/variable-templating.md) any relevant variable you would like to be included in the name of the file into the field. For example, if you type in `{{first_name}}` into the field, the value of the `first_name` variable will be used as the filename at upload.&#x20;

Formsort offers three custom variables for these types of file upload components, built right into the settings of the component itself: `sessionUuid`, `randomUuid`, and `currentTimeUTC`. These variables can be [templated](/variable-templating.md) into the **Filename pattern** field to create dynamic filenames.

* `sessionUuid`: a uuid that is created **once**, when the form is loaded.&#x20;
* `randomUuid`: a uuid that is **created at and re-run** at each upload instance.&#x20;
* `currentTimeUTC`:  a timestamp that is **created at and re-run** at each upload instance.&#x20;

<div align="left"><figure><img src="/files/sPn0kIfqxSA4elFU4X39" alt="" width="563"><figcaption></figcaption></figure></div>

You can use several of these variables at once, if required, and one pattern we suggest is `{{currentTimeUTC}}_{{responder_uuid}}`. This ensures uniqueness via the timestamp, while still tying the file to a particular user via the `responder_uuid` System Library variable.&#x20;

{% hint style="info" %}
Visit the [System Library variables](/response-data-collection-and-management/variable-schema/system-library-answers.md) section for details on built-in variables that provide information about the responder's environment and context.&#x20;
{% endhint %}

Note that these extensions will be added automatically. You should also set a fallback naming convention in case the variable is not defined by typing it into the **Filename pattern fallback** field. Values here cannot use templated variables.&#x20;


---

# Agent Instructions: Querying This Documentation

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

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.formsort.com/adding-questions-and-content/question-reference/signature.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
