Files
redmine/docs/contact_triage_loop_draft_2026-07-09.md
T
Jason Thistlethwaite 9ee9eb3ec6 Organized
2026-10-17 20:50:35 -04:00

3.3 KiB
Raw Blame History

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)

  1. 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
  2. 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 spam or promotional tag patterns?
  3. 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.

  4. Execution & logging

    • Use existing Redmine MCP tools or the semantic search CLI on mcpness for discovery.
    • Apply spam/promotional tags where appropriate for future filtering.
    • Record a short note on the contact or in a running log (which contacts were reviewed and outcome).
  5. 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.