seotools.pro Get started free

AI Referral Attribution Worksheet Template

Your boss asks how much revenue ChatGPT brought in. You have a traffic chart, a few form answers and no line from a visit to an invoice.

This worksheet gives each possible AI lead one row: the referral evidence, the landing page, the qualified lead, the invoice and the gap that breaks the chain.

AI visits do not always look like AI visits. Some carry a tag, some a referrer, and some arrive as Direct. So every row says how strong its evidence is.

Inside: a fill-in worksheet, a guide to AI referral signals, gap codes, CRM fields, a CSV header, a fictional example and a monthly reconciliation.

Format
Editable Word .docx
Length
7 variants · ~7 pages
Price
100% free
Setup
Copy or download

Get the editable Word doc in one click.

Free · No signup · Instant download

Works withSemrushSe Ranking
UReporting & Strategy

AI Referral Attribution Worksheet Template

AI referral attribution worksheet

One row per lead that may have come from an AI assistant. Fill it when the lead arrives, then finish it when the deal closes or dies.

Worksheet owner: [name] - Analytics property: [GA4 property or tool] - CRM: [CRM name] - Row prefix: [e.g. AIR-]

EntryReferral evidenceLanding pageQualified leadInvoiceAttribution gap
[ID, e.g. AIR-001][session source / medium, page referrer, or what the buyer said][landing page + query string][CRM record ID + qualified yes/no + date][invoice number + amount + date, or none yet][none, or the gap code and what is missing]
[ID][evidence][landing page][lead record][invoice][gap]
[ID][evidence][landing page][lead record][invoice][gap]

Per-row detail (fill for every lead)

  • Assistant: [ChatGPT, Perplexity, Gemini, Claude, Copilot, other, unknown]
  • Evidence type: [observed in analytics / reported by the buyer / inferred]
  • Raw values: session source [value], session medium [value], page referrer [value], utm_source [value or none]
  • Session date: [YYYY-MM-DD] - Lead created: [YYYY-MM-DD]
  • Buyer's own words: [form answer or call note, quoted]
  • Match method: [form hidden field, same email, manual match, none]
  • Status: [open / qualified / won / lost / unmatched]

Next action

  • Analytics owner: [name] - task: export AI-referred sessions and landing pages every [week/month]
  • Sales owner: [name] - task: mark each linked lead qualified or not by [date]
  • Finance owner: [name] - task: add the invoice number and amount when the deal is billed
  • Worksheet owner: [name] - task: close or explain every open attribution gap by [date]

Completion check

  • Every row has referral evidence with its type: observed, reported or inferred.
  • Every row has a landing page with the query string, not just a domain.
  • Every qualified lead links to one CRM record and a named sales owner.
  • Invoices are copied from billing, not estimated. Rows with no invoice say so.
  • Every gap has a code, an owner and a date. Nothing is filed as AI without evidence.
Download free template

Why it works

Each lead that may have come from an AI assistant is traced from referral evidence and landing page to a qualified lead and an invoice, with gaps named.

  • Separating observed, reported and inferred evidence stops guesses from inflating AI revenue.
  • Linking each row to a CRM record and invoice turns traffic charts into revenue you can defend.
  • Gap codes with owners show exactly which break in tracking to fix first.

7 ready-to-use variants

Copy all

AI Referral Attribution Worksheet (fill-in)

When to use: One row per possible AI lead, with referral evidence, landing page, qualified lead, invoice and attribution gap, plus owners and a completion check.

AI referral attribution worksheet

One row per lead that may have come from an AI assistant. Fill it when the lead arrives, then finish it when the deal closes or dies.

Worksheet owner: [name] - Analytics property: [GA4 property or tool] - CRM: [CRM name] - Row prefix: [e.g. AIR-]

EntryReferral evidenceLanding pageQualified leadInvoiceAttribution gap
[ID, e.g. AIR-001][session source / medium, page referrer, or what the buyer said][landing page + query string][CRM record ID + qualified yes/no + date][invoice number + amount + date, or none yet][none, or the gap code and what is missing]
[ID][evidence][landing page][lead record][invoice][gap]
[ID][evidence][landing page][lead record][invoice][gap]

