Skip to main content
Book a call
For AgentsAll systems operational
Leadpipe
Leadpipe / The 2026 field guide

The data foundation
for agentic AI.

How to give AI agents the identity, activity, and intent they need to act on real buyers — and the contract, interfaces, and guardrails that keep them right.

Chapters
10 + reference
Reading time
21 min
Updated
Formats
PDF · Markdown
The data foundation for agentic AI, Leadpipe 2026 guide
Chapter 01 / The shift

Software that acts needs a different kind of data.

Dashboards were read by people who filled in the gaps. Agents read every field literally — and act on it at machine speed.

For fifteen years, go-to-market data was built for a person looking at a screen. A rep saw a company name next to a pricing-page visit and applied judgment: that one is a customer, that one is a competitor, that one is worth a call. The data could be loose because the reader was not.

Agents remove that reader. A research assistant, an AI SDR, a routing workflow, or a copilot inside your own product consumes the payload directly, decides, and moves to the next record. Whatever the data implies, the agent will do — thousands of times a day.

A model supplies reasoning. The data foundation supplies the facts it reasons about. When the facts are vague, the agent is confidently wrong at scale.

That changes what “good data” means. Coverage still matters, but so does shape: whether a field is typed, whether a missing value is distinguishable from a zero, whether observation is separated from inference, and whether the agent can tell how fresh a fact is.

The same record, built for two different readers
Built for a dashboardBuilt for an agent
IdentityA name and a logo on a cardA stable key — a SHA-256 email hash — that joins identity, activity, and intent across systems
Missing dataBlank cells a person skims pastExplicit null values and empty arrays the agent is told never to fill
ActivityA chart of page viewsTyped counters such as pricingPageViews and bounded session summaries with timestamps
IntentA “hot account” badgeTopic matches with scores, per-run snapshots, and a history the agent can cite
Freshness“Updated recently”firstSeenAt, lastSeenAt, a frozen asOf, and a run date for every snapshot
ActionA person decidesYour application decides what the agent may do, and who approves it

This guide is about building the right-hand column: a data foundation an agent can stand on. It covers the four layers of business context, how to hand them to a model without losing meaning, which interface fits which system, five reference architectures, the guardrails that keep autonomy safe, and how to evaluate the whole system on your own traffic.

Chapter 02 / Four layers

Four layers of business context.

Who someone is, what they did, what they are researching, and which company they belong to are four different facts. Keep them separate and an agent can reason; blend them and it can only guess.

  1. L1
    IdentityWho is this?
    LeadpipeIdentification
    emailemailHashjobTitleseniority
  2. L2
    ActivityWhat did they do on our properties?
    LeadpipeData API + session summaries
    sessionspricingPageViewslandingPagelastSeenAt
  3. L3
    IntentWhat are they researching across the web?
    LeadpipeOrbit
    topicsminScoretopic overlapruns
  4. L4
    CompanyWhich organization — and does it fit?
    LeadpipeEnrichment + IP to company
    companyNameindustrycompanyEmployeeCount
Interfaces & controls
REST APITypeScript SDKMCP serverWebhooksSuppressionPage targeting
Joined by one key — the SHA-256 email hash — and kept as separate facts all the way to the model.

Most agent projects that disappoint collapse these layers into one number. “Lead score 87” gives a model nothing it can explain, verify, or challenge. Four distinct layers give it something to reason with: this person (identity) works at a company inside our ICP (company), viewed pricing twice this week (activity), and has matched our category topics in three consecutive Orbit runs (intent).

Each layer answers a different question

LayerAnswersEvidenceChanges when
IdentityWho visited?A resolved person and contact fieldsPeople change roles or addresses
ActivityWhat did they do here?Sessions, pages, timing, campaignsEvery visit
IntentWhat are they researching elsewhere?Topic matches and scores per runEach daily audience run
CompanyWhich account, and does it fit?Firmographics and IP-to-company contextHeadcount, funding, or ownership changes

