SEO Services
Education Industry / Technical Guide
Build an AI Email Triage System for University Admissions Step-by-Step Guide
A complete walkthrough for building an n8n + Claude API workflow that classifies, routes, and auto-replies to admissions inquiries — cutting median response time from 18 hours to 47 seconds.
Inbound email
n8n trigger
Claude classifier
Switch — 7 routes
Auto-reply or
Human queue
Postgres audit log
1. The Problem — Why Manual Triage Breaks at Scale
Every university admissions office faces the same August-September wave: thousands of inbound emails, three to seven staff members, and a 48-hour expectation from Gen-Z applicants who measure response time in messaging-app minutes, not corporate hours.
Real numbers from a 12,000-student university
| Inbound emails (peak month) | ~9,400 |
| Median first-response time | 18 hrs |
| Repeat questions (FAQ-class) | 62% |
| Emails escalated incorrectly | 19% |
| Staff overtime hours / week | 31 |
62% of inbound mail is repeat-question traffic — application status, deadline reminders, document checklist, contact info changes. These don’t require human judgment; they require accurate, fast retrieval and a templated reply with the right student context filled in.
What “triage” means here
Triage is not automating the entire reply. It’s a three-tier sort:
- Auto-reply (high confidence): FAQ, status checks, document confirmations — system replies in seconds.
- Draft + human send (medium confidence): AI prepares the reply with student context; staff member reviews and clicks send.
- Escalate (low confidence or sensitive): appeals, financial-aid disputes, complaints — flagged into a priority queue for senior staff.
2. System Architecture
Five components, each replaceable. Built for self-hosted n8n so a university IT department can audit every byte that touches student data.
The stack
Cost estimate (10,000 emails/month)
| Claude Haiku (10k classifications, ~500 tok in / 50 tok out) | ~$8 |
| Claude Sonnet (3,800 drafts, ~1,200 tok in / 400 tok out) | ~$72 |
| VM (n8n + Postgres, DigitalOcean / Hetzner) | ~$24 |
| Backup + monitoring (Healthchecks.io, Backblaze) | ~$8 |
| Total / month | ~$112 |
Email Source Connection
n8n’s built-in Gmail Trigger fires on every new inbound message in a watched label. For Outlook, use the Microsoft Outlook node with OAuth2. For institutions on legacy mail servers, IMAP IDLE works but adds 5–15s latency.
OAuth setup (Gmail example)
- In Google Cloud Console: create OAuth client (web app), add n8n callback URL.
- Enable Gmail API for the project.
- In n8n: Credentials → Gmail OAuth2 → connect, sign in as the shared admissions inbox account.
- Set scopes:
gmail.modify(read + label, no delete).
Filter rules (skip the noise)
Roughly 30% of inbox traffic is automated: bounce notifications, calendar invites, newsletter replies. Filter at the trigger to save API spend.
applicant-inbound) with a Gmail filter that routes external mail to it.Classification Layer (Claude API)
Every email gets one Haiku call: classify into one of seven categories, output a confidence score. Haiku handles 10k/day at ~$0.80 cost — essentially free at this volume. The same classification pattern powers our automated FAQ systems for SaaS support inboxes.
The 7 categories
“Has my application been received?”
Transcripts, recommendation letters, scores.
Date questions per program.
Curriculum, prerequisites — needs program staff.
Scholarships, tuition, aid packages.
Always escalate. Never auto-reply.
Always escalate to senior staff + log.
Classification system prompt
Copy-paste ready. Tested at ~94% accuracy on a 500-email validation set.
n8n HTTP Request node
classifier_error. Don’t silently drop. The same defensive pattern shows up in our custom n8n workflow builds.Routing Logic
An n8n Switch node sends each email down one of three paths based on category and confidence score.
Decision rules
| Category | Confidence ≥ 0.85 | Confidence < 0.85 |
|---|---|---|
| application_status | Auto-reply | Draft + human |
| document_question | Auto-reply | Draft + human |
| deadline_inquiry | Auto-reply | Draft + human |
| program_specific | Draft + human | Draft + human |
| financial_aid | Draft + human | Draft + human |
| decision_appeal | Escalate (urgent) | Escalate (urgent) |
| complaint_or_legal | Escalate (urgent) | Escalate (urgent) |
The 0.85 threshold isn’t magic — tune it to your historical false-positive tolerance. Lower threshold = more auto-replies, more risk. Start at 0.9 for the first month, then drop to 0.85 once you’ve reviewed the auto-reply error rate.
Draft Generation for Human Review
For medium-confidence categories, Claude Sonnet writes a full reply with the applicant’s actual context — name, application status, missing documents, program staff name. Staff review and click send.
Context injection (RAG-lite)
Before calling Sonnet, n8n queries Postgres with the sender’s email to fetch the applicant context. The Postgres mirror is populated nightly via the same pattern we describe in automated CRM management:
- Applicant ID, name, program, application status
- Documents received vs. missing
- Assigned admissions counselor name + email
- Last 3 emails in this thread (if exists)
Draft generation prompt
Where the draft lands
The n8n workflow creates the reply as a Gmail draft in the same thread, applies a label like ai-draft-pending, and posts a Slack notification to the admissions channel. Staff opens the thread, reviews, edits if needed, sends — all in their normal Gmail UI.
Auto-Reply Layer
For high-confidence FAQ-class categories, the system replies in seconds. Personalized with applicant context, signed by their assigned counselor, sent from the admissions inbox. For real-time channels like WhatsApp the same pipeline drives our WhatsApp AI agent.
Safe to auto-send
- application_status — “We received your application on March 12. We’re currently reviewing all materials. You’ll hear from us by April 15.”
- document_question — “We’ve received your transcript and recommendation letters. We’re still waiting on your financial documents.”
- deadline_inquiry — “The deadline for the BSc Computer Science program is May 1, 2026 (early decision: February 1).”
Never auto-send
- Admissions decisions (accept/reject/waitlist)
- Financial aid figures or scholarship awards
- Anything mentioning legal terms, complaints, or appeals
- First-time applicant onboarding (give a human first impression)
The personalization loop
Auto-reply isn’t a templated form letter. The Sonnet draft prompt runs identically — same context injection, same tone rules — then n8n sends it directly via Gmail API instead of saving as draft. The applicant sees a reply with their name, their program, their counselor’s signature.
Logging & Continuous Improvement
Every classification, draft, and send writes to a Postgres table. After 30 days you have data to find the system’s blind spots.
Logging schema
Weekly improvement query
Find the categories where humans rewrite drafts heavily. Those are your prompt-tuning targets.
Common Failures & Fixes
Three failure modes show up in every implementation. Plan for them on day one, not after the first incident.
Failure 1: Hallucinated tuition figures
Symptom: Draft says “Tuition is $54,000/year” — the actual figure is $48,500.
Fix: Never let the model generate numbers. Inject the current figure via context. If the context doesn’t have it, the prompt forces “I’ll connect you with your counselor for the exact figure” — never an invented one.
Failure 2: Wrong-language replies
Symptom: Chinese applicant writes in English (signature still in Chinese), Sonnet replies in Chinese.
Fix: The classifier prompt explicitly says “Detect language from the body, not the signature.” Pass the detected language to the draft prompt as a constraint: “Reply in: en”.
Failure 3: Over-confident classifier on edge cases
Symptom: Email says “I’d like to know about your scholarship for international students” — classifier picks deadline_inquiry with 0.92 confidence and auto-replies with a generic deadline answer.
Fix: Add a keyword overlay that downgrades confidence to 0.5 if the email contains specific terms (scholarship, aid, financial) regardless of the model’s category pick. Crude but effective — the cost of wrong auto-reply on financial topics is high. We document the same defensive layering for high-stakes domains in our non-profit automation guide.
Privacy: FERPA & GDPR
University admissions data is regulated. FERPA in the US, GDPR in the EU, and many countries have similar rules. The system must be auditable.
What Claude sees (and doesn’t)
- Sees: Email body, subject, applicant first name, application status (pending/under review/decided), program name.
- Doesn’t see: SSN, date of birth, financial documents, transcripts, GPA, test scores, decision rationale.
The Postgres applicant lookup table is a deliberately reduced mirror of the CRM — only the fields needed for replies. No PII beyond name and email.
Data residency
Anthropic offers Claude API in multiple regions. For GDPR compliance, route requests through the EU endpoint. For FERPA, sign Anthropic’s BAA-equivalent agreement (commercial agreement covering education data).
Audit trail
Every API call is logged with: timestamp, prompt hash, model used, response, human reviewer (if applicable). FERPA-aligned 7-year retention by default.
Measured Results — 90 Days In
Numbers from a real implementation at a private university (12,000 students, 4-person admissions team) after the first admissions cycle.
The auto-reply rate of 54% means human staff handled 46% — but the 46% they handled got their full attention, with AI-generated drafts as a starting point. Edit distance averaged 38 characters per draft (mostly tone tweaks, not factual corrections).
Implementation Timeline & Cost
- n8n self-host setup: 4–6 hrs
- Gmail OAuth + filtering: 2–3 hrs
- Claude prompts (iterate to ≥90% accuracy): 12–18 hrs
- Postgres schema + CRM mirror: 6–10 hrs
- Testing on 500-email validation set: 8–12 hrs
- Documentation + runbook: 4–6 hrs
- Week 1: Audit current inbox, build classifier, validate
- Week 2: Draft prompts, deploy in shadow mode, train staff
- Includes: 90-day SLA, prompt tuning, monthly accuracy report
- Ongoing: ~$120/mo API + n8n hosting
FAQ
Want this built for your admissions office?
SEOKRU deploys this exact system in 2 weeks. We handle prompt tuning, FERPA-aligned hosting, staff training, and 90 days of accuracy monitoring. You keep ownership of every component.
Talk to an automation engineer