Diese Case Study ist auch auf Deutsch verfügbar
The concept: With every purchase of a Krombacher product, participants can collect points and redeem them for rewards of their choice by submitting the corresponding purchase receipts. It all works fully digitally, of course, which is exactly where INNOQ comes into the picture. Because behind the seemingly simple principle hides a sophisticated and highly automated software product.
The idea for the loyalty program came from the CRM department of Krombacher in close coordination with the company’s internal Digital unit, which also built the first prototype. But it quickly became clear that existing solutions on the market could not meet the expectations for data quality, and external expertise was needed to design and implement the architecture. In the end, it was INNOQ’s pitch that won the contract. The scope of the project expanded over the course of the product development, eventually coming to include:
- Development of an internal service app with automated receipt clearing and additional manual clearing by Customer Care agents
- An account management system for the user points accounts
The INNOQ team provided outstanding support in turning our ideas into an innovative product that quickly generated authentic value for our loyal customers.
Chris DornhoffCTO, Krombacher
A secure account for points and data
The service is built around two core features: the ability to upload purchase receipts via the Krombacher website plus the points account itself. Of interest here is not the part of Krombacher.de visible to the customers but rather the underlying internal system that makes it all work. The receipt clearing is a very important aspect, one that should ideally be automated. In other words, the program detects which product was purchased at which price and credits the user’s account with the corresponding number of points. If the entire receipt cannot be read automatically, such as due to poor image quality, Customer Care agents take over the check manually. They enter any additional data and choose to accept or reject the receipt. The other – equally important – part is the account management system for the bonus points, which is similar to banking software. This is where the customers receive their points, which they can later spend in the online shop, for example. All transactions are visible on a per participant basis – anonymized via the customer number.
Uploading receipts is not the only way to collect points. Other actions and events are also credited with points to promote engagement with the brand, such as on the user’s birthday, when they finish filling out their profile or when they participate in surveys. Such surveys collect valuable feedback to help improve the system even further. The overarching goal was to make the service app as clear and simple as possible. One key aspect was to make the clearing as easy as could be for the Customer Care agents with an interface that offers them all the relevant information at a glance. Equally important was ensuring that the customers have a perfectly transparent view of their points account. Fraud detection was another critical focus of development. The system is monitored with the assistance of a data scientist to prevent fraud and keep the data safe.
Valuable feedback for improved outcomes
The collaboration between INNOQ and Krombacher was tight-knit right from the start. Everyone worked together on finding solutions and identifying the right technologies to use. The core team, consisting of two developers each from INNOQ and Krombacher plus a product owner (also from Krombacher), got started in parallel working on the backend for account verification and receipt evaluation plus the user interface for the service app. This ensured that everything fit together perfectly. The Customer Care agents were also actively included in the development process. Workshops were held with the agents, who had regular opportunities to examine the current status and offer feedback.
The team made use of a Miro whiteboard right from the beginning so that everyone could work on the solutions together and share a common vision for the project. The insights from the workshops, user research, market screening of competitors and user feedback all came together here to be presented visually. It was an excellent tool for the team to define the core requirements for the service app, gather ideas, sketch out user journeys and work out user story maps. The result was a list of all the requirements for the software, which then served as the basis for developing the service app.
The collaboration with INNOQ allowed us to optimally complement our skillset. We set high technical standards for the project, but INNOQ lived up to them in every way. Everyone pulled together and worked side-by-side as equals. We could not have chosen a better partner for the implementation.
Christian DrögeHead of Software Development, Krombacher
The development was organized into several milestones closely oriented around the requirements of the Customer Care team. First came the standard account functionality, followed in stages by the receipt inspection components. The main focus with regard to the service app was always the back office functionality. For example, if customers have questions about the amount of points they were credited, the service agents can quickly see which purchase receipts were submitted and whether they were accounted for correctly.
The project began in 2021. In September of the same year, Krombacher gave exclusive access to an initial 200 persons who were already registered as “Krombacher Friends”. Starting in April 2022, more Krombacher Friend accounts were gradually added. Today, it is possible for all Krombacher customers to register on the website and collect their points.
Many technical possibilities, one solution
From a technological perspective, Krombacher had a rough direction and a number of requirements in mind from the outset. Based on the initial prototype, however, it became clear that Java Spring Boot should be used for the backend. The use of cloud services was also planned.
All other technology decisions were made jointly by the team. There were occasional differences of opinion, of course, especially because there were so many possible solutions to consider. But a consensus was always reached after deliberating on the pros and cons. Krombacher was also interested in expanding the skills and software development capabilities of its internal team by acquiring new talent, and this played a role in the technology selection as well. Particularly exotic technologies were therefore out of the question, but nothing like that was needed anyway.
In the interests of backend systems with greater flexibility, the team took a hexagonal approach to the architecture. PostgreSQL was selected for the database, and the purchase receipts were stored in AWS S3 buckets. Meanwhile, React was used for the frontend of the service app, and the familiar solution Keycloak was tapped again for the sign-on process. The service app utilizes an OCR (optical character recognition) service for scanning the receipts and to supply a structured form to the unstructured data. When the photos are clearly legible, the quality of the extracted data is so high that the receipts can be booked automatically without the need for manual checking by the Customer Care department.
A special Bootstrap theme was created for the frontend to match the Krombacher corporate design. This is essentially a UI components library with defined colors, fonts, spacings and component designs, and it has already found use in other Krombacher apps as well.
Continued development by a proven team
The project as well as the specifications have continued to progress. The team is currently working on a mobile app for conveniently uploading receipts and managing the points account. The goal is to provide even better usability to the end users.
Core technologies
Krombacher+ service app:
- UX & design: Miro, Figma
- Frontend: React, Bootstrap, Pattern Lab
- Operations: Docker, Gitlab CI, AWS
- Services: Keycloak
Krombacher Loyalty Engine:
- Backend: Java Spring Boot, PostgreSQL database
- Operations: Docker, Gitlab CI, AWS
- Services for text recognition and digital data processing that provide valuable customer information in conjunction with the internal CRM tool and the customer data platform