Jeremy Badder
← All work
Paid contract · Accounting Agency · since August 2026

Alfred, an AI email assistant for an accounting firm

Alfred reads the firm's client email, drafts the reply for staff to approve, and learns from their corrections.

Everydraft is reviewed by a person before it goes out
27help articles, with screenshots that refresh themselves
1 clickto enter an emailed bill in QuickBooks, after approval
Narrated walkthrough coming soonOne email in, one draft out, a person approving it. Shown with test data.

The problem

An accounting firm's inbox never stops: client questions, documents, bills to enter, from dozens of clients at once. Staff spend hours reading, sorting and replying, and much of what they need to know lives in the owner's head.

What I built

  • Drafts for every email. Alfred reads each one, drafts the reply, and says what it needs from staff. Inboxes are grouped by client, not by sender.
  • It learns. On each email, Alfred notes what it was missing. When staff confirm a fact or correct a draft, it becomes a rule for next time.
  • Bills become one click. A bill that arrives by email shows up as a "bill to enter" card. After someone approves it, one button enters it in QuickBooks. Each approval works once.
  • A document library staff edit right inside Alfred, and a 27-article help manual whose screenshots regenerate when the app changes.

How I directed the agents

The firm's workflows run on n8n, on a server I manage. One of the rules we agreed on: n8n just moves the email, and Alfred makes the decisions. That keeps every decision in one place, where it can be tested.

Changes are built on a staging copy first and checked against past emails before release.

The review is the safety net, by design. When a draft comes out wrong, I don't hand-fix that one draft. I fix the cause, so the next hundred come out right, and the staff review catches the one in flight.

What broke, and what I learned

  • A rule that reached too far. The owner taught Alfred to ignore a couple of spam emails, and those rules were saved as applying to every email at every client. Left alone, Alfred would have quietly stopped drafting replies. We caught it the next day, narrowed the rules, fixed the two bugs behind it, and added a check: every new rule is now looked at for how far it reaches.

Built with

ClaudeClaude Coden8nQuickBooks APILinux serverWeb app