Feedback and bug reports
Anyone signed in to Shoehorn can send feedback or report a bug from inside the app. The button is in the top bar.
Reports go out by email, so there’s no extra ticketing system to run.
What gets sent
Section titled “What gets sent”Each submission includes:
| Field | Source |
|---|---|
| Type | Feedback or Bug Report (the sender picks) |
| Subject | Up to 200 characters |
| Description | Up to 5000 characters |
| From | The signed-in user’s email |
| Tenant | The tenant they’re signed in to |
| Page URL | The page they were on |
| User Agent | Their browser |
| Submitted At | UTC timestamp |
The email is plain text, no attachments or HTML.
Where it gets sent
Section titled “Where it gets sent”Set smtp.feedbackEmail to the address that should receive reports, usually a team alias like platform-team@example.com.
smtp: enabled: true host: smtp.example.com port: 587 username: shoehorn from: shoehorn@example.com feedbackEmail: platform-team@example.com passwordSecretRef: name: shoehorn-smtp key: passwordIf you leave smtp.feedbackEmail empty, reports go to feedback@shoehorn.dev (the Shoehorn team). Set your own address unless that’s what you want.
If smtp.enabled is false, the button still works but the API logs the submission instead of sending it. The user sees the same success message either way.
Rate limit
Section titled “Rate limit”Each user can submit at most 5 reports per 10 minutes. The 6th is rejected with 429 Too Many Requests and a Retry-After: 60 header.
POST /api/v1/feedback
{ "type": "feedback", "subject": "Catalog filter dropdown closes too early", "description": "When I click outside the dropdown but inside the table...", "page_url": "https://shoehorn.example.com/catalog", "user_agent": "Mozilla/5.0 ..."}type must be feedback or bug. Auth required.
Returns 200 OK with { "status": "sent" }, or { "status": "received" } when SMTP is disabled.