How do I combine "how did you hear about us?" answers with analytics data?
Short answer
Store the survey answer on the same record as the analytics-recorded channel, then report both side by side rather than picking a winner. The disagreement between them is the finding, because analytics is accurate about sessions it saw and blind to awareness that never produced one. Use the survey to derive a correction factor for your Direct and branded-search cohorts, and apply that factor rather than overwriting either data source.
Design the question so the data is usable
Most survey data is useless because of how the question was built, not because self-reporting is unreliable.
Name the AI surfaces explicitly. ChatGPT, Perplexity, Gemini, and Claude as their own options. Buried inside "other," they'll be under-selected by a wide margin, and AI is the specific gap you're trying to size.
Use a closed list plus one free-text field. Free text alone gives you 400 unique spellings and no analysis. A closed list alone hides sources you didn't anticipate. Review the free-text entries quarterly and promote recurring answers into the list.
Ask at signup, not later. Recall degrades fast, and post-purchase surveys over-index on the last touch, which is the thing analytics already captured correctly.
Make it required but single-click. Optional fields get 20 to 30% completion, which is too thin to correct anything.
Store it where it can be joined
The survey answer needs to sit on the same record as the analytics channel, or you'll never be able to compare them.
On the contact record, store: survey_source from the question, first_source and first_landing_page from your first-touch cookie, and last_source from the last-touch cookie. Carry all four through to the opportunity so the comparison survives to revenue.
If your forms don't pass a landing page today, that's the prerequisite. See How do I map organic landing pages to the customers they eventually produce?.
Build the reconciliation table
This is the actual deliverable. One row per analytics channel, one column per survey answer, cells containing customer counts.
| Analytics said | Survey said Organic | Survey said AI assistant | Survey said Word of mouth | Survey said Paid |
|---|---|---|---|---|
| Organic Search | Agrees | Correction | Correction | Correction |
| Direct | Correction | Correction | Correction | Correction |
| Paid | Correction | Correction | Correction | Agrees |
| AI Assistant | Correction | Agrees | Correction | Correction |
The diagonal is agreement. Everything off-diagonal is a correction, and the two bolded cells are where the money is: customers analytics filed as Organic or Direct who say they found you through an AI assistant.
That cell is your AI-influenced cohort, and it's invisible in every dashboard you currently run.
Turn disagreement into a correction factor
Don't overwrite analytics with survey data. Analytics is accurate about what it observed, and survey data is thin and self-reported. Derive a factor instead.
If 24% of customers whose recorded channel was Direct name an AI surface in the survey, your AI-influenced Direct factor is 0.24. Apply it to your total Direct cohort to estimate AI-influenced revenue, then report that estimate on its own line clearly labelled as derived.
Weight the survey at 60 to 70% confidence rather than treating it as ground truth, and recompute quarterly. The factor moves as buyer behaviour shifts.
Why it moves in one direction: our own state of AI search research, covering more than 22,000 answers, found Google AI Mode returns a citation-rich answer in 97.4% of matched B2B queries and Perplexity in 93.2%, while Pew Research found that when an AI summary appears, users click a source link in only about 1% of visits. High exposure with low click-through is precisely the profile that produces survey answers analytics can't corroborate.
Sample-size discipline
You need 100 responses before the reconciliation means anything, and 300 before you'd defend a correction factor in a board meeting. Below 100, report the raw cross-tab and say the factor isn't yet stable.
Segment carefully, too. A factor computed across all customers can hide the fact that AI influence is concentrated in one segment, so break it by deal size or by product line once volume allows.
How Analyze AI closes the loop
Analyze AI covers the half of this problem that survey data alone can't validate: whether the AI surfaces your customers are naming are actually citing you.
A survey answer saying "ChatGPT" is a claim. Prompt tracking tells you whether ChatGPT was in a position to make that recommendation, which turns an unverified self-report into a corroborated one. When 24% of your Direct customers name ChatGPT and your tracked commercial prompts show a rising ChatGPT citation rate over the same period, those two facts support each other in a way neither does alone.
The Prompts surface is where you check that, prompt by prompt and surface by surface.

For the reconciliation itself, an agent can assemble it monthly rather than leaving it as a quarterly spreadsheet nobody rebuilds. A workable chain uses the CRM read surface and a branch:
Start (schedule, 1st of month) → HubSpot Search Contacts (created last 90 days, with survey and first-touch fields) → Conditional (if response count under 100, output raw counts only and skip the factor) → share-of-voice recipe (30d) → GA4 AI Traffic Overview → Prompt LLM (build the cross-tab, compute correction factors per channel, corroborate against citation trend) → Excel export → Send Email to CMO.
The Conditional is the part worth copying. Building the sample-size gate into the agent stops a thin month producing a confident correction factor that ends up in a board deck, which is the specific way this analysis usually goes wrong.
HubSpot's node surface covers 26 operations including search, upsert, note creation, and custom behavioural events, so if you'd rather write the derived factor back onto the contact record than export it, that's a single additional node.
FAQ
Related answers
- How can I estimate how much AI-influenced traffic is hidden in my Direct channel?
- How can I build credible evidence that AI search is sending customers when there is no referrer?
- How do I measure a buyer who found us in an AI answer but came back later through Google?
- What do I report when the CEO wants one attribution number but the evidence is probabilistic?
Want to corroborate survey answers against real citation data? Start a free Analyze AI trial and track the prompts your customers say they used.
