๐Ÿค–

Stadtwerke Concierge

AI-Powered Customer Service Chatbot

Status MVP Ready
Year 2024-2025
Role Full-Stack Developer
Launch Live Demo View Details

The Challenge

Munich's municipal utilities company (Stadtwerke) handles thousands of customer inquiries daily. Traditional customer service requires extensive manual work for repetitive tasks like moving notifications, meter readings, and emergency handling. This creates bottlenecks, increases costs, and leads to inconsistent customer experience.

The Solution

Stadtwerke Concierge is an AI-powered chatbot that automates the entire customer service workflow. Using AWS Bedrock's Claude API, it understands complex German-language requests, manages multi-step conversations, and provides accurate information for three core use cases: moving services, emergency situations, and meter readings.

Technical Architecture

System Flow

User Request โ†’ Spring Boot API โ†’ PostgreSQL Session Management โ†’ AWS Bedrock Claude โ†’ Response Generation

  • Frontend: Clean REST API interface for easy integration
  • Backend: Spring Boot with comprehensive error handling and logging
  • Database: PostgreSQL for conversation history and user sessions
  • AI Engine: AWS Bedrock Claude for German language understanding
  • Deployment: Docker containers on AWS App Runner

Tech Stack

  • Language: Java 17+
  • Framework: Spring Boot 3.x with Spring Security
  • Database: PostgreSQL with Hibernate ORM
  • Testing: JUnit 5, Mockito, Spring Test (85%+ code coverage)
  • AI Services: AWS Bedrock (Claude API)
  • Containerization: Docker & Docker Compose
  • Deployment: AWS App Runner, CloudWatch Logs
  • CI/CD: GitHub Actions (automated testing)

Key Features

๐Ÿ”„ Multi-Turn Conversations

Maintains complex conversation context across multiple exchanges. The system understands references to previous messages and can clarify ambiguous requests through intelligent follow-ups.

๐Ÿ‡ฉ๐Ÿ‡ช German NLP Support

Native German language understanding via AWS Bedrock Claude. Handles colloquialisms, regional variations, and complex sentence structures specific to German customer interactions.

๐Ÿ“‹ 3-Phase Service Flow

Moving Services: Guides users through address changes, service connections. Emergencies: Rapid response for gas leaks, outages. Meter Readings: Automated data collection and validation.

๐Ÿ’พ Session Persistence

All conversations stored in PostgreSQL. Users can resume sessions, view history, and receive consistent assistance across multiple interactions.

๐Ÿ›ก๏ธ Error Handling & Validation

Graceful error recovery, user-friendly fallbacks, and comprehensive logging. System degrades gracefully if AWS Bedrock is unavailable.

๐Ÿ“Š Analytics & Monitoring

CloudWatch metrics for conversation success rates, response times, and error tracking. Real-time monitoring dashboards for operations team.

Results & Metrics

94.4%
Success Rate

Across 18 comprehensive test cases

85%+
Test Coverage

Unit + Integration tests with TDD

<500ms
Avg Response Time

API to Claude to User

3
Core Service Flows

Moving, Emergency, Meter Readings

Key Learnings & Technical Insights

๐Ÿงช Test-Driven Development at Scale

Implementing TDD from the ground up resulted in 85%+ code coverage and significantly reduced bugs. Testing AWS integration points (mocking Bedrock) required creative patterns.

๐Ÿค– AI Integration Challenges

Working with AWS Bedrock Claude revealed the importance of prompt engineering and conversation context management. Initial responses were inconsistent until we implemented context windowing.

๐Ÿ‡ฉ๐Ÿ‡ช Language-Specific Development

German NLP is significantly different from English. Handling edge cases like "Umlaut" support, regional dialects, and complex grammar required extensive testing with native speakers.

โ˜๏ธ AWS Bedrock Integration

First-hand experience integrating cutting-edge Claude API. Learned proper token management, cost optimization, and handling API rate limits for production workloads.

Try the Live Demo

Interact with Stadtwerke Concierge to see AI-powered customer service in action.