Recruiting/HR language is routed out only when there is no customer reference number, no explicit Opportunity/BizWiz ID, and no OCR customer card. Customer/operational signals keep the message in Escalations.
Importer Decisions
Every incoming escalation message, what the importer decided, and why. The current importer is deterministic rules + scored matching — not a hidden AI classification.
Property damage/post-install water or legal/media/safety signals → Fire Candidate / Critical. Repeated unresolved contact/refund/cancellation signals → Fire Candidate / High. Appointment/callback/follow-up signals → Same Day / Normal. Everything else → Watch / Normal.
Only explicit current-message completion language counts as resolved. “Will call,” “left voicemail,” “waiting,” “parts ordered,” “permit pending,” etc. stay pending. Quoted old email text is removed before this decision.
Exact name +5; same last name + first initial +2; exact address +6; same house number +1; city +2; state +1. Threshold is 8 with an address, otherwise 5. If the runner-up is within 1 point, the importer refuses the automatic match.
Conversation ID is preferred. Fallback is same branch + customer reference number, with customer-name compatibility. Existing urgency can increase but is not reduced.
The reconciliation layer can merge duplicate incidents, title-route ownership by workstream, close explicit resolved/wrong-region threads, or promote an unresolved operational commitment to Fire.
The newest message alone is rechecked for property damage, post-install water intrusion, or persistent legal/media/BBB risk. A match forces Critical and promotes to Fire so old quoted thread text cannot create the severity signal.