# GBP Snapshot Intake v1.2 **Purpose:** Capture raw Google Business Profile / Maps observations with zero analysis. **Who fills this:** Human (cold audit) or Places API export (when available). **Who consumes this:** Leonard / agents — map fields into Data Inventory only. Do not invent. **Status vocabulary (required):** - `NOT_PRESENT` — looked; confirmed absent (evidence of absence) - `NOT_OBSERVED` — did not look or could not see (absence of evidence) - `Unknown` — only when signal is ambiguous after looking - Observed values: Yes / No / concrete text / numbers Do **not** use “Not visible” as a synonym; map to NOT_PRESENT or NOT_OBSERVED. --- ## Snapshot Metadata (required) - **Client name:** - **Snapshot datetime (ISO 8601 + timezone):** e.g. `2026-08-03T14:30:00-07:00` - **Source:** Human eye on Maps / Places API / Owner dashboard - **Observation surface:** desktop_maps / mobile_maps / knowledge_panel / other - **Maps or Place URL:** - **Place ID:** (if known; else leave blank — agent **computes from URL** when possible) ## Core Fields - **Business name shown:** - **Address shown (exact string):** - **Address canonical (optional normalize):** Suite not #; full street type - **Phone shown (full digits only; no masking):** - **Website shown:** - **Primary category (ONE canonical GBP category only):** - **Additional categories (list; separate from primary):** ## Reputation - **Star rating:** - **Review count:** - **Review responses observed:** Yes / No / NOT_OBSERVED - **If Yes — how many of N have owner replies:** - **If Yes — most recent owner response age/date (approx):** ## Ownership / Claim Signals - **“Own this business?” prompt visible:** Yes / No / NOT_OBSERVED - **Claimed status (observed or inferred):** Claimed / Unclaimed / Likely Claimed — inferred / Unknown - **If inferred — list signals used:** - **Verified badge observed:** Yes / No / NOT_OBSERVED ## Operations - **Hours listed:** Yes / No - **Hours text:** - **Open now indicator:** Yes / No / NOT_OBSERVED (only valid with snapshot datetime+TZ) ## Conversion (complete the whole action-button row if any button is observed) - **Booking button present on the GBP (not the website):** Yes / No / NOT_OBSERVED - **Booking button label (if any):** - **Messaging button present:** Yes / No / NOT_OBSERVED - **Other action buttons observed:** ## Content Surface - **Photos present:** Yes / No - **Approx photo count:** - **Services listed (exact labels):** - **Posts section present:** Yes / No / NOT_OBSERVED - **Post count (0 if empty section):** - **Most recent post date (approx, optional):** - **Q&A status:** answers present / empty / NOT_PRESENT / NOT_OBSERVED - **Attributes / highlights visible (optional):** ## Related Listings - **Second related listing nearby:** Yes / No / Unknown - **Related listing name(s):** - **Related listing notes (factual only):** - **Secondary feature IDs from MAPS_URL (if parsed):** ## Raw notes (optional, factual only) - --- ## Agent mapping rules (do not reason beyond this) 1. Copy each filled field into the **GBP row** of the client Data Inventory. 2. Blank → `NOT_OBSERVED` (not “Unknown” unless truly ambiguous after looking). 3. If MAPS_URL present and PLACE_ID blank → **compute** place/feature IDs from URL; never leave PLACE_ID blank when derivable. 4. PRIMARY_CATEGORY must be a single value; if intake has multiple tokens → mark **INVALID_CAPTURE** and do not invent a primary. 5. Verification Tier: Tier 1 only if Source = Owner dashboard or owner-confirmed; else Tier 2. 6. Snapshot Date/time from intake datetime. 7. Do not create threats unless a Threat Trigger Rule fires (execution card). 8. Do not add severity upgrades, recommendations, or competitor claims.