Forms в TelePost
Forms в TGPT — это небольшой модуль для публичных заявок. Он нужен, когда владелец ящика хочет получать данные с внешней страницы и сразу видеть уведомление в Telegram, не поднимая отдельную форму обратной связи с нуля.
Сценарий простой: у формы есть публичный hash_id, внешний сайт отправляет payload на endpoint формы, TelePost сохраняет сабмит и уведомляет владельца. При необходимости после успешной отправки можно сделать redirect или отправить внешний POST на subscription_url.
Что решает Forms
Forms закрывает практичную задачу: принять заявку с публичной страницы и связать её с владельцем в TelePost.
Это полезно для простых сценариев:
- заявка с лендинга;
- короткая форма обратной связи;
- сбор контакта и сообщения;
- передача данных во внешний endpoint после сабмита;
- уведомление владельца в Telegram без ручной проверки админки.
Важно: текущая документация фиксирует работу с обычным payload и отдельно отмечает ограничения. Я не описываю здесь поддержку multipart/form-data, потому что она не подтверждена текущей спецификацией.
Как работает публичный сабмит
Публичный путь формы выглядит как /api/v1/f/:hash_id. При сабмите backend последовательно проверяет форму и запрос:
- находит форму по
hash_id; - проверяет, что форма активна;
- проверяет
Originпо списку разрешённых источников; - проверяет content-type и размер payload;
- валидирует тело запроса;
- сохраняет payload в базу;
- отправляет Telegram-уведомление владельцу;
- запускает внешний POST на
subscription_url, если он задан; - делает redirect, если у формы есть
redirect_url.
Такой flow оставляет публичный endpoint достаточно простым: форма принимает данные, сохраняет их и отдаёт предсказуемый результат внешней странице.
Управление формами в Mini App
В TelePost есть UI-менеджер форм внутри Mini App. Через него можно работать с настройками формы: названием, разрешёнными origin, redirect URL, subscription URL и активностью формы.
Отдельно хранится список сабмитов. Это нужно, чтобы владелец мог вернуться к полученным заявкам, а не полагаться только на Telegram-уведомление.
Telegram-уведомление владельцу
После успешного сабмита TelePost отправляет владельцу формы уведомление в Telegram. В уведомлении показываются основные поля payload — обычно первые полезные поля, чтобы быстро понять, что пришло и требует ли заявка реакции.
Это хорошо ложится на общую идею проекта: Telegram остаётся точкой быстрых событий, а Mini App — местом, где можно открыть детали и продолжить работу.
Зачем это полезно
Forms добавляет к почтовому сервису ещё один входной канал. Письма приходят через Mox, а заявки с внешних страниц — через публичный endpoint формы. В обоих случаях владелец видит событие в Telegram и может дальше обработать его в TelePost.
В будущем такой входной поток можно связать с автоматизацией: например, превращать часть заявок или писем в рабочие действия. Об этом подробнее — в статье TelePost и Audio Scribe: будущая интеграция.