CUSTOMER ENGAGEMENT
FOR INDEPENDENT RETAIL GROUPS

Every outlet a marketer. One amplified voice.

Flex brings customer insight, product data, and brand-safe execution into one simple platform. So world-class campaigns can happen anywhere in the business, from head office to the shop floor.

Billions of messages sent
  • WhatsApp
  • SMS
  • Email
  • Push
Platform

Turn central data into local action.

One shared customer base. Different views for every level. So every campaign can be more local, and every message more personal.

National

Reach the whole network

Trends, performance, and campaigns across the group.

Regional

Focus on one region

Act based on local stock, pricing, and activity.

Multi-outlet owner

One campaign, many outlets

Shared context and coordinated action across stores.

Outlet

Act on what matters today

Local insight for timely, personal messaging.

A single customer base, shaped to each level of the group.

Flex

One shared foundation.

One shared system powers every level, so teams stay aligned while campaigns stay fast and local.

Customer, product & transaction data
Guardrails, approvals & AI assistance
Campaign creation, delivery & measurement

Build once, then deliver through the right channels.

Media

Branded webpages, leaflets, and PDFs, created once and shared across channels.

WhatsApp

Rich product-led messaging with imagery, buttons, and dynamic content.

SMS

Broad reach across every handset, with an optional link to branded content.

Email

Branded campaigns with more room for products, offers, and story.

Push

Real-time prompts that drive customers straight into your app or e-commerce journey.

Measurement

Close the loop on
every campaign.

Transaction data flows back into every campaign report, so you can see what moved, what did not, and what to do next.

1

Send

Build the campaign around the right audience, products, and channels.

2

Measure

Track what changed after send, down to basket behaviour and sales lift.

3

Improve

Use that insight to refine the next campaign and keep improving over time.

Audience Purchase History by day
Baskets containing Full Cream Milk 1L / Cheddar Cheese 800g / Free-Range Eggs 18pk
baskets
(campaign)
comparison
window
active
period
related
campaigns
sent

Sales Lift

vs. same period prior month (Sat 7 – Mon 9 Mar)

Campaign 1,001 4–6 Apr
Baseline 493 7–9 Mar
Lift +103% +508 baskets
Campaigns

Build campaigns
that resonate.

From targeting and templates to channels, media, and measurement, Flex gives every outlet the tools to build relevant, on-brand campaigns without specialist help.

Segmentation

Basket-level targeting, no analyst needed

Build precise audiences from what customers actually buy, from product codes and basket size to recency and repeat-buy patterns.

Target contacts who are
In this group
Meat Lovers
Purchase meat & meat products
AndIn this group
Month-end Shoppers
Normally do a big shop between the 25th–3rd
Matches 12,549 +412 today
Channels

Choose your channels, set the rules

Choose where the campaign runs, set budgets and fallback rules, and let Flex handle the rest.

Channels
WhatsApp
Max 10,000 contacts
SMS
If WhatsApp not sent
Audience
12,498 contacts targeted
Cost estimate
NEXT
MESSAGE PREVIEW

See exactly how it will send

Preview the final message exactly as it will send, with your store name, opt-out text, and channel rules already applied. Then send a test before it goes live.

SMS Preview
FreshMarket Greenside: We’re open late this Friday until 9pm. Visit us in store for dinner deals and weekend specials. STOP to opt out
10:56 AM ✓✓
Characters 134 / 160
Product campaigns

Search products. Start the campaign.

Most campaigns start with products and prices. Search, scan, or upload, and Flex pulls in the imagery, names, and pricing to get the campaign moving fast.

Search for a Product ×
Paste multiple product codes or Bulk Upload
+ Custom Product + Combo
Campaign builder

Set prices, shape the message

Each outlet can set its own pricing and refine product names, while AI suggests campaign copy you can use as-is or adjust.

Products
Cheddar Cheese
9006631445224 3 variants
Cheddar Cheese (300g)
Price (each)
R 54
Sirloin Steak
1285300564421 2 variants
Sirloin Steak
Price (per kg)
R 189
Avocados
4719364675421 1 variant
Avocados (pack of 4)
Price (each)
R 39
+ Another Product + Combo
Media

Branded media, ready to send

Flex creates the branded webpage, leaflet, and printable PDF for the campaign automatically, complete with links, legal copy, and store branding.

Media Preview Webpage Leaflet
FRESHMARKET
Weekend
Specials
R54
R189/kg
R39
Journeys

Give every customer
their own journey.

Not every campaign should wait for someone to press send. Journeys run continuously in the background, responding to what each customer does and choosing the right next step for that person.

Birthday Voucher Live From template
Birthday in 7 days Watched continuously against live customer data
Trigger
Choose the reward Your own rule, written in JavaScript
Logic
// bigger reward for top-tier shoppers const tier_vouchers = { tier_gold: 100, tier_silver: 50 }; const tiers = Object.keys(tier_vouchers); const default_voucher = customer.spend_90d > 1500 ? 50 : 25; const tier = tiers.find(t => customer.tags.includes(t)); return { voucher_val: tier_vouchers[tier] ?? default_voucher };
Issue the voucher Created in your loyalty system, code returned to Flex
Integration
Send WhatsApp Personalised with the voucher and their home store
1,284 sent today
Wait 5 days Or move on the moment the voucher is used
Wait
Voucher redeemed? Read back from the loyalty system in real time
Branch
If redeemed
Goal met Leave the journey, no further messages
If not redeemed
Send SMS reminder Two days before the voucher expires
End of journey Result feeds straight back into reporting
1,284 in journey 8,742 completed 61% vouchers redeemed

