> For the complete documentation index, see [llms.txt](https://docs.fstrk.io/knowledge_base/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.fstrk.io/knowledge_base/instructions/consent-logs.md).

# Учёт согласий с документами

## Процедура

Процедура `consent.register` позволяет зарегистрировать согласие пользователя на обработку данных, принятие условий использования, политики конфиденциальности и других документов.

{% code title="tag template" overflow="wrap" %}

```python
{% consent.register consent_type="<consent_type>" event_type="<event_type>" consent_mode="<consent_mode>" document_type="<document_type>" <параметры> as result %}
```

{% endcode %}

**Параметры**

* `consent_type` <mark style="color:yellow;">`string`</mark> <mark style="color:red;">\*</mark> – Тип согласия. [См. Типы согласий](#tip-soglasiya-consent_type)
* `event_type` <mark style="color:yellow;">`string`</mark> <mark style="color:red;">\*</mark> – Тип события. [См. Типы событий](#tip-sobytiya-event_type)
* `consent_mode` <mark style="color:yellow;">`string`</mark> <mark style="color:red;">\*</mark> – Режим получения согласия. [См. Режимы согласия](#rezhim-consent_mode)
* `document_type` <mark style="color:yellow;">`string`</mark> <mark style="color:red;">\*</mark> – Тип документа. [См. Типы документов](#tip-dokumenta-document_type)
* `document_title` <mark style="color:yellow;">`string`</mark> – Название документа
* `document_version` <mark style="color:yellow;">`string`</mark> – Версия документа
* `document_date` <mark style="color:yellow;">`datetime`</mark> – Дата документа
* `document_url` <mark style="color:yellow;">`string`</mark> – URL документа
* `web_source_info` <mark style="color:yellow;">`dict`</mark> – Информация о веб-источнике
* `chat_source_info` <mark style="color:yellow;">`dict`</mark> – Информация об источнике чата
* `contact_external_id` <mark style="color:yellow;">`string`</mark> – Внешний идентификатор контакта

**Информация о веб-источнике**

В параметр `web_source_info` можно добавить информацию, которая связана с веб-инсточником, например, если пользователь предоставил согласие через форму, на сайте, после которой перешел в чат-бот.

```json
{
  "ip_address": "IP-адрес пользователя",
  "user_agent": "User-Agent браузера"
  // другие парараметры
}
```

Ключи `ip_address` и `user_agent` в данном случае передавать обязательно. Если используются формы Fasttrack, то значения для `ip_address` и `user_agent` автоматически доступны в контексте сценария после заполнения формы.

**Информация о пользователе**

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

```json
{
  "chat_uuid": "UUID чата",
  "channel_name": "Название канала"
  // другие парараметры
}
```

Ключи `chat_uuid` и `channel_name` в данном случае передавать обязательно.

**Результат**

Процедура возвращает UUID созданной записи согласия в виде строки.

## Примеры

<details>

<summary>Базовый пример</summary>

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

</details>

<details>

<summary>Пример 1: С дополнительными параметрами</summary>

```python
{% createobj web_source_info %}
{
  "ip_address": "127.0.0.1",
  "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
}
{% endcreateobj %}

{% createobj chat_source_info %}
{
  "chat_uuid": "a2413922-420e-427f-9289-e8199b9d458c",
  "channel_name": "Telegram"
}
{% 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 %}
```

</details>

<details>

<summary>Пример 2: Отзыв согласия</summary>

```python
{% 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 %}
```

</details>

<details>

<summary>Пример 3: Уведомление об ознакомлении</summary>

```python
{% 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 %}
```

</details>

## Справочники

### Режим согласия (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` – Ознакомлен


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.fstrk.io/knowledge_base/instructions/consent-logs.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