Why the separation matters to an agent

  • Explainability. An agent that cites “viewed /pricing twice; matched data warehouse migration in the last two runs” can be audited. An agent that cites a blended score cannot.
  • Independent unknowns. Identity can be absent while company context is present. Intent can exist for someone who has never visited. Each layer needs its own empty state.
  • Different permissions. A work email for sales follow-up, a hashed email for ad audiences, and company context for routing are different decisions with different owners.
  • Different freshness. A visit from ten minutes ago and a topic match from last week’s run should not carry equal weight in a prompt.
Verified profiles
280M+
Intent signals
60B+
Websites monitored
5M+
Intent topics
20,810
Leadpipe-published figures. See our data for definitions.
Chapter 03 / Identity

Identity: the key everything else hangs on.

Before an agent can reason about a buyer, it needs to know which buyer. Identity turns an anonymous session into a person and gives every other fact something to attach to.

Leadpipe Identification resolves eligible website visits into people and companies by matching deterministically against its own identity graph. The output is a person record — name, work and personal emails, phone, role, seniority, department, and employer — with on-site activity attached.

Deterministic identity is what makes autonomy safe

A probabilistic guess such as “someone from Acme, probably in marketing” is a useful hint for a human. For an agent it is a liability, because the agent will write to a real person on the strength of that guess. Deterministic identity means the person is resolved from a match rather than inferred, so the agent’s first fact is a fact.

Use the hash as your join key

Every visitor record carries the normalized primary email and its hashes: emailHash (SHA-256, also in emailHashes.sha256), emailHashes.sha1, and emailHashes.md5. The lowercase SHA-256 value ties the layers together — it is the visitorId for session summaries and the hashedEmail for Orbit topic history. Pass the hash between systems; pass the address only where a workflow actually needs to contact someone.

Identity and company fields in a visitor record (illustrative values)
                        
                          {
  "email": "jordan.lee@northwind.example",
  "emailHash": "5f2b…c91e",
  "emailHashes": { "sha256": "5f2b…c91e", "sha1": "…", "md5": "…" },
  "businessEmails": ["jordan.lee@northwind.example"],
  "personalEmails": [],
  "phones": ["+1 555 0100"],
  "phonesDnc": false,
  "jobTitle": "Director of Data Engineering",
  "seniority": "Director",
  "department": "Engineering",
  "companyName": "Northwind Analytics",
  "industry": "Software Development",
  "companyEmployeeCount": 420,
  "companyTotalRevenue": null
}
                        
                      

Aliases resolve to one person

People use more than one address. The Data API represents identity aliases as one person, so an agent does not greet the same buyer twice under two emails. Hashes apply to the normalized primary email, not to every address in emails — when you join on a hash, join on that one.

Depth of record, by geography

Person-level identification is strongest on eligible US traffic. For traffic everywhere, IP to company returns stored company context for IPv4 and IPv6 addresses, so a visit from London or Singapore can still route to the right account. EU and UK traffic defaults to company level; person-level identification there requires affirmative consent. Design the agent to accept both depths of record and to act appropriately on each.

Chapter 04 / Activity

Activity: what happened on your properties.

First-party behavior is the most relevant evidence an agent can cite. Give it typed counters and bounded summaries, not raw clickstreams.

Identity says who. Activity says what they did — and on your own site, that is the closest thing to stated interest a buyer gives you before they fill out a form. Leadpipe returns activity in the same canonical visitor record as identity, so an agent receives both together.

CategoryFieldsWhat an agent can do with it
Engagementsessions, pageviewsSeparate a single bounce from a multi-session evaluation
High-intent pagespricingPageViews, demoPageViewsPrioritize, and cite the specific behavior in a brief
TimingfirstSeenAt, lastSeenAtWeight recency and avoid acting on stale visits
JourneylandingPage, visitedPages, referrer, referrerDomainExplain what brought them and what they read
CampaignsutmSource, utmMedium, utmCampaign, utmTerm, utmContentMatch follow-up to the message they clicked
Ad clicksgclid, fbclid, bingClickId, linkedinClickIdClose the loop with ad platforms
Your labelscustomAttributionCarry client, campaign, or tenant IDs through the pipeline

