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)