Per-row detail (fill for every lead)

  • Assistant: [ChatGPT, Perplexity, Gemini, Claude, Copilot, other, unknown]
  • Evidence type: [observed in analytics / reported by the buyer / inferred]
  • Raw values: session source [value], session medium [value], page referrer [value], utm_source [value or none]
  • Session date: [YYYY-MM-DD] - Lead created: [YYYY-MM-DD]
  • Buyer's own words: [form answer or call note, quoted]
  • Match method: [form hidden field, same email, manual match, none]
  • Status: [open / qualified / won / lost / unmatched]

Next action

  • Analytics owner: [name] - task: export AI-referred sessions and landing pages every [week/month]
  • Sales owner: [name] - task: mark each linked lead qualified or not by [date]
  • Finance owner: [name] - task: add the invoice number and amount when the deal is billed
  • Worksheet owner: [name] - task: close or explain every open attribution gap by [date]

Completion check

  • Every row has referral evidence with its type: observed, reported or inferred.
  • Every row has a landing page with the query string, not just a domain.
  • Every qualified lead links to one CRM record and a named sales owner.
  • Invoices are copied from billing, not estimated. Rows with no invoice say so.
  • Every gap has a code, an owner and a date. Nothing is filed as AI without evidence.

AI Referral Signals Guide

When to use: Where AI assistant visits show up in GA4, which signals are documented, and why some AI visits land in Direct or Unassigned.

How AI assistants show up in your data

Check these places before you call a visit AI traffic. Each one is evidence of a different strength. Behaviour changes, so confirm against your own reports each month.

Where to look in GA4

  • Session default channel group: GA4 has a default AI Assistant channel for sources like ChatGPT, Gemini, Copilot and others. Start here.
  • Session source: Google defines it as the site that referred the session. Look for assistant domains here.
  • Session manual source: filled from the utm_source parameter on the landing URL.
  • Page referrer: the previous URL the browser reported. Useful in an exploration next to the landing page.
  • Landing page + query string: the first page of the session with its parameters, so tags stay visible.

Signals worth recording

SignalWhat it tells youEvidence type
utm_source=chatgpt.com on the landing URLOpenAI documents that ChatGPT adds this tag to referral URLsObserved
Session in the AI Assistant channelGA4 matched the referrer to its list of AI assistants, or the medium was ai-assistantObserved
An assistant domain in session source or page referrerThe browser passed a referrer from that assistantObserved
Buyer says an AI tool sent themTheir memory, in their wordsReported
Direct visit soon after an AI mentionA guess, nothing moreInferred

Assistant domains to search for

GA4 already maps known assistants to the AI Assistant channel. Use this list to find any it misses in Referral or Unassigned.

  • chatgpt.com and chat.openai.com
  • perplexity.ai
  • gemini.google.com
  • claude.ai
  • copilot.microsoft.com

Why some AI visits look like something else

  • Clicks from some apps can arrive with no referrer, so GA4 can file them as Direct.
  • Google AI Overviews and AI Mode are not in the AI Assistant channel. GA4 counts them under Organic Search.
  • An assistant missing from Google's list can show up in Referral or Unassigned instead.
  • A redirect on the landing URL can drop the query string and its tag.

Test the redirect chain on the pages AI answers send people to with the Redirect Checker, and confirm the final URL is the page you expect.

Attribution Gap Codes and Evidence Strength

When to use: Six gap codes with fixes, and a simple rule for observed, reported and inferred evidence so nothing is over-counted.

Attribution gap codes

A gap is anything that stops a row from linking evidence to money. Give every gap a code, so you can count them and fix the biggest one first.