Privacy-bounded session summaries

Agents rarely need a full clickstream, and you rarely want to give them one. GET /v1/data/visitors/{visitorId}/sessions returns one bounded record per session — start and end time, duration, page-view count, and path-only entry and exit pages — without detailed events, full URLs, query strings, or fragments. It is the right default for a model’s context window: enough to reason about engagement, nothing it does not need.

One session summary
                        
                          {
  "sessionId": "ses_1vR8zPqY2dV5…",
  "version": "sv_8sH2mN6qR1vY…",
  "startTime": "2026-08-13T14:00:00.000Z",
  "endTime": "2026-08-13T14:14:00.000Z",
  "durationSeconds": 840,
  "pageViews": 4,
  "entryPage": "/pricing",
  "exitPage": "/thank-you",
  "updatedAt": "2026-08-13T14:15:00.000Z"
}
                        
                      

Three details that matter for agents

  • version is a change detector. It changes whenever any field in the summary changes. Store it and re-run the agent only when it moves — cheaper and more consistent than reprocessing on a timer.
  • asOf freezes the window. The first page of a traversal fixes meta.asOf, so a relative window such as 30d does not shift while you paginate. Include asOf in the agent’s context so it knows what “recent” meant.
  • meta.coverage.partial is a fact, not noise. When it is true, the population does not fully cover the requested window. Carry that qualification into any report or summary an agent writes.

Carry your own context through the pixel

Append query parameters to the pixel script — a partner customer ID, a campaign, a region — and Leadpipe returns them in customAttribution on every visitor record and webhook delivery. For a multi-tenant agent, this is how a visitor arrives already labeled with the tenant it belongs to.

Pixel with custom attribution
                        
                          <script
  src="https://leadpipe.aws53.cloud/p/YOUR-PIXEL-ID.js?partnerCustomerId=customer_123&campaign=spring-2026"
  async
></script>
                        
                      
Chapter 05 / Intent

Intent: what the market is researching.

Your site sees part of a buying journey. Orbit adds the rest: people researching your category across the web, including people who have never visited you.

Most research happens before a buyer reaches your site — on publications, communities, documentation, and comparison pages. Orbit is Leadpipe’s person-level intent product: a monitored network of 5M+ websites organized into 20,810 topics, with active audiences refreshed daily. Instead of an account-level “surge” flag, it returns people, the topics they matched, and how strongly.

How Orbit models intent

ConceptWhat it isWhy it matters to an agent
TopicA subject people research, from a catalog you can browse, search, or derive from any websiteThe vocabulary of your market — and of your prompts
Intent scoreStrength of a person’s match on the selected topics; filter with minScoreA threshold you can tune and explain
Topic overlapHow many of the selected topics a person must matchHigher overlap means a narrower, usually stronger audience
ICP filtersCompany, role, job title, contactability, geography, and demographicsFit before reach
AudienceA saved definition: topics, thresholds, and filtersReusable, reviewable targeting logic
RunA materialized snapshot of an audience at a point in timeThe unit an agent should cite: “in the run on 21 October”

From topic to people

  1. Find topics. Analyze a website, browse the catalog, or search it. Topic discovery is public, so an agent can explore your category before it has an API key.
  2. Preview. Estimate audience size and inspect masked sample rows without saving anything.
  3. Save the audience as draft or active. Active audiences refresh through scheduled daily runs.
  4. Run. Queue a manual run with an Idempotency-Key, or let the daily refresh produce the next snapshot.
  5. Read. Page through hydrated results — ordered by intent score, then topic overlap — check fill-rate stats, or export a CSV.
