Какие scope нужны: scope и endpoint по Вашей задаче

Обновлено: 11 ноября 2026 · 27 мин чтения

Scope определяет, что разрешено приложению. Найдите в статье свою задачу: рядом указано, какие scope запросить, какой риск, на что смотрят при review и какие endpoint вызывать. Приложение создаётся на developer.clomni.ai, см. Создание приложения на developer.clomni.ai: пошагово.

Шаги

  1. 1

    Главное правило: запрашивайте только нужные scope

    Каждый scope проверяется отдельно. Проверяющий смотрит, связан ли каждый scope с описанной Вами функцией, и спрашивает, зачем write, если хватит чтения. Лишний scope отклоняется с причиной «R01: это разрешение не нужно для описанной функции».

    Почему меньше scope лучше:

    • review проходит быстрее: для каждого scope пишется отдельное объяснение не короче 100 символов, для scope высокого риска нужно ещё видео, а scope низкого риска смотрят быстро;
    • если токен утечёт, ущерб ограничится этими scope;
    • администратор, который подключает public app, на экране согласия ясно видит, что приложение будет делать.

    Как выбирать:

    • Если хватает чтения, не запрашивайте write. write и manage дают и read того же ресурса, поэтому токен с contacts:write может и читать контакты.
    • Если используете вебхуки, запросите scope на чтение темы (например contacts:read) отдельно: при выборе темы портал проверяет, что одобрен именно scope на чтение.
    • send, delete, publish, assign, run больше ничего не дают. Например, messages:send не разрешает читать сообщения.
    • Scope можно добавить позже: приложение в статусе Live остаётся Live, старые scope работают, на review уходит только новый. В public app новый scope не попадает в существующие установки сам, администратор должен подключить приложение заново.
    • Удаляйте ненужные scope: удаление не требует review и действует сразу.
    • До review проверяйте всё в тестовом канале своего workspace: messages:send и conversations:write там работают ещё до review. См. Тестовый канал: проверка приложения без реальных клиентов.
  2. 2

    Что означают риск и проверка

    • Низкий риск: нет персональных данных клиентов, только настройки или сводные цифры. Например reports:read, labels:read.
    • Средний риск: читает данные клиентов или текст сообщений либо меняет только внутренние данные. Например conversations:read, contacts:write.
    • Высокий риск: отправляет клиентам, удаляет, массово выгружает, меняет доступ или рабочие настройки AI, сценариев, правил. Например messages:send, exports:run, agents:manage.

    Каждый scope проходит review, в том числе низкого риска. Scope низкого риска смотрят быстро. Для высокого риска нужны подробное объяснение и короткое видео функции, целевой срок 2 рабочих дня. В public app каждый scope тоже проходит review. Подробнее: Review: проверка scope и причины отказа.

  3. 3

    Готовые наборы

    При создании приложения можно выбрать готовый набор: он сам отмечает scope, затем Вы убираете лишние. Оставлять все scope набора не обязательно.

    • «Clomni в моей панели»: conversations:read, conversations:write, conversations:assign, messages:read, messages:send, notes:write, contacts:read, contacts:write, inboxes:read, agents:read, teams:read, labels:read, canned_responses:read, webhooks:write.
    • «Синхронизация с CRM»: contacts:read, contacts:write, custom_attributes:read, conversations:read, messages:read, webhooks:write.
    • «BI и отчёты»: reports:read, csat:read, conversations:read, agents:read, teams:read, inboxes:read.
    • «Экспорт данных»: exports:run, events:read.
    • «Управление AI»: ai_agents:read, ai_agents:write, ai_agents:train, knowledge:read, knowledge:write, ai_logs:read.
  4. 4

    1. Выгружать сообщения и диалоги в другую систему

    Вы копируете диалоги и сообщения в свою базу для хранилища, архива или аналитики. Сначала один раз загрузите всё через endpoint синхронизации, затем забирайте только изменения через updated_since. Чтобы получать новые сообщения сразу, добавьте вебхук message.created.

    • Минимальные scope: conversations:read, messages:read.
    • Добавьте при необходимости: contacts:read (если нужны ещё телефон и e-mail контакта); events:read (чтобы забрать из ленты события, пропущенные пока сервер не работал).
    • Риск: средний. В review для каждого scope укажите, какие данные и зачем Вы используете.

    Основные endpoint:

    • GET /v1/sync/conversations: Синхронизация диалогов
    • GET /v1/sync/messages: Синхронизация сообщений
    • GET /v1/conversations/{conversation_id}/messages: Сообщения диалога

    Подробнее: Рецепт: экспорт истории и постоянная синхронизация, Scope и endpoint: диалоги и сообщения.

  5. 5

    2. Один раз перенести всю историю

    При переходе на другую систему или для архива Вы получаете диалоги, сообщения и контакты одним файлом. Экспорт готовится в фоне, ссылка на файл работает 1 час. Экспорт не заменяет постоянную синхронизацию: для дальнейших изменений используйте синхронизацию выше.

    • Минимальные scope: exports:run.
    • Добавьте при необходимости: events:read (чтобы ловить события после экспорта, вместе со scope на чтение темы).
    • Риск: высокий (exports:run). Для review нужны подробное объяснение и короткое видео функции.

    Основные endpoint:

    • POST /v1/exports: Начать экспорт
    • GET /v1/exports/{export_id}: Получить экспорт

    Подробнее: Рецепт: экспорт истории и постоянная синхронизация, Scope и endpoint: звонки, вебхуки, события, экспорт.

  6. 6

    3. Синхронизировать контакты с CRM

    Вы держите контакты одинаковыми в Clomni и CRM: ID из CRM записывается в поле identifier, изменения приходят через синхронизацию и вебхуки, CRM пишет обратно в Clomni. Если данные идут только из Clomni в CRM, не запрашивайте contacts:write.

    • Минимальные scope: contacts:read, contacts:write, custom_attributes:read.
    • Добавьте при необходимости: conversations:read (если CRM показывает список диалогов); messages:read (если CRM показывает текст переписки).
    • Риск: средний. В review для каждого scope укажите, какие данные и зачем Вы используете.

    Основные endpoint:

    • GET /v1/sync/contacts: Синхронизация контактов
    • GET /v1/contacts/search: Поиск контактов
    • POST /v1/contacts: Создать контакт
    • PATCH /v1/contacts/{contact_id}: Изменить контакт
    • GET /v1/custom_attribute_definitions: Список пользовательских полей

    Подробнее: Рецепт: синхронизация контактов с CRM, Scope и endpoint: контакты, метки, пользовательские поля, готовые ответы.

  7. 7

    4. Отправлять уведомления и коды подтверждения в WhatsApp с сайта или из системы

    Вы отправляете сообщения о заказе, доставке и коды подтверждения с номера WhatsApp Business API (Cloud). Если клиент не писал последние 24 часа, уходит только одобренный шаблон. Номер, подключённый по QR, через этот API не отправляет. Если Вы отправляете только текст в открытом окне и никогда не шаблон, вместо messages:send.template хватит messages:send.

    • Минимальные scope: messages:send.template.
    • Добавьте при необходимости: channels:read (чтобы находить channel_id через API, ID виден и в панели); messages:read (чтобы проверять статус сообщения, 24-часовое окно и для вебхуков message.*); messages:send (если отправляете текст вместе с fallback_template).
    • Риск: высокий (messages:send.template). Для review нужны подробное объяснение и короткое видео функции.

    Основные endpoint:

    • GET /v1/whatsapp/channels: Номера WhatsApp
    • GET /v1/whatsapp/templates: Одобренные шаблоны WhatsApp
    • GET /v1/whatsapp/messages/window: Проверить 24-часовое окно для номера
    • POST /v1/whatsapp/messages: Отправить сообщение WhatsApp на номер
    • GET /v1/whatsapp/messages/{message_id}: Статус сообщения WhatsApp

    Подробнее: Рецепт: уведомления и шаблоны WhatsApp с Вашего сайта, Scope и endpoint: диалоги и сообщения.

  8. 8

    5. Отвечать в открытом диалоге из своей системы

    Ваша система пишет в диалог клиента, например статус заказа. Сообщение уходит по каналу диалога: WhatsApp, Instagram, Messenger, e-mail, чат. Отправка идёт в фоне, результат приходит вебхуком message.updated. Сообщение, отправленное через API, видно от имени владельца токена.

    • Минимальные scope: messages:send, conversations:read.
    • Добавьте при необходимости: messages:read (чтобы читать переписку перед ответом и для вебхука статуса).
    • Риск: высокий (messages:send). Для review нужны подробное объяснение и короткое видео функции.

    Основные endpoint:

    • GET /v1/conversations/search: Поиск диалогов
    • POST /v1/conversations/{conversation_id}/messages: Отправить сообщение или написать внутреннюю заметку
    • POST /v1/conversations/{conversation_id}/messages/{message_id}/retry: Повторно отправить неудачное сообщение

    Подробнее: Рецепт: диалоги Clomni в Вашей собственной панели, Scope и endpoint: диалоги и сообщения.

  9. 9

    6. Подключить своего AI-бота к диалогам Clomni

    Бот получает новые сообщения вебхуком, пишет ответ в диалог и передаёт диалог оператору или команде, когда не справляется. Бота можно подключить и одним адресом вебхука, без приложения разработчика: см. «Как подключить свой бот к каналу (агент-бот)». Собственный AI-агент Clomni настраивается вообще без кода.

    • Минимальные scope: messages:read, messages:send, conversations:assign.
    • Добавьте при необходимости: conversations:write (чтобы менять статус диалога: pending пока говорит бот, open при передаче оператору); notes:write (чтобы оставлять операторам внутренние заметки); contacts:read (чтобы знать имя клиента и его пользовательские поля).
    • Риск: высокий (messages:send). Для review нужны подробное объяснение и короткое видео функции.

    Основные endpoint:

    • GET /v1/conversations/{conversation_id}/messages: Сообщения диалога
    • POST /v1/conversations/{conversation_id}/messages: Отправить сообщение или написать внутреннюю заметку
    • POST /v1/conversations/{conversation_id}/toggle_status: Изменить статус диалога
    • POST /v1/conversations/{conversation_id}/assignments: Назначить диалог

    Подробнее: Рецепт: ответы AI-агента, база знаний и свой бот, Как подключить свой бот к каналу (агент-бот).

  10. 10

    7. Использовать AI-агента Clomni на своём сайте или в приложении

    Вы задаёте вопрос AI-агенту, настроенному в Clomni, и показываете ответ в своём продукте. Агент отвечает по тем же инструкциям и базе знаний и ничего не пишет в диалоги. Каждый ответ списывается с AI-кредита workspace.

    • Минимальные scope: ai_agents:read, ai_agents:ask.
    • Добавьте при необходимости: billing:read (чтобы следить за остатком AI-кредита).
    • Риск: средний. В review для каждого scope укажите, какие данные и зачем Вы используете.

    Основные endpoint:

    • GET /v1/ai_agents: Список AI-агентов
    • POST /v1/ai_agents/{ai_agent_id}/ask: Получить ответ AI-агента
    • GET /v1/ai_credits: Баланс AI-кредита

    Подробнее: Рецепт: ответы AI-агента, база знаний и свой бот, Scope и endpoint: AI-агенты, база знаний, центр помощи.

  11. 11

    8. Автоматически обновлять базу знаний AI-агента

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

    • Минимальные scope: knowledge:write, ai_agents:read.
    • Добавьте при необходимости: ai_agents:train (чтобы добавлять FAQ и проверять тестами).
    • Риск: средний. В review для каждого scope укажите, какие данные и зачем Вы используете.

    Основные endpoint:

    • GET /v1/knowledge: Документы базы знаний
    • POST /v1/knowledge: Добавить документ или ссылку
    • DELETE /v1/knowledge/{document_id}: Удалить документ базы знаний
    • POST /v1/ai_agent_faqs: Создать FAQ

    Подробнее: Рецепт: ответы AI-агента, база знаний и свой бот, Scope и endpoint: AI-агенты, база знаний, центр помощи.

  12. 12

    9. Следить за качеством AI-агента

    Вы выгружаете в свою панель или отчёт вопросы, на которые агент не ответил, проверки ответов и результаты. Чтобы регулярно проверять агента тестовыми вопросами, добавьте ai_agents:train, тесты расходуют AI-кредит.

    • Минимальные scope: ai_logs:read, ai_agents:read.
    • Добавьте при необходимости: ai_agents:train (чтобы запускать тестовые вопросы).
    • Риск: средний. В review для каждого scope укажите, какие данные и зачем Вы используете.

    Основные endpoint:

    • GET /v1/ai_agents/{ai_agent_id}/gaps: Вопросы, на которые AI-агент не ответил
    • GET /v1/ai_agents/{ai_agent_id}/reviews: Проверки ответов AI
    • GET /v1/ai_agents/{ai_agent_id}/results: Результаты AI-агента
    • POST /v1/ai_agents/{ai_agent_id}/test_runs: Запустить тест

    Подробнее: Scope и endpoint: AI-агенты, база знаний, центр помощи.

  13. 13

    10. Выгружать отчёты в Power BI или другой BI-инструмент

    Вы выгружаете в BI-инструмент количество диалогов, время первого ответа и решения, итоги по операторам, inbox и командам. В сводных цифрах нет персональных данных клиентов, поэтому reports:read низкого риска. Чтобы показывать имена, читайте списки операторов, команд и inbox. Если нужна строка на каждый диалог, добавьте синхронизацию (первая задача).

    • Минимальные scope: reports:read, agents:read, teams:read, inboxes:read.
    • Добавьте при необходимости: csat:read (если нужны ещё оценки удовлетворённости); sla:read (чтобы показывать нарушения SLA).
    • Риск: низкий. Все низкого риска, review проходит быстро.

    Основные endpoint:

    • GET /v1/reports: Временной ряд отчёта
    • GET /v1/reports/summary: Итоги отчёта
    • GET /v1/reports/agents: Итоги по операторам
    • GET /v1/summary_reports/team: Сводный отчёт по командам
    • GET /v1/csat_survey_responses/metrics: Итоги CSAT

    Подробнее: Scope и endpoint: отчёты, CSAT, SLA, Рецепт: экспорт истории и постоянная синхронизация.

  14. 14

    11. Показывать диалоги Clomni в своей панели операторов

    Ваши операторы читают переписку с клиентом в своей внутренней системе, отвечают, закрывают и назначают диалоги. При создании приложения выберите готовый набор «Clomni в моей панели» и уберите лишнее.

    • Минимальные scope: conversations:read, conversations:write, conversations:assign, messages:read, messages:send.
    • Добавьте при необходимости: notes:write (для внутренних заметок); agents:read (для списка операторов при назначении); teams:read (чтобы назначать на команду); canned_responses:read (для выбора готовых ответов).
    • Риск: высокий (messages:send). Для review нужны подробное объяснение и короткое видео функции.

    Основные endpoint:

    • GET /v1/conversations: Список диалогов
    • GET /v1/conversations/{conversation_id}/messages: Сообщения диалога
    • POST /v1/conversations/{conversation_id}/messages: Отправить сообщение или написать внутреннюю заметку
    • POST /v1/conversations/{conversation_id}/toggle_status: Изменить статус диалога
    • POST /v1/conversations/{conversation_id}/assignments: Назначить диалог

    Подробнее: Рецепт: диалоги Clomni в Вашей собственной панели, Scope и endpoint: диалоги и сообщения.

  15. 15

    12. Готовить и отправлять кампании

    Вы создаёте кампанию из своей системы как черновик, затем отправляете и читаете результаты. Если Вы только готовите черновики, а отправляет человек в панели, не запрашивайте campaigns:send и создавайте с enabled: false.

    • Минимальные scope: campaigns:write, campaigns:send.
    • Добавьте при необходимости: labels:read (чтобы выбирать аудиторию по метке); inboxes:read (чтобы выбрать inbox, из которого пойдёт кампания).
    • Риск: высокий (campaigns:send). Для review нужны подробное объяснение и короткое видео функции.

    Основные endpoint:

    • POST /v1/campaigns: Создать кампанию
    • POST /v1/campaigns/{campaign_id}/publish: Опубликовать кампанию
    • GET /v1/campaign_results: Результаты кампаний
    • GET /v1/campaign_results/{campaign_result_id}/contacts: Получатели кампании и их статусы

    Подробнее: Scope и endpoint: кампании, сценарии, автоматизация.

  16. 16

    13. Записывать звонки в CRM

    Вы выгружаете в CRM журнал телефонных звонков и звонков WhatsApp (направление, статус, длительность, ответивший оператор). Если данные с записью и расшифровкой нужны сразу после звонка, вместо приложения разработчика настройте вебхуки звонков workspace.

    • Минимальные scope: calls:read.
    • Добавьте при необходимости: conversations:read (чтобы найти диалог, к которому относится звонок).
    • Риск: высокий (calls:read). Для review нужны подробное объяснение и короткое видео функции.

    Основные endpoint:

    • GET /v1/voice_calls: Телефонные звонки
    • GET /v1/whatsapp_calls: Звонки WhatsApp
    • GET /v1/whatsapp_calls/{call_id}: Получить звонок WhatsApp

    Подробнее: Scope и endpoint: звонки, вебхуки, события, экспорт, Вебхуки звонков: передавать звонки в свою систему.

  17. 17

    14. Управлять статьями центра помощи

    Сайта помощи для клиентов (портала) нет в пакетах Clomni с 5 ноября 2026 года, в панели он не отображается. Scope help_center:* остаются в каталоге, но не привязывайте к ним новые интеграции. Если цель в автоматических ответах клиентам, обновляйте базу знаний (задача выше).

    • Минимальные scope: knowledge:write, ai_agents:read.
    • Риск: средний. В review для каждого scope укажите, какие данные и зачем Вы используете.

    Основные endpoint:

    • GET /v1/knowledge: Документы базы знаний
    • POST /v1/knowledge: Добавить документ или ссылку

    Подробнее: Scope и endpoint: AI-агенты, база знаний, центр помощи.

  18. 18

    15. Управлять сценариями (flow) из кода и включать их

    Вы создаёте, проверяете, включаете сценарии и читаете их статистику. Endpoint, который запускает сценарий для конкретного клиента, отсутствует: сценарий запускают триггер (ключевое слово, событие), оператор, AI-агент или мобильное приложение (Clomni.startFlow). Если нужна только статистика, хватит flows:read.

    • Минимальные scope: flows:write, flows:publish.
    • Риск: высокий (flows:publish). Для review нужны подробное объяснение и короткое видео функции.

    Основные endpoint:

    • GET /v1/flows: Список сценариев
    • GET /v1/flows/{flow_id}/check: Проверить сценарий на проблемы
    • POST /v1/flows/{flow_id}/publish: Включить или выключить сценарий
    • GET /v1/flows/{flow_id}/analytics/funnel: Воронка шагов сценария

    Подробнее: Scope и endpoint: кампании, сценарии, автоматизация.

  19. 19

    16. Хранить правила автоматизации в коде

    Вы создаёте и меняете правила из своей системы. Создавайте с active: false: правило остаётся черновиком и automations:publish не нужен. Если включать правила тоже будет Ваша система, добавьте automations:publish.

    • Минимальные scope: automations:write.
    • Добавьте при необходимости: automations:publish (чтобы включать и удалять правила).
    • Риск: средний. В review для каждого scope укажите, какие данные и зачем Вы используете.

    Основные endpoint:

    • GET /v1/automation_rules: Список правил автоматизации
    • POST /v1/automation_rules: Создать правило автоматизации
    • PATCH /v1/automation_rules/{automation_rule_id}: Изменить правило

    Подробнее: Scope и endpoint: кампании, сценарии, автоматизация.

  20. 20

    17. Управлять операторами и командами из кадровой системы

    Когда приходит новый сотрудник, Вы приглашаете его оператором и добавляете в команды и inbox, когда он уходит, удаляете из workspace. Если Вы только читаете списки, хватит agents:read и teams:read.

    • Минимальные scope: agents:manage, teams:write.
    • Добавьте при необходимости: inboxes:write (чтобы добавлять операторов в inbox и убирать).
    • Риск: высокий (agents:manage). Для review нужны подробное объяснение и короткое видео функции.

    Основные endpoint:

    • POST /v1/agents: Пригласить оператора
    • PATCH /v1/agents/{agent_id}: Изменить роль или статус оператора
    • DELETE /v1/agents/{agent_id}: Удалить оператора из workspace
    • POST /v1/teams/{team_id}/team_members: Добавить операторов в команду
    • POST /v1/inbox_members: Добавить операторов в inbox

    Подробнее: Scope и endpoint: workspace, операторы, команды.

  21. 21

    18. Получать уведомления в реальном времени через вебхук

    Clomni отправляет запрос на Ваш сервер сразу, как только появляется новое сообщение, новый диалог, меняется статус или контакт. Адрес вебхука настраивается на портале разработчика, в разделе приложения «Вебхуки». Каждая тема требует свой scope на чтение: messages:read для message.*, conversations:read для conversation.*, contacts:read для contact.*. Запрашивайте scope только для нужных тем.

    • Минимальные scope: messages:read.
    • Добавьте при необходимости: conversations:read (для тем conversation.*); contacts:read (для тем contact.*); events:read (чтобы забирать пропущенные события из ленты в течение 30 дней).
    • Риск: средний. В review для каждого scope укажите, какие данные и зачем Вы используете.

    Основные endpoint:

    • GET /v1/events: Лента событий

    Подробнее: Вебхуки приложения и события: настройка, темы, проверка подписи, Scope и endpoint: звонки, вебхуки, события, экспорт.

  22. 22

    19. Получать оповещение, когда канал отключается

    Вы регулярно проверяете, подключён ли номер WhatsApp или другой канал, и поднимаете тревогу в своей системе мониторинга. Хватает одного scope низкого риска.

    • Минимальные scope: channels:read.
    • Добавьте при необходимости: inboxes:read (чтобы показывать названия inbox).
    • Риск: низкий. Все низкого риска, review проходит быстро.

    Основные endpoint:

    • GET /v1/whatsapp/channels: Номера WhatsApp
    • GET /v1/inboxes/{inbox_id}/health: Состояние канала

    Подробнее: Scope и endpoint: inbox и каналы.

  23. 23

    20. Оставлять операторам внутреннюю заметку из системы заказов

    Когда меняется заказ, оплата или доставка, Ваша система пишет в диалог заметку, которую клиент не видит. Оператор видит ситуацию, когда отвечает. notes:write низкого риска и ничего не отправляет клиенту.

    • Минимальные scope: notes:write, conversations:read.
    • Риск: средний. В review для каждого scope укажите, какие данные и зачем Вы используете.

    Основные endpoint:

    • GET /v1/conversations/search: Поиск диалогов
    • POST /v1/conversations/{conversation_id}/messages: Отправить сообщение или написать внутреннюю заметку

    Подробнее: Scope и endpoint: диалоги и сообщения.

  24. 24

    21. Массово импортировать контакты

    Вы загружаете одним запросом CSV из старой системы или таблицы, импорт идёт в фоне. Если Вы создаёте и обновляете контакты по одному, нужен contacts:write, а не contacts:import.

    • Минимальные scope: contacts:import.
    • Риск: средний. В review для каждого scope укажите, какие данные и зачем Вы используете.

    Основные endpoint:

    • POST /v1/contacts/import: Импорт контактов из CSV

    Подробнее: Scope и endpoint: контакты, метки, пользовательские поля, готовые ответы.

  25. 25

    22. Переносить журнал аудита в систему безопасности

    Вы регулярно читаете, кто, когда и что изменил, и храните это в своей системе безопасности или комплаенса.

    • Минимальные scope: audit_logs:read.
    • Риск: средний. В review для каждого scope укажите, какие данные и зачем Вы используете.

    Основные endpoint:

    • GET /v1/audit_logs: Журнал аудита

    Подробнее: Scope и endpoint: workspace, операторы, команды.

  26. 26

    Чего API не умеет

    Это намеренно закрыто для токенов разработчика. Запрос к такому endpoint возвращает 403 endpoint_not_available.

    • создавать и удалять workspace, менять пакет и оплату;
    • получать секреты каналов и подключать каналы через API (у channels:manage нет своего endpoint);
    • агент-боты и их токены, интеграции и их OAuth-разрешения;
    • профиль, пароль, токены доступа, вход от имени другого пользователя;
    • собственные вебхуки workspace: у приложения разработчика есть свой вебхук с темами;
    • массовые действия, уведомления и личные экраны пользователей;
    • звонки из API;
    • портал компании SSO, настройки и токены AI-приложений (MCP), управление самими приложениями разработчика;
    • массовая отправка WhatsApp (bulk_messages): она есть в отдельном WhatsApp API, который работает с ключом API профиля, см. Массовая отправка через WhatsApp API (bulk_messages);
    • запуск сценария в конкретном диалоге.
  27. 27

Документ