Учёт склада в Telegram: форма и таблица остатков

Учёт склада в Telegram: форма и таблица остатков

Easy Post Team · · учёт склада складской журнал остатки на складе телеграм-бот управление запасами
Содержание

Пришла поставка, две коробки ушли в магазин, ящик уронили. К вечеру никто не помнит цифр, поэтому таблицу учёта склада заполняют по памяти, если заполняют вообще, а ежемесячный пересчёт находит расхождения, которых никто не может объяснить. Таблица работает, только когда строки вносят в момент движения товара. Форма в телеграм-боте превращает это в несколько нажатий на телефоне: сотрудник выбирает операцию, позицию и количество, а вы получаете запись с именем отправителя.

Форма записывает движения. Сколько товара у вас на складе, она не знает, не запрещает отгрузить больше, чем есть, не умеет сканировать штрихкоды и не присылает оповещений о низком остатке. Остаток считается в вашей собственной таблице, и для этого нужен ещё один шаг: вебхук, то есть веб-адрес, который получает каждую запись и передаёт её в таблицу. Вебхуки есть не во всех тарифах. Без вебхука у вас остаются сообщения в Telegram и кабинет на сайте, в котором нет выгрузки. Инвентаризационную опись для подписи форма тоже не формирует: если вы искали бланк для печати, это не он.

С чего начать

Всё настраивается на сайте easy-post.app. Зарегистрируйтесь, и на первом экране вам предложат выбрать шаблон: выберите «Инвентаризация». Easy Post сразу создаст «поток», то есть вашу форму вместе со списком записей, которые она собирает. Этот список на сайте дальше называется «кабинет»; его открывает кнопка «Заявки» на странице потока. Бот, с которым общаются сотрудники, — собственный бот Easy Post, так что создавать его не нужно. Каждая запись приходит вам в Telegram сообщением, поэтому на странице потока нажмите «Проверить форму в Telegram», чтобы привязать свой аккаунт. Для этой настройки не нужен Telegram-канал (лента, в которой вы публикуете посты для читателей), поэтому поле канала в блоке «Осталось сделать» на странице потока оставьте пустым. Если аккаунт у вас уже есть, кнопка «+ Новый поток» на странице проекта (там перечислены ваши потоки) открывает страницу выбора шаблона, если на вашем тарифе есть место ещё под один поток.

Сократите семь вопросов до тех, что вы прочтёте

Это шаблон «Инвентаризация» в Easy Post. В нём семь вопросов, а это слишком много для человека, который вносит движения весь день: каждое движение — это один проход по всей форме. Откройте «Настройки формы» (кнопка «Форма» на странице потока) и сократите её. Каждый вопрос — карточка в списке. В карточке есть окошко «Название поля, видите только вы» (подпись в вашем сообщении в Telegram), окошко «Текст от бота» (вопрос, который видят сотрудники), меню «Тип» (Текст, Число, Кнопки и другие) и крестик в углу, который удаляет вопрос. Когда вы выбираете «Кнопки», под вопросом появляется окошко для названий кнопок. Если интерфейс Easy Post у вас на русском, вопросы, подписи и кнопки шаблона приходят уже по-русски; ниже указано, как они написаны в шаблоне. Другие способы собрать такую форму сравниваются в руководстве по конструктору форм без кода. Оставляйте вопрос, только если будете читать ответ.

  • Операция (обязательное; вопрос «Тип операции:»; кнопки «Приёмка», «Отгрузка», «Списание»). Оставьте. Формулы в вашей таблице сравнивают эти слова буква в букву, поэтому названия выберите сейчас. Все названия вписываются в одно окошко через запятую, значит, в названии запятой быть не может.
  • Вещь (в тексте и в таблице ниже это «позиция»; обязательное; вопрос «Название или артикул:», где артикул — код товара, который стоит на самой вещи или на полке). Это свободный текст, и в этом слабое место: «Вода 0,5», «вода 500 мл» и «Вода малая» становятся тремя разными позициями в вашей таблице. Если позиций до дюжины, смените тип на «Кнопки» и впишите в окошко точные названия. Держите каждое название примерно до 28 букв (предел Telegram — 64 байта, а русская буква занимает два байта, эмодзи — ещё больше): более длинное название Telegram не принимает, и вопрос перестаёт работать. Если позиций больше, оставьте текстовое поле и просите код, который вы печатаете на каждой этикетке на полке, например 4017. Код короче набирать, и его проще писать одинаково.
  • Количество (обязательное; вопрос «Количество:»; тип «Текст»). Смените тип на «Число», а вопрос на «Количество, только цифры:». Слово вроде «сорок» бот тогда отклонит ответом «Введите число.» Но «40 шт» тип «Число» всё равно пропускает: рядом с числом разрешена короткая единица измерения, и ответ сохраняется ровно так, как набран. Единицу записывайте в название позиции («Вода 500 мл (ящик)»), а не в ответ.
  • Состояние (необязательное; кнопки «Новое», «Б/у», «Повреждённое»; кнопка пропуска «Не указано»). Удалите, если у вас нет подержанного товара.
  • Место хранения (необязательное; вопрос «Место хранения:»). Оставляйте, только если у вас несколько мест, где лежит товар, и тогда тоже сделайте его кнопками, например «Стеллаж А, Стеллаж Б, Холодная камера».
  • Фото (необязательное фото; вопрос «Прикрепите фото:»; до трёх фото; кнопка пропуска «Без фото»). Оставьте. Просите фото накладной, когда товар пришёл, и фото повреждения, когда что-то списывают. В сообщении в Telegram фото нет. Они лежат в кабинете миниатюрами, которые открываются в полном размере.
  • Примечания (необязательное; вопрос «Дополнительные заметки:»). Оставьте и смените вопрос на «Примечание (для списания напишите причину):». Вопрос нельзя показать только для одной операции, поэтому он достаётся каждому движению, а сотрудники пропускают его одним нажатием.

