# "How did you hear about us" setup

From Mark Barrera's Field Note "How much AI-driven demand does referral tracking miss?" at https://markbarrera.com/field-notes/how-did-you-hear-about-us-ai-attribution

Use this to collect self-reported discovery, group the answers and report them next to your tracked channels.

## 1. The question

| Part | Setup |
|---|---|
| Wording | How did you first hear about us? |
| Format | One open text box. No dropdown and no example answers under the box, because a listed example works like a dropdown option and people pick the closest one. |
| Required or optional | Required in a step every customer completes. Optional on any form where a required field would cost sign-ups. |
| Second source | On the first sales call, in the first five minutes, the rep asks where they first heard about you. If they mention an AI tool, the rep asks what they asked it. The answer goes in its own field, separate from the form answer. |
| Stored with each answer | Account ID, the date answered, where it was asked and the original words |

## 2. Where to ask it

Placement decides who answers, so pick it for the decision you need to make.

| Where you ask | Who answers | Use it for |
|---|---|---|
| Before sign-up | Everyone who starts, including people who never qualify | Discovery across all sign-ups. Expect more answers to group and some junk. |
| A step every customer completes | Every customer, and only the sign-ups who reach that step | Customer and revenue analysis. In the Field Note's first example, every customer answered and 11 to 15% of sign-ups did. |
| First sales call | Prospects who reach sales | Detail the form misses, such as the prompt someone used or ads they saw and never clicked |

## 3. Grouping codes

Give each answer one primary code for the first source it names, since the question asks where they first heard. When an answer names a second step, such as "ChatGPT, then I googled you," add a secondary code.

| Code | Group | Assign when the answer mentions |
|---|---|---|
| AI-ASSIST | AI assistant | ChatGPT, Claude, Gemini, Perplexity, Copilot, or "AI" with no other source |
| AI-GOOGLE | AI results in Google | An AI Overview, AI Mode or "the AI answer at the top of Google" |
| SEARCH | Search | Google, Bing or searching, with no mention of AI |
| PEER | Someone they know | A colleague, friend, boss or former coworker |
| PARTNER | Partner | A named partner, agency, consultant or platform referral |
| TEAM | Our team reached out | An email, call or LinkedIn message from one of your reps |
| SOCIAL | Social | LinkedIn, Reddit, YouTube or another platform, with no rep involved |
| CONTENT | Content and media | A blog post, podcast, webinar, newsletter or report, yours or someone else's |
| EVENT | Event | A conference, meetup or booth |
| REVIEW | Review site | G2, Capterra, Gartner Peer Insights or an analyst |
| EMAIL | Our email | A marketing email you sent |
| OTHER | Other | A clear answer that fits none of the groups above |
| UNCLEAR | Unclear | Blank, "don't remember," "the internet" or junk |

Grouping rules:

- Code a bare "Google" as SEARCH unless the answer mentions AI.
- Keep the original words next to the code and never overwrite them, so anyone can recheck an answer later.
- If volume is high, a rules list or an AI classifier can do the first pass. A person still reads every OTHER and UNCLEAR answer and a sample of the rest each month.
- Note which version of the codes each answer was grouped under, so a change to the codes doesn't look like a change in the market.

Suggested fields per account:

| Field | Example |
|---|---|
| account_id | 10482 |
| tracked_channel | Paid search, brand |
| hdyhau_text | asked chatgpt for tools like this, then googled you |
| hdyhau_code_primary | AI-ASSIST |
| hdyhau_code_secondary | SEARCH |
| hdyhau_asked_at | Before sign-up |
| hdyhau_answered_on | 2026-10-14 |
| first_call_answer | Saw them in a ChatGPT list, prompt was about switching vendors |
| code_version | v1 |

## 4. How to report it next to tracked channels

- Each account carries two fields, the tracked channel that brought it in and the code from its answer.
- Report the code as a column beside the channel, using the same window and the same time to convert for both.
- Never add self-reported AI as its own channel row. Those accounts are already counted under the channel that brought them in, so adding the rows counts them twice.
- Put the response rate on every view. When every customer answers, customer figures cover everyone. Sign-up figures are a sample.
- Split paid search into brand and non-brand before reading the codes. Brand is where the overlap showed up at both clients in the Field Note.
- When you have first-call answers, add them as a third column and mark the accounts where the call and the form disagree.

Report layout (scaled counts from the Field Note's first example, six-month customer window):

| Tracked channel | Customers | Said AI | AI share |
|---|---:|---:|---:|
| Marketing | 162 | 39 | 24% |
| Partner | 24 | 0 | 0% |
| SDR | 15 | 0 | 0% |
| Total | 201 | 39 | 19% |

Blank version to copy:

| Tracked channel | Customers | Answered | AI-ASSIST | AI-GOOGLE | SEARCH | PEER | PARTNER | TEAM | SOCIAL | CONTENT | EVENT | REVIEW | EMAIL | OTHER | UNCLEAR |
|---|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|
| Paid search, brand | | | | | | | | | | | | | | | |
| Paid search, non-brand | | | | | | | | | | | | | | | |
| Organic search | | | | | | | | | | | | | | | |
| Direct | | | | | | | | | | | | | | | |
| Partner | | | | | | | | | | | | | | | |
| SDR | | | | | | | | | | | | | | | |
| Total | | | | | | | | | | | | | | | |
