3.3 KiB
Contact Triage Loop – Draft-Stage Contact-First Approach (2026-07-09)
Status: Draft / exploratory. Intended as a lightweight, iterative starting point that can be tested manually in small batches before any automation is written.
Context: This note captures the refined direction discussed on 2026-07-09 for cleaning the customer-service project (currently >1700 open tickets). The previous keyword-on-subject approach is deprioritized. The stronger signal is contact-first review using recent activity history.
Core Principle (Contact-First)
- Group decisions by contact (author/email) rather than individual tickets.
- For each contact, examine their most recent 3–5 tickets/messages.
- Decide whether that contact (and most of their open tickets) can be safely closed as spam, stale, promotional, or low-value.
- This directly targets the observed pattern that many spam/low-value tickets come from the same small set of repeat contacts.
Draft Workflow (Repeatable in Small Batches)
-
Discover candidate contacts
Find authors with multiple open tickets whose most recent activity is old or low-value.
Starting signals:- Authors with 5+ open tickets
- Authors whose most recent ticket is >60–90 days old
- Contacts whose tickets are mostly short/generic with zero follow-up
-
Per-contact review (the decision step)
For each contact, review their last 3–5 tickets and ask:- Is this contact mainly sending spam, sales pitches, or unrelated noise?
- Has there been any meaningful reply or resolution path in the last 60–90 days?
- Are the tickets duplicates, test messages, or one-off low-value imports?
- Do they match existing
spamorpromotionaltag patterns?
-
Close decision rules
Close most or all of a contact’s open tickets if any of the following are true:- Recent pattern is clearly spam/stale/no-value
- No meaningful activity or resolution path in 90+ days
- Tickets are duplicates or low-value imports
Do not close if the contact shows any recent legitimate customer issue or money-related matter.
-
Execution & logging
- Use existing Redmine MCP tools or the semantic search CLI on mcpness for discovery.
- Apply
spam/promotionaltags where appropriate for future filtering. - Record a short note on the contact or in a running log (which contacts were reviewed and outcome).
-
Guardrails
- Never close tickets involving money, formal complaints, or recent customer replies.
- When in doubt, skip the contact.
- After bulk cleanup, maintain a monthly review of “Open tickets from contacts with no activity in 60+ days.”
Why This Stays Draft-Stage for Now
- Allows manual testing on the first 10–20 worst contacts to see what the real data looks like.
- Validates the contact-history signal before investing in looping scripts or automation.
- Directly supports shrinking the 1700+ open ticket count with low risk.
Next Natural Steps (for the other thread)
- Run the first discovery pass on the worst offending contacts using current tools.
- Refine the decision questions or tagging rules based on what the contacts actually show.
- Decide whether to move any part of this into a lightweight script once the manual pattern is validated.
This note is a clean hand-off for the active thread working on the contact triage loop project.