Как заменить стандартную страницу отписки
Можно сделать такую прекрасную страницу отписки:
Стандартная страница отписки для клиента выглядит так:
Создание встроенного блока для отписки с помощью персонализации сайта
Для настройки страницы отписки с помощью встроенных блоков в качестве страницы отписки потребуется:
1. Подключить модуль "Персонализация сайта";
2. Создать страницу (пустую или с заголовком), встроить блок на страницу, ссылку на эту страницу вставить в письмо с тикетом:
Для изменения подписок воспользуйтесь <a href=”страничка_сайта?direct-crm-ticket=${Ticket.EmailAuthenticationTicket}”>ссылкой.</a>
3. Создать операцию для отписки клиента от рассылок. Для этого в кампании создаем операцию с шагом редактирования авторизованного клиента как на скрине ниже:
Сохраняем системное имя операции, оно нам понадобится чуть позже.
4. Настроить встроенный блок, в котором клиент может выбирать подписку на механики или отписываться от всех рассылок.
Можно выбрать этот шаблон:
Далее в редактировании шаблона задаем название переменной для каждого варианта ответа:
Далее в настройке "Дополнительные поля" копируем системное имя переменной и подставляем его в код как на скрине ниже.
Для этого в "Действия после заполнения формы клиентом" нужно выбрать "Вызывать пользовательский JS" - "Отправка контактов".
Обратите внимание, что здесь нужно заполнить название операции, которое сохранили в пункте 3.
Пример кода:
function getTicket(name) {
name = name.replace (/[\[\]]/g, '\\$&');
var regex = new RegExp(name+'(=[a-z0-9-]+)', 'i');
var results = window.location.href.match(regex);
if (!results) return null;
if (!results[0]) return '';
return results[0].split('=')[1];
}
var ticket = getTicket('direct-crm-ticket');
mindbox("async", {
operation: "Название операции для отписки",
data: {
customer: {
authenticationTicket: ticket,
subscriptions: [
{
pointOfContact: "Email",
topic: "children clothes",
isSubscribed: !!parseInt('%customs.children_clothes%')
},
{
pointOfContact: "Email",
topic: "sport",
isSubscribed: !!parseInt('%customs.sport%')
},
{
pointOfContact: "Email",
topic: "children footwear",
isSubscribed: !!parseInt('%customs.children_footwear%')
}
]
}
}});
Вы также можете сделать одно из полей для интеграции отпиской от всех тематик. Пример обработки такого поля в коде:
{
pointOfContact: "Email",
isSubscribed: !parseInt('%Имя для интеграции варианта%')
}
Далее нажимаем "Запустить".