Public alpha · available now

The customer-context layer
for AI agents and humans.

Connect every customer data source once. Get one real-time, identity-resolved profile per contact — ready for any LLM, in a secure, privacy-compliant way.

For teams running customer-facing ops with AI.
resolved_profile.json UNIFIED
JR
Jane Reyes · Senior PM
acme.com · fintech · 240 ppl
ctc_01H7K4…
hubspot deal_stage = trial · evaluation
gmail last_reply = onboarding · 1d ago
stripe plan = trial · 14d remaining
tracker visited /pricing · 3× this week
Claude · pathbound MCP
you Brief me on [email protected] — anything I should know before the call?
get_contact { email: "[email protected]" } 200 · 312t · 480ms
claude Senior PM at Acme (fintech, 240). In trial · evaluation, 14d left. Visited /pricing 3× this week, replied to onboarding yesterday. High intent — lead with billing, not features.
The problem

Agent quality is bottlenecked by context.

The model isn't the hard part. The data is. It lives in 6–10 tools, updates constantly, models the same person differently in each. Stitching it into one real-time, LLM-ready profile takes weeks to build and breaks the moment a vendor changes their schema.

We built it so you don't have to.

Wherever your AI lives

One layer in the middle. Anything on either side.

Any MCP-compatible client or REST caller on top. Practically anything that holds customer data on the bottom. Pathbound is the layer that makes them speak the same language.

Upstream · 01 Anything that speaks MCP or REST
Claude ChatGPT Gemini Grok Mistral Perplexity Cursor
n8n n8n {} LangChain ▮▯ Vercel AI SDK Zapier Agents Raycast AI </> Custom backend + any MCP client
Pathbound
the customer-context layer
01 Collect 02 Resolve 03 Prepare 04 Protect
Downstream · 02 Connect via OAuth, webhooks, JS tracker
HubSpot Salesforce Pipedrive Zoho CRM Intercom Zendesk Gmail Resend SendGrid Mailchimp
Apollo LinkedIn Slack Stripe Chargebee Postgres BigQuery Zapier Webhooks Pathbound Tracker + 40 more integrations

// Switch the agent stack later — or add a new CRM tomorrow — without rebuilding the pipeline. The layer in the middle stays the same.

How it works

From silo to LLM, in four stages.

01 · Collect

Click-through OAuth, every silo.

Click-through OAuth for HubSpot, Pipedrive, Intercom, Apollo, Gmail, and more — plus a drop-in JavaScript tracker for first-party website and product events. New tool in your stack? We ship integrations in days, not quarters.

02 · Resolve

One person. One profile. Sub-second.

Real-time identity resolution across every connected source. Same person as anonymous visitor → trial signup → paid account → support ticket → renewal — all collapsed to one profile, one ID, sub-second. Deterministic + probabilistic merge with full audit trail. Fingerprint-based recovery when cookies are cleared.

03 · Prepare

Output structured for LLMs.

Token-efficient. Hierarchical. Recency- and trajectory-aware. Verbose fields collapsed, redundant timeline entries deduped. The same prepared payload works across any model, any framework, any agent platform.

04 · Protect

PII redacted before it leaves.

PII redacted on request, before the payload leaves our infrastructure for a third-party model. GDPR / CCPA metadata on every record. Right-to-be-forgotten endpoint. Full read-audit log. Safe to ship to any model.

What this looks like

Two surfaces: MCP and REST.

Same data, same identity resolution, same response shapes — pick whichever fits your stack.

MCP

Natural-language access for any MCP-compatible client.

Claude · pathbound MCP connected
you
Tell me about [email protected] — recent activity, deal stage, any risk signals.
get_contact { email: "[email protected]" } 200 · 312 tokens · 480ms
contactJane Reyes · Senior PM
companyacme.com · fintech · 240
stagetrial · evaluation
get_contact_timeline { contact_id: "ctc_01H..." } 5 events · 480ms
trackervisited /pricing · 2× today
gmailreplied to onboarding · yesterday
hubspotdeal_stage → evaluation
claude
Jane is a senior PM at Acme (fintech, 240 employees), currently in trial · evaluation. She visited /pricing twice today, submitted a demo-request form, and replied yesterday to the onboarding email with technical questions about billing.
signal Active engagement, no risk indicators. Fast to respond.
claude_desktop_config.json
{
  "mcpServers": {
    "pathbound": {
      "url": "https://mcp.pathbound.ai",
      "headers": {
        "Authorization": "Bearer sk_live_..."
      }
    }
  }
}
Tools out of the box · read-only
get_contactfull unified profile
get_contact_timelinecross-system activity
list_contactssearch and filter
get_companyaccount-level context
batch_get_activitybulk profile + timeline

…and 7 more. full reference →

REST

Plain HTTP for everything else.

For services that don't speak MCP, agent platforms that prefer HTTP tools, or any custom backend. Bearer-auth, JSON in, JSON out.

GET /v1/contacts/:id GET /v1/contacts/events/:id GET /v1/contacts?search= POST /v1/batch/activity POST /v1/aggregate
GET /v1/contacts/events/:id
curl "https://api.pathbound.ai/v1/contacts/events/ctc_01H..." \
  -H "Authorization: Bearer sk_live_..."
