Case Study · Retail
Karaca CustoMation: campaign audience selection by RFM and behavioural segments
We took the question of who a campaign goes to out of Excel filters and into a single tool. CustoMation selects customers for the Karaca group's five brands and eleven channels by RFM segment, brand-level behavioural segment, product group purchased, brand and recency window; include and exclude rules are defined together, every selection is saved as a scenario, past runs are compared, and the audience goes to the campaign tool as Excel.
- 10 + 19
- Segments
- 8
- Filter dimensions
- Include + exclude
- Rules
- Scenario
- Output
RFM + brand-level behaviour
Channel, company, segment, product type, brand, division, product group, date
Two lists per dimension
Saved, re-run, compared
Problem
Karaca’s CRM team selected an audience for every campaign: “loyal-segment customers who bought a coffee machine in the last three months and never bought from Karaca Home”. The selection went through someone who knew SQL, was filtered in Excel, and uploaded to the campaign tool. When the same audience was needed two weeks later it was produced from scratch; when two campaigns’ audiences overlapped, nobody knew.
An audience is a scenario
We wrote CustoMation — Customer + Automation — to turn this selection into a scenario. The user defines filters in eight dimensions; every dimension has both an include and an exclude list:
| Dimension | Example values |
|---|---|
| Channel | Retail, e-commerce |
| Company / sub-channel | Karaca, Karaca Home, Emsan, Homend, Kaşmir — stores and sites separately |
| RFM segment | Champions, Loyal, Potential Loyalist, New, Promising, Need Attention, About to Sleep, At Risk, Can’t Lose Them, Hibernating |
| Behavioural segment | Brand × channel: 19 segments such as “KRC Omni Champions”, “HEDT Online Barista”, “KRCH Decoration Lover”, “EMS Offline Champion” |
| Product type and division | Value-added; kitchen, tableware, home textiles, decorative, carpets… |
| Brand | More than 200 manufacturer brands |
| Product group | More than 250: espresso machine, cookware set, duvet cover set… |
| Purchase window | Last day, last 7/14/21/28 days, last 1–24 months |
An audience such as “bought an espresso machine from Karaca in the last 6 months, Loyal or Champions in RFM, never bought from Emsan” is defined in four filter lines. The filters are saved to the scenario table; the spCustoMation procedure reads the scenario, extracts the audience from the sales and customer tables and writes the result under the scenario’s id.
Where the segments come from
Two segment layers are kept ready in the warehouse. RFM — recency, frequency, monetary — is computed per customer per brand and mapped to ten standard segments. Behavioural segments are brand × channel: omni-channel champion at Karaca, online barista at Homend, decoration lover at Karaca Home. These segments were named in the campaign team’s language; the CRM team understands the difference between “At Risk” and “Sleeper” without knowing SQL.
Screens and flow
The design document defines four screens: data entry (dimensions, include/exclude), run, result (audience size, segment and channel distribution), past runs. Roles: who defines an audience, who runs it, who exports the result. A scenario is never deleted, only archived; the same scenario is re-run for the next campaign and the change in the audience is visible. The result is exported to Excel and uploaded to the campaign tool.
The next-phase design holds two things: measuring the selected audience’s behaviour after the campaign, and a campaign recommendation system — which mechanic for which segment.
Why this way
- Exclude as much as include. In a campaign audience “who do we leave out” matters at least as much as “who do we take”; hence two lists in every dimension.
- Segments in the warehouse, filters in the tool. RFM and behavioural segments are computed every night; the tool only selects, never computes — fast and consistent.
- The scenario persists. An audience is not an Excel file but a re-runnable definition; measurement is only possible that way.