17 September 202610 min readConsulting workflows

Email and ticket triage on-prem: running a local LLM over the inbox without sending customer data out

TL;DR

  • Email and ticket triage — classify, extract intent and entities, route, suggest a draft — scores about 9 of 12 on the local-vs-cloud axes: high volume, a fixed taxonomy, and personal data in every message.
  • A 7–12B open-weight instruct model on one 24 GB GPU is enough; multilingual capability is a hard requirement in DACH and the Nordics, and you test it on your own samples, not the model card.
  • At 1,500 input and 300 output tokens per email, 50,000 emails a month cost about €50 on GPT-4.1 Mini, €248 on GPT-4.1 and €414 on Claude Sonnet 5 at list prices — under a €600 reserved GPU line, so triage alone rarely crosses on price; sensitivity and a shared GPU make the case.
  • Build the labeled set first: about 500 historical emails, two labelers, per-class precision and recall, a confidence threshold per class, and a human triage view below it.
  • Three guardrails are non-negotiable: the system never auto-sends, PII is pseudonymized before any exception reaches a frontier API, and every message gets an audit log entry with model version, confidence and overrides.

Questions people ask

Can a local LLM handle email triage?
Yes. Classifying a message into 8–15 classes, extracting identifiers such as order or invoice numbers, choosing a queue and drafting a short reply is a narrow, repetitive task. Open-weight instruct models in the 7–12B range, quantized to fit a 24 GB GPU, handle it with schema-enforced JSON output and a prompt that defines each class with a few examples. Fine-tuning is rarely needed at the start.
How much does it cost to triage 50,000 emails a month with an API versus a local model?
Assuming 1,500 input and 300 output tokens per email and list prices at the time of writing, 50,000 emails cost about €50 on GPT-4.1 Mini, €248 on GPT-4.1 and €414 on Claude Sonnet 5. A reserved EU GPU is about €600 a month, so triage alone does not cross on price at that volume; it does when the GPU is shared with document extraction or when the data cannot leave the network.
Why run ticket classification on-premise instead of on a cloud API?
Because the inbox is personal data: customer contact details, supplier bank details, contract terms and HR correspondence that can include special-category data under GDPR Art. 9. Sending every message to a US-headquartered API is a transfer under Art. 44–49 that needs a mechanism and a processor agreement. A local model reads the message inside your network, keeps working when an API is down, and leaves no third-party retention to audit.
How do you evaluate an email triage model?
Label about 500 historical emails with two independent labelers, stratified so every class has at least 25 examples, and hold out 100. Report precision and recall per class: precision where a wrong route is costly, recall where a missed class is costly, such as complaints and cancellations. Confusion between adjacent classes usually means the taxonomy needs fixing, not the model. Set a confidence threshold per class.
Should AI triage send replies automatically?
No. The system should route, tag, prioritize and draft; a person sends. An auto-sent wrong reply to a complaint costs more than the automation saves, and a routing suggestion is a different thing from an automated decision with legal effect under GDPR Art. 22. Keep a human in the decision for refunds, cancellations and terminations regardless of the model’s confidence.
How do you integrate a local triage model with a helpdesk or mailbox?
Through the mailbox API (Microsoft Graph, the Gmail API or IMAP) or the helpdesk’s ticket-created webhook. A small service reads the message, calls the local model behind an OpenAI-compatible endpoint, and writes the class, entities, queue and draft back as fields and an internal note. Run it in shadow mode first, with suggestions in hidden fields, and compare against human routing before enabling auto-routing.

Want this worked out on your documents?

We will price a real sample against OpenAI or Anthropic and tell you whether Local AI consulting or a local model on your hardware is the cheaper first step.