Как настроить модуль хранения согласий

Модуль хранения согласий не требует отдельной настройки на уровне платформы — он работает «из коробки». Всё, что нужно сделать, — добавить тег регистрации согласия в узел сценария сразу после момента, когда пользователь фактически дал согласие: нажал кнопку, отправил форму, ввёл код подтверждения и так далее.

В этой инструкции — как добавить регистрацию согласия в узел конструктора и какие параметры для этого нужны.

Шаг 1. Определите момент согласия в сценарии

Найдите в сценарии узел, который выполняется непосредственно после действия пользователя, означающего согласие: клика по кнопке или чекбоксу, отправки формы, продолжения диалога после показа условий, ввода кода подтверждения.

Важно: тег регистрации согласия нужно добавлять именно в тот узел, который выполняется после согласия, а не до него — иначе будет зафиксировано событие, которого ещё не произошло.

Шаг 2. Включите «Действия» в узле

Откройте настройки нужного узла и включите переключатель Действия.

Шаг 3. Перейдите в расширенный режим (DTL-код)

В блоке «Действия» разверните Расширенный режим (DTL-код) — именно сюда добавляется тег consent.register.

Пример из реального сценария — регистрация согласия на участие в акции «День свободен» сразу после проверки номера телефона:

{# Акт согласия #}
{% createobj chat_source_info %}
{
 "chat_uuid": "{{ chat_uuid }}",
 "channel_name": "{{ platform }}"
}
{% endcreateobj %}
{% consent.register consent_type="PRIVACY_POLICY" event_type="CONSENT_GIVEN" consent_mode="EXPLICIT_CLICK" document_type="PRIVACY_POLICY" document_title="Политика конфиденциальности" document_url="https://xxx.ru/loyalty" chat_source_info=chat_source_info as res %}

Шаг 4. Заполните обязательные параметры тега

Тегу consent.register обязательно нужны четыре параметра:

  • consent_type — тип согласия (например, PRIVACY_POLICY, MARKETING_COMMUNICATIONS, DOCUMENT);
  • event_type — тип события (CONSENT_GIVEN, CONSENT_WITHDRAWN, CONSENT_UPDATED, CONSENT_EXPIRED, ACKNOWLEDGED);
  • consent_mode — способ получения согласия (EXPLICIT_CLICK, FORM_SUBMISSION, IMPLICIT_VIA_CONTINUED_USE, API_CALL, EXPLICIT_CODE_ENTRY);
  • document_type — тип документа, к которому относится согласие (PRIVACY_POLICY, TERMS_OF_SERVICE, PARTICIPATION_RULES и другие).

Важно: значение consent_mode должно соответствовать реальному механизму в сценарии. Если согласие получено нажатием кнопки — указывайте EXPLICIT_CLICK, а не IMPLICIT_VIA_CONTINUED_USE, даже если технически проще скопировать пример. Расхождение между тем, что указано в записи, и тем, что реально происходило в диалоге, снижает доказательную ценность согласия.

Полный список допустимых значений для каждого параметра:

Режим согласия (consent_mode)

  • EXPLICIT_CLICK — явно нажал кнопку или чекбокс
  • FORM_SUBMISSION — получено в момент отправки формы
  • IMPLICIT_VIA_CONTINUED_USE — продолжил пользоваться, зная условия
  • API_CALL — передано через API от внешней системы
  • EXPLICIT_CODE_ENTRY — подтверждено через код (SMS, email, telegram gateway)

Тип согласия (consent_type)

  • PRIVACY_POLICY — политика конфиденциальности
  • TERMS_OF_SERVICE — пользовательское соглашение
  • PERSONAL_DATA_PROCESSING — обработка персональных данных (включая хранение)
  • DOCUMENT — информационный документ (условия, правила участия, регламент)
  • MARKETING_COMMUNICATIONS — рекламные рассылки
  • SERVICE_NOTIFICATIONS — нерекламные уведомления (напоминания, статус заказов)
  • THIRD_PARTY_SHARING — передача данных партнёрам (аналитика, реклама)
  • COOKIES_AND_TRACKING — сбор данных через cookies/трекинг
  • PAYMENT_PROCESSING — обработка платежей и хранение платёжных данных
  • AGE_VERIFICATION — подтверждение возраста (18+)

Тип документа (document_type)

  • PRIVACY_POLICY — политика конфиденциальности
  • TERMS_OF_SERVICE — пользовательское соглашение
  • PARTICIPATION_RULES — правила участия
  • SECURITY_POLICY — политика безопасности
  • USAGE_INSTRUCTION — инструкция по использованию
  • UPDATE_NOTICE — уведомление об изменениях
  • CODE_OF_CONDUCT — правила поведения
  • INFORMATION_NOTICE — юридически значимое уведомление или разъяснение

Тип события (event_type)

  • CONSENT_GIVEN — согласие предоставлено
  • CONSENT_EXPIRED — автоматическое прекращение (истёк срок)
  • CONSENT_UPDATED — согласие обновлено
  • CONSENT_WITHDRAWN — отзыв ранее данного согласия
  • ACKNOWLEDGED — ознакомлен

Шаг 5. Добавьте метаданные документа (рекомендуется)

Кроме обязательных параметров, тег принимает необязательные, но желательные для полноты записи:

  • document_title — название документа;
  • document_version — версия документа;
  • document_date — дата документа;
  • document_url — ссылка на документ.

Осторожно: если не передать document_date, в реестре согласий это поле отобразится как «Invalid date». Согласие при этом остаётся действительным, но для полноты доказательной базы рекомендуется указывать дату документа там, где она известна.

Шаг 6. При необходимости добавьте источник согласия

Если нужно зафиксировать дополнительный контекст — источник из веб-формы или конкретный чат — создайте объект перед тегом consent.register и передайте его соответствующим параметром:

Согласие через веб-форму:

{% createobj web_source_info %}
{
    "ip_address": "IP-адрес пользователя",
    "user_agent": "User-Agent браузера"
}
{% endcreateobj %}

Ключи ip_address и user_agent обязательны внутри web_source_info. Если согласие получено через форму Fasttrack, эти значения уже доступны в контексте сценария после её заполнения — их не нужно собирать вручную.

Согласие в чате:

{% createobj chat_source_info %}
{
    "chat_uuid": "UUID чата",
    "channel_name": "Название канала"
}
{% endcreateobj %}

Ключи chat_uuid и channel_name обязательны внутри chat_source_info. UUID чата и профиля пользователя платформа связывает с событием автоматически — этот параметр нужен только для дополнительного контекста.

Шаг 7. Сохраните результат, если он понадобится дальше в сценарии

Тег возвращает UUID созданной записи согласия — сохраните его, если планируете ссылаться на это согласие позже (например, при последующем отзыве).

Шаг 8. Проверьте запись в реестре согласий

Сохраните узел и протестируйте сценарий. После прохождения нужного шага запись должна появиться в разделе Настройки → История согласий — с типом события, типом документа и данными пользователя, которые вы указали в теге.


Примеры настройки для типовых сценариев

Базовый пример — минимальный набор обязательных параметров:

{% consent.register consent_type="PRIVACY_POLICY" event_type="CONSENT_GIVEN" consent_mode="FORM_SUBMISSION" document_type="TERMS_OF_SERVICE" as consent_uuid %}

Если вам необходимо сохранить uuid записи, не забудьте добавить:

{% save_variable "consent_uuid" consent_uuid %}

Пример 1: с дополнительными параметрами — с метаданными документа и источником:

{% createobj web_source_info %}
{
 "ip_address": "{{get_params.web_source_info.ip_address}}",
 "user_agent": "{{get_params.web_source_info.user_agent}}"
}
{% endcreateobj %}
{% createobj chat_source_info %}
{
"chat_uuid": "{{chat_uuid}}",
"channel_name": "{{platform}}"
}
{% endcreateobj %}
{% consent.register consent_type="PRIVACY_POLICY" event_type="CONSENT_GIVEN" consent_mode="FORM_SUBMISSION" document_type="TERMS_OF_SERVICE" document_title="Политика конфиденциальности" document_version="2.1" document_date="2025-05-28"|as_datetime document_url="https://example.com/privacy-policy" web_source_info=web_source_info chat_source_info=chat_source_info contact_external_id="user_12345" as consent_uuid %}

Пример 2: отзыв согласия — узел ставится в точке, где пользователь отказывается от ранее данного согласия:

{% consent.register consent_type="MARKETING_COMMUNICATIONS" event_type="CONSENT_WITHDRAWN" consent_mode="EXPLICIT_CLICK" document_type="PRIVACY_POLICY" document_title="Политика конфиденциальности" document_version="2.1" as withdrawal_uuid %}

Пример 3: уведомление об ознакомлении — если пользователь не столько «соглашается», сколько подтверждает, что ознакомлен с документом (например, с правилами участия в акции):

{% consent.register consent_type="DOCUMENT" event_type="ACKNOWLEDGED" consent_mode="FORM_SUBMISSION" document_type="PARTICIPATION_RULES" document_title="Правила участия в акции" document_version="1.0" document_date="2025-06-01"|as_datetime document_url="https://example.com/rules" as acknowledgment_uuid %}

Важно: для отзыва согласия (CONSENT_WITHDRAWN) и подтверждения ознакомления (ACKNOWLEDGED) добавляйте тег в узел ровно так же, как для первичного согласия — новым узлом сценария в точке, где происходит соответствующее действие пользователя. Отдельная настройка платформы для этого не требуется.