User identification
Turn anonymous visitors into persistent and searchable profiles.
Profiles let you track users with a stable identifier and provide several advantages:
- Cross-device continuity when the same user is identified again
- Searchable visitor records in the dashboard
- Better attribution from anonymous traffic to known accounts
How to identify a user
Flowsery does not auto-detect logged-in users. Installing the script tracks
anonymous pageviews and sessions; it has no way to know who the current user is.
You link the visitor to an account by calling identify explicitly after
signup, login, or whenever your app knows the user — the same model as DataFast
and Segment.
window.flowsery('identify', {
userId: 'user_123',
email: 'john@example.com',
name: 'John Wayne',
image: 'https://example.com/avatar.jpg',
profileData: {
role: 'admin',
plan: 'pro',
},
});Call it from your app once the user is known. In React:
'use client';
import { useEffect } from 'react';
export function FlowseryIdentify({ user }) {
useEffect(() => {
if (user?.id) {
window.flowsery?.('identify', {
userId: user.id,
email: user.email,
name: user.name,
});
}
}, [user]);
return null;
}Current contract
userIdis required — your stable account idemailis optional but required to match payments by email (see below)nameis optionalimageis optional- Custom fields belong inside
profileData
Revenue attribution by email
When you can't forward the _fs_vid cookie into your payment provider's metadata
(see Stripe PaymentIntent API), identify
is the fallback: Flowsery matches an incoming payment to the visitor when the
payment's email equals the identified user's email. Pass the user's email
to identify for this to work. This links a payment to the persistent visitor
you see in the dashboard for weeks, even across devices.
Reliable loading
If identify calls can fire before the main tracker script loads, place the queue shim in your document head:
<script id="flowsery-queue">
window.flowsery =
window.flowsery ||
function () {
window.flowsery.q = window.flowsery.q || [];
window.flowsery.q.push(arguments);
};
</script>Notes
- Identify links a known user to the visitor profile. It does not replace custom goals.
- If revenue attribution is enabled, connected payment-provider flows can also enrich customer identity when matching data is available.