BXUP Track progress & test yourself — free
AI at Office · Playbook · Advanced · ~4 min read
AI AT OFFICE · PLAYBOOK · ADVANCED

Build a Voice-of-Customer Report from Weekly Tickets

Support hears everything and product hears none of it. This playbook runs a weekly pipeline — tickets to themes to a quantified top-issues report — with the one discipline that makes product teams trust it: every count reconciles to the raw export before the report ships.

Workflow area: Customer Support · Tier: Advanced · Hands-on time: ~45 minutes weekly after setup

A voice-of-customer report lives or dies on one question from the product manager: "is that number real?" The moment a theme count cannot be traced back to actual ticket IDs, the report becomes opinion with a table. This pipeline is built backwards from that audit question.

When to use — and when not to

  • Use it at 50+ tickets a weekenough volume that counting beats reading, and weekly trends mean something.
  • Use it when product wants signal, not anecdotesthe report's job is "password-reset failures: 31 tickets, up from 12" replacing "we're getting lots of password complaints."
  • Skip it below ~25 tickets a weekread them all and write three bullets yourself; a pipeline is overhead at that scale.
  • Skip AI-only counting for numbers that trigger decisionsif a count will justify roadmap changes or headcount, the reconciliation step is mandatory, not optional. No unreconciled number leaves the report.

The recipe

  1. Export the week's tickets consistently. Same query every week: created date in range, columns for ticket ID, subject, first customer message (or description), category tag, product area, and status. Strip customer names and emails from the text columns — themes need words, not identities. Save as voc-YYYY-WW.csv; the file name discipline matters when you audit later. Note the total row count — this number anchors everything.

  2. Classify every ticket against a stable theme list. Upload to Claude or ChatGPT (data analysis mode preferred):

    This CSV has [N] support tickets. Classify EVERY row against this
    theme list:
    
    [THEME LIST — 10-15 themes with one-line definitions, e.g.
    "Login/password: cannot sign in, reset loops, 2FA issues"]
    
    Rules:
    - Exactly one primary theme per ticket. "Other" is allowed and
      should stay under 15% — if it exceeds that, tell me and propose
      at most 2 new theme candidates with the ticket IDs behind them.
    - Return a full assignment table: ticket_id | theme, all [N] rows.
    - Then a summary table: theme | count | % of total.
    - The counts MUST sum to [N]. State the sum explicitly.
    - Quote 2 verbatim snippets per top-5 theme, with ticket IDs.
    

    Using a fixed theme list week over week is what makes trends real; let the list evolve only through the explicit new-theme proposal path, never by silent drift.

  3. Reconcile before writing a word of the report. Three checks, ten minutes:

    • Total check: theme counts sum to your export's row count. If not, find the dropped rows — models silently truncate long inputs.
    • Sample check: pick one mid-sized theme, pull its ticket IDs, read five of them. Are they really that theme?
    • Quote check: search two quoted snippets in the raw CSV. They must exist verbatim — paraphrased "quotes" are the classic tell that other details are drifting too.

    Log the reconciliation in the report itself: "Counts reconciled to export voc-2026-32.csv, 214/214 rows classified."

  4. Generate the report from the verified tables.

    Write this week's voice-of-customer report from the verified
    tables above. Audience: product and support leadership. One page.
    
    Structure:
    - Headline: total tickets, vs last week ([LAST WEEK'S COUNTS]),
      the one thing that changed most.
    - Top 5 issues table: theme | this week | last week | delta |
      trend arrow.
    - For the top 3: two verbatim quotes (with ticket IDs) and one
      sentence on impact.
    - Emerging: anything new or fast-growing, clearly labelled
      "early signal, small n".
    - Asks: max 3 specific requests to product/engineering, each tied
      to a theme count.
    
    Rules: use only numbers from the tables. Quotes verbatim only.
    No solutions beyond the asks. British/Indian business English.
    

    The register you want in the asks:

    Ask 1: Password-reset loop on the mobile app — 31 tickets
    (14.5%), up from 12 last week, spike began after the 2.4.1
    release (18/31 tickets mention updating). Request: triage
    as a candidate regression this sprint. [Sample: #48211, #48307]
    
  5. Ship it the same day, same channel, every week. Post to the same Slack/Teams channel or doc folder each week with the reconciliation line visible. Keep a running trends tab — theme counts by week — because after eight weeks that little sheet becomes the most-cited artifact in roadmap meetings.

Make it yours

  • Semi-automate the pipeline. Once the manual rhythm works, automate the export and classification with pb-49's tagging Zap feeding a sheet — then your weekly job shrinks to reconciliation and the report prompt. Keep reconciliation manual; that is the step that earns trust.
  • Severity weighting. Add a column for revenue tier or plan level and report top themes for enterprise customers separately — twelve enterprise tickets can matter more than forty free-tier ones, and blending hides it.
  • Monthly deep-dive. Every fourth week, run pb-44's root-cause clustering on the quarter's dominant theme and attach a one-page "what's actually driving it" analysis with proposed plays.

Quality check

  • Counts sum to the export's row count, stated in the reportthe reconciliation line is printed, not implied.
  • You sample-read five tickets from one themethe classification survived contact with reality.
  • Every quote exists verbatim in the raw exportsearched, found, ticket ID attached.
  • The theme list is stable week over weeknew themes enter through the explicit proposal path only.
  • Deltas compare like with likesame export query, same theme definitions, or the trend is fiction.
Warning

Ticket text is customer data — names, emails, account details and sometimes payment or ID fragments appear in message bodies. Strip identifier columns before upload, scan text fields for embedded emails and phone numbers, run the pipeline only in your organization's enterprise AI tenant, and keep verbatim quotes anonymous in the report — customers recognize their own sentences. pb-12 covers the full pre-flight.

Key Takeaway:

Reconciliation is the product feature of this report. Product teams have seen a hundred "customers are saying" decks; the one where every count traces to ticket IDs in a named export file is the one that changes a roadmap — ship no number you haven't traced.

This is the free reading view. Open BXUP to track your progress, run the hands-on labs, and prove it with original, exam-pattern assessments.
© Anvi Innovate · BXUP — Be Exponentially Upskilled · BXUP is an independent learning platform, not affiliated with or endorsed by AWS, Microsoft, Google, NVIDIA, IBM, Salesforce, Databricks, Oracle or Anthropic. All trademarks belong to their respective owners. · bxup.in