Personyze Wiki Personyze Wiki docs
Open Personyze
Data & Tracking

Grab Data from Your Site — Session, Profile & Identity

Capture values from your pages — cart totals, form inputs, emails, CRM IDs — and use them for targeting, dynamic content, and cross-device recognition.

Updated 2 weeks ago 10 min read
A
by Admin

What Grabbing Data Does

UI path: Settings → Customer and session data management.

Your site already knows things about a visitor that Personyze doesn’t: what’s in their cart, what they typed into a form, which category they’re browsing, whether they’re logged in and who they are. Grabbing is how you hand that to Personyze — you point at where the value lives on the page, and Personyze captures it on every visit.

Once captured, the value behaves like any other visitor attribute. You can use it to:

  • Target — show an offer only to visitors whose cart value is over $100, or only to Enterprise-tier accounts.
  • Personalize — drop the value straight into content as a dynamic variable, so a popup can greet someone by first name or name the category they were just browsing.
  • Build the user profile — store it permanently against the visitor so it’s there on their next visit, from any device.
  • Recognize people across devices — grabbing an email or CRM ID ties the anonymous browser to an imported record, so a visitor on their phone is the same person as on their laptop.
  • Track conversions — the same capture mechanism powers conversion goals. Grab an order total off the thank-you page and it becomes the revenue attributed to the campaign that drove it.

Three Kinds of Captured Data

The distinction that matters most is how long the value lives — and it’s the first choice you make, because it decides which section of the page you work in.

  • Session-limited attributes — captured per visit and cleared when the tab closes. Right for things that are only true right now: current cart total, the search query they just typed, the page they’re on. Managed under User session-limited attributes → New container.
  • Cross-session attributes — permanent profile fields stored per user, and still there on the next visit. Right for things that stay true: first name, account tier, industry, role. Managed under User cross-session attributes → New profile field.
  • Cross-device identifiers — email, CRM ID, and the like: the keys that tie a visitor back to an imported record and let Personyze recognize them across devices. Managed under Cross-device user identifiers.

Ask yourself: will this still be true next week? Cart contents, no — session. Job title, yes — cross-session. Is it something that identifies who they actually are? Then it’s an identifier.

The same hub also holds Imported user lists (bulk user data via file, RSS, SFTP, or API) and Individual user data — lookup & deletion for GDPR requests.

The Customer and session data management page listing session-limited attributes, cross-session attributes, cross-device identifiers, imported user lists, and individual user lookup
The data hub. Each row shows what’s configured and when it last captured — a quick health check that your grabs are still firing. “Last captured: Just now” means data is flowing.

Creating a Container

Click New container (or New profile field for a permanent one), give it a name, and choose where the value comes from.

Choose a Data Source

  • URL parameter — a path segment, query parameter, or hash. Use it for campaign tracking like ?utm_source=, or a category baked into the path.
  • Page / cookie — a CSS selector, a window.* variable, a cookie, or a meta tag. This is the broadest option and the one most grabs use.
  • GA4 dimension — map a GA4 dimension or user property you already collect.
  • GTM datalayer — read a key from the GTM dataLayer. If your dev team already pushes cart value or customer tier into the dataLayer, take it from there rather than scraping the DOM.
The New session container panel showing the four data sources: URL parameter, Page or cookie, GA4 dimension, and GTM datalayer
Four data sources. Prefer GTM datalayer or a window variable over a CSS selector when the value is already exposed there — structured data doesn’t break when the page is restyled.
The Page or cookie data source selected, with Grab data from set to a CSS selector
Page / cookie selected. Grab data from then narrows it further — a CSS selector, cookie, meta tag, storage key, or JavaScript variable.

Point at the Value

With From a CSS selector chosen, there are two ways to supply it:

  • I know the selector — type it directly, e.g. .user-email.
  • Find on pages — enter a sample URL and click Open picker. Personyze opens that page inside the QA simulator in a separate tab; click the element and the captured selector comes back into the field.

Multiple elements can match the selector tells Personyze to try each match until it finds a valid value — useful when the same class appears several times and only one instance actually holds the data.

The Find on pages option with a sample URL field and Open picker button for capturing a selector visually
Find on pages: enter a sample URL where the value is visible — an account page for an email, a cart page for a total — and open the picker to click it.

Using the Picker

The picker opens your site with a panel beside it, so you’re grabbing from the real page rather than guessing at markup.

The Personyze grab-data picker open beside a live site, ready to capture user and site data
The grab picker docked beside your live site. Enter a URL, choose a source, and work directly against the real page.

Describe It and Let AI Fill the Form

Rather than working out the source, key, and mask yourself, say what you want in plain words — “the number of items currently in the cart” — and click Suggest with AI. It proposes the source, the key or selector, a mask, and a name to store it as. Apply & fill the form writes all four into the form.

The Describe what to grab panel with an AI suggestion proposing the source, key, mask, and storage name
Describe the value in plain words and AI works out the rest — here it proposes session storage, the cart-data key, a Number-only mask, and cart_item_count as the name. Apply fills the form.

Point and Click

Choose Grab data from page and the panel asks you to click an element. Hover the page and click the value you want.

The picker prompting you to point and click an element on the page to grab its value
With the page source chosen, the picker waits for you to click. Everything on the page becomes selectable.

