Triage & Moderation¶
!!! info "TL;DR" Review submissions, detect spam, bulk approve/reject, and merge duplicates. The moderation queue surfaces flagged content for review. All actions are logged for audit compliance.
Triage Workflow¶
Triage is the process of reviewing new submissions, categorizing them, and changing status. The goal is to acknowledge user feedback quickly and route it to the right team.
Standard Triage Process¶
- Review Submission — Read title, description, and any attached images
- Check for Spam — Verify the submission is legitimate feedback (not spam or abuse)
- Identify Duplicates — Search for similar submissions (Canviq auto-suggests duplicates)
- Assign Category & Tags — Categorize the submission (e.g., "Feature Request", "Bug")
- Change Status — Move from "Open" to "Under Review" or "Planned"
- Post Official Comment — Optionally acknowledge receipt or ask clarifying questions
Triage Queue Views¶
The triage queue can be filtered by:
- New — Submitted in last 24 hours, status = Open
- High-Priority — >50 votes, status = Open
- Flagged — User-reported spam or abuse
- Duplicates — AI-detected similar submissions
- Stale — Open for >90 days, no team comments
Click a view to see submissions in that category.
Spam Detection¶
Canviq includes built-in spam detection (see ADR-0010). Submissions are automatically flagged if they match spam patterns:
- Keyword Matching — Common spam phrases (e.g., "Click here to win!")
- Link Density — >3 links in description
- Repeated Content — User submitted identical content multiple times
- Banned Phrases — Profanity or hate speech
Reviewing Flagged Content¶
Navigate to Admin → Moderation Queue to see flagged submissions.
For each flagged item:
- Approve — Mark as legitimate feedback (removes flag)
- Reject — Delete submission and ban user (optional)
- Edit — Remove offensive content but keep submission
All moderation actions are logged to the audit_log table.
Spam Patterns¶
| Pattern | Example | Action |
|---|---|---|
| Promotional Links | "Buy cheap followers at link.com" | Auto-flag |
| Repeated Submissions | User submits same text 5 times | Auto-flag after 3rd |
| Profanity | Submission contains banned words | Auto-flag |
| Short + Generic | "Nice" or "Good app" with no details | Auto-flag if <20 chars |
Customize spam detection rules in Admin → Settings → Moderation.
Bulk Actions¶
Select multiple submissions using checkboxes and perform bulk operations:
Available Bulk Actions¶
| Action | Description | Use Case |
|---|---|---|
| Change Status | Move all selected items to a new status | Bulk approve "Planned" submissions |
| Assign Category | Apply a category to all selected items | Categorize uncategorized submissions |
| Add Tags | Apply tags to all selected items | Tag all performance-related feedback |
| Merge Duplicates | Combine multiple submissions into one | Consolidate duplicate feature requests |
| Delete | Remove all selected submissions | Bulk delete spam |
| Export | Download selected submissions as CSV | Export high-vote items for roadmap planning |
Bulk Status Change Example¶
- Navigate to Admin → Triage Queue
- Select submissions (click checkboxes)
- Click Bulk Actions → Change Status
- Select new status (e.g., "Planned")
- Optionally add a comment (posted on all selected submissions)
- Confirm
All selected submissions are updated, and users are notified if they're following the submissions.
Duplicate Detection¶
Canviq uses PostgreSQL full-text search and vector similarity (future: embeddings) to detect duplicate submissions.
Auto-Suggested Duplicates¶
When viewing a submission, the sidebar shows "Similar Submissions" with similarity scores:
| Similarity | Submission | Votes | Status |
|---|---|---|---|
| 95% | "Add dark mode support" | 120 | Planned |
| 82% | "Dark theme for night use" | 45 | Open |
| 78% | "Option to switch to dark UI" | 30 | Open |
Click Merge to combine submissions.
Merging Submissions¶
When merging duplicates:
- Select Primary — The submission that remains (usually the one with most votes)
- Select Duplicates — Submissions to merge into the primary
- Merge Action — Votes and comments from duplicates are transferred to primary
- Status Update — Duplicates are marked as "Merged" and redirect to primary
Users who voted or commented on duplicates are automatically following the primary submission.
Manual Duplicate Marking¶
To manually mark a submission as a duplicate:
- Open the submission detail page
- Click Mark as Duplicate
- Search for the primary submission
- Confirm merge
The duplicate submission's status changes to "Merged" and all traffic redirects to the primary.
Moderation Queue¶
The moderation queue surfaces content that needs review:
| Queue Type | Description | Count |
|---|---|---|
| Spam | Auto-flagged submissions | 8 |
| User Reports | Flagged by other users | 3 |
| Profanity | Contains banned words | 2 |
| Duplicate Candidates | High similarity to existing submissions | 12 |
Moderation Actions¶
For each item in the moderation queue:
- Approve — Mark as legitimate, remove from queue
- Edit — Modify content to remove offensive parts
- Delete — Permanently remove submission
- Ban User — Prevent user from submitting future feedback
User Reporting¶
Users can report submissions via the "Report" button. Reports are reviewed by admins in the moderation queue.
Report reasons:
- Spam or promotional content
- Offensive or abusive language
- Duplicate submission
- Off-topic or irrelevant
All reports are logged with reporter ID, reason, and timestamp.
Content Editing¶
Admins can edit submission content to correct typos, remove profanity, or clarify vague descriptions.
What Can Be Edited¶
- Title — Fix typos or improve clarity
- Description — Remove offensive language, add context
- Category — Reassign to correct category
- Tags — Add or remove tags
Edit Audit Trail¶
All edits are logged in the submission_edits table:
- Editor — User ID of admin who made the change
- Timestamp — When the edit occurred
- Before/After — Original and new content
Users are notified if their submission is edited.
Auto-Triage Rules (Future)¶
Upcoming feature: Define auto-triage rules to automatically categorize and route submissions based on keywords or sentiment.
Example rules:
- If description contains "crash" or "freeze" → Assign to "Bug" category, status = "Under Review"
- If sentiment = "very negative" and votes > 10 → Notify product lead
- If description contains "export" → Tag with "export", assign to @export-team
Rules are evaluated on submission creation and can be edited in Admin → Settings → Auto-Triage.
What's Next¶
- Status Management — Learn about the submission lifecycle
- GitHub Integration — Push feedback to GitHub issues
- Team Management — Assign team members to submissions