Müşteri sadakat programı yazılımı, özünde dört parçadan oluşur: müşteriyi her satışta tanıyan bir kimlik yöntemi (telefon numarası, QR kod, kart ya da uygulama), kazanılan ve harcanan hakları kayıt kayıt tutan bir puan defteri, “hangi alışveriş ne kazandırır” sorusunu cevaplayan bir kural motoru ve müşteriye ulaşan bir iletişim kanalı. Gerisi (mobil uygulama, kampanya ekranı, raporlar) bu dördünün üzerine gelir. Bu yazıda hangi sadakat modelinin hangi işe uyduğunu, puanın neden muhasebe disipliniyle tutulması gerektiğini, POS ve e-ticaret entegrasyonunu, izin tarafını ve hazır paket mi özel yazılım mı kararını anlatıyoruz. Kurumsal çözümler kapsamında sadakat sistemi kuran müşterilerimizle önce bu başlıkları konuşuyoruz.
Sadakat programı yazılımı nedir, kampanyadan farkı ne?
Kampanya tek seferliktir: bu hafta yüzde on indirim. Sadakat programı ise müşteriyle süregiden bir hesaptır: her alışveriş bir şey biriktirir, biriken şey bir gün harcanır ve bu hesap müşterinin sizi yeniden tercih etmesi için sebep üretir. Fark, yazılım tarafında şuraya yansır: kampanya bir fiyat kuralıdır ve e-ticaret sitenizin ya da POS’unuzun içinde kurulur; sadakat programı ise müşteri başına bakiye tutan ayrı bir sistemdir ve o bakiye ancak müşteri tanınırsa oluşur. Bu yüzden sadakat yazılımının ilk işi puan vermek değil, kasada ya da ödeme sayfasında müşterinin kim olduğunu bilmektir. Müşteri verisinin nerede tutulduğunu ve satış hunisiyle ilişkisini CRM nedir yazısında anlattık; sadakat programı CRM’in müşteri tarafına bakan yüzüdür.
Hangi sadakat modeli hangi işe uyar?
- Puan: her harcama tutarı belirli oranda puan kazandırır, puan sonraki alışverişte indirim olarak harcanır. Perakende ve e-ticaret için varsayılan model; sık ve değişken tutarlı alışverişte iyi çalışır.
- Damga (stamp): “on kahve al, on birinci bedava”. Tutar değil adet sayılır; kafe, kuaför, oto yıkama gibi tek hizmetli işler için en basit ve en anlaşılır model.
- Kademe (tier): yıllık harcamaya göre gümüş/altın/platin gibi seviyeler ve seviyeye bağlı ayrıcalıklar. Puan modelinin üstüne gelir; otel, havayolu, premium perakende için.
- Nakit iade (cashback): puan yerine doğrudan cüzdan bakiyesi. Anlaşılması kolaydır ama her harcama anında bir borç yarattığı için finansal kontrol gerektirir.
- Ücretli üyelik: aylık ya da yıllık ücret karşılığı kalıcı avantaj (ücretsiz kargo, özel fiyat). Sadakatten çok abonelik mantığıdır; mobil uygulama gelir modelleri yazısında ayrıca ele aldık.
Modeller birleştirilebilir ama ilk sürümde tek model seçmek doğrudur. Kafe için damga, perakende için puan, çok şubeli hizmet zinciri için puan + kademe çoğu durumda yeterli başlangıçtır. Model seçimini şu soru belirler: müşterinin kazandığını bir bakışta anlaması için en az kaç kelime gerekiyor? Cevap bir cümleyi aşıyorsa model karmaşıktır.
Çekirdek: puan bir bakiyedir ve borç gibi tutulur
Sadakat projelerinin en çok yanlış kurulan parçası puanın saklanma biçimidir. Müşteri tablosuna “puan” diye tek bir sütun koyup her satışta artırmak, her harcamada azaltmak ilk hafta çalışır, üçüncü ayda çöker: iade edilen ürünün puanı nasıl geri alınır, süresi dolan puan nasıl düşülür, “puanım neden azaldı” diyen müşteriye ne gösterilir, aynı fiş yanlışlıkla iki kez işlendiğinde ne olur? Bu soruların tek cevabı, puanı bir banka hesabı gibi tutmaktır: bakiye bir sütun değil, kayıt kayıt tutulan bir defterin toplamıdır. Her kayıt kaynağını (fiş ya da sipariş numarası), sebebini (alışveriş, harcama, iade, süre dolumu, manuel düzeltme) ve varsa son kullanma tarihini taşır. Aşağıdaki örnek bu modeli kuruyor: aynı fiş iki kez puan yazamaz, harcama süresi dolmamış bakiyeyi aşamaz ve her işlem bir kayıt bırakır.
type LedgerEntry = {
customerId: string;
delta: number; // + kazanım, - harcama / iade / süre dolumu
reason: 'purchase' | 'redeem' | 'refund' | 'expire' | 'manual';
sourceId: string; // fiş / sipariş no: aynı kaynak iki kez puan yazamaz
expiresAt?: Date;
};
export async function earnPoints(order: {
id: string;
customerId: string;
total: number;
}) {
// Oran kural motorundan gelir: kademe, kampanya günü, ürün grubu...
const rate = await rules.earnRate(order.customerId, order);
const delta = Math.floor(order.total * rate);
if (delta <= 0) return;
// sourceId üzerinde tekil indeks: aynı sipariş ikinci kez işlenmez.
await ledger.insertIfAbsent({
customerId: order.customerId,
delta,
reason: 'purchase',
sourceId: order.id,
expiresAt: addMonths(new Date(), 12),
});
}
export async function redeemPoints(
customerId: string,
points: number,
sourceId: string,
) {
return db.transaction(async tx => {
// Bakiye bir sütun değil: süresi dolmamış kayıtların toplamıdır.
const balance = await tx.ledger.activeBalance(customerId);
if (balance < points) throw new Error('INSUFFICIENT_POINTS');
await tx.ledger.insert({
customerId,
delta: -points,
reason: 'redeem',
sourceId,
});
});
}Harcanmamış her puan, şirketin müşteriye olan borcudur. Toplam açık puan bakiyesini bilmeyen bir sadakat programı, ne kadar indirim vaat ettiğini bilmeyen bir programdır; bu yüzden “toplam açık puan” raporu ilk sürümde olmalı ve finans ekibi bunu düzenli görmelidir.
Müşteriyi nasıl tanırsınız? Kimlik ve izin
Programın kullanım oranını belirleyen şey ödül değil, kasadaki sürtünmedir. Müşterinin bir uygulama indirmesi, giriş yapması ve QR göstermesi gerekiyorsa katılım düşer; telefon numarasını söylemesi yetiyorsa yükselir. Bu yüzden çoğu program telefon numarasıyla başlar, uygulama ve kart sonradan gelir. Uygulama kurulan tarafta ise asıl değer bildirimdir: süresi dolacak puan, yeni kademe, doğum günü hediyesi. Bildirimin teslim garantisi olmadığını ve izinle ilişkisini push bildirim yazısında anlattık. Hukuki taraf iki ayrı izindir: kişisel verinin işlenmesi için aydınlatma ve gerekiyorsa açık rıza, kampanya mesajı göndermek için ise ayrı bir ticari ileti onayı. Puan vermek için alınan telefon numarası, onay olmadan kampanya SMS’i için kullanılamaz. Bu ayrımı KVKK uyumlu web sitesi yazısında ele aldık; bu yazı hukuki danışmanlık değildir, program kurallarınızı hukuk danışmanınıza teyit ettirin.
Entegrasyon: POS, e-ticaret ve muhasebe
Sadakat sistemi tek başına çalışmaz; satışın olduğu her noktadan beslenmek zorundadır. Mağazada bu POS’tur: fiş kapanırken müşteri kimliği ve tutar sadakat sistemine gider, puan harcanacaksa POS indirimi uygulamadan önce sistemden onay alır. Online tarafta aynı akış sepet ve ödeme adımında kurulur. Üçüncü nokta muhasebedir: harcanan puan bir indirim kalemidir ve faturada doğru görünmelidir. Kuralların hepsi tek yerde, sadakat sisteminde durur; POS ve site yalnızca sorar ve uygular. Aksi hâlde mağazada başka, sitede başka puan hesaplanır ve müşteri ilk farkı gördüğünde programa güveni biter. Bu bağlantıların nasıl kurulduğunu API entegrasyonu nedir yazısında anlattık; kampanya mesajlarının gönderim kanalı için WhatsApp Business API yazısına bakabilirsiniz.
Neyi ölçeceksiniz?
Programın başarı ölçüsü üye sayısı değildir; kayıt olup bir daha gelmeyen üye bir maliyettir. Bakılacak üç sayı: tekrar satın alma oranı (program öncesi ve sonrası, aynı müşteri grubunda), aktif üye oranı (son 90 günde en az bir işlem yapan üyelerin toplam üyeye oranı) ve harcama oranı (kazanılan puanın ne kadarı harcanıyor; çok düşükse ödül ulaşılmaz, çok yüksekse program pahalı). Bu üçü bir panelde yan yana durmalıdır; panel kurulumunu iş zekâsı ve raporlama paneli yazısında anlattık.
Hazır sadakat platformu mu özel yazılım mı?
Tek şubeli bir kafe ya da küçük bir mağaza için hazır bir sadakat platformu çoğu zaman doğru başlangıçtır: damga ya da basit puan, hazır uygulama, aylık abonelik. Özel yazılım şu üç testten en az ikisi sağlandığında anlamlıdır: (1) birden fazla şube ya da kanal var ve puan hepsinde ortak kullanılıyor; (2) kural standart dışı (bayiye göre farklı oran, ürün grubuna göre puan, kademeye bağlı fiyat listesi, B2B müşteriye puan); (3) POS, e-ticaret, muhasebe gibi mevcut sistemlerle çift yönlü entegrasyon gerekiyor. Dördüncü soru hangi yolu seçerseniz seçin sorulmalı: müşteri listesi ve puan defteri tek komutla dışa aktarılabiliyor mu? Platform değiştirdiğinizde müşterilerin bakiyesini kaybetmek programı sıfırdan başlatmak demektir. Bu kararın genel çerçevesini özel yazılım mı hazır çözüm mü yazısında verdik. Restoran, güzellik salonu ve spor salonu gibi sektörlerde sadakat çoğu zaman ana sistemin bir modülüdür; restoran uygulaması, güzellik salonu programı ve spor salonu üyelik programı yazılarında o bağlamı anlattık.
Sadakat projesini bozan beş hata
- Puanı tek sütunda tutmak: iade, süre dolumu ve çift işlem sorularının cevabı yoktur, ilk uyuşmazlıkta müşteri güveni biter.
- Ödülü ulaşılmaz kurmak: ilk ödüle ulaşmak aylar sürüyorsa müşteri programı ikinci alışverişte unutur.
- Kasada sürtünme: uygulama indirmeden puan kazanılamıyorsa program yalnızca en sadık müşterilere ulaşır, yani zaten gelenlere.
- İzinleri birleştirmek: puan için alınan numaraya onaysız kampanya göndermek hem hukuki risk hem de abonelikten çıkma dalgasıdır.
- Açık puan bakiyesini izlememek: program büyüdükçe vaat edilen indirim büyür ve bunu ilk kez yıl sonunda fark etmek pahalıdır.
Sonuç
Müşteri sadakat programı yazılımı bir indirim ekranı değil, müşteri başına tutulan bir hesaptır. Doğru kurulan sistemde müşteri kasada zahmetsizce tanınır, her puan kaynağıyla birlikte deftere yazılır, kurallar tek yerde durur ve finans ekibi vaat edilen indirimin toplamını her zaman bilir. Tek şubeli küçük bir iş için hazır platformla başlamak, çok kanallı ve kuralları özel bir yapı için sistemi kendi verinizin üzerine kurmak doğrudur. Sadakat programınızı mevcut POS, e-ticaret ve muhasebe sistemlerinize bağlı biçimde kurmak istiyorsanız kurumsal çözümler sayfamıza göz atın, müşteri tarafı için mobil uygulama hizmetimizi inceleyin ya da doğrudan teklif alın.