streamlineworks
All case studies

Supply chain · 480 agents

Northwind Logistics

Routed 12,000 tickets/month to the right agent automatically.

Northwind's support routing had become a 400-row spreadsheet nobody could read. Tickets bounced 2-3 times before landing with the right agent. We replaced the matrix in 11 days with an embedding-based routing engine — keeping the hard rules (PII, region) intact and turning everything else into a learned ranking that explains itself.

12,000

Tickets/month auto-routed

−42%

Reassignment rate

11 days

From scope to production

The screen they actually see

Browser extension, live in the agent's Freshdesk.

We replaced the matrix with a similarity-based routing engine trained on 90 days of resolutions. Hard rules (PII, region) stayed enforced; everything else became a learned ranking. Managers got an 'explain this routing' button.

northwind.freshdesk.com/a/admin/routing
Routing decision· ticket #88421
live · 122 ms
01

Ticket arrives

Subject: 'Damaged pallet on shipment LH-2241'

02

Embed + similarity match

Compared against 90 days of resolutions · 7,412 candidates considered

03

Rank by CSAT × load

Top 3 candidates surfaced, scored 0.69 — 0.88

04

Aisha B. chosen

Routed once. Explanation stored.

Candidate agents

Aisha B.routed
load 62%·CSAT 4.9match 0.88
Marcus K.
load 81%·CSAT 4.6match 0.74
Henrik L.
load 47%·CSAT 4.7match 0.69

Requirements & solutions delivered

What they asked for. What we shipped.

01Requirement

Replace the 400-row routing matrix nobody owned

Delivered

Embedding-based routing engine trained on 90 days of resolutions. The matrix was archived on day 11, not refactored.

02Requirement

Preserve the hard rules (region, PII handling)

Delivered

Hard rules became constraints, enforced before similarity ranking ever runs. Compliance team signed off pre-launch.

03Requirement

Explain every routing decision for ops auditing

Delivered

Every routed ticket carries a 'why this agent' tag — match score, load context, CSAT — queryable from manager dashboards.

04Requirement

Onboard new agents in under a week

Delivered

Engine routes only tickets in a new agent's skill range, ramping confidence gradually. Onboarding fell from 14 days to 5.

05Requirement

Show shadow-mode results before going live

Delivered

4 days of shadow mode: engine suggested, managers approved. 1,500 tickets reviewed. 92% approval before cutover.

The problem

What it actually looked like.

Northwind's existing routing matrix had 400+ rules and nobody knew which were active. Tickets bounced an average of 2.3 times before landing with the right agent. Onboarding new agents was a multi-week ordeal.

400 rules

Routing matrix rows, mostly stale

2.3×

Average reassignments per ticket

31%

Tickets reassigned at least once

14 days

New-agent onboarding time

Before vs after

Ticket routing: rebuilt.

Before

Before · static matrix

  1. 1Ticket arrives in the queue
  2. 2Match against 400-row rules sheet
  3. 3First-rule match wins (often wrong)
  4. 4Agent triages, escalates, reassigns
  5. 5Reassign 2.3× on average before resolution

Nobody knew which rules were active. New agents bounced tickets for weeks.

After

After · learned routing

  1. 1Ticket arrives in the queue
  2. 2Similarity match against 90 days of resolutions
  3. 3Top-3 agents ranked by CSAT + current load
  4. 4Routed once · 'why this agent' explanation stored
  5. 5Resolve

−42% reassignment. First-touch resolution +19%. Onboarding: 14 days → 5.

How we shipped

Day 1 to live in day 11.

  1. Day 1
    Step 01

    Audit

    Read the 400-row matrix end-to-end. Identified the hard rules (PII, region) we'd preserve.

  2. Day 3
    Step 02

    Backfill training

    Trained similarity engine on 90 days of resolved tickets. About 6 hours of compute.

  3. Day 7
    Step 03

    Shadow mode beta

    Engine suggested routes, managers approved. 1,500 tickets reviewed in 4 days.

  4. Day 11
    Step 04

    Production cutover

    Full handover. Old matrix archived. 'Explain this routing' button shipped.

"We had a feature request open with Freshworks for 18 months. streamlineworks built it in 11 days."

Marcus K. · VP Customer Experience, Northwind Logistics

Outcomes

  • Reassignment rate dropped from 31% to 18%
  • First-touch resolution climbed 19%
  • New-agent onboarding time fell from 14 days to 5 days
  • Operations team retired the old routing spreadsheet

Stop waiting for Freshworks to ship it.

Tell us the workflow that's costing your team time. We'll have a working prototype in your hands inside two weeks.

founders@streamlineworks.io