Testimonial Collector
Position in workflow: v1.0 Case Study Builder → v1.0 Testimonial Collector → GTM channels (placement)
Execution Mode
Default is standard. See .claude/rules/08-skill-execution-modes.md for selection logic.
| Mode | What this skill produces |
|---|---|
| quick | One trigger (e.g., NPS promoters) + collection email + 5–10 testimonials processed |
| standard | 3 triggers (NPS, milestone, post-purchase) + processing workflow + consent management + per-placement formatting |
| deep | 5+ triggers + automated harvest + sentiment-segmentation + per-segment placement targeting + measurement loop |
What This Does
Systematically harvests short-form testimonials — 1–3 sentence quotes with name + role + logo — and processes them into placement-ready assets. Testimonials are the lower-effort complement to case studies: they don't carry a full story but they multiply social proof on landing pages, pricing pages, ad creative, and outreach.
This skill solves the "we have happy customers but no quotes" problem — most teams have plenty of positive feedback in support tickets, NPS responses, and renewal calls, but never capture it as marketing-ready assets. The fix is a system, not heroic effort.
How It Works
- Identify collection triggers — Each trigger is an event that suggests the customer is in a moment to share positive feedback:
- NPS Promoter response (score 9–10) — Lowest-friction; they already wrote feedback
- Activation milestone (Day 30 / Day 90 active) — They've seen value by now
- Post-purchase / post-upgrade — Decision fresh in mind
- Renewal — Strong signal of ongoing value
- Support resolution (positive) — Acute "you saved my day" moment
- Referral from customer — They already advocated
- Build per-trigger collection mechanism:
- NPS Promoter → automated email asking permission to use response + adding 1-question follow-up
- Milestone → in-app prompt or email with one-line ask
- Post-purchase → email 7 days after purchase
- Renewal → CSM-led ask during renewal call
- Support → followup in support thread after positive resolution
- Process incoming testimonials — Each goes through:
- Consent confirmation (scope: name? role? logo? use anywhere?)
- Light edit for clarity (their voice; don't rewrite)
- Tag by segment fit (in-beachhead / adjacent / off-segment)
- Tag by outcome theme (speed / cost / activation / quality / etc.)
- Place in marketing surfaces — Per testimonial:
- Pricing page (logo + quote)
- Landing page hero (1 prominent quote)
- Feature pages (segment-relevant quotes)
- Ad creative (testimonial-style ads)
- Email signatures / sales decks
- Investor decks
- Measure placement performance [standard+] — Some testimonials convert; some don't. Track per-placement conversion to identify which quotes earn their spot.
Example
B2B SaaS, 3 collection triggers active.
Trigger 1: NPS Promoter (9–10). NPS run quarterly. Promoters get followup email:
Thanks for the 10! Your response — "Cut our reporting time in half" — would be a powerful testimonial for our pricing page. May we use it with your name and role? Reply YES and we'll send back the version we'd publish for your approval.
Auto-fires when NPS response submitted with score ≥ 9.
Trigger 2: Day-30 active milestone. In-app prompt at first login after Day 30 active:
You've been active for a month! In one sentence, what's working best? → [text box] → [Submit + permission checkbox]
Trigger 3: Post-purchase (Day 7). Email 7 days after first paid charge:
Quick favor — what convinced you to upgrade? Your answer might appear (with your permission) on our pricing page.
Processing: Inbound testimonials enter a triage doc. Per testimonial:
- Consent confirmed (scope: name / role / logo / anywhere)
- Light edit (clarity only — kept their voice)
- Segment tag (in-beachhead: yes/no)
- Theme tag (speed / cost / activation / quality)
- Placement decision (pricing / landing / feature page / ad / multi)
Placement: Pricing page logo wall expanded with 6 new testimonials in the beachhead segment. A/B test the hero-section quote on landing pages.
What You Get Back
- CFD-TST-* entries — One per testimonial; the durable record with consent, source, segment, theme
- GTM-TST-* entries — Per-placement formatting (the placed quote with surrounding context)
- Consent records — Customer-by-customer scope and version history
- Placement-performance log — Per-quote conversion rate (which testimonials earn their spot)
When to Use It
| Trigger | Mode |
|---|---|
| First testimonial harvest system (none in place) | standard |
| Quarterly NPS run + harvest | quick |
| Pricing page redesign needs more social proof | standard |
| Landing page A/B test needs quote variants | quick |
| Pre-investor / pre-Series A push for logo + quote density | deep |
| New segment expansion (need segment-specific testimonials) | deep |
Consumes
- CFD-* customer feedback (all sources, especially v0.9 feedback loop) — Raw inbound testimonial material
- NPS / CSAT data (from v0.9 Feedback Loop Setup) — Promoter responses are the highest-yield source
- ADO-REF-* candidates — Reference accounts already in cultivation are testimonial-eligible
- PER-* personas + ADO-BEACHHEAD-* — Segment tagging
- BR-POS-* — Tone constraints; testimonials shouldn't contradict positioning
Produces
- CFD-TST-* entries in
SoT/SoT.customer_feedback.md - GTM-TST-* entries (with Type=Testimonial-Placement) per placement
- Consent records — Append-only log with scope and version
- Placement-performance metrics — Per-quote A/B data feeding back into selection
Output Template
CFD-TST-XXX: Testimonial — [Customer name] Type: Testimonial Date received: YYYY-MM-DD Source trigger: [NPS-promoter | Day-30-milestone | Post-purchase | Renewal | Support | Referral] Customer: [Name, Role, Company, Logo] Verbatim text: "[The actual quote, lightly edited for clarity only]" Original text (for audit): "[The raw response]" Tags: Segment fit: [In-beachhead | Adjacent | Off-segment] Theme: [Speed | Cost | Activation | Quality | Reliability | Specific-use-case] Length: [Words / chars] Consent: Scope: [Name? Role? Logo? Use-anywhere?] Approved by: [Customer name] Approved date: YYYY-MM-DD Approved version: vX Placement eligibility: - Pricing page logo wall: [Yes/No] - Landing page hero: [Yes/No] - Feature page (which): [Yes/No] - Ad creative: [Yes/No] - Sales deck: [Yes/No] - Investor deck: [Yes/No] Linked IDs: PER-XXX (segment), ADO-REF-YYY (if cultivated), CFD-ZZZ (interview source if applicable)
GTM-TST-XXX: Testimonial Placement — [Quote summary] Type: Testimonial-Placement Source: CFD-TST-AAA Placement: [URL or surface, e.g., "/pricing — hero zone"] Format: [Quote + Name + Role + Logo | Quote + Logo only | Quote in card] Surrounding context: [What this testimonial sits next to — headline, CTA, product feature] A/B test (if active): Variant A: [This testimonial] Variant B: [Alternative] Metric: [Click-through, signup-rate, etc.] Started: YYYY-MM-DD Performance (if measured): [Per-quote conversion data] Linked IDs: CFD-TST-AAA (source), GTM-YYY (page channel), KPI-ZZZ (placement metric)
Anti-Patterns
| Pattern | Signal | Fix |
|---|---|---|
| Heroic one-time harvest | "We collected 20 testimonials in a sprint, then stopped" | Triggers run continuously; harvest is a system, not a project |
| No consent record | Publishing without explicit approval | Consent record per testimonial, scope-explicit |
| Marketing rewrite | "I love [product]" rewritten from "It's pretty useful" | Light edits for clarity only; their voice |
| No segment tagging | All testimonials placed everywhere | Segment-relevant placement converts better; tag and target |
| Stale walls | Pricing page testimonials from 2 years ago | Refresh quarterly; rotate underperformers |
| No placement measurement | All testimonials treated as equally good | Some quotes convert 3× others; measure and prune |
| Anonymous testimonials | "VP at major fintech" with no name/logo | Pragmatists discount anonymous; named + logo or skip |
| Off-segment testimonials during chasm crossing | Visionary-startup quotes on a page targeting enterprise pragmatists | In-segment placements only during chasm crossing |
Quality Gates
Before placing testimonials:
- Consent on record (scope explicit)
- Customer name + role + logo (or rationale for less)
- Segment tag applied
- Theme tag applied
- Light edit only (their voice preserved)
- Placement matches segment fit (in-beachhead testimonials for pragmatist surfaces)
- BR-POS-* constraints honored (no contradiction with positioning)
- Refresh cadence committed (quarterly minimum)
Downstream Connections
| Consumer | What it uses | Example |
|---|---|---|
| Launch Channels (ORB) | Testimonials are Owned-channel content + Borrowed-channel ad creative | Pricing-page testimonials = Owned; testimonial-style ads = Paid-Borrowed |
| Alternatives Pages | "Pick us if..." sections feature segment-relevant testimonials | Migration-from-X testimonial anchors the alt page |
| Case Study Builder | Strong testimonials surface case-study candidates | Repeat testimonialer with strong outcome → case study |
| Cold Outreach (Tiered) | Testimonials cited in Touch 2/3 of sequences | Tier 2 email includes in-segment testimonial |
| Feedback Loop Setup | Testimonial sources tie back to feedback channels | NPS promoters feed both feedback and testimonial flow |
| Investor / Sales decks | Logo wall + theme-curated testimonials | "Customers in segment X say..." |
Detailed References
- BrianRWagner's
testimonial-collectorskill (ai-marketing-claude-code-skills) - Sean D'Souza, The Brain Audit (using testimonials to overcome buying objections)
- Joanna Wiebe, Copy Hackers — testimonial-driven landing pages
- (No bundled
references/— testimonials are the artifact)

