Как накопить данные в параметре через реакцию

Бывает удобно собирать данные «голосом», прямо в чате с ботом, без открытия админки. Мастер сфотографировал новый товар на телефон → отправил боту с подписью → бот сохранил его в каталог. Менеджер написал боту вопрос и ответ → бот добавил их в базу FAQ. Это называется «накопительный параметр»: одна реакция, которая принимает сообщение и кладёт его очередной строкой в общий список.

📌 Зачем

  • Каталог товаров или услуг — фото с ценой и названием.
  • FAQ — список «вопрос/ответ» для бота-консультанта.
  • Контакты или адреса филиалов — текст и геолокация.
  • Расписание занятий или мероприятий — даты и описание.
  • Чек-лист задач или достижений — что угодно, что хочется накопить.

Везде идея одна: сказал волшебное слово — отправил сообщение — оно осело в общем списке, доступном в других реакциях через подстановку.

🎯 Кому подойдёт

Мастерам, преподавателям, организаторам мероприятий, маленьким студиям — тем, кто хочет вести небольшую базу в боте, без отдельной CMS и без захода в браузер. Для больших объёмов (сотни записей с фильтрами и кабинетом покупателя) нужны специализированные решения.

🛠 Как настроить

Если бота ещё нет — пройдите быстрый старт для Telegram или ВКонтакте. Дальше всего два шага: создать параметр и собрать одну реакцию.

1. Параметр

В разделе «Параметры» создайте параметр с понятным именем (например, catalog, faq, contacts). Режим хранения — «Хранить все значения». В этом режиме каждое новое значение добавляется отдельной строкой, прежние не затираются — ровно то, что нужно для накопления.

2. Реакция «Принять данные»

  • В блоке «1. Срабатывает на» включите «1.1.1. Содержит ключевые слова» и добавьте короткое слово-команду — например, товар, добавить, вопрос. Это «вход в админ-режим» бота.
  • В блоке «2. В чатах» поставьте «В личных сообщениях». Чтобы случайные пользователи в группе не могли добавлять данные, можно дополнительно ограничить разрешённый чат конкретным id (вашим личным с ботом).
  • В блоке «4. Действия» в уже включённом «4.1. Отправить сообщение» добавьте одно сообщение типа «Текст» с инструкцией — что отправить дальше. Например: «Отправьте фото товара с подписью в формате «Название \| Цена».» либо «Напишите вопрос и ответ через тире.»
  • В этом же сообщении нажмите «Сохранить ответ». Откроется окно с настройками:
    • «Ожидаемый ответ»: выберите тип того, что вы пришлёте боту. Фото — для каталога с картинками. Текст — для FAQ, контактов, расписания. Можно выбрать оба.
    • «Параметр пользователя»: ваш накопительный параметр (catalog).
    • «Режим»: «Хранить все значения» — значения копятся.
    • «Глобальный»: включить. Это важная галка: без неё параметр будет приватным для каждого пользователя; с ней — один общий список, видимый из любой реакции.

Готово. Реакция работает: вы пишете боту «товар», он отвечает «Отправьте фото…», вы шлёте фото с подписью — бот сохраняет его в catalog очередной строкой.

🔍 Что получилось

Каждый раз, когда вы добавляете элемент, в базе бота появляется новая запись параметра. Если открыть админку и посмотреть значения параметра catalog, вы увидите все сохранённые фото с их подписями.

Дальше эти данные можно использовать в других реакциях через подстановки и формулы:

  • {global:catalog:1} — первое значение списка.
  • {global:catalog:1-} — весь список (массив).
  • В формулах:
    {formula:JP({global:catalog:1};"$.caption")} — подпись первого элемента.
    {formula:COUNTA({global:catalog:1-};"")}-1 — сколько элементов в списке.
    {formula:FIELD({user:input};" \| ";0)} — первое поле строки с разделителем.

💡 Полезные расширения

  • Реакция-просмотр — команда «список», по которой бот выводит текущее содержимое параметра в сообщение.
  • Реакция-очистка — команда «очистить», в настройке параметров реакции используется режим «Удалить все значения». Полезно при отладке или для «начать заново».
  • Формат записи с разделителем — если в подписи писать «Название \| Цена», потом можно вытащить любое поле формулой FIELD(текст; " \| "; 0). Удобно для каталога с вычислимыми суммами.
  • Безопасность — ограничьте реакцию вашим личным чатом, чтобы посторонние не могли «загрязнить» список. Это особенно важно, если бот доступен публично.

📦 Готовый кейс на этой технике

Главное применение этого паттерна, ради которого мы его описали — Telegram-бот-магазин с корзиной. Каталог собирается этой техникой, а витрина с листанием товаров, корзиной и оплатой — уже отдельная статья.

Если нужна помощь

SamBot — это конструктор, всё описанное собирается мышкой в админке без программиста. Если разбираться некогда — напишите нам, поможем настроить под вашу нишу или предложим готовый шаблон.