// project
Customer emails in a pension company cover everything from simple balance inquiries to complex claims. I built an AI agent that categorizes incoming emails, understands the intent, pulls relevant member data, and drafts a response — keeping a human in the loop for quality assurance while dramatically reducing response time.
Every incoming email hits the agent pipeline. It classifies the email by type (inquiry, claim, change request, complaint), extracts key information (member ID, policy number, what they're asking about), retrieves relevant data from backend systems, and generates a draft response. The draft lands in the customer service agent's queue, ready to review, edit if needed, and send.
The agent doesn't send emails on its own — by default, a human reviews every draft before it goes out. This isn't a limitation, it's a design choice. In financial services, a wrong answer can have real consequences. The agent handles the heavy lifting (reading, categorizing, looking up data, drafting), and the human handles the judgment call. Over time, as confidence builds, certain response types can be approved for automatic sending.
Built with Claude and AWS Bedrock for the LLM layer, integrated into Camunda workflows for orchestration. The agent uses structured prompts with member context injected from backend systems. It doesn't hallucinate answers about pension balances — it retrieves real data and incorporates it into the response. The entire flow is a BPMN process, which means it has audit trails, error handling, and retry logic built in.
Every interaction generates data: how many emails processed, acceptance rate of drafts, average edit distance between draft and sent version, response time improvement. These statistics feed back into the system — if a particular email type consistently gets edited heavily, that's a signal to improve the prompt or add more context. The agent gets better over time, not just from model updates, but from structured feedback loops.
Want to hear more about this project?