---
name: first-party-intent-signals
slug: first-party-intent-signals
description: This skill should be used when the user asks to "capture first-party intent", "track website intent signals", "identify buyer intent on our site", "set up first-party intent data", "track high-intent website behavior", "build first-party intent scoring", "website visitor intent tracking", "first-party intent signals", "capture buying intent from website", or any variation of capturing and using first-party intent signals from your own website for B2B SaaS.
category: general
---

# First-Party Intent Signals

First-party intent signals are behaviors on YOUR website that indicate buying interest. A visitor viewing the pricing page 3 times in a week is a stronger signal than any third-party intent data. You already own this data. You just need to capture it, score it, and act on it.

The principle: first-party intent is the highest-quality, lowest-cost intent signal available. You don't need to buy it from a vendor. You need to instrument your website, identify the visitors, and route the signals to your sales team. Start here before buying third-party intent.

## High-Intent Behaviors

### Behavior scoring matrix

| Behavior | Intent level | Score weight | Why |
|----------|-------------|-------------|-----|
| Pricing page visit | Very high | 25 points | They're evaluating cost. Only buyers check pricing |
| Demo/trial request page visit (no submit) | Very high | 20 points | They considered requesting a demo but didn't. Almost-converted |
| Comparison/alternatives page visit | High | 15 points | Actively comparing solutions |
| Case study page visit | High | 15 points | Looking for proof. Evaluation stage |
| 3+ page views in one session | High | 15 points | Deep engagement, not a casual browse |
| Return visit (2+ sessions in 7 days) | High | 20 points | Came back. Still interested |
| Integration page visit | Medium-high | 10 points | Checking compatibility with their stack |
| Product/feature page visit | Medium | 10 points | Learning about capabilities |
| Blog post read (1 post) | Low | 2 points | Could be casual. Not enough signal alone |
| Blog posts read (3+ in 7 days) | Medium | 8 points | Pattern of engagement. Building knowledge |
| Careers page visit | Negative | -10 points | They're looking for a job, not buying |

### Scoring rules

- **Weight bottom-of-funnel pages heavily.** Pricing page > product page > blog post. The closer to a purchase decision, the higher the score
- **Track patterns, not single events.** One pricing page visit is interesting. Three visits in a week with a return visit is high-intent. Score patterns, not single pageviews
- **Negative scoring for non-buyer behavior.** Careers page, job listings, investor page visits indicate non-buyer intent. Subtract points to prevent false positives
- **Decay scores over time.** A pricing page visit 90 days ago is less relevant than one yesterday. Decay scores by 20% per week. After 30 days, the score should be minimal

---

## Capturing First-Party Intent

### Technology stack for capture

| Need | Tool | What it does |
|------|------|-------------|
| Page-level tracking | Google Analytics, Segment, or HubSpot | Tracks which pages are visited, how long, how often |
| Visitor identification | Clearbit Reveal, Leadfeeder, or Dealfront | Identifies which COMPANIES are visiting (not individuals) |
| Individual identification | HubSpot tracking code, Marketo | Identifies known contacts (cookie-based after form fill) |
| Score calculation | HubSpot lead scoring, Salesforce Einstein, or custom | Calculates intent score based on behavior rules |
| Alerting | Slack webhook, email alert, CRM task | Notifies sales when a high-intent visitor appears |

### Capture workflow

```
1. Install tracking code on all pages
2. Install visitor identification (Clearbit Reveal or equivalent)
3. Define high-intent pages and score weights
4. Build scoring model:
   - Pricing page: +25 points
   - Demo page (no submit): +20 points
   - Case study: +15 points
   - Return visit: +20 points
   - Careers page: -10 points
5. Set threshold: score > 50 = high-intent account
6. Alert workflow:
   - Score > 50 → Slack alert to SDR with company name,
     pages visited, and suggested action
   - Score > 75 → Priority alert + auto-create CRM task
7. SDR researches the account, finds contact, initiates outreach
```

---

## Visitor Identification

### Company-level identification

```
Anonymous visitor hits your pricing page
  ↓
Clearbit Reveal (or equivalent) identifies the company
  - Company: Acme Corp
  - Industry: SaaS
  - Size: 150 employees
  - Location: San Francisco
  ↓
Check ICP fit: does Acme match your ICP?
  YES → Score the visit. Add to intent queue
  NO → Log but don't alert. Not a target
  ↓
Look up contacts at Acme Corp:
  - Apollo/Sales Nav: find VP Sales, Head of RevOps
  ↓
SDR reaches out:
  "Saw some activity from your team on our site.
  Not sure if you're evaluating, but [relevant hook]"
```

### Identification rules

