← All projects

Receipt Collection Agent — Production AI Agent Case Study

A production AI agent coordinating transaction analysis, Slack conversations, document collection, and financial record updates across several systems.

AI agentsLLM tool useFintech automation

Problem

Missing receipt collection is a workflow coordination problem. The system must identify incomplete transactions, determine which user to contact, maintain conversation context, process uploaded documents, associate them with the correct expense, and preserve an accurate record of every action.

The first implementation used a highly constrained conversation framework. It performed well on predictable paths and struggled with everything real: incomplete answers, unexpected document uploads, topic changes, and other patterns that ordinary users produce constantly.

What I did

I helped design and build the agent together with the backend infrastructure required to operate it in production:

  • defining how transaction and expense data should be exposed to the agent,
  • extending the existing messaging infrastructure to support agent-driven Slack conversations,
  • building tools for retrieving financial context and attaching collected documents,
  • coordinating state across the agent runtime, messaging system, and financial services,
  • evolving the agent from a rigid workflow towards more autonomous handling of nuanced conversations,
  • introducing structured execution data, monitoring, and operational visibility,
  • improving recovery behaviour when conversations, tools, or external systems failed,
  • working across service boundaries to make the workflow reliable as a complete product.

Data and system design

The agent depended on more than access to raw transaction data. It needed a reliable representation of:

  • the current expense state,
  • the user responsible for the transaction,
  • previous outreach and responses,
  • uploaded files and their processing status,
  • tool calls performed by the agent,
  • the final outcome of the collection process.

This required careful separation between conversational state, financial system state, and operational telemetry.

The data model also had to support investigation after the fact: what information the agent had, which decision it made, which action was executed, and whether the underlying business record changed successfully.

Key challenge

The main architectural decision was determining which parts of the process should remain deterministic and which should be delegated to the model.

A rigid workflow was easier to validate but performed poorly in natural conversations. Greater model autonomy handled real user behaviour better — and raised the stakes on tool contracts, state management, permission boundaries, audit data, and fallback paths.

Impact

The project established reusable foundations for subsequent agentic workflows: messaging integration, deployment patterns, tool execution, state coordination, and operational monitoring.

It also shifted the internal discussion from whether an agent could complete a successful demonstration to how agents should interact safely and repeatedly with production data and backend systems.

What it demonstrates

Production agents are distributed systems with a probabilistic decision layer. Their effectiveness depends on the quality and structure of the data they receive, the reliability of the services they call, and the ability to reconstruct their behaviour when something goes wrong.


Concepts: AI agents · Data orchestration · LLM tool use · Distributed workflows · Slack integrations · Observability · Auditability · Fintech automation

Related projects: AI enablement platform · Financial services backend and data systems

Building production agents on top of an existing platform? See how I engage or get in touch.