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 · CMO Pete Wermter, CISO Greg Neville, Erik Kangas (founder) Draft v2 · 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

An MCP server on Cloudflare Workers exposes each source to Claude as a set of scoped, read-only tools - no bulk data storage anywhere in the path. Per LuxSci's own direction (Greg Neville's review), this live-orchestration design is the only path we're building: no data warehouse, no persisted PII, and none of the added BAA/HIPAA governance overhead a store-and-serve model would introduce.

Live orchestration

Claude CF Access login MCP · Workers Source APIs (service account)

No bulk data storage. Every request is gated by a Cloudflare Zero Trust (Access) login first, so the MCP layer knows which SDR/BDR is asking - then tools call each source API on demand using a single scoped service account per source; Claude composes the signals per query at runtime.

Why this works - smallest stored-data footprint, easiest CISO path, fastest to ship.
Known limits - API rate/credit limits, per-query latency, no long-term trend history.
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
Not in Phase 1

Day-over-day trend

Without any persistence layer, the agent can't answer "what changed since yesterday" or track intent over time - every query is answered fresh from the live APIs. A daily digest needs a small snapshot/cache, which this no-warehouse design intentionally excludes.

requires persistence · Phase 2 discussion
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, per LuxSci's direction. Data is queried on demand and never persisted - eliminating the BAA/HIPAA governance overhead a stored-PII model would introduce.
  • 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.
  • Hosted entirely in LuxSci's Cloudflare account. The Workers MCP server and its Cloudflare Access (Zero Trust) login policy live in LuxSci's own Cloudflare account from day one, so LuxSci owns and administers the login policy directly. Access is expected to federate with LuxSci's Google Workspace SSO (to confirm - not a blocker either way).
  • Service-account access to sources, logged per user. The Workers MCP server holds one scoped service account per source (GA4, Salesforce, ZoomInfo) rather than individual per-person credentials; every call is tagged with the Access-authenticated user. Call logs & audit trail use Cloudflare Workers' built-in observability/logging by default.
  • 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.
GUARDRAILS & WORST CASE

What happens if something goes wrong

Every tool is guarded against misuse, and because Phase 1 is read-only end-to-end, the ceiling on any failure mode below is a wrong or incomplete answer in the conversation - never a wrong write, deletion, or irreversible action against LuxSci's systems.

Tool allowlisting

Claude can only call the specific, scoped read-only functions listed above - no arbitrary API access, and no write or delete tool exists in Phase 1. Worst case: a malicious or confused prompt still can't modify or delete data, because the capability isn't there to call.

Injection-resistant data handling

Content returned from GA4, Salesforce or ZoomInfo (a note field, a company name) is treated as untrusted data, not instructions - the skill layer strips embedded directives before Claude reasons over it. Worst case: a poisoned CRM note or web session can't hijack the agent into unintended actions.

Rate & credit limits

GA4, Salesforce and ZoomInfo calls are capped per session and per day at the MCP layer. Worst case: a runaway loop or over-eager query pattern can't exhaust API budgets or trigger a source-side lockout.

Capped result sets

Every read tool returns a capped page size (e.g. top 50 accounts, not a full-table dump) - separate from the rate/credit caps above. Worst case: someone tries to reconstruct a full CRM/analytics export via many small reads instead of one big one; capped result sizes make that impractical, not just disallowed. (Cap sizes here are placeholders pending LuxSci's input.)

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