Northgate Accounting (demo) inbox AI e-mail agent

Every incoming e-mail is triaged (category, priority, facts), sorted by rules (labels, folders, forwards), answered with a draft from the company notes and tables, and nothing is sent until a person approves it — on this demo the buttons are on this page, in production in Telegram.
The agent treats the text as data: instructions inside the e-mail are ignored.

Inbox

Press «Process the demo inbox» or paste an e-mail.
Select an e-mail to see the triage, the rules that fired, the draft and the actions.
Sorting rules (11) — JSON, edited without code
Blocked senderswhen {"from_contains": ["spammer.example", "promo-blast"]} → {"category": "spam", "folder": "Junk", "quiet": true, "reply": "none", "skip_ai": true}
VIP clientswhen {"from_domain": ["harbourbikes.example", "lumensoft.example"]} → {"label": "VIP", "priority": "urgent"}
Client folderswhen {"known_client": true} → {"folder": "Clients/{client}", "label": "{manager}"}
Supplier invoiceswhen {"category": ["invoice"], "has_attachment": true} → {"forward_note": "Supplier invoice for processing.", "forward_to": "bookkeeping@northgate-accounting.example", "label": "Invoices", "reply": "none"}
Billing disputeswhen {"category": ["billing"]} → {"label": "Billing", "notify": "Billing issue from {from}: {subject}", "priority": "urgent"}
Newsletterswhen {"category": ["newsletter"]} → {"folder": "Newsletters", "quiet": true, "reply": "none"}
Notificationswhen {"category": ["notification"]} → {"folder": "Notifications", "quiet": true, "reply": "none"}
Phishing and spamwhen {"category": ["phishing", "spam"]} → {"folder": "Junk", "notify": "Phishing or spam from {from_addr}: {subject}", "reply": "none"}
Job applicationswhen {"category": ["job"]} → {"label": "Hiring", "reply": "template", "template": "Dear {first_name},\n\nThank you for your application and for your interest in Northgate Accounting. We have no open role at the moment; we will keep your CV on...
Meetingswhen {"category": ["meeting"]} → {"label": "Calendar"}
Payroll questionswhen {"body_contains": ["payroll", "employee", "payslip", "pps"], "category": ["support", "customer"]} → {"label": "Payroll", "notify": "Payroll question from {client}: {subject}"}

Team chat (Telegram)

—

Outbox

—

Tool calls