Deduplication
When a customer sends a follow-up email without using the per-ticket reply address (e.g. they hit βReplyβ in a different mail client, forwarded the original, or wrote a fresh email about the same problem), Scitor matches it back to their existing ticket instead of opening a new one.
How matching works
For every non-plus-addressed inbound, Scitor computes:
sender_hashβ sha256 of the lowercased sender email.subject_norm_hashβ sha256 of the normalized subject. Normalization lowercases, repeatedly stripsRe:,Fwd:,AW:,Sv:,VS:(with optional bracketed counts likeRe[2]:), and collapses whitespace.
It then looks up inbound_threads for a row matching (installation_id, sender_hash, subject_norm_hash) updated within the configured window. If found, the new email becomes a reply on the stored ticket. If not, a new ticket is created and the thread is recorded for next time.
When the matched ticket is closed, Reopen on Reply takes over.
Configuration
inbound:
dedup:
enabled: true
window: 7d
enabledβ toggle the entire feature. Defaulttrue.windowβ how far back to look for an existing thread. Accepts30s,15m,2h,7d. Default7d.
Why subject + sender, not just headers?
Scitorβs outbound emails do set Message-ID and threading headers, and inbound mail clients usually echo them back via In-Reply-To / References β but only when the customer hits βReplyβ in the same client thread. Real-world support traffic is messier: customers forward to a colleague who then writes back, customers compose fresh emails about the same issue (βFollowing up on my last emailβ), and mobile clients sometimes drop reference headers entirely. Subject + sender catches the common case reliably; header-based matching can be layered on later as a fallback.
Limits
- Dedup is per (installation, sender, normalized subject). Two unrelated tickets with the same subject from the same sender will collapse onto the most recent one. If thatβs a problem for your team, use distinct subjects in your saved replies.
- Plus-addressed replies (
hashid+nodeId@β¦) always bypass dedup β they go straight to the addressed ticket. - The
inbound_threadstable is keyed on the hash, so subject content is never stored in plaintext.
Was this article helpful?