---
title: Visitor fields reference
slug: visitor-fields-reference
description: Reference of every default Personizely visitor field: IDs, types, where values come from, and how to use them in targeting, dynamic text, forms and the JS API.
docTags: 
createdAt: 2026-10-17T09:45:59.541Z
---

Every Personizely visitor has a profile made of default fields, listed on this page, plus any [Custom fields](docId\:km7iOXZLplGl8qZlK582W) you create. Default fields fall into three groups: **form fields** the visitor gives you (email, name, consents), **tracking fields** Personizely records about how they arrived (UTMs, referrer, entry page), and **location fields** set from their IP address. This reference lists each field's ID, type and source, and where you can use it.

**Available on:** all platforms.

## Form fields

These can be collected by [Form element](docId:_32XhaAm6KMwlL3_ZIH25), sent with [ply.identifyVisitor](docId\:d64TegyOiwNA2GFG1eXPm#plyidentifyvisitordata), filled by [Parsers (data parsing engine)](docId\:n_O3ZB1_JFa-N-aEZ4u3U), or copied from Shopify and your email platform when a visitor is [Identifying visitors](docId\:Q2m71k4qe54obA5WmAvBT).

| Field                             | ID                      | Type     | Notes                                                                                                                                  |
| --------------------------------- | ----------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| Email                             | `email`                 | email    | Must be a valid address. Identifies the visitor and merges profiles with the same email                                                |
| First name                        | `firstName`             | text     |                                                                                                                                        |
| Last name                         | `lastName`              | text     |                                                                                                                                        |
| Company name                      | `companyName`           | text     |                                                                                                                                        |
| Company title                     | `companyTitle`          | text     | Job title                                                                                                                              |
| Phone                             | `phone`                 | phone    | Converted to international format using the visitor's country when entered without a country code. Merges profiles with the same phone |
| Address                           | `address`               | text     |                                                                                                                                        |
| Marketing consent - Email and SMS | `marketingConsent`      | checkbox | One consent covering both channels                                                                                                     |
| Email marketing consent           | `emailMarketingConsent` | checkbox |                                                                                                                                        |
| SMS marketing consent             | `smsMarketingConsent`   | checkbox |                                                                                                                                        |
| Privacy consent                   | `privacyConsent`        | checkbox | Acceptance of your privacy policy or terms                                                                                             |
| Birthdate                         | `birthdate`             | date     | `YYYY-MM-DD`, between 1900-01-01 and today                                                                                             |
| Bio                               | `bio`                   | textarea | Free text                                                                                                                              |

## Tracking fields

Personizely fills these automatically as the visitor browses.

| Field              | ID               | Type | Value                                                                                         |
| ------------------ | ---------------- | ---- | --------------------------------------------------------------------------------------------- |
| UTM Source         | `utmSource`      | text | The visitor's stored `utm_source`                                                             |
| UTM Medium         | `utmMedium`      | text | The visitor's stored `utm_medium`                                                             |
| UTM Campaign       | `utmCampaign`    | text | The visitor's stored `utm_campaign`                                                           |
| UTM Term           | `utmTerm`        | text | The visitor's stored `utm_term`                                                               |
| UTM Content        | `utmContent`     | text | The visitor's stored `utm_content`                                                            |
| First visited page | `firstVisitPage` | text | Path of the first page the visitor ever viewed, without domain or query string. Never changes |
| Referrer           | `referrer`       | text | Full URL of the first external site that sent the visitor. Never changes once set             |

Each UTM field is updated whenever that parameter appears in a URL the visitor opens, and keeps its value otherwise. See [Remembered traffic-source values](docId\:pUBcmS1M98xB8Mg8L99D_#remembered-traffic-source-values). Values longer than 255 characters are cut to 255.

## Location fields

Set from the visitor's IP address when their profile is created.

| Field    | ID        | Type | Value                                             |
| -------- | --------- | ---- | ------------------------------------------------- |
| Country  | `country` | text | Two-letter ISO country code, such as `US` or `DE` |
| City     | `city`    | text | City name in English                              |
| Region   | `region`  | text | Region (state, province) code                     |
| Zip code | `zipCode` | text | Postal code                                       |

Location fields appear in [Contacts and form submissions](docId\:r6fb_qyzgxzRzBTFzO5AX), contact exports and [Send webhook automation](docId\:NIP9OJbhFD-xFFjDZSSe4) payloads. To target by location, use the [Location filter](docId\:f0_rJIZ9q-sSEhVSncFcF) filter, which checks where the visitor is now. To show the visitor's location on the page, use `{geo.country}`, `{geo.countryName}`, `{geo.region}` or `{geo.city}` [Dynamic text (personalization variables)](docId\:EEz3US75criNjfndB--uS).

## Where you can use visitor fields

| Where                                                                    | Form fields                | Tracking fields            | Custom fields               |
| ------------------------------------------------------------------------ | -------------------------- | -------------------------- | --------------------------- |
| [Visitor fields filter](docId:8O0nDK0HiHXgMjILAg_OC) filter              | Yes                        | Yes                        | Yes                         |
| [Dynamic text (personalization variables)](docId\:EEz3US75criNjfndB--uS) | `{visitor.firstName}` etc. | `{visitor.utmSource}` etc. | `{visitor.customField[ID]}` |
| Widget forms                                                             | Yes                        | No                         | Yes                         |
| `ply.identifyVisitor`                                                    | Yes                        | No                         | Yes, in `customFieldValues` |
| Parsers (destination **Visitor**)                                        | Yes                        | No                         | Yes                         |
| Contacts, exports, webhooks                                              | Yes                        | Yes                        | Yes                         |

The dedicated filters [UTM parameters filter](docId\:nKodTTYkgmB8OALDcQnYh), [Referrer filter](docId\:KOpscrlQHA3ArGC0-Z-2o) and [Entry page filter](docId\:jEK9GwVtqP2GlfFj7M7lz) read the same tracking values as the Visitor fields filter. Use whichever reads more clearly in your target.

## Behavior details and limitations

- **Form fields are empty until the visitor is identified.** An anonymous visitor matches **is empty** and **is not checked** for every form field.
- **Values replace earlier values.** A new form submission with a different first name overwrites the old one.
- **Consent fields record consent; they don't enforce it.** Personizely passes them to your integrations. How the snippet itself handles cookies depends on [consent](docId\:pQ7hXClMZqGdoDSHsUCZ5#consent).
- **Text matching is exact and case-sensitive** in the Visitor fields filter.
- **Location is a snapshot.** Location fields describe where the visitor was when their profile was created. The Location filter and `{geo.*}` use their current location.

## Examples

- **Hide signup popups from subscribers:** a **don't match** group with Visitor fields "Email is not empty".
- **Greet by name:** "Hi \{visitor.firstName or 'there'}, your cart is waiting" in a widget headline.
- **Consent-aware SMS offer:** Visitor fields "SMS marketing consent is not checked" and "Email is not empty", to offer SMS signup to known email subscribers.

## Related

- [Custom fields](docId\:km7iOXZLplGl8qZlK582W)
- [Identifying visitors](docId\:Q2m71k4qe54obA5WmAvBT)
- [Visitor fields filter](docId:8O0nDK0HiHXgMjILAg_OC)
- [Dynamic text (personalization variables)](docId\:EEz3US75criNjfndB--uS)
- [JavaScript API (window.ply)](docId\:d64TegyOiwNA2GFG1eXPm)
- [Contacts and form submissions](docId\:r6fb_qyzgxzRzBTFzO5AX)