- **You identify companies, not individuals.** Clearbit Reveal tells you "someone from Acme Corp visited your pricing page." It doesn't tell you WHO. You need to find the right contact using Apollo, Sales Nav, or LinkedIn
- **Don't mention the specific page in outreach.** "I saw you visited our pricing page" is creepy. "I noticed some activity from your team" is acceptable. Or skip the mention entirely and use a signal-based approach
- **Filter by ICP before alerting.** If 100 companies visit your site daily and only 20 match your ICP, only alert on those 20. Unfiltered alerts create noise
- **Combine with known contact data.** If a visitor has previously filled out a form, their tracking cookie is linked to their contact record. You know WHO is visiting, not just which company. This is the most valuable first-party intent

---

## Activation Workflows

### Real-time alert workflow

```
Trigger: ICP company visits pricing page OR demo page
  ↓
Alert: Slack message to SDR channel
  "🎯 [Company Name] (150 employees, SaaS, Series B)
   visited /pricing 3x this week
   Suggested contact: VP Sales [name, LinkedIn]
   Action: Research + personalized outreach"
  ↓
SDR has 24 hours to initiate outreach
```

### Automated sequence enrollment

```
Trigger: Known contact (previously filled form) visits
  pricing page + product page in same session
  ↓
Auto-enroll in "High Intent" sequence:
  Email 1: "Quick question about [specific use case]"
  Wait 2 days
  Email 2: "[Relevant case study]"
  Wait 3 days
  Email 3: "Worth a 15-minute look?"
```

### Activation rules

- **Time sensitivity matters.** A pricing page visit today is valuable today. In 7 days, the intent has cooled. Alert SDRs within minutes, not days. Set up real-time Slack alerts
- **Don't automate outreach to anonymous visitors.** If you can't identify the individual, don't auto-send. Research the company, find the right contact, and personalize manually. Automated emails to guessed contacts feel invasive
- **Prioritize return visitors.** A company visiting once might be casual. A company visiting 3 times in a week is evaluating. Weight return visits heavily in scoring and alerting

---

## Measurement

| Metric | Definition | Target | Frequency |
|--------|-----------|--------|-----------|
| High-intent accounts per week | Accounts scoring above threshold | Growing with traffic | Weekly |
| Alert-to-outreach rate | % of alerts that result in SDR outreach | > 80% | Weekly |
| Intent-to-meeting rate | % of high-intent accounts that book a meeting | 5-15% | Monthly |
| Intent-to-pipeline rate | % of high-intent accounts that become pipeline | 3-8% | Monthly |
| Time from intent to outreach | Hours between alert and SDR's first touch | < 24 hours | Weekly |
| False positive rate | % of alerts where the account was not actually buying | < 40% | Monthly |
| Visitor identification rate | % of website traffic identified to a company | 15-30% (typical) | Monthly |

---

## Pre-Setup Checklist

- [ ] Website tracking installed on all pages (analytics + event tracking)
- [ ] Visitor identification tool configured (Clearbit Reveal, Leadfeeder)
- [ ] High-intent pages defined with score weights
- [ ] Scoring model built with threshold for "high intent" (e.g., > 50 points)
- [ ] Score decay configured (points decrease over time)
- [ ] Negative scoring for non-buyer pages (careers, investor)
- [ ] ICP filter applied (only alert on ICP-matching companies)
- [ ] Real-time alert workflow configured (Slack, email, or CRM task)
- [ ] SDR response process defined (who responds, how fast, what to say)
- [ ] Contact finding workflow integrated (Apollo/Sales Nav lookup on alert)
- [ ] Monthly measurement cadence in place (intent-to-meeting tracking)

---

## Anti-Pattern Check

- Buying third-party intent before capturing first-party. You're paying $30K/year for Bombora but haven't set up Clearbit Reveal ($200/month). Someone visiting YOUR pricing page 3 times is a 10x stronger signal than someone reading a generic article elsewhere. Capture first-party first
- No ICP filter on alerts. 100 companies visit your site daily. All 100 trigger alerts. SDRs are overwhelmed. 80% are outside ICP. Filter to ICP-matching companies only. Quality over volume
- Mentioning the specific page in outreach. "Hi, I noticed you checked our pricing page yesterday." This feels like surveillance. Either don't mention the visit or say "I noticed some activity from your team" without specifying the page
- Same score for all pages. Blog posts, pricing page, and careers page all score equally. A pricing page visit is 10x more valuable than a blog read. Weight pages by buying intent, not equally
- No score decay. A pricing page visit from 6 months ago still scores 25 points. That visitor has moved on. Decay scores by 20% per week. After 30 days, the score should be near zero
- Alerts without action. SDRs receive 15 intent alerts per day. They look at 3. The other 12 expire. If SDRs can't act on the volume, either raise the threshold or assign a dedicated intent responder
- No measurement of intent-to-pipeline. You capture intent, you alert SDRs, but you never measure whether intent-flagged accounts become pipeline at a higher rate than non-intent accounts. Without this measurement, you can't prove the system works