# Hidden fields

Pass data the respondent never sees into a form, from the address of a share link or the context of a request, and save it with each submission.

## What they are for

- Track where answers come from, such as an email campaign or a social media post.

- Link answers to your systems with a contact, deal, or order ID.

- Change the form with [logic](https://formstep.io/docs/building-forms/conditional-logic/), for example show extra questions for `plan=enterprise`.

- Check answers against what you know with [AI Validation](https://formstep.io/docs/building-forms/ai-validation/), for example an order number an uploaded invoice must mention.

## Add a hidden field

Click **Hidden Field** in the Blocks tab, or type `/` and pick it. It cannot go inside a column or a repeating group. Then set:

- **Field type**: text (the default) or number.

- **Parameter name**: the URL parameter that fills it, such as `utm_source` or `contact_id`. It is also the field's [field key](https://formstep.io/docs/requests/field-keys/).

## Fill it from the URL

When someone opens a share link with a matching parameter, the hidden field takes its value:

```
https://form.formstep.io/abc123?utm_source=newsletter&contact_id=12345
```

- Values are read once, when the form opens.

- A number hidden field ignores values that are not numbers, so `?score=abc` leaves it empty.

- To add parameters to a share link without editing the URL, use the link's [Query parameters](https://formstep.io/docs/sharing-publishing/sharing-embedding/#query-parameters). UTM tags and campaign tracking are explained there too.

To show a URL value in a question the respondent can edit, such as their name, see [Default values from other fields](https://formstep.io/docs/building-forms/field-configuration/#default-values).

## On a request

Request links ignore URL parameters, so the recipient cannot change your values. A request fills hidden fields from its context, and can fill visible questions directly. See [Prefill, locked fields and hidden fields](https://formstep.io/docs/requests/creating-requests/#three-buckets).

## Where values show up

Hidden fields have their own columns in the Submissions table, marked with an eye-slash icon. They also appear in exports and integrations.

## Next steps

[Query parameters](https://formstep.io/docs/sharing-publishing/sharing-embedding/#query-parameters) — Add values to a share link without editing the URL

[Prefill, locked fields and hidden fields](https://formstep.io/docs/requests/creating-requests/#three-buckets) — Fill hidden fields from a request
