← Back to all products

Testimonial Collector

$19

Automated testimonial collection system with request workflows, display widgets, and approval routing.

📁 9 files
JSONMarkdownPython

📄 Product Preview

Try the interactive reader and demo tools below, or get the full product with all content unlocked.

📖 Interactive Reader (Free Preview) ⚙ Try Demo Tools 📦 Download Free Sample

📁 File Structure 9 files

testimonial-collector/ ├── LICENSE ├── README.md ├── examples/ │ └── responses.json ├── free-sample.zip ├── guide/ │ ├── 01_features.md │ ├── 02_cli-reference.md │ └── 03_examples.md ├── index.html └── src/ └── testimonial_collector.py

📖 Documentation Preview README excerpt

Testimonial Collector

Part of the Landing Lab by CodeVault

A complete testimonial collection workflow: generate personalised request emails, import customer responses, manage an approval queue, and export display-ready HTML or JSON. Handles the full lifecycle from asking for testimonials to showing them on your landing page.

Features

  • Generate personalised request emails (initial + follow-up templates)
  • Import testimonial responses from JSON
  • Approval workflow: review, approve, or reject testimonials
  • JSON-backed database (no external DB needed)
  • Export approved testimonials as embeddable HTML or JSON
  • Star ratings and company attribution
  • Styled HTML output with responsive grid layout
  • Python stdlib only — zero pip dependencies

Quick Start


# Generate a testimonial request email
python src/testimonial_collector.py --generate-request --name "Alex" --email "alex@example.com"

# Import customer responses
python src/testimonial_collector.py --import-response examples/responses.json --db testimonials.json

# Review pending testimonials
python src/testimonial_collector.py --review --db testimonials.json

# Approve a testimonial
python src/testimonial_collector.py --approve t-0001 --db testimonials.json

# Export approved testimonials as HTML
python src/testimonial_collector.py --export html --db testimonials.json

CLI Reference

FlagDescription
--dbPath to testimonial database JSON (default: testimonials.json)
--generate-requestGenerate a request email
--nameCustomer name (for request generation)
--emailCustomer email (for request generation)
--follow-upGenerate follow-up email instead of initial
--import-responseImport responses from a JSON file
--reviewShow pending testimonials for review
--approve IDApprove a testimonial by ID
--reject IDReject a testimonial by ID
--exportExport approved testimonials: html or json
--product-nameProduct name for emails (default: Acme Product)
--sender-nameSender name for emails (default: The Acme Team)
--verbose, -vEnable verbose logging

Configuration

See examples/responses.json for the expected response import format.

Examples

... continues with setup instructions, usage examples, and more.

📄 Code Sample .py preview

src/testimonial_collector.py #!/usr/bin/env python3 """ Testimonial Collector — Landing Lab by DataNest A complete testimonial collection workflow: generate personalised request emails, manage an approval queue (approve/reject/edit), and export display-ready HTML or JSON. Handles the full lifecycle from asking for testimonials to showing them on your landing page. Why this exists: Getting testimonials is awkward. You email customers one at a time, paste their responses into a spreadsheet, then manually format them for your website. This tool automates the entire pipeline: generate request emails, track responses, approve the good ones, and export them as embeddable HTML. Usage: python testimonial_collector.py --generate-request --name "Alex" --email "alex@example.com" python testimonial_collector.py --import-response responses.json python testimonial_collector.py --review --db testimonials.json python testimonial_collector.py --export html --db testimonials.json License: MIT """ from __future__ import annotations import argparse import html import json import logging import sys from dataclasses import dataclass, field, asdict from datetime import datetime, timezone from pathlib import Path from typing import Any # --------------------------------------------------------------------------- # Constants # --------------------------------------------------------------------------- LOG = logging.getLogger("testimonial-collector") STATUS_PENDING = "pending" STATUS_APPROVED = "approved" STATUS_REJECTED = "rejected" # Email template placeholders: {customer_name}, {product_name}, {sender_name}, {form_url} DEFAULT_EMAIL_SUBJECT = "Quick favour? Share your experience with {product_name}" # ... 465 more lines ...
Buy Now — $19 Back to Products