200 OK · application/json RESPONSE 312 tokens · 480ms
{
  "contact_id": "ctc_01H...",
  "email": "[email protected]",
  "company": { "domain": "acme.com", "industry": "fintech", "employees": 240 },
  "lifecycle_stage": "trial",
  "last_seen_at": "2026-04-29T14:02:11Z",
  "summary": "Senior PM evaluating Acme's billing integration. Replied to onboarding yesterday; visited /pricing 2× today.",
  "events": [
    { "type": "page_view",         "source": "tracker",  "at": "…14:02:08Z" },
    { "type": "form_submission",   "source": "tracker",  "at": "…14:01:42Z" },
    { "type": "email_reply",       "source": "gmail",    "at": "…09:30:00Z" },
    { "type": "deal_stage_change", "source": "hubspot",  "at": "…16:00:00Z" }
  ],
  "_meta": { "tokens": 312, "pii_redacted": false, "freshness_ms": 480 }
}

Bearer-auth · 99.99% SLA · /v1/contacts /v1/contacts/events /v1/batch/details /v1/aggregate full reference →

First-party events

Every event from your website and app — tied back to a real customer, even the ones from before they signed up.

The pricing-page visits, the half-watched demo, the blog posts that brought them in. All of it stitched onto the contact the moment they sign up — so your agent can answer "why is Jane here, and how warm is she?" with real evidence.

Anonymous visitor_a91c…
14 days · 11 events
14d ago /blog/customer-context-for-agents organic · google
10d ago /docs/identity-resolution 3m 12s
6d ago /pricing scroll 100%
6d ago video · product demo 75%
3d ago /customers/atlas-fintech case study
2d ago /pricing return · 2×
2d ago click · "Compare plans" cta
Signup today · 09:14 form · [email protected]
JR
Jane Reyes · Senior PM
acme.com · fintech · 240 ppl · ctc_01H…
LIVE
Summary · prepared for LLM

Senior PM evaluating Acme's billing integration. Visited /pricing 3× in the past week, watched 75% of the demo, read the Atlas fintech case study. High intent, late-funnel — best reached with pricing-context outreach, not top-of-funnel content.

Intent High · 0.86
Stage trial · evaluating
First touch 14d ago
Pricing intent — 3 visits to /pricing, last one 2 days before signup, scroll-depth 100%.
Compared us to alternatives — viewed case study, clicked "Compare plans".
Technical evaluator — read /docs/identity-resolution for 3m before pricing.
JSON · ready for any LLM or export 312 tokens · 1.4kb
{ "contact_id": "ctc_01H…", "email": "[email protected]", "name": "Jane Reyes", "title": "Senior PM",
  "company": { "domain": "acme.com", "industry": "fintech", "employees": 240 },
  "lifecycle_stage": "trial", "intent_score": 0.86, "first_seen_at": "2026-04-15T…",
  "summary": "Senior PM evaluating billing integration. /pricing 3×, demo 75%, read Atlas case study. High intent, late-funnel.",
  "signals": ["pricing_intent", "compared_alternatives", "technical_evaluator"],
  "events": [
    { "type": "page_view", "path": "/blog/customer-context", "at": "…14d", "resolved_from": "visitor_a91c" },
    { "type": "page_view", "path": "/pricing",                "at": "…6d",  "scroll_depth": 1.0 },
    { "type": "video",     "name": "product_demo",         "at": "…6d",  "progress": 0.75 },
    { "type": "page_view", "path": "/pricing",                "at": "…2d",  "visit_count": 2 },
    { "type": "signup",    "email": "[email protected]",        "at": "…now", "merged_visitors": 1 }
  ],
  "_meta": { "tokens": 312, "pii_redacted": false, "freshness_ms": 480 }
}
Resolution cookie · device fingerprint
Latency sub-second — the next MCP query already sees the resolved profile
Backfill retroactive — anonymous events are moved, not duplicated, onto the contact
Setup · two steps

Drop a script. Set a cookie. That's it.

No SDK to install, no .identify() to call, no event taxonomy to design. The tracker auto-captures what matters; the cookie is the identity signal.

01 Drop the tracker on every page

One line in <head>. Page views, clicks, form submits, scroll depth, video milestones — all auto-captured for every visitor.

index.html · <head> TRACKER
<script async src="https://tracker.pathbound.ai/tracker.js"></script>
page_view clicks form_submission video scroll_depth custom events
02 Identify the user when they log in

Set one cookie with your internal user ID. The tracker reads it from then on and binds every event — past and future — to the unified profile.

app.js · after login IDENTIFY
// In your app, after login or signup:
document.cookie =
  "pathbound_external_contact_id=user_4f3a...;"
  + " path=/; max-age=31536000; SameSite=Strict; Secure";
no SDK call no race conditions retroactive merge

DNT honored · HTTPS-only · no third-party cookies · content-stable fingerprint (not cross-site identifying) · full audit trail of every merge.

Try it on your own data

Within five minutes, your agent is querying real customer context.

Sign up. Drop in the tracker snippet. Connect one CRM. Point your MCP client at mcp.pathbound.ai.