Build an Orbit audience with the TypeScript SDK
                        
                          import { Leadpipe } from "@leadpipe/client";

const client = new Leadpipe({ apiKey: process.env.LEADPIPE_API_KEY });

// 1. Find topics that describe your market
const topics = await client.intent.topics.search({ q: "data warehouse", limit: 5 });
const topicIds = topics.data.map((topic) => topic.topicId);

// 2. Save an audience with fit filters, then activate it
const audience = await client.intent.audiences.create({
  name: "Warehouse migration researchers",
  config: { topicIds, minScore: 70, filters: { hasBusinessEmail: true } },
});
await client.intent.audiences.update(audience.data.id, { status: "active" });

// 3. Wait for the snapshot, then read the strongest matches
await client.intent.audiences.waitUntilReady(audience.data.id, { timeoutMs: 600_000 });
const results = await client.intent.audiences.results(audience.data.id, { limit: 25 });
                        
                      

Where intent meets activity

The compound signal — researching your category and visiting your site — is available as its own set of operations, deduplicated by email hash:

QuestionOperation
Which people in our latest audiences visited our site?GET /v1/intent/audiences/website-visitors
Which members of one audience visited?GET /v1/intent/audiences/{id}/website-visitors
Which topics has this visitor matched over time?GET /v1/intent/audiences/website-visitors/{hashedEmail}/topic-history
What changed since the previous run?GET /v1/intent/audiences/{id}/dashboard
How has the audience moved across runs?GET /v1/intent/audiences/{id}/trends

The run-over-run dashboard is especially useful for agents. People added, people removed, and intent and topic movement are exactly the “what is new since yesterday” an agent needs to write a useful morning brief.

Chapter 06 / The context contract

The context contract: data an agent can’t misread.

The interface between your data and your model is a contract. Write it down: what each field means, what unknown looks like, where it came from, and how fresh it is.

Many “hallucinations” in go-to-market agents are contract failures, not model failures. The model was handed a record with a blank title and asked for a personalized email, so it invented a title. It was handed a score with no explanation, so it explained it. The fix is rarely a better prompt. It is a better envelope.

Seven rules for agent-ready context

  1. Separate facts by layer. Identity, activity, intent, and company go in distinct objects. Never merge them into one score before the model sees them.
  2. Make unknown explicit. Leadpipe returns empty arrays and null rather than placeholders. Preserve that, list the missing fields, and instruct the model never to infer them.
  3. Separate observation from inference. Facts come from Leadpipe; conclusions come from your agent. Store them in different places so a summary cannot be laundered back into a fact.
  4. Timestamp everything. lastSeenAt, the traversal asOf, and the Orbit run date. “Recent” is meaningless to a model without a clock.
  5. Keep provenance. Record which operation, pixel, segment, or run produced each fact, so every claim can be traced.
  6. Send only what the job needs. A routing agent needs company and activity, not phone numbers. Fewer fields means less risk and lower token spend.
  7. Use canonical names. Build on companyName, companyEmployeeCount, phonesDnc, and the other canonical fields. Legacy aliases exist for backward compatibility, not for new builds.

An agent-ready envelope

Here is one way to package a Leadpipe visitor for a model. It is an application-side shape you assemble from API or webhook data — not a raw Leadpipe response — and it makes every rule above visible to the model.

