LuxSci × VertoDigital
SOLUTION ARCHITECTURE

A buying-signal agent that lives inside Claude.

Three data sources - stitched at the account level via ZoomInfo Websights - feed a compliance-first orchestration layer that Claude queries in plain language - so LuxSci's SDR / BDR team can see the highest-intent accounts to reach out to, without a new portal to learn or bulk data to warehouse.

Prepared by VertoDigital For review · Pete Wermter, CISO Greg Neville, Erik Kangas (founder) Draft v1 · Jul 2026
Data sources

GA4

Website intent

Pricing & product-page visits, repeat sessions, high-intent events tagged on the site - sessions carry a Websights-resolved account ID as a custom dimension.

Analytics Data API v1

Salesforce

CRM & pipeline

Accounts, open opportunities, stage, owner, activity - queried inside the secure instance.

REST API · SOQL

ZoomInfo

Firmographics + intent

Company match, size & industry, buyer-intent topics, plus Websights visitor-to-company resolution for anonymous site traffic - intent-first querying to conserve credits.

Enrich + Intent + Websights API
Websights stitching. ZoomInfo Websights tags site sessions client-side and resolves the visiting company in real time, writing an account ID into GA4 as a custom dimension - so GA4 session/behavior data and ZoomInfo firmographic + intent data share a join key before either reaches the MCP layer.
accessed via MCP tools
Orchestration · Cloudflare

The MCP layer - hosted on Cloudflare Workers

(one decision to confirm)

An MCP server on Cloudflare Workers exposes each source to Claude as a set of scoped tools. It can proxy the source APIs live with no storage - or sit in front of a warehouse that persists & scores signals. Option A Live Orchestration is our recommended, compliance-first starting point.

Recommended
OPTION A

Live orchestration

Claude MCP · Workers Source APIs

No bulk data storage. Tools call each API on demand; Claude composes the signals per query at runtime.

Why we lead here - smallest stored-data footprint, easiest CISO path, fastest to ship.
Tradeoff - API rate/credit limits, per-query latency, no long-term trend history.
OR
OPTION B

Store & serve

original vision
Sources Warehouse MCP Claude

BigQuery (or Cloudflare D1/R2) persists raw events, computes an account-level intent score, serves aggregates.

Best when - you need historical trend, fast scoring, resilience to API limits.
Tradeoff - pipelines to build; stored PII triggers heavier BAA / HIPAA governance.
Hybrid path - store only GA4 events & the computed score for trend, call Salesforce & ZoomInfo live. Cloudflare Workers host the MCP either way, so we can move A → B without re-platforming.
MCP protocol
Interface

Claude - the enterprise app, no new portal

plain-language, MCP-powered

SDRs / BDRs ask questions in the Claude they already use. Claude calls the MCP tools, reasons over the signals, and returns the accounts worth acting on. Phase 1 is read-only - insights stay in the conversation; nothing is written back to source systems yet.

"Which healthcare orgs hit pricing 2+ times this week?"
"Score my top 10 open accounts by combined intent."
"Draft HIPAA-aware outreach for [Account]."
grounded by the brain
The brain · skills

The "brain" - skills & rules as Markdown

multi-tool flows, not one big prompt

We package repeatable work as skills - Markdown files holding the steps, ICP definitions, scoring logic and brand rules Claude follows. Each skill chains several scoped MCP tools rather than relying on one long prompt.

Skill 01

Account intent scoring

Blends website company-based tracking, ZoomInfo intent topics and Salesforce stage into a 0–100 account score against the ICP.

get_account_sessions · get_intent_topics · query_accounts
Skill 02

Daily in-market digest

A scheduled task that surfaces each morning's top-intent accounts and what changed since yesterday.

scheduled task · score → rank → summarize
Skill 03

HIPAA outreach drafter

Drafts compliant, on-brand first-touch outreach for a chosen account, grounded in its live signals.

enrich_company · brand rules · get_account_activity
MCP TOOLS & ENDPOINTS

What Claude can call, per source

Website trackingWeb analytics API
get_intent_events() · get_account_page_views() · get_repeat_visits() · get_account_sessions() · get_named_accounts()
SalesforceREST · /query (SOQL), /sobjects
query_accounts() · get_open_opps() · get_account_activity()
ZoomInfoEnrich · Intent · Search · Websights API
get_intent_topics() · enrich_company() · search_accounts() · get_websights_matches()

Each tool is scoped & read-only in Phase 1. ZoomInfo calls lead with intent topics to keep credit usage low. Websights resolves visitor → company client-side and writes the account ID back into GA4, so get_account_sessions() and get_websights_matches() join on the same key - e.g. get_named_accounts() returns "Acme Health Corp - 3 sessions, pricing page" instead of an anonymous visitor count.

SECURITY & GOVERNANCE

Built for the CISO conversation

  • No bulk warehousing (Option A). Data is queried on demand and not persisted, minimizing the stored-PII footprint.
  • Salesforce stays in the secure instance. External access is a known blocker - we work within LuxSci's boundary, no data leaves it.
  • CISO + founder sign-off. Greg Neville reviews governance; Erik Kangas approves system access before any credentials are provisioned.
  • Scoped, auditable tools. Each MCP tool is least-privilege and read-only in Phase 1; access is per-user via the enterprise Claude app.
  • Websights resolves companies, not individuals. The GA4 stitching key is an account/domain match - no visitor-level PII is introduced into GA4 or the MCP layer.
Phase 2 · later

Future growth options once Phase 1 launches

Write-back to Salesforce. Push the intent score & signals onto the account record for the whole team.
Feed paid-ads ABM. Send top in-market accounts to the ad platforms for account-based targeting.
Content agent. A second agent that drafts on-brand assets from the same brain.

VERTODIGITAL × LUXSCI · BUYING-SIGNAL AGENT · DRAFT ARCHITECTURE FOR REVIEW