Real time marketing for a Telecom Service Provider

The Nussknacker Blog
4 min readMay 24, 2023


A customer story

Industry: Telecommunications

Services: wireless voice, messaging, and mobile internet

Company / Brand: Play (P4 Sp. z o.o. part of Iliad Group)

Customer base: 13 million active users

Peak throughput: 900k events per second

Average throughput: 400k+ events per second

The initial scope of implementation:

Business domain:

  • Real-time marketing communications

Engines and processing modes:

  • Flink in streaming and batch

The final scope of Nussknacker implementation:

Business domains:

  • Real-time marketing communications
  • Customer Relationship Management: customer retention, automated customer service (chatbot / IVR), recommendation engine
  • Fraud Detection System
  • Lawful interception

Engines and processing modes:

  • Flink in streaming and batch
  • Lite in request-response processing mode

The Real-Time Marketing Solution


The Client was using an off-the-shelf batch marketing platform and was considering the implementation of the real-time extension of the same platform. However, its real-time performance was way below expectations. The Client needed both very high throughput and the ability to analyse events in time windows. After the competitive evaluation, the real-time marketing decisioning algorithms were implemented with Nussknacker.

Solution highlights:

  • 100 active streaming marketing campaigns (“scenarios” in Nussknacker speak), 95 batch marketing campaigns
  • Results of Nussknacker scenarios (“decisions”) are passed to marketing channels (as marketing actions), telco provisioning systems (if the scenario decision is to provide additional services), loyalty system (as bonus points)
  • Marketing channels covered: sms, mms, rcs, email, mobile devices push &pull, ivr, and telesales; all channels managed together
  • Custom-built subsystem (outside of Nussknacker) for campaign technical monitoring (data quality, performance) and campaign effectiveness measurement


  • Engineering complexity. The technical nature of events produced by telecommunication systems, with extreme event volumes requires managing complex IT development tools like Flink. High throughput and low latency are must-haves.
  • Cost of a tailor-made solution. The off-the-shelf marketing platforms considered by the Client were perceived as expensive to customise and with long delivery cycles. The customisations could be performed only by platform vendors and the probability of the Client getting priority customisations at a reasonable cost was perceived as low.
  • The user. The decisioning algorithms must be developed by non-programmers with domain-specific knowledge. A visual development environment was regarded as an important feature.
  • Iteration length. Fast development cycles are essential in domains where speed to market is key. The Client needed the ability to respond quickly to the market situation.
  • Single solution. The Client did not want disparate solutions for batch and real-time. Marketing communication to customers needs to be managed in a holistic way across channels, rather than individually for each implementation technology (batch, streaming, request-response). The expectation was that if the selected streaming technology would be able to cope with very high volumes and low latency expectations, it could then be used in other business domains — fraud detection, recommendation engine, and lawful interception.

How Nussknacker helped to address the challenges:

  • Tool for not-so-technical users. Nussknacker not only abstracts out the technical complexities of Flink, time windows, data enrichments, and REST API calls but also presents the decision algorithm in the form of a graph rather than a text file with code. The key business-level rules which control the behaviour of the scenarios are abstracted into decision tables and can be easily modified. Without the need for highly specialised IT skills, the team has more capacity to deal with the business domain and focus on the business aspects rather than technology challenges.
  • Single solution. The Nussknacker Designer interface is used to author decisioning scenarios for all engines: batch, streaming, and request-response. Again, the custom components allowed us to build a single view of all channels, and a holistic solution for marketing communication across multiple channels (sms, email, telesales, push, and pull). A single technology stack was used (Kafka, Flink, Redis, Nussknacker) in multiple business domains and volumes / throughput / latency were no issue. One of the reasons a single technology stack objective was achieved is because Flink supports both low-latency streaming and batch. Additionally, the Client was able to build a set of cross-domain scenarios and a set of technical scenarios (like ETL) achieving much higher enterprise-level application architecture cohesion and lower redundancy than with off-the-shelf solutions.
  • Extendability. Nussknacker is a business domain-neutral tool. It gives a lot of flexibility to build complex decisioning algorithms with enrichers, aggregates in time windows, ML models inference, etc. As a result, the Client is running Nussknacker not only for individual marketing decisioning scenarios (like a single campaign) but also a dedicated application to manage all of the communication with such capabilities as message deduplication, delivery, history, communication audit trail with a customised “send-to-channel” component. The easy extensibility/extendability enabled the Client to add additional components and menus to the Designer interface, which is used across all engines and business domains.

Future plans:

  • Credit scoring. The above features of the solution enable the Client to implement it in yet another business domain, maintaining overall business cohesion and flexibility of use.