Как заменить стандартную страницу отписки

Можно сделать такую прекрасную страницу отписки:

Снимок экрана 2022-04-07 в 19.11.58.png

Стандартная страница отписки для клиента выглядит так:

Снимок экрана 2022-03-05 в 18.08.41.png

Создание встроенного блока для отписки с помощью персонализации сайта

Для настройки страницы отписки с помощью встроенных блоков в качестве страницы отписки потребуется:

  1. Подключить модуль "Персонализация сайта";
  2. Создать страницу (пустую или с заголовком), встроить блок на страницу, ссылку на эту страницу вставить в письмо с тикетом:
Для изменения подписок воспользуйтесь <a href=”страничка_сайта?direct-crm-ticket=${Ticket.EmailAuthenticationTicket}”>ссылкой.</a> 
        
  1. Создать операцию для отписки клиента от рассылок. Для этого в кампании создаем операцию с шагом редактирования авторизованного клиента как на скрине ниже:

operation_definition1

Сохраняем системное имя операции, оно нам понадобится чуть позже.

  1. Настроить встроенный блок, в котором клиент может выбирать подписку на механики или отписываться от всех рассылок.

Можно выбрать этот шаблон:

Снимок экрана 2022-04-06 в 17.31.53.png

Далее в редактировании шаблона задаем название переменной для каждого варианта ответа:

Снимок экрана 2022-04-07 в 15.39.38.png

Далее в настройке "Дополнительные поля" копируем системное имя переменной и подставляем его в код как на скрине ниже.

Для этого в "Действия после заполнения формы клиентом" нужно выбрать "Вызывать пользовательский JS" - "Отправка контактов".

Снимок экрана 2022-04-07 в 18.07.10.png

Обратите внимание, что здесь нужно заполнить название операции, которое сохранили в пункте 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('%Имя для интеграции варианта%')
        }
        

Далее нажимаем "Запустить".