CodeGapFix
G1 No referrerVisit arrived as Direct, buyer later named an AI toolKeep as reported. Add a how-did-you-find-us field to the form
G2 Tag lostLanding URL lost its utm_source on a redirectFix the redirect so the query string survives
G3 Wrong channelAI session sits in Unassigned, Referral or Direct, not AI AssistantCheck its source / medium. Add a custom channel group only for assistants Google's list misses
G4 No matchSession found, but no CRM record links to itPass source and landing page into the form as hidden fields
G5 Not qualifiedLead exists but nobody judged itSales owner marks it qualified or not
G6 No invoiceDeal won, invoice not linkedFinance owner adds the invoice number

Evidence strength, in order

  • Observed: an AI domain or tag in analytics, matched to the CRM record.
  • Reported: the buyer named the AI tool in a form or call. Quote them.
  • Inferred: a pattern or timing guess. Never count it as AI revenue on its own.

Report observed and reported rows side by side. Do not add inferred rows into the total. Show them as a separate line with a note.

Qualified Lead and CRM Handoff

When to use: Form and CRM fields that carry the AI evidence from the first visit to the qualified lead and the invoice.

Qualified lead and CRM handoff

A visit is not a lead, and a lead is not revenue. These fields carry the AI evidence from analytics into your CRM, so sales and finance can finish the row.

Form fields to add

  • Hidden: session source, utm_source and landing page with query string, captured when the form loads.
  • Visible, optional: "How did you first hear about us?" with an AI assistant option and a free-text box.

CRM fields to add

  • AI evidence type: [observed / reported / inferred / none]
  • AI assistant named: [tool, or unknown]
  • Landing page: [URL + query string]
  • Qualified: [yes / no] - Qualified by: [name] on [date]
  • Qualification reason: [fit, budget, timing, need]
  • Invoice: [number + amount + date]

Rules

  • Keep the original source value. Do not overwrite it with AI later.
  • One qualification standard for all channels, so AI leads are judged like the rest.
  • A lost deal stays in the sheet. It shows lead quality too.

If leads still live in a spreadsheet or inbox, a CRM such as crmsoftware.pro can hold these fields on the lead record.

Spreadsheet Header (CSV)

When to use: A paste-ready header row and allowed values to run the worksheet in Google Sheets or Excel.

Paste-ready spreadsheet header

Paste this row into cell A1 of Google Sheets or Excel, then split text to columns by comma. One row per lead.

entry_id,assistant,evidence_type,session_source,session_medium,page_referrer,utm_source,landing_page,session_date,buyer_words,crm_record_id,match_method,lead_created,qualified,qualified_by,qualified_date,invoice_number,invoice_amount,invoice_date,gap_code,gap_owner,gap_due,status,notes

Allowed values

  • evidence_type: observed, reported, inferred
  • match_method: hidden_field, same_email, manual, none
  • qualified: yes, no, pending
  • gap_code: none, G1, G2, G3, G4, G5, G6
  • status: open, qualified, won, lost, unmatched

Sheet tips

  • Highlight rows where evidence_type is inferred. They never go into the AI revenue total.
  • Highlight won rows with an empty invoice_number.
  • Sum invoice_amount only from rows with an invoice number.
  • Never change a row's original source. Add a dated note instead.

Want to know which prompts send buyers to you in the first place? Start with the AI Buyer Query Library Template.

Worked Example (fictional Corrandale HVAC maintenance)

When to use: Three filled rows for an invented HVAC firm: one invoiced, one reported with no referrer and one unmatched.

Worked example: Corrandale commercial HVAC maintenance

Example only. Corrandale is an invented commercial HVAC maintenance firm. The URLs, names, record IDs, invoices and amounts are made up to show a filled worksheet.

Worksheet owner: marketing lead - Analytics: GA4 - CRM: sales pipeline - Row prefix: AIR-

