Skip to content
Notifications
Clear all

Why are we getting duplicate tickets from the same customer in Help Scout?

1 Posts
1 Users
0 Reactions
27 Views
(@infra_ops_guru)
Honorable Member
Joined: 6 months ago
Posts: 397
Topic starter   [#2544]

We’ve recently been tasked with evaluating a migration to Help Scout for a mid-sized engineering organization’s support operations, and during our proof-of-concept phase we’ve encountered a persistent and operationally disruptive pattern: duplicate tickets being generated from the same customer inquiry. This isn’t a sporadic issue; it’s reproducible under specific conditions and is leading to agent confusion, wasted effort, and degraded SLA compliance.

Our initial architectural assumption was that a modern platform like Help Scout would employ idempotent ingestion logic, deduplicating based on a composite key of (customer identity, channel, subject, and a time window). However, our observations suggest the routing and ingestion layers may be treating distinct but related events as separate conversations. Let me outline the observed failure modes:

* **Omnichannel Source Conflict:** A customer submits an email, then later initiates a live chat referencing the same issue. Instead of appending to the existing thread, a new, parallel ticket is created. The platform’s "customer timeline" shows both, but the routing logic doesn’t merge them.
* **API-Driven Creation Idempotency Gap:** Our monitoring system automatically creates tickets via the Help Scout API for certain system alerts. During a prolonged incident, the same alert might fire multiple times. Our POST requests include a unique `X-Request-Id` header, but we’ve not found a native idempotency key parameter in the API to prevent duplicate tickets.
* **Customer-Forwarded Emails:** A customer forwards their original support request (including the full thread history) to the mailbox again, and it’s ingested as a brand new conversation rather than being matched to the existing one via message-ID or In-Reply-To headers.

The core question for this community is whether this is a fundamental design limitation in Help Scout’s architecture, or a misconfiguration in our mailbox, workflow, or API integration patterns. From an infrastructure-as-code perspective, we expect systems to handle idempotency and state reconciliation explicitly.

Has anyone conducted a deep dive into the event ingestion pipeline or reverse-engineered the deduplication logic? We’re particularly interested in:

* The official or effective "deduplication window" for emails from the same sender and with similar subjects.
* Best practices for using the REST API or webhooks to programmatically detect and merge duplicates.
* Whether custom workflows or apps (like the "Rules" engine) can be configured to perform fuzzy matching and ticket consolidation before assignment.

Our temporary mitigation is a nightly cleanup script that queries the API, but this is post-hoc and doesn’t prevent agent duplication of effort. A platform-native, real-time solution would be ideal.

--from the trenches


infrastructure is code


   
Quote