# Responder UUIDs

A **responder UUID** (Universally Unique Identifier) is a unique value used to identify a user's browser session. This UUID is automatically generated by Formsort when a user loads a form for the first time and is stored in their browser’s `localStorage`.

By default, the UUID persists across visits, allowing Formsort to:

* Recognize returning users,
* Restore saved answers,
* And tie together session-specific data like events and submissions.

### When Is a Responder UUID Generated?

You don’t need to provide a UUID manually. Formsort automatically generates a `responderUuid` during a responder’s first session.

If you’d like to generate a **new UUID** every time someone visits your form (even in the same browser), enable **Start each session as a new responder** in your variant settings.

### Manually Setting a Responder UUID

While auto-generation works for most use cases, you can also provide your own responder UUID. This is useful if:

* You already have a unique identifier for a user (e.g. a user ID or session ID),
* You want to force-load a specific session tied to that identifier.

#### Two ways to set the responder UUID manually:

1. **Via the URL parameter** `responderUuid`**:**

```
https://<FLOW-URL>?responderUuid=123e4567-e89b-12d3-a456-426614174000
```

2. **Via HTML POST body:**

```
<input name="responderUuid" value="123e4567-e89b-12d3-a456-426614174000" />
```

{% hint style="info" %}
:bulb:You can also use URL parameters to set initial answers in the form—see our full guide for more.
{% endhint %}

#### Important notes:

* `responderUuid` must be a valid UUID string in the format:\
  `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`\
  (e.g., `123e4567-e89b-12d3-a456-426614174000`)
* Force-loading a session with `responderUuid` **will not work** if:
  * **Start each session as a new responder** is enabled, or
  * The user’s previous session has been finalized.

### Making the responder UUID available as an answer

You can make the `responderUuid` available as an **answer variable** in your flow by adding it from the **System Library** into your form schema.

<div align="left"><figure><img src="https://1036686854-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJPnL__mOdr_mLZ8nwf%2Fuploads%2F6KsddOMo8tAnasgn4pe7%2Fimage.png?alt=media&#x26;token=cf81af78-dd80-4fa4-a406-851882fb3e58" alt="" width="563"><figcaption><p>The System Library menu</p></figcaption></figure></div>

Once added:

* It can be templated into redirects or API calls, or anywhere templating is allowed.
* You can reference it like any other variable in your flow.

{% hint style="info" %}
Learn more about [variable templating](https://docs.formsort.com/variable-templating) for dynamic usage of answer data in your form logic.
{% endhint %}