Удалив вопрос, прокрутите до блока «Вид поста» под списком. Это шаблон постов для канала, которым вы не пользуетесь, но проверка длины всё равно читает его, а строка удалённого вопроса остаётся в нём и считается написанной. Удалите эту строку, например ту, что заканчивается на {condition}, и нажмите «Сохранить» под списком. Если запись с фото занимает больше 1024 видимых символов, бот удаляет её, сотрудник видит «Заявка слишком длинная для публикации с фото (максимум 1024 символа)…» и должен отвечать на все вопросы заново. Попросите сотрудников писать примечания коротко. Та же чистка разобрана в статье про форму заявки на ремонт.

Телеграм-бот складского журнала для таблицы учёта склада: приветствие и кнопка «Начать», вопрос об операции с тремя кнопками, вопрос о позиции со столбцом названий и вопрос о количестве, где нужны только цифры

Иллюстрация: тексты взяты из бота, а вопросы и кнопки — те, что написали вы; часть шагов пропущена; имена и данные вымышлены.

Попробовать форму учёта склада →

Три текста и два лимита, которые стоит изменить

В «Настройках формы», в блоке «Сообщения бота», «Приветственный текст» — это первое сообщение бота; по умолчанию там «Добро пожаловать! Нажмите кнопку, чтобы отправить заявку.» Напишите, для чего эта форма.

Складской журнал. Выберите операцию, вещь и количество (только цифры). Для списания напишите причину в примечании.

«Текст завершения» бот отправляет после последнего ответа. Стандартный «Спасибо! Ваша заявка ожидает проверки.» здесь не подходит, потому что никто ничего не проверяет. Замените его.

Записано. Нажмите кнопку ниже, чтобы внести следующее движение.

Под благодарностью бот показывает кнопку «Отправить ещё». Переименуйте её в поле «Текст кнопки „Ещё“», например в «Внести ещё одно движение». Переименовать можно, а отключить нельзя; с ней сотрудник вносит следующее движение, не открывая форму заново.

Сообщение, которое сотрудник видит после внесения движения в складской журнал: Записано, нажмите кнопку ниже, чтобы внести следующее движение, и кнопка «Внести ещё одно движение»

Иллюстрация: текст — тот, что вставлен выше; имена и данные вымышлены.

Ниже на той же странице «Лимиты заявок» заданы так: 20 записей в день и 100 в месяц на человека, отдельно для каждого аккаунта Telegram и каждой формы. Каждое движение — одна запись, поэтому занятой человек на разгрузке может набрать 20 в день к обеду, а 100 в месяц — за неделю. Увеличьте «Дневной лимит» и «Месячный лимит» до того, что нужно вашему самому занятому сотруднику, и нажмите «Сохранить» внизу страницы.

Что приходит вам, когда сотрудник вносит движение

