Действие «Приём и пересылка медиа»
«Приём и пересылка медиа» — действие в сценарии действий, которое:
- Принимает медиафайлы от подписчика (фото, видео, аудио, документ);
- Пересылает их другим подписчикам — например, менеджеру в Telegram-группу;
- Сохраняет URL и метаданные файла в переменные, чтобы подключить к нейросети, HTTP-запросу или Google Диску.
Когда использовать
- Чек-фото для подтверждения оплаты с другого банка.
- Документы клиента (паспорт, договор) для оформления.
- Голосовые сообщения → транскрибация в текст.
- Фото товара для оценки/возврата.
- Видеообращение → пересылка в чат поддержки.
- Файлы клиента для последующего хранения на Яндекс/Google Диске.
Часть 1. Как настроить приём
Шаг 1. Добавьте действие
В сценарии действий блока, который следует за блоком ожидания медиа (или в том же блоке, в сценарии действия после получения ответа), → «Добавить действие» → «Приём и пересылка медиа».
Шаг 2. Выберите тип медиа
В поле «Принять»:
| Тип | Что принимается |
|---|---|
| Файл | PDF, DOCX, XLSX, ZIP, TXT — любые документы |
| Изображение | JPG, PNG, WebP, HEIC |
| Аудио | MP3, OGG, WAV, голосовые сообщения |
| Видео | MP4, MOV, формат «кружка» |
Действие отфильтрует только указанный тип. Если подписчик прислал не то — переменные останутся пустыми.

Скриншот 1. Выбор типа принимаемого медиа.
Шаг 3. Добавьте блок-приёмник
Перед блоком с этим действием — текст «Пришлите фото чека». Подписчик присылает медиа → бот ловит и заполняет переменные.
Часть 2. Системные переменные после приёма
После выполнения действия в переменных появляются:
| Переменная | Содержит |
|---|---|
media_type | Тип: file, image, audio, video |
media_ext | Расширение файла: jpg, pdf, mp3, mp4 |
media_url | Прямая ссылка на файл (время жизни 1 минута!) |
media_duration | Длительность аудио в секундах |
ismedia | 1 если файл пересылается, иначе 0 |
Часть 3. Пересылка медиа адресатам
Действие может одновременно с приёмом переслать медиа другим подписчикам.
В разделе «Адресаты» добавляйте пары:
| Поле | Что вписать |
|---|---|
| ClientID | ID получателя. Шаблон текущего: [ClientID]. Можно переменную #{manager_id} |
| Messenger | telegram / tg, max, whatsapp / wa, viber / vb, vk |
| BotID | ID бота-отправителя. Шаблон текущего: [BotID] |
Нажмите «Добавить адресата» → пара появится в списке. Можно настроить несколько адресатов — медиа уйдёт каждому.