context.json — assembled by your application
                        
                          {
  "subject": { "emailHash": "5f2b…c91e", "asOf": "2026-10-21T09:00:00Z" },
  "facts": {
    "identity": {
      "name": "Jordan Lee",
      "jobTitle": "Director of Data Engineering",
      "seniority": "Director"
    },
    "company": {
      "companyName": "Northwind Analytics",
      "industry": "Software Development",
      "companyEmployeeCount": 420
    },
    "activity": {
      "sessions": 3,
      "pricingPageViews": 2,
      "lastSeenAt": "2026-10-20T16:42:00Z",
      "landingPage": "/product/orbit",
      "utmCampaign": "warehouse-migration"
    },
    "intent": {
      "audience": "Warehouse migration researchers",
      "runDate": "2026-10-21",
      "topics": ["Data Warehouse Migration", "Cloud Data Platforms"]
    }
  },
  "unknown": ["phones", "companyTotalRevenue"],
  "provenance": {
    "identity": "GET /v1/data?email=…",
    "activity": "GET /v1/data/visitors/{visitorId}/sessions",
    "intent": "Orbit audience run, 2026-10-21"
  },
  "policy": { "allowedAction": "draft", "channel": "email", "approver": "account owner" }
}
                        
                      
Chapter 07 / Interfaces

Interfaces: REST, SDK, MCP, and webhooks.

The same data, four ways in. Choose by who is driving: your backend, your application code, an agent at runtime, or an event.

InterfaceBest whenDriven byCovers
REST APIYour backend pulls visitors, sessions, segments, Orbit runs, or company lookupsYour codeIdentification, Orbit, IP to company, pixels, suppression, account
TypeScript SDKYou are building Orbit discovery and audiences into a TypeScript applicationYour codeOrbit topics and audiences, with polling helpers
MCP serverAn agent in Claude, Cursor, Codex, or another MCP client should explore and operateThe agent, at runtimeTopics, audiences, results, visitor data, pixels, account
WebhooksWork should start the moment a qualifying visitor is identifiedAn eventIdentified-visitor deliveries by segment, pixel, and trigger

MCP: give an agent the foundation directly

The official MCP server wraps the public Leadpipe APIs in a local server that MCP-compatible clients use over stdio. Install it with one command and your own API key.

Claude Desktop or Cursor — mcpServers configuration
                        
                          {
  "mcpServers": {
    "leadpipe": {
      "command": "npx",
      "args": ["-y", "@leadpipe/mcp"],
      "env": { "LEADPIPE_API_KEY": "sk_..." }
    }
  }
}
                        
                      
Codex CLI
                        
                          codex mcp add leadpipe --env LEADPIPE_API_KEY=sk_... -- npx -y @leadpipe/mcp
codex mcp list
                        
                      
What the agent can do
GroupTools
Topic discoverylist_topics, search_topics, get_topic_facets, get_topic_trend, compare_topics, get_topic_movers, analyze_website_topics
Audience builderget_audience_filters, preview_audience, query_audience, list_audiences, get_audience, create_audience, update_audience, delete_audience
Audience resultsget_audience_status, get_audience_results, list_audience_runs, get_audience_stats, export_audience
Visitor dataquery_visitor_data
Pixelslist_pixels, create_pixel, update_pixel
Accountget_account_status

