Create a feedback collection endpoint for PodcastItLater user research.
Context
Ava needs to collect feedback from potential and existing PodcastItLater users at scale. Rather than integrating a third-party form builder, add a simple feedback endpoint to PIL itself.
Options (choose one)
Option A: Add /feedback to PIL (Recommended)
Add a simple feedback form to PodcastItLater's existing web app.
Option B: Self-host Formbricks
Deploy Formbricks and integrate via API.
Recommendation: Option A
Simpler, no new infra, data stays in PIL database.
Requirements for Option A
1. Database Table
CREATE TABLE feedback (
id TEXT PRIMARY KEY,
email TEXT,
source TEXT, -- 'outreach', 'organic', 'trial'
campaign_id TEXT, -- links to outreach draft ID if applicable
rating INTEGER, -- 1-5 scale
feedback_text TEXT,
use_case TEXT, -- what they want to use PIL for
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
2. Web Endpoints
- GET /feedback - Show feedback form
- POST /feedback - Submit feedback (returns thank you page)
- GET /admin/feedback - List all feedback (admin only)
3. Form Fields
- Email (optional)
- How did you hear about us? (dropdown)
- What would you use PIL for? (text)
- Any other feedback? (text)
- Rating 1-5 (optional)
4. Ava Integration
Tool to query feedback:
{
"name": "feedback_list",
"parameters": {
"limit": "integer (default 20)",
"since": "ISO date (optional)"
}
}
Implementation Notes
- Add to Biz/PodcastItLater/Web.py
- Follow existing Ludic/HTMX patterns
- Add to Biz/PodcastItLater/Core.py for database operations
- Create Omni/Agent/Tools/Feedback.hs for Ava's query tool
Files to Modify
- Biz/PodcastItLater/Core.py (add feedback table + operations)
- Biz/PodcastItLater/Web.py (add /feedback routes)
- Biz/PodcastItLater/UI.py (add feedback form component)
- Create: Omni/Agent/Tools/Feedback.hs
Verification
- bild Biz/PodcastItLater/Web.py
- Visit /feedback page, submit test feedback
- Query via Ava's feedback_list tool