E-commerce
June 29, 2026
Monday 9 a.m., Marie writes to support@ about a blocked package. 9:12 a.m., she opens the site's chat. 9:18 a.m., she sends an Instagram DM: "no one is responding". Three tickets, three agents, sometimes three different answers. Multi-channel duplicate tickets are not a sign of bad customer intentions; it's a mix of anxiety and parallel open channels.
eDesk estimates that a customer who contacts you by email and then on Instagram often generates three threads for a single problem (eDesk, multi-channel duplicates 2026). Gorgias offers auto-merge: open tickets from the same customer merged into a single thread (Gorgias, auto-merge).
This guide, #256, addresses operational deduplication for email, chat, and social networks. Distinct from inbox centralization (pooling channels together): here, the focus is on merging, preventing, and responding just once.
Summary
Why do multichannel duplicates overload support?
A duplicate e-commerce ticket consumes agent time without adding customer value. Worse: it creates contradictory answers.
Three root causes
Delay anxiety: no chat reply → email → DM
Fragmented identities: IG without email, two personal/pro addresses
Siloed processes: social team vs. email team without visibility
Measurable cost
eDesk: agents waste time merging manually before even replying (eDesk, single customer view 2026). Salesforce cites repeating information as a major friction point and churn driver.
DTC fashion example
Instagram-first brand, 420 tickets/week. 18% cross-channel duplicates detected post-audit. Before dedup: 2.3 agents touched the same customer, CSAT 3.6. Gorgias auto-merge + DUPLICATE macro + repeat_contact bot: duplicates auto-resolved 71%, AHT −22%, CSAT 4.1.
How does it differ from centralization and triage?
Five multi-channel contents, five distinct problems.
Inbox Centralization
Centralization: all channels in one inbox. #256: one customer = one active thread even if three messages arrive.
Triage bot (#236)
Triage (#236): classify urgency and intent. #256: flag repeat_contact_7d and merge before routing.
Instagram DM (#133) and social commerce (#134)
Instagram (#133) and social commerce (#134): ops by channel. #256: email ↔ DM ↔ chat collision.
Document bot (#255)
Document bot (#255) tag invoice_bot_resolved. #256 generalizes the logic of ticket already open on the same intent.
Omnichannel POS (#omnichannel)
Omnichannel POS: store + web. #256 includes POS if same customer email.
What types of duplicates should be detected and tagged?
Six support duplicate patterns to distinguish for macros and rules.
Duplicate Taxonomy
dup_cross_channel: email + chat + social, same subjectdup_same_channel: two emails before replydup_split_issue: WISMO email + return chat (linked topics)dup_agent_created: agent opens second ticket by mistakedup_bot_handoff: bot escalates + customer also writes via emaildup_marketplace_dtc: Amazon + site same customer
Auto-Detection Signals
Same customer_id + open ticket + creation < 48 h + identical intent tag or order_id match. eDesk: duplicate flag before manual merge (eDesk, repeat contacts 2026).
Gorgias Tags
duplicate_merged, duplicate_parent, repeat_contact_7d. See taxonomy (#135).
How do you solve cross-channel customer identity?
Support identity resolution is the prerequisite for any automatic merge.
Matching keys
Email: primary Shopify + Gorgias key
Phone: Gorgias auto-matching if enabled
Order No.: sidebar lookup, not identity alone
Instagram Handle: link after first email auth
Merge Gorgias profiles
Gorgias suggests a merge when a duplicate is detected. If Shopify history is under two emails: merge in Shopify first, then in Gorgias (Gorgias, merge customers).
Agent workflow for new IG identity
Ask for order email in DMs (mandatory post-purchase)
Look up order in Gorgias sidebar
Add email to IG profile or merge profiles
Tag
identity_linkedfor future contacts
B2B Rule
Exclude company accounts from auto-merge if multiple buyers share the email billing@ (Gorgias exclude rule).
How to set up Gorgias auto-merge?
Gorgias auto-merge merges open tickets from the same customer within a configurable window.
Recommended DTC Settings
Workflows → Tools → Auto-merge → enable
Creation window: 3-5 days (not the 180 max default)
Eligible channels: email, chat, Instagram, Facebook, SMS, WhatsApp
Exclude rule: B2B multi-buyer tickets, press partners
Gorgias conditions: same customer, open tickets, day window, eligible channels (Gorgias, merge criteria).
Typical Auto-Merge Scenario
Customer writes an email on Monday at 9:00 AM (ticket #1001). Chat on website Monday at 9:15 AM (ticket #1002). Auto-merge merges #1002 into #1001. Agent sees both messages, replies once on #1001. Customer receives a single coherent response.
Useful Exclusions
Rule action "Exclude ticket from auto-merge" for: chargeback disputes (one legal thread, one ops thread), corporate bulk 50+ packages (separate tickets per recipient), internal test tickets.
Manual Merge
Three dots on ticket → Merge. Choose parent ticket = oldest (protects email SLA). eDesk: never leave two threads open without a cross-channel note.
Which DUPLICATE macros and cross-channel responses?
Four duplicate support macros prevent double responses and customer confusion.
DUPLICATE-MERGE-NOTE-01 (internal)
"Merged with parent ticket #[X]. Do not reply here. See thread #[X] for full context."
DUPLICATE-CLIENT-02 (secondary channel)
"Hello, we have received your message. We are replying to you on your initial thread (order #[X]). Please check your emails or the chat opened at [time]. Thank you for your patience."
DUPLICATE-IG-03 (Instagram after email)
"Thank you for your DM. Your request is already being handled via email (reply sent to [hidden email]). Check your spam. Need help? Reply on that email thread for a single follow-up."
DUPLICATE-WAIT-04 (impatient customer)
"We process your request only once. Current response time: [channel SLA]. Multiplying messages does not speed up processing but creates duplicates. An advisor will get back to you within [X] hours." Calm tone, see anger (#214).
Single reply rule
One substantial reply on the parent ticket. Secondary channels: short note + redirection. Never two refunds or two return labels for the same order_id.
How does the bot prevent duplicates before escalation?
The anti-duplicate bot checks open tickets before creating a new thread.
repeat_contact bot flow
Email auth + Gorgias API lookup for open tickets
If open ticket with the same intent within 7 days: display status + last agent response
Offer: "Your request #[ticket] is in progress. Add a message?"
If yes: append to the existing thread, no new ticket
If new subject: create ticket with a distinct tag
Bot messages ready to paste
Existing ticket detected: "I found your request open since [date] (tracking order #[X]). An advisor will reply within [SLA]. Would you like to add a detail here instead of opening a new thread?" No open ticket: normal WISMO or intent flow.
Bot handoff + email
Pattern dup_bot_handoff: customer leaves chat, writes email. Bot closing message: "Case #[ref] forwarded. Reply by email within [SLA]. Do not reopen chat for the same subject." Align with context transfer (#155).
Chat widget
If active session + open ticket: "You already have an open conversation. Continue here?" Servia: unified inbox avoids lost messages between channels (Servia, omnichannel 2026).
What agent workflow when two tickets are already open?
The manual merge workflow applies when auto-merge has failed or there are mixed subjects.
Agent tree (5 min)
Open Gorgias Customer Timeline: any open tickets?
Same order_id or same intent? → candidate for merge
Choose parent = oldest or the one with email SLA
Merge + internal note DUPLICATE-MERGE-NOTE-01
Complete response on parent only
Macro DUPLICATE-CLIENT-02 on secondary children
Conflict with responses already sent
Two agents answered different things: lead intervenes, single clarification message to the customer, document in decisions (#239).
SLA preservation
Replying in the original thread protects email SLA. Merge does not erase the first contact timestamp. FRT impact: see FRT support.
Which KPIs and which weekly review?
The support duplicates metric proves the dedup ROI before adding agents.
Primary KPIs
Duplicate rate: merged tickets / total tickets
Multi-touch rate: customers with 2+ open tickets within 48h
Conflicting reply rate: QA audits of duplicates
Repeat contact 7d: same unresolved intent
DTC Targets
Duplicate rate < 8% after auto-merge. Multi-touch < 5% of active customers/week. Conflicting replies: 0 tolerated on refund disputes.
30-min Weekly Review
Top 10 manual merges: why did auto-merge fail? Most duplicated channel (often IG + email). Adjust merge window or exclusion rule. Export to training playbook.
Which deduplication anti-patterns should be avoided?
Six multichannel duplicate errors multiply confusion.
Replying on every thread
Customer receives three different answers. Fix: parent + short secondary macros.
Closing tickets without merging
Fragmented history. Fix: merge before close.
Auto-merge 180-day window
Merges unrelated topics. Fix: 3-5 days DTC.
Ignoring IG profiles without email
Impossible to detect duplicate. Fix: mandatory post-purchase email collection.
Siloed social vs email teams
Double ownership. Fix: single queue, channel tags.
Bot opens ticket without checking open ones
Fix: API open tickets in pass 1 triage (#236).
How does Qstomy reduce multichannel duplicates?
Qstomy checks open tickets and appends to the existing thread before creating a new ticket or escalating.
Anti-duplicate features
Gorgias/Zendesk live open ticket lookup
repeat_contact flow: status + append message
Cross-channel identity: email linked to chat session
Handoff dedup: unique customer ticket ref
Auto tag duplicate_merged if appended
Weekly duplicate rate dashboard
DTC Case Study
Beauty brand, 680 tickets/week, 22% cross-channel duplicates previously. Gorgias auto-merge alone: −41% remaining duplicates. Qstomy repeat_contact + handoff ref: duplicate rate 6.8%, conflicting replies 0 over 12 weeks, AHT −19%, post-merge CSAT +0.4 pt.
Explore Shopify integration, AI customer support, request a demo.
Which operational playbooks can be launched in 2 weeks?
Playbook 1: duplications audit (4 h)
Export 30 days of merged tickets + sample of 50 multi-channel customers. Calculate duplicate rate baseline. Map collision channels (#133, email, chat).
Playbook 2: Gorgias auto-merge (1 h)
Activate section 5. 5-day window. Rules exclude B2B. Test 10 scenarios.
Playbook 3: DUPLICATE macros (2 h)
Import 4 macros from section 6. Train team: parent reply only.
Playbook 4: IG identity (1 week)
DM macro "please confirm order email". Weekly profile merge. Instagram (#133) link.
Playbook 5: repeat_contact bot (2 weeks)
Open tickets API. Section 7 flow. Pilot chat on 20% of traffic.
Playbook 6: KPI review (30 min/week)
Duplicate rate, top collisions, adjustments. Feed triage (#236).
Useful Links
Centralizing channels means seeing all messages. De-duplicating means processing once, replying once, measuring once. When auto-merge, customer identity, and repeat_contact bot advance together, the customer stops screaming on three channels for a stuck parcel.

Enzo
June 29, 2026





