Account-level visitor ID
Identify visiting companies globally using reverse-IP and firmographic enrichment, then show the exact pages and sessions that created intent.
A compliant visitor identification layer for B2B sites: first-party tracking, account resolution, lawful person enrichment, intent scoring, and CRM routing.
Government relations at BGR Group
Feature set
The core product is feasible today. Person-level results depend on geography, consent, and licensed identity data, so the architecture keeps that provider layer replaceable.
Identify visiting companies globally using reverse-IP and firmographic enrichment, then show the exact pages and sessions that created intent.
Resolve named people only where an approved identity partner, geography, consent policy, and suppression check allow it.
Tag pages like pricing, case studies, integration docs, and comparison pages so sales sees real buying intent instead of raw traffic.
Send clean payloads to reps, owners, lists, ad audiences, or sequences with enough context to act without opening another dashboard.
Honor GPC, opt-out, CMP state, retention windows, DPA requirements, and person-level blocking outside approved markets.
Drop in one script, collect compliant first-party behavior, and swap mock enrichment for Firecrawl, Clearbit, Demandbase, or CRM data.
Pilot dashboard
Bullseye is right about one thing: published match rates are marketing until you run your own traffic through the pipeline. This dashboard makes the pilot measurable.
Keep the identity provider replaceable. Bullseye, RB2B, Warmly-style vendors all become adapters that return the same normalized contract.
type IdentityGraphAdapter = {
name: string;
resolve(input: {
visitorId: string;
ip: string;
browserSignals: Record<string, unknown>;
consent: boolean;
region: "US" | "EU" | "AU" | "OTHER";
suppressionHash?: string;
}): Promise<{
level: "none" | "company" | "person";
person?: {
name: string;
email: string;
emailStatus: "verified" | "risky" | "unknown";
title: string;
linkedinUrl?: string;
};
source: string;
confidence: number;
expiresAt: string;
}>;
};The routing engine should update existing contacts first, create only when dedupe passes, and push visitor activity back into account history.
Resolution waterfall
Competitors converge on the same pattern: collect first-party behavior, resolve company identity, enrich when allowed, score the intent, then route the insight.
Developer kit
The snippet only reads your site's first-party context. It cannot and should not read LinkedIn, Facebook, or Instagram cookies.
<script>
window.entialVisitorID = {
accountId: "acct_live_xxxxx",
endpoint: "https://ential.com/api/visitor-intel/collect",
consent: window.Cookiebot?.consent?.marketing === true
};
</script>
<script async src="https://ential.com/visitor-intel.js"></script>{
"visitorId": "ev_7c4a91",
"consent": true,
"page": "/pricing",
"referrer": "https://linkedin.com/",
"utm": { "source": "linkedin", "campaign": "demo" },
"traits": { "email": "known-form-submit@company.com" },
"privacy": { "gpc": false, "suppressed": false }
}Privacy policy module:
- We use first-party cookies and similar technologies to understand B2B website activity.
- We may work with approved data partners to associate business visitors with company or contact records.
- We do not read LinkedIn, Facebook, or Instagram cookies.
- You can opt out, request deletion, or suppress future matching at any time.MVP build plan
The first version should make sales teams faster without overclaiming identity. Add person-level partners only after the consent and legal model is locked.
Public JS snippet, collector API, visitor ID, consent flag, page/event capture, bot filtering, and retention settings.
Reverse-IP provider adapter, firmographic profile, ICP score, excluded domains, VPN/ISP handling, and confidence labels.
Vendor adapter contract for work email, title, LinkedIn URL, geography, confidence, source, expiry, and opt-out state.
Slack alerts, HubSpot or GHL lead creation, owner routing, sequence triggers, webhook delivery, and audit logs.