HubSpot Deals AEO Attribution: rolling AI citations up to revenue

How Lantern propagates AI source data from Contact to Deal so closed-won revenue rolls back to specific AI engines, prompts, and cited URLs — the attribution model CFOs accept.

Updated 2026-04-20 · HubSpot integration · ~6 min read

What this does

Most AEO tools stop at the Contact object. Lantern continues the chain to the Deal — because HubSpot's revenue reporting, MRR dashboards, and pipeline attribution all live on Deal, not Contact. When a contact with ai_source=chatgpt becomes the primary contact on a deal, Lantern copies ai_source, ai_prompt, and ai_engine onto the deal and tracks attribution weight using the chosen model (first-touch, last-touch, or linear).

How Lantern fits

The 'Lantern: Deal AEO Rollup' workflow fires on deal creation and on deal stage changed. It looks at the deal's primary contact (or all associated contacts for multi-touch), reads their ai_* properties, and copies them to the deal with the appropriate attribution weight. When the deal hits closed-won, Lantern writes ai_attribution_amount = deal amount * attribution weight to the deal — this is the number the monthly ROI report sums on.

Setup preview

Configuration choices during install: (1) attribution model (first-touch by default, linear for multi-stakeholder deals, last-touch for short cycles). (2) lookback window (90 days standard, 180 days for long-cycle B2B). (3) multi-contact behavior (primary only, or weighted across all AI-touched contacts). (4) deal amount source (deal.amount or deal.hs_arr). Each choice is adjustable post-install without data loss — the underlying attribution events are stored with engine/prompt granularity.

Deal attribution calculation (linear model pseudocode) · javascript
// Lantern deal attribution rollup — linear model
// Runs on deal stage = closed-won

function attributeDeal(deal) {
  const contacts = deal.associations.contacts;
  const aiTouched = contacts.filter(c => c.properties.ai_source);

  if (aiTouched.length === 0) return { attributed: 0 };

  // Each AI-touched contact gets equal weight in linear model
  const weightPerContact = 1 / aiTouched.length;

  const byEngine = {};
  aiTouched.forEach(c => {
    const engine = c.properties.ai_engine;
    byEngine[engine] = (byEngine[engine] || 0) + weightPerContact;
  });

  const totalAttributed = deal.properties.amount * (aiTouched.length / contacts.length);

  return {
    deal_id: deal.id,
    ai_attribution_amount: totalAttributed,
    ai_attribution_breakdown: byEngine,
    ai_attribution_model: 'linear'
  };
}

Where this fits in the bigger picture

This page describes one specific surface inside HubSpot where Lantern's AEO pipeline attribution plugs in. The full integration stitches together across HubSpot Contacts, Deals, Workflows, Lists, Reports, Forms, CMS, and the Marketing/Sales/Service Hub stack. If you're evaluating where to start, the comparison hub has side-by-side comparisons of Lantern against Profound, Scrunch, Peec AI, AthenaHQ, and HubSpot's own AEO product — scored on the dimensions that matter for a CMO buyer (CRM integration depth, reporting quality, prompt-scaling economics).

If you're about to walk this work into a renewal review or budget conversation, the CFO's Guide to AEO Budget Defense has the memo template, the five-slide deck structure, the attribution-math cheat sheet, and the three most-common CFO objections with counter-arguments. It's the long-form companion that translates the technical HubSpot setup on this page into a defensible dollar number for finance.

FAQ

Common questions.

What if a deal has multiple AI-touched contacts across different engines?
Linear attribution splits the credit proportionally (2 contacts from ChatGPT + 1 from Perplexity on a $30k deal = $20k ChatGPT, $10k Perplexity). First-touch credits only the earliest ai_first_seen_at contact. You pick the model in install settings; you can change it and Lantern re-runs historical attribution.
Does this work with HubSpot's native revenue attribution report?
Yes and no. Lantern's ai_attribution_amount is a custom deal property, so it's visible in HubSpot's revenue attribution reports when you add it as a dimension. But HubSpot's native attribution report doesn't know about AI engines — Lantern's monthly PDF does.
How does Lantern handle deals that close-won before the AI touchpoint?
It doesn't attribute them. Attribution requires ai_first_seen_at to be earlier than the deal's createdate. This prevents spurious attribution where AI engines cite your brand after a deal was already in motion — a common error mode in naive AEO attribution.
Can I exclude certain deal pipelines from AEO attribution?
Yes. In install settings, you pick which pipelines to attribute (default: all sales pipelines). Renewal and internal pipelines are typically excluded. You can also filter by deal type — e.g. only 'New Business' gets AEO attribution.

Lantern ships this as a one-click HubSpot install.

Instead of hand-wiring properties, workflows, and tracking snippets, Lantern installs the full HubSpot integration in under 30 minutes — then ships the monthly AEO pipeline ROI report your CFO signs off on. $99/mo Starter or Enterprise. 14-day free trial.

Start free trial