# Client Call Workflow v2 **Status:** Active **Effective:** 2026-08-17 **Replaces:** ad-hoc findings calls (v1, first run 2026-08-17 with Phoenix Salon + Spa — see lessons learned, `docs/clients/phoenix-salons/call-log.md`) **Applies to:** all clients, all audit-adjacent calls --- ## Operating rules (binding) 1. **Closed-loop rule.** If it's not in the script, it's not on the call. The script is generated from the canonical record the day before. No "I'll look that up" items — any item that isn't verified and in the script is deferred to Phase 2. 2. **Evidence standard.** On call, state only what has been re-verified in the last 48 hours. Headless-blocked or stale surface → say "I will re-verify before we touch it" and mark it pending in the call log. 3. **Hours GATE.** Hours are a gate, not a finding. Day-by-day table with BLANKS where surfaces conflict. Verbal lock of all seven days is required, then written confirmation to the owner within 2 hours, then record update. No written numbers = item stays OPEN. Full stop. No monitoring handoff while hours are OPEN. 4. **Pricing.** Either the economics guide's 7-question module is in the script (§3 of `docs/architecture/economics-pricing-execution-guide-v1.md`) or pricing is not discussed. No improvisation. 5. **Education is a one-pager, not a call topic.** Concepts the owner didn't know about (GEO, AEO, llms.txt) go in the written follow-up. 6. **Cost log.** Minutes spent per fix, recorded in the call log / fix log. Becomes the first real price anchor (Tier 2 validation for the economics model). --- ## PHASE 0 — Pre-call (day before, mostly automated) 1. `multi_scraper` capture, all 4 surfaces → `extractions/_.json` 2. Update `docs/clients//` canonical record: hours table (every day × every surface, **BLANKS where conflict**), old-name list (live-verified or marked "re-verify"), SSR word count, rating/review counts, open items 3. Send pre-call owner form (`docs/operations/templates/pre-call-owner-form.md`), 24–48h out 4. Generate call script FROM the record. Check the closed-loop rule: every item in the script is verified <48h. GATE check: hours table present with blanks where unresolved. ## PHASE 1 — Call (~15 min; presentation, not discovery) 1. **Open:** locked good news (NAP + rating), 30 seconds. 2. **Findings** in fixed order: finding → business impact → what we do → owner. 3. **Hours GATE:** read the table day by day, blanks visible. Owner gives all seven days. Verbal lock recorded verbatim. 4. **Close:** exact next actions with owners and dates. 5. **Immediately after (within 2h):** text/email with the locked numbers + education one-pager. 6. Call log entry created the same day (convention: `docs/clients//call-log.md`). ## PHASE 2 — Fix (the PoC) 1. Action list from the call; owners assigned at the call. 2. Re-capture after every fix. Before/after numbers in the report. 3. **Cost log:** minutes per fix → first real price anchor. ## PHASE 3 — Monitoring (retainer begins) Explicit handoff: audit phase ends, monitoring begins. The record defines: - surfaces watched - frequency - alert thresholds `multi_scraper` on schedule, diff vs record, drift flagged. **Entry condition: hours item CLOSED with written numbers.** No exception. --- ## Lessons from v1 (2026-08-17 Phoenix call) - Education inside the findings call was a design error → rule 5. - Hours asked as a question, closed as "verbal lock" with no numbers → rule 3. - Audit timeline mislabeled (June and July audits exist; Aug 13 is not "the original") → timeline lives in the call log, not in call memory. - Owner assignments must be explicit per finding (who fixes, who posts, who just approves).