Triggered by behaviour, not a schedule

Journeys listen to the transaction, product, and customer data already flowing into Flex, so the next step happens when the customer acts.

First purchase Basket abandoned Birthday Lapsed Category bought Entered tier Voucher redeemed

Connected to the systems you already run

A journey can issue a voucher, award points, or check an order, then use the answer to decide what happens next, all without leaving Flex.

Loyalty & points Connected
Vouchers & coupons Connected
E-commerce & orders Connected
POS & transactions Connected

Custom logic when the rule gets specific

Some decisions do not fit a dropdown. Write them in JavaScript instead, with the customer, their basket history, and your own data available to the rule.

// Spend Stretch: nudge to the next tier
const tier_gaps = journey
        .meta
        .tiers
        .map(x => {
            return {
                tier: x,
                gap: x.value - customer.spend_mtd
            }
        });
const next_tier = utils.first(utils.sort(tier_gaps.filter(x => x.gap > 0)));
return {
    next_tier: next_tier?.tier, // e.g. gold
    spend: utils.closest_value(next_tier?.gap, 50) // e.g. R250
};
Templates

Built once. Run by anyone.

Save any journey as a template, and the rest of the group can run it without touching the logic. Outlets only configure what matters to them: the offer, the timing, and the audience.

Birthday vouchers

Reward customers in the week before their birthday, then remind them before it expires.

Set the voucher value and reminder

Abandoned cart nudges

Follow up when an online basket is started and left behind, with the items still in it.

Set the wait and channel

Welcome flows

Introduce new customers to the store, the app, and the rewards over their first few weeks.

Set the messages and pace

Spend stretch

Nudge customers who are close to the next reward tier or basket threshold, before month end.

Set the threshold and reward

Retain lapsing customers

Reach shoppers who have gone quiet with an offer built from what they used to buy.

Set the lapse window and offer
Smart & safe

AI that helps.
Guardrails that protect.

Flex helps any outlet build a strong campaign quickly, then applies the brand, compliance, and approval guard rails that keep every send safe.

Brand-safe by design

Managed templates, approvals, frequency caps, send windows, and opt-out rules are built in from the start, so every campaign stays inside the rails.

Auto-approved by AI
Frequency capping
1 per day · 3 per week
Send window: 08:00 – 18:00

AI reviews before you send

AI checks campaigns for issues like missing dates, pricing mistakes, and brand-rule conflicts before anything goes live.

Review Required
End date missing. Required for promotions.
Edit Campaign Submit for Review

Help built right in

Knowledge base and real human support, right inside Flex.

How can we help?
Understanding campaign reports
How does frequency capping work?
Send us a message

Copy that writes itself

Flex suggests campaign copy based on your products, giving outlets a strong starting point they can use or refine.

Suggestions AI
Avocados R19 each & Cheddar Cheese R54 — fresh deals this week only!
Fresh picks: Avocados R19, Cheddar R54, Whole Grain Bread R22. Don't miss out

Smarter product names

Flex turns messy POS product names into cleaner, customer-ready options that work better in campaigns.

CHDR CHSE 300G BLK AI
Cheddar Cheese 300g
Cheddar Cheese (300g)
Cheddar Block Cheese 300g

Product image enhancement

Snap a product photo in store, and Flex turns it into a cleaner, campaign-ready image automatically.

Upload
Before: phone photo taken in-store Phone photo
After: AI-enhanced product shot AI-enhanced
For franchises

Two needs,
one platform.

Head office needs consistency across the group. Store owners need the freedom to act locally. Flex gives both sides what they need, without forcing a trade-off.

For brand HQ

Lead the whole group.

  • Run national and regional campaigns from one workspace.
  • Give every outlet approved templates, shared data, and clear brand guard rails.
  • Apply frequency caps, channel rules, and consent settings across the group.
  • See reporting rolled up by region, channel, category, and campaign.
  • Let brand and local campaigns run side by side without over-messaging customers.
For store owners

Act where it matters.

  • Reach your own customers with campaigns tailored to your store.
  • Run your own promotions and pricing, based on what is happening locally.
  • Start from approved templates, without waiting on head office.
  • Use store-level reporting to see what worked and what to send next.
  • Choose the right timing, offer, and channel within the group’s guard rails.
Customer story

Built for Retail at Scale.

SPAR - the largest voluntary-trading food retailer in South Africa with over 1,500 locations - runs its customer engagement programme on Flex; leveraging SMS, WhatsApp and Push.

SPAR campaigns built with Flex — webpages, leaflets, and WhatsApp messages
Get in touch

See if Flex fits your group.

A short call to understand your stores, your setup, and what you need from customer engagement. We’ll show you how Flex works and whether it’s the right fit.