Northscale Studio · Portfolio case study · 2026
Live · in-tenant Microsoft 365
← All work
Case study · Email AI · Microsoft Graph · Excel · SharePoint

Most of your inbox isn't thinking. It's process. So we automated the process.

A Microsoft 365-native agent that reads every inbound mail, classifies and files it, drafts the reply in the user's own tone, extracts the PDFs into the workbook that owns the data, books the meetings, and surfaces only the threads that need a human to decide. Runs entirely in-tenant, with EU residency and an audit ledger.

Operations & financeProfessional servicesBack-office teams In-tenant · EU residencyTone-matched draftingPDF → Excel extractionPer-user kill switch
94%Auto-handled rate
11.4hReclaimed / user / week
18sMedian draft latency
99.3%PDF extraction accuracy
The case study

An email lands. The agent gets to it before you do.

A walkthrough of one inbound thread: read, classified, filed, drafted in tone, its attachment extracted into the workbook, every step logged, the human pulled in only to approve.

The time-on-email math

Email eats more than a day a week: per person, every week.

Studies put knowledge-worker time on email at around 28% of the working week, over eleven hours. Most of it is sorting, filing, acknowledging and re-keying attachments: process, not judgement. That's the slice the agent takes back.

Of the week
28%
spent reading + sorting email
Per user
11.4h
reclaimed every week
Team of 10
114h
a week back across the team
Auto-handled
94%
never needs a human at all
01 · Who it helps

Built for the teams whose inbox is the operational system of record.

If approvals, invoices and reporting move through email, the agent turns the inbox from a bottleneck into a pipeline. Four profiles where it pays for itself fast.

01

Operations & finance

Invoices, confirmations and reconciliations arrive as email + PDF. The agent extracts them into the workbook instead of someone re-keying line items.

02

Professional services

Client threads must be filed, acknowledged and tone-matched. The agent drafts in each user's voice and keeps the audit trail intact.

03

Back-office teams

High volume, low judgement, zero tolerance for a dropped thread. Routine mail is handled; exceptions are surfaced, not buried.

04

Executive support

Triage, scheduling and follow-ups consume the day. The agent clears the routine so the human time goes to what actually needs it.

02 · Why it matters

The risk isn't a slow reply. It's the thread that quietly slips.

A buried attachment stalls a report; a misfiled thread breaks the audit trail; a "yes" no one logged becomes a dispute. Email is where operational truth lives, and where it most often goes missing. The agent makes the inbox accountable.

✕ Without the agent

  • Over a day a week, per person, lost to sorting and filing
  • Attachments re-keyed by hand, slow and error-prone
  • Reply lag costs deals; misfiled threads break the trail
  • No record of what was decided in the inbox

✓ With the agent

  • 94% of mail read, classified and filed automatically
  • PDFs extracted into the workbook at 99.3% accuracy
  • Replies drafted in the user's tone in ~18 seconds
  • Every action logged: in-tenant, EU residency, kill switch
03 · The build

Six steps per mail. Every one logged. All in-tenant.

Nothing leaves the Microsoft 365 tenant. A Graph subscription wakes the agent on every inbound mail; it classifies, files, drafts, extracts attachments into the SharePoint-hosted Excel workbook, and escalates only what needs a person, writing an audit entry at each step.

→ 01
ReadGraph subscription on inbound mail
→ 02
ClassifyIntent + priority, per thread
→ 03
FileRouted to the right folder
→ 04
DraftReply in the user's own tone
→ 05
ExtractPDF → Excel workbook, 99.3%
→ 06
SurfaceHuman pulled in only to decide
Per-mail flow: Graph fires on arrival → classify intent → file → draft in tone → extract any attachment into the workbook → branches: auto-send · queue for approval · escalate to a human.   🔒 In-tenant · EU residency · full audit ledger · per-user kill switch.
04 · The operator view

The same surface the agent works in, made legible to a human.