Once picked, the panel shows what it’s grabbing from (the selector it derived), a preview of the value that would be sent, and a Pick a different element link if you landed on the wrong thing. Name the value under Store grabbed value as — that name is what you’ll pick from dropdowns when building audiences and dynamic content, so make it readable: cart_item_count, not c1.

An element picked in the grab-data picker, showing the captured selector and a preview of the value that would be sent
A picked element: the derived selector, and a live preview of the value Personyze would send. The preview is the fastest way to confirm you grabbed the right thing before saving.

Watch out for dynamic IDs. If your site generates selectors with an ID that changes per visitor or product — div-cart-SS4443 — the grab works for you and nobody else, because that selector doesn’t exist on anyone else’s page. Use select parents to climb to a generic ancestor like div-cart. The rule: the selector has to be consistent across sessions and visitors.

Advanced Settings

Mask — Keep Only Part of the Value

Raw page text is rarely the value you want. “Cart total: $149.99” is a string; you want 149.99. A mask takes only certain parts of the grabbed text:

  • Pass everything — the default, no filtering.
  • Number only / Nonnumbers only — strip one or the other. Number only is what turns “$149.99” into something you can compare with “greater than 100”.
  • Email address — extract an email from surrounding text.
  • Grab if contains / Grab if doesn’t contain — capture conditionally.
  • Text fragment, Grab from specific word, Grab from specific word to another specific word — slice out a portion by its surrounding words.
  • Regular expression (advanced) — for anything the above can’t express.

If you plan to target numerically — cart value over $100 — you almost certainly need Number only. A value captured as “$149.99” will not match a “greater than” rule.

The Mask dropdown open, showing options for keeping only part of the grabbed value
Mask options in the container settings. The preview in the picker updates as you change the mask, so you can confirm the result before saving.
Advanced settings in the grab picker with a mask applied to keep only part of the grabbed value
The same masking in the picker, with Number only applied. Check the preview: it should show the bare number, not the surrounding text.

Log One Record Per

Controls how often the value is recorded:

  • One per visit (session) — capture once per session. Right for stable facts like account tier.
  • One per page — capture on each page view. Right for a value that changes as they browse, like current category.
  • No limit — capture every time it changes, e.g. a cart total updating as items are added.
The Log one record per dropdown open, showing One per visit, One per page, and No limit
Log one record per. Match it to how often the value actually changes — No limit on a static value is wasted capture; One per visit on a cart total means you miss updates.

Grab From, and Value to Send

Grab from chooses what part of the element to read — its contents, or an attribute. Value to send lets you send a fixed value when the grabbed one is nonempty instead of the captured text: useful when the mere presence of an element is the signal (an element exists → send logged_in), rather than its content.

Grab Only After a Click

Some values only appear after an interaction — a total that updates after “Add to cart”, or a form field that isn’t filled until submit. Use the container when this element is clicked (in the picker: Grab value only after another element is clicked) waits for a click on a second element before capturing.

The option to grab a value only after another element is clicked, for values that appear after an interaction
Grab after click: pick the value element, then pick a trigger element. Personyze only captures once that trigger is clicked — the fix for values that don’t exist on page load.

Using a Grab as a Conversion Goal

A conversion goal is set up the same way — same picker, same sources, same masks. The difference is what the captured value means: instead of describing the visitor, it records that something worth measuring happened, and optionally what it was worth.

Two settings matter more for goals than for ordinary attributes:

  • Mask → Number only — a goal value has to be a number to be summed as revenue. Grabbing “Order total: $149.99” raw gives you a string Personyze can’t add up.
  • Value to send → Fixed value when the grabbed one is nonempty — when the presence of an element is the conversion, not its content. Point at the “Thank you for your order” heading and send a fixed 1: if the element is there, the goal fires; if it isn’t, nothing happens. This is how you track a conversion on a page that shows no useful number.
The grab picker with Fixed value when grabbed one is nonempty selected, sending a set value instead of the captured text
Sending a fixed value instead of the captured text. The element’s presence is the signal — the preview shows the grabbed value (“Grocery”) but SENT 1. This is the pattern for a goal that fires on a confirmation element.

Frequency matters too: a purchase goal usually wants one per visit so a refreshed confirmation page doesn’t double-count the order. See Setting Conversion Goals Tracking for the full goal setup.

Storing It on the User Profile

A session container is cleared when the tab closes. To keep a value permanently — name, age, industry, role, account type — create it under User cross-session attributes → New profile field instead: name the field, choose its data type (text, numeric, date), and save. It then becomes available to populate via the picker, manual entry, or an integration.

These profile fields are what make ABM and CRM targeting work. For the full setup, see Adding Custom User Profile Data Fields for ABM & CRM Targeting and User Profile Data Setup and Synchronizing.

Verifying It Works

Don’t assume a grab fires just because it saved. Three ways to check:

  • The preview in the picker — the fastest check, before you even save.
  • The data hub — each section shows Last captured. If it says “Just now”, data is flowing; if it’s hours old on a busy site, something broke.
  • Test mode / browser console — with your IP in testing, the console prints everything Personyze gathered about the visitor, including container values. See Personyze Test Mode in Console.

A grab that silently returns nothing is the common failure, and it’s almost always one of three things: the selector doesn’t exist on that page, it contained a dynamic ID, or the value hadn’t rendered yet at capture time (use grab after click).