Сотрудник открывает вашу ссылку на форму в Telegram, нажимает «Начать», выбирает «Приёмка», выбирает позицию, вводит 40, добавляет фото накладной и короткое примечание. Вам приходит сообщение в Telegram. Его заголовок — «Новая заявка в Инвентаризация» (после «в» стоит название потока; изменить его можно на странице «Редактировать поток»). Ниже идут строка «Сохранена в кабинете», ответы, «От: Anna (@anna_wh)» и ссылка «Открыть заявки». Кнопок нет, потому что ничто не ждёт вашего решения. Такое же сообщение получает каждый, кого вы пригласите в «Участники» (кнопка на странице проекта; приглашение уходит по электронной почте, и у человека должен быть аккаунт Easy Post), когда он привяжет свой Telegram. Приглашайте заведующего складом, но не остальных сотрудников: участники могут менять и форму, и её адресатов. В кабинете каждый ответ стоит под внутренним названием вопроса, например quantity, а ваше «Название поля» видно только в сообщении.

Личное сообщение владельцу склада в Telegram о новом движении товара для таблицы учёта: операция «Приёмка», вещь, количество 40, примечание, строка «Сохранена в кабинете», имя и @ник отправителя и ссылка «Открыть заявки», без кнопок

Иллюстрация: тексты взяты из бота, а названия полей — те, что задали вы; имена и данные вымышлены.

В загруженный день это одно сообщение на каждое движение, поэтому отключите звук в чате с ботом в Telegram и читайте день в кабинете или в таблице. Кабинет показывает записи от новых к старым, по 20 на страницу, с вкладками по статусам. Поиска по позиции и выгрузки в нём нет.

Собрать складской журнал →

Как превратить записи в таблицу учёта склада

Easy Post умеет отправлять каждую запись пакетом данных (формат называется JSON) на адрес, который вы укажете; это и есть вебхук. Сервис вроде Make или Zapier может принять запись и добавить строку в Google Таблицу. Вебхуки есть не во всех тарифах, поэтому сначала загляните в раздел о тарифах на главной странице. Без вебхука таблицей ниже всё равно можно пользоваться: вносите каждую запись во вкладку «Журнал» сами, из кабинета. Сначала подготовьте принимающую сторону, потому что Easy Post попросит её адрес:

  1. Создайте Google Таблицу с вкладкой «Журнал» и такой строкой заголовков: Время, Операция, Позиция, Количество, Отправил. Если вы оставили место хранения, примечания или фото, добавьте «Место», «Примечание» и «Ссылка на фото» в столбцы F, G и H, после «Отправил», чтобы формулы ниже продолжали работать.
  2. В Make начните сценарий с модуля «Custom webhook», в Zapier — Zap с «Webhooks by Zapier» и событием «Catch Hook». Оба покажут вам веб-адрес. Завершите автоматизацию шагом, который добавляет строку в вашу Google Таблицу. Эта часть делается в самом сервисе, а не в Easy Post, и его экраны могут меняться. Если вы с этим не работали, настройте её с фрилансером или пропустите и вносите записи в «Журнал» сами.
  3. На странице потока откройте «Куда отправлять». В форме «Добавить адресата» выберите «В CRM или таблицу (вебхук)», впишите название в поле «Название адресата» и вставьте веб-адрес из сервиса.
  4. Отметьте «Одобрять автоматически»: так вы сообщаете Easy Post, что принимать каждую запись вручную не нужно. По умолчанию галочка снята, и без неё у каждого сообщения есть кнопки «Одобрить» и «Отклонить», а вебхук срабатывает только после того, как вы нажмёте «Одобрить». С галочкой заголовок вашего сообщения — «Новая заявка в … — одобрена автоматически», строки «Сохранена в кабинете» в нём больше нет; кнопок по-прежнему нет.
  5. Нажмите «Добавить» и отправьте тестовую запись. С этого момента каждая запись уходит на этот адрес. В сервисе сопоставьте её части со столбцами: submitted_at — «Время» (это момент, когда человек начал заполнять форму, по UTC), data.operation — «Операция», data.item — «Позиция», data.quantity — «Количество» и bot_user.name — «Отправил». Место — это data.storage_location, примечание — data.notes, а ссылки на фото лежат в images. Ссылки на фото открываются без входа в аккаунт, поэтому передавайте их только тому сервису, которому доверяете.

Добавьте вторую вкладку, «Остатки», по одной строке на позицию. В ней используется SUMIFS — формула таблицы, которая складывает числа, подходящие под ваши условия, здесь сначала позицию, затем операцию. В столбце A стоит название позиции ровно так, как его присылают сотрудники, а в столбце B — остаток на день начала учёта.

СтолбецЗаголовокФормула в строке 2
AПозицияназвание позиции, вписывается один раз
BНачальный остатокостаток на день начала учёта
CПринято=SUMIFS(Журнал!D:D; Журнал!C:C; A2; Журнал!B:B; "Приёмка")
DОтгружено=SUMIFS(Журнал!D:D; Журнал!C:C; A2; Журнал!B:B; "Отгрузка")
EСписано=SUMIFS(Журнал!D:D; Журнал!C:C; A2; Журнал!B:B; "Списание")
FОстаток=B2+C2-D2-E2

