Перейти к основному содержимому

Действие «Приём и пересылка медиа»

«Приём и пересылка медиа» — действие в сценарии действий, которое:

  1. Принимает медиафайлы от подписчика (фото, видео, аудио, документ);
  2. Пересылает их другим подписчикам — например, менеджеру в Telegram-группу;
  3. Сохраняет 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Длительность аудио в секундах
ismedia1 если файл пересылается, иначе 0
Ссылка живёт 1 минуту

#{media_url} — временная. Используйте её сразу: в нейросети, отправке на хранение, скачивании в HTTP. Через минуту ссылка перестанет работать.


Часть 3. Пересылка медиа адресатам

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

В разделе «Адресаты» добавляйте пары:

ПолеЧто вписать
ClientIDID получателя. Шаблон текущего: [ClientID]. Можно переменную #{manager_id}
Messengertelegram / tg, max, whatsapp / wa, viber / vb, vk
BotIDID бота-отправителя. Шаблон текущего: [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_urlmedia_extmedia_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} пустой — заполняется только для аудио, не для видео.

Что дальше