How to set up AEO source properties in HubSpot

Three custom properties (ai_source, ai_first_engine, ai_last_engine) plus the workflow logic to populate them. The data model that makes every other AEO report possible.

Updated 2026-04-20 · How-to guide · ~7 min read

Before you can track ChatGPT referrals or compute AEO ROI, you need a clean data model. HubSpot's default Original Source / Drill-Down 1 / Drill-Down 2 fields aren't structured for engine-level AEO reporting. Here's the property schema and the workflow that populates it correctly across first-touch and multi-touch.

Required tools

  • HubSpot Marketing Hub Professional (workflows + custom Deal properties)
  • Property creation permissions in your HubSpot portal
  • A naming convention written down (e.g. all AI properties prefixed with ai_)
  • Optional: Lantern, which provisions all 7 properties + workflows during onboarding

The steps

1

Create the ai_source property on the Contact object

Settings > Properties > Contact > Create. Field type: Dropdown select. Options: chatgpt, perplexity, claude, gemini, copilot, you, brave, none. Default: none. Group: Marketing. This is the single source of truth for which AI engine first touched the contact.

2

Create ai_first_engine and ai_last_engine for multi-engine attribution

Same dropdown options as ai_source. ai_first_engine captures the engine on first touch (locked). ai_last_engine updates on every subsequent AI-referred session. These two together let you do first-touch vs last-touch AEO comparisons later.

3

Create ai_first_prompt as a single-line text property

When Lantern or your monitoring tool detects which prompt the citation appeared in, write it here. Example value: 'best aeo tools for b2b saas'. This is the property your CMO will sort by in 6 months when answering 'which prompts drove pipeline?'

4

Create the parallel three properties on the Deal object

deal_ai_source, deal_ai_first_engine, deal_ai_first_prompt. Same field types. These are populated via workflow when a deal is created from an AEO-tagged contact (covered next step). Deal-level fields are what survives into your closed-won reports.

5

Build the population workflow: Contact created OR Original Source change

If utm_source contains chatgpt → set ai_source = chatgpt, set ai_first_engine = chatgpt (only if blank), set ai_last_engine = chatgpt. Repeat the branch for perplexity, claude, gemini, copilot. Else set ai_source = none.

6

Build the deal rollup workflow: Deal created → copy contact AI properties to deal AI properties

Workflow trigger: Deal created. Action: Get associated primary contact. Set deal_ai_source = contact.ai_source. Set deal_ai_first_engine = contact.ai_first_engine. Set deal_ai_first_prompt = contact.ai_first_prompt. Without this rollup, AI source data is invisible at the Deal level.

7

Validate with a test contact and test deal

Create a test contact with utm_source=chatgpt&aeo_prompt=test-prompt-123. Confirm ai_source populates, ai_first_engine locks. Convert the contact to a deal — confirm deal_ai_source carries through. If it doesn't, the deal workflow's 'Get associated' step is misconfigured (most common: 'all contacts' instead of 'primary contact').

Common mistakes

  • Using free-text properties instead of dropdown — leads to 'ChatGPT', 'chatgpt', 'Chat GPT', 'CHATGPT' all coexisting and breaking every report.
  • Forgetting the Deal-side properties — Contact-side data alone doesn't aggregate to ARR.
  • Letting ai_first_engine update on every touch instead of locking on first — destroys first-touch attribution.
  • Skipping the validation test — the deal-rollup workflow is the most fragile piece and silently fails 30% of the time on initial setup.

Where this fits in the AEO pipeline attribution stack

The steps above are one link in a longer chain. In order: you pick prompts to monitor, you track AI-referred sessions, you tag contacts in your CRM, you roll attribution up to the Deal object, you report pipeline dollars to the CFO. If you skip any link, the chain breaks and the number you quote to finance can't be defended in an audit.

If you're still evaluating which tool to run this workflow on, Lantern's AEO tool comparison hub has honest head-to-head pages for 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 budget review, 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 to this how-to and was written for the renewal conversation specifically.

The operational rhythm that works: run the steps above once to set up, then review the output monthly in a 15-minute standing meeting with your Head of Growth and RevOps lead. Quarterly, re-audit your prompt list, your content backlog, and your attribution lookback window. Annual: present the full-year AEO ROI trend to the board. That cadence is what separates teams who ship an AEO dashboard once from teams who run AEO as an ongoing budget-defensible channel.

FAQ

Common questions.

Why not use HubSpot's built-in Source fields?
HubSpot's Original Source has 8 hardcoded categories (Organic Search, Paid Search, Email, Social, Direct, Other, Offline, Referrals). AI traffic doesn't have its own bucket and can't be added. Drill-Downs are free-text and break aggregation. Custom properties are the only clean path.
Should I add Bing's Copilot to the dropdown?
Yes — Copilot is now a meaningful engine for enterprise B2B (Microsoft 365 distribution). Include 'copilot' in your dropdown. Same for 'you' (You.com), 'brave' (Brave Search AI), and any agent-driven engines you see in your referrer logs.
Will these properties break our existing HubSpot reports?
No — they're additive. Existing reports keyed on Original Source, Lifecycle Stage, etc. continue to work. The new properties only show up when you explicitly add them to a report.
Can I retro-populate properties for historical contacts?
Partially. If you have historical UTM data, you can run a one-time CSV import. If you only have referrer-string data, you can rebuild some of it from your web analytics export. Anything older than 90 days is usually too lossy to be worth it.

Lantern ships this as a monthly report.

Instead of hand-wiring the steps above, Lantern installs the HubSpot properties, the JS snippet, and the pipeline attribution workflow in under 30 minutes — then ships the monthly ROI report your CFO signs off on. $99/mo Starter or Enterprise. 14-day free trial.

Start free trial