LOKAL case - customer auto-segmentation

01.02.2026

READING TIME 9 MINUTES

LOKAL is one of the largest loyalty programs in Ukraine: around 2 million participants and over 500,000 mobile application downloads, combining a bonus system, in-venue payment, and a rewards catalog.

challenge

When a loyalty system has around 2 million customers, and new events and campaigns happen weekly, audience segmentation becomes the bottleneck of the entire marketing department. A loyalty manager wanting to launch a promotion for a specific event had to go through a chain: write a technical specification → hand it over to an analyst → wait for execution. The process took days – while the need was often "yesterday." At the process level, this meant a constant overload of data analysts with routine ad-hoc requests, most of which did not require deep analytics – just filtering by behavioral traits. Managers depended on someone else's schedule, unable to act autonomously.

Why now?

!FEST is scaling its activity: more venues, more events, more collaborations. The larger the database and the more frequent the campaigns, the more acute the need for quick, accurate communication with the right segment. Manual segmentation, which used to suffice, turned into a systemic drag. At the same time, the technology stack matured: LLM models reached a level where a natural language request can be reliably transformed into a structured analytical query.

Fears and how we addressed them

The main concern at the start: would managers trust the results of an ML model if they couldn't see "under the hood" how the segment was formed? To eliminate this distrust, we made the system interpretable: each formed segment is accompanied by an explanation at the feature level (SHAP values + LLM interpretation) that the manager sees in a familiar format. Not a "black box" – but a transparent assistant. The second issue was the quality of segmentation compared to an analyst's manual work. We didn't replace the analyst with intuition; instead, we allowed the system to choose the best clustering algorithm for a specific request from a pool of verified models.

solution

We built an AI assistant for loyalty managers that accepts a natural language request – just like a person writes to a colleague in a chat – and returns a ready segment to the CRM for launching a campaign in less than 20 minutes. A manager writes: "Find me guests for the BBQ festival near Rebernia on Stryiska" – and the system analyzes the request on its own, selects the relevant behavioral traits, builds the optimal cluster, and loads it into the system. No technical specification, no queue, no waiting. Architecture: the system is fully deployed on Google Cloud Platform and consists of four functional layers. The request processing layer - Cloud Run Service - orchestrates the entire pipeline. The AI layer - Vertex AI Gemini is the decision-making center, while Vertex AI Embeddings converts requests and customer profiles into numerical vectors for semantic matching. The data layer is built around Looker as an SQL generator, with a wrapper library around Looker and BigQuery ensuring point-in-time correctness; Cloud Run Jobs runs heavy batch tasks asynchronously. The operational layer - Secret Manager, IAM, Cloud Build, Artifact Registry, Cloud Logging, and Monitoring.

result

  • The main result is structural: loyalty managers gained full autonomy in working with the audience.

  • They no longer depend on analysts' schedules and can react to events in real time.

  • Data analysts, in turn, freed themselves from the flood of routine requests and can focus on more complex tasks – strategic analysis, forecasting models, and new products.

  • The time from a campaign idea to a ready segment was cut from a few days to less than 20 minutes.

// ready to start?

senseless in constraints,
with gloozd in decisions