Скриншот 2. Настройка адресатов.
Типовые получатели
- Менеджер — фиксированный
ClientIDв чате-канале продаж. - Чат-поддержки — ID группы Telegram, куда добавлен бот.
- Партнёр / коллега —
ClientIDиз глобальной переменной. - Сам клиент в другой канал — например, если бот работает и в TG, и в WhatsApp.
Часть 4. Типовые сценарии
Сценарий 1. Распознавание чека через нейросеть
Блок 1. «Пришлите фото чека»
Сценарий действий «До»:
- Приём медиа: image
(без адресатов — только приём)
Блок 2. «Обработка чека»
Условие перехода: #{media_type} = image
Сценарий действий «До»:
- Нейросеть → «Анализ изображения»
URL изображения: #{media_url}
Запрос: «Извлеки сумму и дату из чека в формате сумма|дата»
Сохранить в: ai_result
- JS код: разбить #{ai_result} по | → переменные #{sum}, #{date}
Сообщение: «Принят чек на #{sum} ₽ от #{date}»
Сценарий 2. Голосовое сообщение → текст → ответ
Блок 1. «Запишите голосовое»
Сценарий действий «До»:
- Приём медиа: audio
Блок 2. «Обработка»
Сценарий действий «До»:
- Нейросеть → «Аудио в текст»
URL аудио: #{media_url}
Модель: whisper-1
Сохранить в: voice_text
- Нейросеть → Response
Запрос: #{voice_text}
Инструкции: «Ты менеджер магазина...»
Сохранить в: bot_answer
Сообщение: «Вы сказали: #{voice_text}
Ответ: #{bot_answer}»
Сценарий 3. Пересылка документа в чат менеджера
Блок 1. «Загрузите паспорт»
Сценарий действий «До»:
- Приём медиа: file
Адресат: ClientID = -1001234567890, Messenger = tg, BotID = [BotID]
(это группа менеджеров)
Блок 2. «Подтверждение»
Сообщение: «Документ получен и передан менеджеру. Ответ в течение часа.»
Сценарий 4. Сохранение на Яндекс Диск
Блок 1. «Пришлите файл»
Сценарий действий «До»:
- Приём медиа: file
Блок 2. «Загрузка»
Сценарий действий «До»:
- HTTP-запрос GET на #{media_url} → скачать в #{file_bytes}
- Яндекс Диск → загрузить → переменная public_url
- Список «Документы» addrow: ClientID, file_url = #{public_url}, type = #{media_ext}
Сообщение: «Файл сохранён: #{public_url}»
Сценарий 5. Фото товара для возврата
Блок 1. «Сфотографируйте товар для возврата»
Сценарий действий «До»:
- Приём медиа: image
Адресат: менеджер по возвратам (ClientID)
Блок 2. «Описание проблемы»
Свободный ввод → #{return_reason}
Блок 3. Подтверждение
Сценарий действий «До»:
- Список «Возвраты» addrow: ClientID, photo_url = #{media_url},
reason = #{return_reason}, order_id = #{order_id}
Сообщение: «Заявка на возврат принята. Ответ за 24 часа.»
Часть 5. Архитектура
Принцип 1. Сразу обрабатывайте media_url
Ссылка живёт 1 минуту. Если нужно хранение — отправьте на Яндекс Диск, Google Диск или HTTP в своё хранилище в том же сценарии действий.
Принцип 2. Проверяйте тип
Подписчик может прислать видео вместо фото. Условие #{media_type} = image в блоке защитит от ошибок.
Принцип 3. ClientID менеджера — в глобальной переменной
g_manager_id, g_support_chat_id — храните там, меняйте без правок сценариев.
Принцип 4. Большие файлы — не пересылайте «синхронно»
Видео 100+ МБ долго пересылаются. Если можно — сохраните URL, отправьте сообщение «Получили», а саму пересылку — после ответа клиенту.
Принцип 5. Логируйте каждое медиа
Список «Медиа-история» с полями ClientID, type, url (хранение), created_at. Удобно для отчётов и спорных ситуаций.
Принцип 6. Соблюдайте 152-ФЗ
Документы клиентов (паспорта, договоры) храните только с согласия. Минимизируйте срок хранения, удаляйте после обработки.
Часть 6. Что доступно по типам
| Тип | media_url | media_ext | media_duration |
|---|---|---|---|
| file | ✓ | ✓ (например, pdf) | — |
| image | ✓ | ✓ (jpg) | — |
| audio | ✓ | ✓ (ogg, mp3) | ✓ (секунды) |
| video | ✓ | ✓ (mp4) | — (нет в Квесче) |
Частые ошибки
#{media_url}возвращает 404 — прошло больше минуты, ссылка устарела. Обрабатывайте сразу.- Тип не совпадает — клиент прислал не то, что вы выбрали в типе. Покажите ему пример или измените тип.
- Адресат не получает медиа — неверный ClientID/Messenger/BotID. Проверьте, что бот добавлен в чат-получатель как админ (для групп).
- Голосовое не транскрибируется — старый формат ogg/opus. Whisper его понимает, но gpt-4o-mini-transcribe может не понять.
- Файл слишком большой — Telegram ограничивает 20 МБ для ботов в бесплатном плане.
#{media_duration}пустой — заполняется только для аудио, не для видео.
Что дальше
- Нейросеть — анализ фото и аудио.
- Google Диск и Яндекс Диск — долговременное хранение.
- HTTP-запросы — загрузка в свои хранилища.
- Списки — учёт всех принятых медиа.
- Группы и каналы Telegram — пересылка в группу менеджеров.