The server also ships guided prompts — discover-audience-topics, operate-saved-audience, and investigate-visitor-data — plus documentation resources (leadpipe://docs/auth, leadpipe://docs/workflows, leadpipe://docs/data-api) the agent can read before it acts.

REST: the full surface from your backend

Every API uses the base URL https://api.aws53.cloud and an organization key in the X-API-Key header. Keys belong in a backend or secret manager — never in browser code or a pixel URL. Machine-readable OpenAPI specifications are published for identification and intent.

Pull identified visitors from your backend
                        
                          # Newest identified visitors, 50 per page
curl "https://api.aws53.cloud/v1/data?page=1" \
  -H "X-API-Key: $LEADPIPE_API_KEY"

# One person, with their session journey and summary
curl "https://api.aws53.cloud/v1/data?email=jordan.lee@northwind.example" \
  -H "X-API-Key: $LEADPIPE_API_KEY"

# Only visitors that match a saved segment
curl "https://api.aws53.cloud/v1/data/query" \
  -H "X-API-Key: $LEADPIPE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"segmentId": "YOUR_SEGMENT_ID", "page": 1, "limit": 50}'
                        
                      
OperationUse it for
GET /v1/dataIdentified visitors, newest activity first
GET /v1/data?email=…One person plus their session journey and summary
GET /v1/data/visitors/{visitorId}/sessionsPrivacy-bounded session summaries
POST /v1/data/queryVisitors matching a saved segment; reads existing data without resolution credits
GET /v1/data/company?ip=…Company context for an IPv4 or IPv6 address
/v1/intent/topics/…Orbit topic discovery, analysis, and saved topic lists
/v1/intent/audiences/…Orbit audiences, runs, results, stats, exports, and visitor overlap

Webhooks: event-driven agents

When the agent should start the moment someone is identified, use a webhook. Each one has an HTTPS destination, a segment, a pixel, and a trigger: First Match delivers once per qualifying visitor; Every Update keeps delivering as the record changes. Start with First Match on a narrow segment, make the receiver idempotent by upserting on the email hash, and watch delivery success before widening the segment.

Documentation your agent can read

Point a coding agent at the machine-readable entry points before it writes integration code: the documentation index, Leadpipe’s agents.txt operating brief, and the site index.

Chapter 08 / Architectures

Reference architectures.

Five patterns cover most of what teams build. Each names who does what: Leadpipe supplies facts, your system owns logic, an agent drafts, and a person approves where it matters.

Real-time visitor brief

A high-fit person is on your site, and sales should know why — now.

  1. Leadpipe

    A First Match webhook fires for the “ICP + pricing page” segment.

  2. Your system

    The receiver upserts on emailHash and fetches session summaries.

  3. Leadpipe

    Topic history for the same hash adds off-site research context.

  4. Agent

    Writes a five-line brief: who, company fit, what they read, what they research, a suggested angle.

  5. Person

    The account owner reviews it in Slack or the CRM and chooses the next step.

Guardrail The agent drafts; a person sends. Suppress customers and open opportunities before the webhook fires.

In-market prospecting

Find people researching your category who have not visited yet.

  1. Leadpipe

    An active Orbit audience refreshes on its daily run.

  2. Your system

    Reads the latest completed run, ordered by intent score.

  3. Agent

    Checks each person against your ICP notes and drafts a first touch that references the topic.

  4. Person

    Approves the batch; your outbound tool sends from its warmed domains.

Guardrail Cap daily volume, honor unsubscribes and phonesDnc, and keep the run date with every record.

Intent + visit priority queue

Rank the people showing demand both on and off your site.

  1. Leadpipe

    Returns audience members who also visited your site.

  2. Your system

    Joins recent activity and ranks by recency, pricing views, and demo views.

  3. Agent

    Explains each rank in one sentence, citing the facts behind it.

  4. Person

    Works the queue from the top.

Guardrail Rank on facts you can show. If the agent cannot cite why a record ranks high, it should not rank high.

Embedded intelligence for platforms

Your product offers visitor intelligence to your own customers.

  1. Your system

    Creates a pixel per customer through the API and appends partnerCustomerId.

  2. Leadpipe

    Returns that label in customAttribution on records and webhooks.

  3. Your system

    Routes each record to its tenant and never mixes tenants in one prompt.

  4. Agent

    Runs inside one tenant’s context, with only that tenant’s data.

Guardrail Tenant isolation lives in your code. Keep the organization key server-side.

Conversational RevOps analyst

A teammate asks questions of live data in Claude, Cursor, or Codex.

  1. Person

    “Which pixels are paused, and how did last week’s identified traffic compare?”

  2. Agent

    Calls get_account_status, list_pixels, and query_visitor_data through MCP.

  3. Leadpipe

    Returns live account data under that user’s own key.

  4. Agent

    Answers with numbers and states what it could not see.

Guardrail Read-only by default. Pixel and audience changes need explicit approval.

Chapter 09 / Guardrails

Guardrails that scale with autonomy.

The more an agent can do, the more the data foundation has to define what it may do. Build controls into the pipeline, not just the prompt.

Control what is collected and processed

ControlWhat it doesUse it for
Page targetingincludedPaths or excludedPaths on a pixel limits where collection runsKeep app, careers, and support routes out
Suppression rulesMatched visitors consume no credits and trigger no webhooks or integrationsCustomers, competitors, staff, and bad-fit industries
List replacementReplaces the whole suppression list in one transactionSync from your CRM or another source of truth on a schedule
Industry discoveryLists the industry values actually present in your visitor dataSuppress industries by values that really occur
SegmentsSaved rules that scope webhooks and queriesHand agents only qualified slices of traffic

Suppression accepts up to 25,000 rules per upload, and replacing the list from your CRM each night keeps “never contact our customers” true without anyone remembering to update it. Suppression governs future processing; it is not a deletion request and does not recall records already delivered.

Decide what the agent may do

AutonomyThe agentA personFits
InformSummarizes, ranks, and explainsDecides and actsResearch briefs, morning digests, analysis
DraftPrepares messages, CRM updates, and audiencesApproves each actionFirst-touch outreach, record updates
Act within limitsExecutes pre-approved actions under capsReviews samples and exceptionsRouting, internal alerts, audience refreshes

Start anything customer-facing at Draft. Move a workflow up a level only when its acceptance rate, measured in chapter 10, shows that people rarely change what the agent proposes.

Operate safely

  • Keys. Organization-scoped and server-side. Regenerating a key invalidates the previous one, so update every backend that uses it. Never send an sk_ key as a Bearer token.
  • Rate limits. Read the RateLimit-Limit, RateLimit-Remaining, and RateLimit-Reset headers and honor Retry-After on a 429. Do not reuse one endpoint’s allowance for another.
  • Retries. Bound retries on reads. Orbit run creation accepts an Idempotency-Key. Do not automatically retry company lookups after an uncertain response — each company result uses allowance.
  • Logs. Record method, path, status, and request ID. Strip keys and personal data from anything shared.
  • Contact rules. A populated contact field is not proof of deliverability or permission. Honor phonesDnc, unsubscribes, and each channel’s policy.

Geography and privacy review

Person-level identification is strongest on eligible US traffic. EU and UK traffic defaults to company level, and person-level identification there requires affirmative consent. Give your privacy reviewer the actual installation scope, contact fields, and destination workflow, and request Leadpipe’s current privacy documentation and terms. Review email, advertising, and sales uses separately with the teams that own them.

Healthcare and other regulated industries

Healthcare technology vendors, suppliers, and service organizations use Leadpipe for commercial work: account research, business development, and marketing to the organizations they sell to. The data is business context — professionals and the companies they work for, what they read on your site, and the topics they research. It is not a clinical record, and it should never be joined with patient data or used in a clinical workflow.

  • Define the commercial relationship the workflow serves before choosing data.
  • Exclude patient-facing pages and portals with page targeting.
  • Keep the agent’s outputs inside sales and marketing systems.
  • Review the workflow with your compliance team before launch.
Chapter 10 / Evaluation

Evaluate, then expand.

Judge the foundation by whether the next decision gets better — on your own traffic, in the destination you actually use.

Results from someone else’s traffic say little about yours. What matters is whether, for your ICP and your workflow, the records are actionable and the people who own the next step accept what the agent produces.

Measure the data

MetricCalculation
Work-email coverageRecords with a usable work email ÷ records reviewed
Phone coverageRecords with a phone value ÷ records reviewed
ICP fitRecords matching your ICP ÷ records reviewed
Actionable recordsRecords meeting both your fit and required-field criteria

Review a defined sample with the same pixel, period, and filters. For Orbit, run stats report field fill rates and the intent-score distribution for each completed snapshot.

Measure the agent

CheckPasses when
Unknown handlingGiven a record with a null job title, the agent never invents one
GroundingEvery claim in a brief traces to a field in facts
Duplicate deliveryThe same webhook payload twice produces one CRM record
Partial coverageReports carry the partial qualification whenever it is present
Acceptance rateMost drafts are approved without edits by the person who owns the action
Time to actionMinutes from identification to a reviewed next step keep falling

A 30-day rollout

WeekFocusDone when
1Collect. Install the pixel, set page targeting, and upload suppression for customers, competitors, and staff.Identified visitors appear and known noise does not
2Define. Save one ICP segment, build one Orbit audience, and choose one destination.A sample of records passes the data scorecard
3Draft. Turn on one architecture in Draft mode and review every output. Tune the contract and prompt.The agent passes the unknown-handling and grounding checks
4Decide. Score data and agent metrics with the people who use the output.You expand, adjust, or stop on evidence
Appendix A / Field reference

The fields an agent sees most.

Canonical names, the layer each belongs to, and how to read it. The generated API reference holds the complete schema.

FieldLayerHow to read it
emailIdentityNormalized primary email; the source of the hashes
emailHashIdentityLowercase SHA-256 of email; the cross-system join key
emails / businessEmails / personalEmailsIdentityArrays; empty when no values are available
phonesIdentityPhone numbers; no phone hashes are generated
phonesDncIdentityDo-not-call status: true, false, or null when unavailable
jobTitle / seniority / departmentIdentityRole context for qualification and routing
companyName / industryCompanyEmployer and industry; industry also drives suppression rules
companyEmployeeCount / companyTotalRevenueCompanySize signals; nullable
sessions / pageviewsActivityEngagement counters
pricingPageViews / demoPageViewsActivityHigh-intent page counters
firstSeenAt / lastSeenAtActivityRecency boundaries for the visitor
landingPage / visitedPages / referrerActivityJourney context
utm* / gclid / fbclid / bingClickId / linkedinClickIdActivityCampaign and ad-click attribution
customAttributionActivityYour own labels, passed through the pixel URL
meta.asOfContractFrozen traversal boundary; include it in agent context
meta.coverage.partialContracttrue when the window is not fully covered
Session versionContractChanges when a session summary changes; use for change detection
Orbit runIntentA dated snapshot of an audience; the unit to cite
minScore / topic overlapIntentThresholds that make an audience narrower and stronger
Appendix B / Questions

Questions teams ask first.

What is a data foundation for agentic AI?

It is the layer of facts an AI agent reasons over before it acts: who a buyer is (identity), what they did on your properties (activity), what they research across the web (intent), and which company they belong to — delivered in a shape the agent cannot misread, through interfaces it can call, under rules that define what it may do.

Why not give the agent a contact database?

A contact database knows who exists. It does not know who is evaluating you right now. Identity resolved from your own site, combined with person-level intent from Orbit, tells an agent who to prioritize and why, with facts it can cite.

Should I use MCP, the SDK, or the REST API?

Use MCP when an agent in Claude, Cursor, Codex, or another MCP client should explore and operate at runtime. Use the REST API or the TypeScript SDK when your own code controls the workflow, and webhooks when work should start the moment a visitor is identified. Many teams prototype with MCP and run production on the API.

How do I stop an agent from inventing data?

Give it an explicit contract: facts separated by layer, a list of unknown fields it must never fill, timestamps, and provenance. Then test it on records with missing fields and fail any output that contains a claim you cannot trace to a fact.

Does Leadpipe work outside the United States?

Yes. IP to company returns company context for IPv4 and IPv6 addresses, so international traffic can route to the right account. Person-level identification is strongest on eligible US traffic; EU and UK traffic defaults to company level, and person-level identification there requires affirmative consent.

Can healthcare organizations use this data?

For commercial workflows, yes: account research, business development, and marketing to organizations. The data is business context, not a clinical record, and it should never be combined with patient data.

How do I try it?

Start a free trial — 7 days or 500 profiles, whichever comes first, with no card — install the pixel, and follow the 30-day rollout in chapter 10.

Build with Leadpipe