Privacy
Passive identity capture
How Flowgrid learns who a visitor is from the forms on your website, exactly which fields it reads, which it never touches, and how to exclude a field or a page.
Overview
When a visitor types their email into any form on your website, Flowgrid makes that their identity, so their past and future sessions belong to a person rather than an anonymous ID. With a CRM connected, the email is matched to the contact in HubSpot, Salesforce or Zoho.
On by default with the script tag
Passive capture runs as part of flowgrid.js on every website that installs the script tag. In the npm SDK it is opt-in (see npm SDK). Review the sections below before you publish a privacy notice.
When a field is read
A field is read when the visitor leaves it, or 800 milliseconds after they stop typing in it. That is before the form is submitted, so a visitor who types their email and then leaves the page is still identified. That is the point of the feature: the visitors who abandon a form are the ones you most want to know about.
Fields are recognised by their name, id, placeholder and autocomplete attributes, so it works whichever framework rendered the form, including forms added after the page loads.
What is captured
| Field | Recognised from | Handling |
|---|---|---|
| email, emailaddress | Hashed (SHA-256) in analytics. Kept in your workspace's identity store so it can be matched to your CRM. | |
| Phone | phone, tel, mobile, cell | Hashed (SHA-256) in analytics. |
| First and last name | firstname, lastname, fullname, name | Stored as the visitor's name. |
| Company | company, organisation, businessname | Stored as the visitor's company. |
| Address, city, postcode | address, city, postcode, zip | Stored as traits. |
What is never read
For these, the listener is never attached, so the value is never read in the browser, let alone sent:
- Password fields, and any field of type hidden
- Card numbers, CVV or CVC, security codes, SSNs and PINs
- Messages, comments, notes, feedback, search boxes and queries
- Any field marked data-analytics="ignore" or with the class no-track
- Every field on pages under /checkout, /account/settings and /admin
Where it is stored
- Analytics events only ever carry the SHA-256 hash of an email or phone number.
- The raw email is kept in your workspace's identity store, on Flowgrid's servers, so it can be matched to a CRM contact and shown to your team. It is read only by your dashboard, with your API key, and is never exposed to other visitors of your website.
- Everything is sent over HTTPS.
Excluding fields
Mark any field you do not want read. Either attribute works:
1<input name="email" data-analytics="ignore" />
2<input name="phone" class="no-track" />There is no site-wide switch in the script tag yet
To turn capture off for a whole form, mark each of its fields. Pages under /checkout, /account/settings and /admin are always excluded.
Consent and GDPR
Capture runs only when tracking is allowed. Flowgrid tracks with implied consent by default, so a visitor is excluded once they decline. If your website must ask before any tracking (GDPR or POPIA style opt-in), use a consent banner that blocks until the visitor accepts: Cookie consent covers renderConsentBanner(), which is opt-in by default, and requireExplicitConsent: true.
Say it in your privacy notice
Tell visitors that contact details typed into forms may be recorded before they submit, and used to match them to your CRM. You are the controller of this data; Flowgrid processes it for you.
npm SDK
The flowgrid-sdkpackage does not capture form fields unless you turn it on. The rules are the same as the script tag's.
1init({ autoTrack: { passiveIdentity: true } })
2
3// or, after init
4fg.autoTrack({ passiveIdentity: true })To identify a visitor yourself instead, for example after login, call flowgrid('identify', { email }).