ПО для программы лояльности клиентов по сути состоит из четырёх частей: способа узнавать клиента при каждой продаже (номер телефона, QR-код, карта или приложение), журнала баллов, который фиксирует каждое начисление и списание запись за записью, механизма правил, отвечающего на вопрос «какая покупка что даёт», и канала коммуникации, по которому вы доходите до клиента. Всё остальное (мобильное приложение, экраны акций, отчёты) строится поверх этих четырёх. В этой статье мы разбираем, какая модель лояльности подходит какому бизнесу, почему баллы нужно вести с бухгалтерской дисциплиной, как устроена интеграция с кассой и интернет-магазином, какие нужны согласия и когда выбирать готовую платформу, а когда заказную разработку. Именно с этих тем мы начинаем разговор с клиентами, которые строят систему лояльности в рамках наших корпоративных решений.
Что такое ПО для программы лояльности и чем оно отличается от акции?
Акция разовая: на этой неделе скидка десять процентов. Программа лояльности — это постоянный счёт с клиентом: каждая покупка что-то накапливает, накопленное однажды тратится, и этот счёт даёт клиенту повод снова выбрать вас. На стороне ПО разница проявляется так: акция — это правило ценообразования, и она живёт внутри вашего интернет-магазина или кассы; программа лояльности — отдельная система, которая хранит баланс по каждому клиенту, и этот баланс существует только если клиент опознан. Поэтому первая задача ПО лояльности — не начислить баллы, а узнать, кто клиент, на кассе или на странице оформления заказа. Где хранятся данные клиентов и как они связаны с воронкой продаж, мы рассказали в статье что такое CRM; программа лояльности — это обращённая к клиенту сторона CRM.
Какая модель лояльности подходит какому бизнесу?
- Баллы: каждая потраченная сумма приносит баллы по заданной ставке, баллы тратятся как скидка при следующей покупке. Модель по умолчанию для розницы и e-commerce; хорошо работает при частых покупках на разные суммы.
- Штампы: «купи десять кофе, одиннадцатый бесплатно». Считаются штуки, а не суммы; самая простая и понятная модель для бизнеса с одной основной услугой: кофейни, парикмахерские, автомойки.
- Уровни: серебро/золото/платина по годовым тратам с привилегиями для каждого уровня. Надстраивается над баллами; для отелей, авиакомпаний и премиальной розницы.
- Кешбэк: баланс кошелька вместо баллов. Легко понять, но каждая покупка сразу создаёт обязательство, поэтому нужен финансовый контроль.
- Платное членство: ежемесячная или годовая плата за постоянные преимущества (бесплатная доставка, особые цены). Это скорее подписка, чем лояльность; отдельно разобрано в статье модели монетизации мобильных приложений.
Модели можно сочетать, но для первой версии правильно выбрать одну. Штампы для кофейни, баллы для розницы, баллы плюс уровни для сети услуг с несколькими филиалами — в большинстве случаев достаточный старт. Модель определяет один вопрос: сколько слов нужно клиенту, чтобы с первого взгляда понять, что он заработал? Если ответ длиннее одного предложения, модель слишком сложна.
Ядро: баллы — это баланс, и ведутся они как обязательство
Чаще всего в проектах лояльности неправильно строят хранение баллов. Одна колонка «баллы» в таблице клиентов, которую увеличивают при каждой продаже и уменьшают при каждом списании, работает в первую неделю и рушится на третий месяц: как вернуть баллы за возвращённый товар, как списать сгоревшие баллы, что показать клиенту, который спрашивает «почему у меня стало меньше баллов», что происходит, когда один и тот же чек по ошибке обработан дважды? Единственный ответ на эти вопросы — вести баллы как банковский счёт: баланс не колонка, а сумма журнала, который ведётся запись за записью. Каждая запись несёт источник (номер чека или заказа), причину (покупка, списание, возврат, сгорание, ручная корректировка) и, если нужно, срок действия. Пример ниже строит эту модель: один и тот же чек не может начислить баллы дважды, списание не может превысить несгоревший баланс, и каждая операция оставляет запись.
type LedgerEntry = {
customerId: string;
delta: number; // + начисление, - списание / возврат / сгорание
reason: 'purchase' | 'redeem' | 'refund' | 'expire' | 'manual';
sourceId: string; // № чека / заказа: один источник не начисляет дважды
expiresAt?: Date;
};
export async function earnPoints(order: {
id: string;
customerId: string;
total: number;
}) {
// Ставка приходит из механизма правил: уровень, день акции, группа товаров...
const rate = await rules.earnRate(order.customerId, order);
const delta = Math.floor(order.total * rate);
if (delta <= 0) return;
// Уникальный индекс по sourceId: один заказ никогда не обрабатывается дважды.
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 => {
// Баланс не колонка: это сумма несгоревших записей.
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,
});
});
}Каждый непотраченный балл — это долг компании перед клиентом. Программа лояльности, которая не знает свой общий непогашенный баланс баллов, не знает, сколько скидки она пообещала; поэтому отчёт «всего непогашенных баллов» должен быть в первой версии, и финансовая команда должна видеть его регулярно.
Как узнать клиента? Идентификация и согласие
Долю участия в программе определяет не награда, а трение на кассе. Если клиенту нужно установить приложение, войти и показать QR-код, участие падает; если достаточно назвать номер телефона, оно растёт. Поэтому большинство программ начинается с номера телефона, а приложение и карта приходят позже. Там, где приложение установлено, настоящая ценность — в уведомлении: баллы скоро сгорят, новый уровень, подарок ко дню рождения. О том, что у уведомлений нет гарантии доставки и как они связаны с согласием, мы рассказали в статье о push-уведомлениях. Юридическая сторона — два отдельных согласия: уведомление о конфиденциальности и, где требуется, явное согласие на обработку персональных данных, и отдельное согласие на рекламные сообщения для рассылок. Номер телефона, собранный для начисления баллов, нельзя использовать для рекламных SMS без такого согласия. Это различие мы разобрали в статье о сайте, соответствующем KVKK; эта статья не является юридической консультацией, подтвердите правила программы у своего юриста.
Интеграция: касса, интернет-магазин и бухгалтерия
Система лояльности не работает сама по себе; её нужно питать из каждой точки, где происходит продажа. В магазине это касса: при закрытии чека идентификатор клиента и сумма уходят в систему лояльности, а если баллы списываются, касса получает подтверждение от системы до применения скидки. Онлайн тот же поток встраивается в корзину и оформление заказа. Третья точка — бухгалтерия: списанные баллы — это строка скидки, и она должна корректно отражаться в счёте. Все правила живут в одном месте, в системе лояльности; касса и сайт только спрашивают и применяют. Иначе в магазине посчитают одно, на сайте другое, и доверие клиента к программе закончится при первом замеченном расхождении. Как строятся эти связи, мы описали в статье что такое API-интеграция; о канале для рекламных сообщений читайте в статье о WhatsApp Business API.
Что вы будете измерять?
Мера успеха — не число участников; участник, который зарегистрировался и больше не пришёл, — это расход. Три показателя: доля повторных покупок (до и после программы, в одной и той же группе клиентов), доля активных участников (участники хотя бы с одной операцией за последние 90 дней ко всем участникам) и доля погашения (какая часть начисленных баллов тратится; слишком низкая — награда недостижима, слишком высокая — программа дорогая). Эти три числа должны стоять рядом на одной панели; её устройство мы описали в статье о панелях бизнес-аналитики и отчётности.
Готовая платформа лояльности или заказная разработка?
Для кофейни с одной точкой или небольшого магазина готовая платформа лояльности обычно правильный старт: штампы или простые баллы, готовое приложение, ежемесячная подписка. Заказная разработка оправдана, когда выполняются хотя бы два из трёх условий: (1) есть несколько филиалов или каналов, и баллы общие для всех; (2) правила нестандартные (разные ставки для дилеров, баллы по группам товаров, прайс-листы по уровням, баллы для B2B-клиентов); (3) нужна двусторонняя интеграция с существующими системами: кассой, интернет-магазином, бухгалтерией. Четвёртый вопрос нужно задать при любом выборе: можно ли выгрузить список клиентов и журнал баллов одной командой? Потерять балансы клиентов при смене платформы — значит начать программу с нуля. Общую рамку этого решения мы дали в статье заказное ПО или готовое решение. В таких сферах, как рестораны, салоны красоты и фитнес-клубы, лояльность обычно модуль основной системы; этот контекст мы описали в статьях о приложениях для ресторанов, программе для салона красоты и учёте абонементов фитнес-клуба.
Пять ошибок, которые ломают проект лояльности
- Хранить баллы в одной колонке: нет ответа на возвраты, сгорание и двойную обработку, и доверие клиента заканчивается при первом споре.
- Сделать награду недостижимой: если до первой награды месяцы, клиент забывает о программе ко второй покупке.
- Трение на кассе: если баллы нельзя получить без установки приложения, программа доходит только до самых лояльных клиентов, то есть тех, кто и так приходит.
- Смешивать согласия: отправлять рассылки на номер, собранный для баллов, без согласия — это и юридический риск, и волна отписок.
- Не отслеживать непогашенный баланс баллов: по мере роста программы растёт обещанная скидка, и обнаружить её впервые в конце года дорого.
Вывод
ПО для программы лояльности — это не экран скидок, а счёт, который ведётся по каждому клиенту. В хорошо построенной системе клиента узнают на кассе без усилий, каждый балл записывается в журнал вместе с источником, правила живут в одном месте, а финансовая команда всегда знает сумму обещанной скидки. Для небольшого бизнеса с одной точкой правильно начать с готовой платформы; для многоканального бизнеса с собственными правилами — строить систему на своих данных. Если вы хотите программу лояльности, связанную с вашей кассой, интернет-магазином и бухгалтерией, посмотрите наши корпоративные решения, для клиентской стороны — услугу разработки мобильных приложений, или сразу запросите расчёт.