EntryReferral evidenceLanding pageQualified leadInvoiceAttribution gap
AIR-021Observed: session source chatgpt.com, utm_source=chatgpt.comcorrandale.example/rooftop-unit-maintenance/?utm_source=chatgpt.comLEAD-3301, qualified yes, 2026-10-08INV-1188, 4,200 EUR, 2026-10-29None
AIR-022Reported: form said "Perplexity suggested you"; session was Directcorrandale.example/LEAD-3317, qualified yes, 2026-10-15None yet, quote sentG1 No referrer
AIR-023Observed: page referrer gemini.google.comcorrandale.example/service-contracts/No CRM matchNoneG4 No match

How the rows were filled

  • AIR-021: the hidden fields passed the tag into the CRM. Sales qualified it, finance added the invoice. A complete row.
  • AIR-022: analytics showed Direct, but the buyer named Perplexity. Logged as reported, quoted word for word, gap G1.
  • AIR-023: the visit was real, but the form had no hidden fields yet. Gap G4, owner the web lead, due 2026-11-20.

What the month shows

  • Invoiced from observed AI evidence: one invoice, AIR-021.
  • Open with reported evidence: one deal, AIR-022, not counted until billed.
  • Biggest gap to fix: missing hidden fields on the service contracts form.

Want help connecting AI visibility to leads and revenue? Book a free consultation with Anatolii Ulitovskyi, or see our SEO and GEO services.

Monthly Reconciliation

When to use: A monthly routine for marketing, sales and finance to close gaps, qualify leads and add invoices.

Monthly reconciliation

Pick one day a month. The worksheet owner, a sales owner and a finance owner go through the open rows together.

Checks

  • New sessions: export sessions with an assistant domain or tag and add any without a row.
  • Unmatched rows: try the match again by email or date. If it still fails, keep gap G4.
  • Pending qualification: every lead older than your window gets a yes or no.
  • Won deals: every won row gets an invoice number from billing.
  • Gap counts: count rows by gap code. Fix the most common one this month.

Review fields

  • Review date: [YYYY-MM-DD] - Attendees: [names]
  • Rows with observed evidence: [count] - reported: [count] - inferred: [count]
  • Invoiced amount, observed and reported rows only: [amount]
  • Top gap code this month: [code + fix + owner]
  • Landing page that earns the most qualified AI leads: [URL]

To see which recorded AI answers name or link your domain, run it in the AI Visibility Checker, then compare those pages with your top landing pages here.

How to use this template

  1. Pick an owner and add a row prefix, then link the worksheet to your analytics and CRM.
  2. Export sessions where an assistant domain or utm_source tag appears, with the landing page and query string.
  3. Add a row per lead and record the evidence type: observed, reported or inferred.
  4. Match each row to one CRM record, and have sales mark it qualified or not.
  5. Add the invoice number and amount from billing once the deal is billed.
  6. Give every break in the chain a gap code, an owner and a due date.
  7. Reconcile monthly and fix the most common gap first.

Pro tips

  • Keep the original source value. Relabelling Direct as AI later destroys your evidence.
  • Quote the buyer's words when they name an AI tool. A summary is weaker proof.
  • Never add inferred rows to the AI revenue total. Show them as a separate line.
  • Capture the landing page with its query string, or the utm_source tag is lost.
  • Use one qualification standard for every channel, so AI leads are judged fairly.

Frequently asked questions

What is an AI referral attribution worksheet?

A sheet with one row per possible AI lead. It links the referral evidence and landing page to a qualified lead, an invoice and any gap in between.

How does ChatGPT traffic show up in GA4?

GA4 has a default AI Assistant channel that covers ChatGPT. OpenAI says ChatGPT adds utm_source=chatgpt.com to referral URLs. Some app clicks can still arrive as Direct.

Why is some AI traffic not in the AI Assistant channel?

Some apps send no referrer, so the visit can show as Direct. Assistants missing from Google's list can land in Referral or Unassigned. AI Overviews count as Organic Search.

Can I count a lead if the buyer just says an AI tool sent them?

Yes, as reported evidence. Quote their words and keep it separate from observed rows, so your totals stay honest.

Does this measure AI visibility?

No. This tracks visits, leads and invoices. Use a visibility check or citation archive to see where AI answers mention you.