Протяните строку 2 вниз. Слова в кавычках должны совпадать с вашими кнопками операций буква в букву, а названия в столбце A — с кнопками позиций или кодами. Формулы написаны с точкой с запятой между аргументами, как принято в русских региональных настройках таблицы; если ваша таблица ждёт запятые, замените их. Остаток считается по всем местам вместе. Чтобы считать одно место, оставьте «Место» в столбце F вкладки «Журнал» и добавьте Журнал!F:F; "Стеллаж А" внутрь каждой из трёх формул SUMIFS. SUMIFS пропускает текст, поэтому если остаток выглядит слишком маленьким, поищите в столбце «Количество» ячейки, где лежит текст, например «40 шт» или «1 000», либо число, которое ваш сервис записал как текст (оно прижато к левому краю ячейки).

Где всё застревает

  • Добавить движение может любой, кто получит ссылку на форму. Держите её в чате сотрудников и не выкладывайте на открытых страницах. Ваше сообщение показывает имя отправителя в Telegram и его @ник, если он есть, а вебхук добавляет номер, который определяет отправителя и никогда не меняется.
  • Ошибку исправляют в двух местах. В кабинете «Редактировать» меняет набранные ответы, например количество или примечание, но не ответы, выбранные кнопкой, поэтому неверную «Операцию» так не исправить: запись удаляют и вносят заново. Правка или удаление в кабинете в таблицу не попадают, поэтому исправьте или удалите строку и там.
  • Незавершённая запись не даёт ни сообщения, ни вебхука. Частичные ответы лежат во вкладке «Ожидает» в кабинете; она видна, только когда в ней что-то есть, поэтому время от времени заглядывайте туда.

Настройка в пять шагов

  1. Зарегистрируйтесь, выберите шаблон «Инвентаризация» и нажмите «Проверить форму в Telegram». Поле канала оставьте пустым.
  2. В «Настройках формы» сократите вопросы, как описано выше, напишите три текста бота, увеличьте дневной и месячный лимиты и почистите «Вид поста».
  3. Нажмите «Копировать ссылку» в блоке «Где люди отправляют заявки» на странице потока, откройте ссылку в Telegram и отправьте себе по одной записи каждой операции. Проверьте сообщение, кабинет и благодарность.
  4. Если на вашем тарифе есть вебхуки, создайте вкладки «Журнал» и «Остатки», добавьте вебхук и отправьте тестовую запись. Без вебхуков вносите записи в «Журнал» сами.
  5. Поставьте ту же ссылку в чат сотрудников.

Интересно, как устроены телеграм-боты? Как создать бота в телеграмме без кода объясняет это, хотя для такой настройки она не нужна. О вебхуке, который пересылает только часть записей, читайте в статье про форму запроса сметы.

Настроить форму для склада →

Часто задаваемые вопросы

Хранит ли бот остаток на складе?
Нет. Он записывает движения: операцию, позицию, количество, имя отправителя и время. Остаток — это сумма в вашей собственной таблице, с формулами выше. Отгрузку больше остатка форма тоже не запретит.
Можно ли сканировать штрихкод?
Нет. Сканера в форме нет, а фото штрихкода сохраняется как картинка и не читается. Сотрудники нажимают кнопку позиции или вводят код с этикетки на полке.
Можно ли выгрузить журнал в Excel?
Из кабинета нельзя: выгрузки записей в нём нет. С вебхуком сервис автоматизации может добавлять каждую запись в таблицу строкой. Вебхуки есть не во всех тарифах. Без вебхука вы можете вносить записи в таблицу сами.
Можно ли вести одной формой несколько складов или магазинов?
Вопрос «Место хранения» в виде кнопок записывает место в каждую запись. Формулы вкладки «Остатки» выше суммируют каждую позицию по всем местам, если не добавить место в каждую формулу SUMIFS, как описано там. Для отдельного списка на каждое место заведите по потоку кнопкой «+ Новый поток». Число потоков может зависеть от тарифа.
Могут ли сотрудники сами исправить ошибку?
Нет. Сотрудники не могут изменить то, что отправили. Исправляете вы: меняете набранный ответ, например количество, в кабинете или удаляете запись и просите внести движение заново. В обоих случаях поправьте строку в таблице, потому что правки в кабинете до неё не доходят.

Похожие статьи

← Назад в блог