Three views of the live system: the inbox cockpit where every mail is read, classified and handled; the audit log where every action is recorded; and the invoice-to-Excel pipeline that turns an attachment into reconciled rows. Nothing leaves the tenant.

Inbox · operator console
In-tenant · EU
Inbox7
Triaged204
Drafts12
Needs you3
Archive1.6k
Routed today
Invoices41
Bookings18
FYI / cc63
Supplier09:41
Q2 carrier invoice + container summary
Invoice✓ auto-handled
Scheduling09:28
Re: site walkthrough, three slots proposed
Booking✓ drafted
Operations08:55
Weekly throughput numbers, for your records
FYI✓ filed
Supplier08:30
Disputed line on PO-4471, needs sign-off
Approval● needs you
Operations08:12
Reconciliation export ready (146 lines)
Invoice✓ extracted
Q2 carrier invoice + container summary
from accounts@supplier-domain · 2 attachments · received 09:41
Agent analysis
Classified as Invoice · finance · routine
Filed to Invoices / Q2 / carrier
Extracted 146 line items from invoice.pdf → workbook
Drafted acknowledgement in user's tone, queued
Invoice ✓ auto-handled PDF → Excel logged ×4
Classifier confidence
96%
The inbox cockpit. Every inbound mail is read, classified into an intent, filed, and either auto-handled or surfaced. The reading pane shows exactly what the agent did to the selected thread, and why.
Audit ledger · append-only
Streaming
TimeMailActionToolResultLatency
09:41:02INV-0412Read mailgraph.mail.get✓ ok0.3s
09:41:02INV-0412Classifyclassify.intent✓ invoice0.6s
09:41:03INV-0412Filemail.move✓ Invoices/Q20.2s
09:41:03INV-0412Extract PDFpdf.extract✓ 146 lines1.4s
09:41:05INV-0412Write workbookexcel.write✓ 146 rows1.1s
09:41:06INV-0412Draft replydraft.tone✓ queued0.8s
09:28:30BKG-0388Draft replydraft.tone✓ 3 slots0.7s
08:30:11PO-4471Classifyclassify.intent✓ approval, hold0.6s
8 of 1,204 events today · append-only · tenant-resident · exportable to compliance
Every action, logged in the open. Read, classify, file, draft, extract, reconcile: each tool call is an append-only ledger entry with its result and latency. An auditor can replay any thread end to end and show exactly what the agent did.
Extraction · invoice.pdf → workbook
Excel REST
Harbour Logistics B.V.
Invoice INV-2026-0412
PDF
Container handling, 40ft ×12€ 8,640.00
Carrier freight, Q2€ 14,200.00
Demurrage (3 days)€ 1,275.00
Customs handling fee€ 980.50
…142 further line items
Invoice total€ 61,418.50
extract
+ write
Reconciliation_Q2.xlsx · Sheet 1
A · ItemB · QtyC · Amount
1Container handling 40ft128,640.00
2Carrier freight Q2114,200.00
3Demurrage31,275.00
4Customs handling1980.50
5Port dues1412.00
6Documentation fee4320.00
7Fuel surcharge12,118.75
146 line items reconciled into the live workbook at 99.3% accuracy. No re-keying, every cell traceable to a source line in the PDF.
Attachment in, worksheet out. The agent reads the invoice PDF, maps each line to the right column, and writes straight into the SharePoint-hosted workbook over Excel REST, the same file the finance team already owns.
05 · Enterprise-safe by construction

It works inside Microsoft 365, not alongside it.

The agent is a tenant citizen: it uses the same identity, permissions and data residency the organisation already trusts.

01

Microsoft Graph

Reads and acts on mail through the official API, scoped per user.

02

Excel REST

Writes extracted line items straight into the live workbook.

03

SharePoint

The workbook that owns the data stays where it already lives.

04

EU residency

Nothing leaves the tenant or the region it's bound to.

05

Audit ledger

Every classify, draft and extraction is a logged event.

06

Kill switch

Per-user off switch. Control stays with the organisation.