Автоматизация ERPNext из почты: заказы, подтверждения поставщиков и платежи
Автор Adam Petras, Основатель и генеральный директор, TreeLab OÜ · Опубликовано · Обновлено
Три бота, которые читают ваш почтовый ящик и создают документы, которых ожидает ERPNext 15 и 16
Заказы клиентов, подтверждения поставщиков и банковские уведомления приходят по почте, и в большинстве компаний на ERPNext кто-то вручную превращает каждое из них в документ. Это руководство объясняет, как эту работу берут на себя три бота BOTS4.me: Mail2ERP создаёт коммерческие предложения (Quotation) и заказы на продажу (Sales Order) из писем клиентов, Supplier2ERP записывает подтверждённые количества, цены и даты обратно в ваши заказы на закупку, а Pay2ERP регистрирует входящие платежи по нужным счетам клиентам.
Всё работает через стандартный Frappe REST API с ключом и секретом API, на ERPNext версий 15 и 16. Каждый бот начинает в демо-режиме, а первый месяц — бесплатный месяц Discovery.
🎯 Где компании на ERPNext всё ещё вводят данные вручную
ERPNext отлично справляется с тем, что происходит после появления документа: ценовые правила, резервирование запасов, поставки, счета и главная книга вытекают из правильного заказа на продажу или закупку. Слабое место — шаг перед этим. Большинство документов начинается как письмо от кого-то за пределами вашей компании, и ERPNext не может прочитать эти письма за вас.
- Заказы и запросы цен от клиентов приходят как вложения PDF, Excel или сканы, у каждого клиента свой макет. Кто-то открывает каждое письмо и вбивает позиции, количества и ссылки в коммерческое предложение или заказ на продажу.
- Подтверждения заказов от поставщиков возвращаются с изменёнными количествами, новыми ценами или более поздней датой поставки. Кто-то построчно сравнивает их с вашим заказом на закупку и обновляет его, или расхождения просто упускаются.
- Входящие платежи появляются в виде банковских уведомлений или файлов выписок. Кто-то находит для каждого платежа нужный счёт клиенту и проводит платёжную запись (Payment Entry), часто по часу-два каждый день.
Большую часть времени эта работа не требует суждения, но всегда требует аккуратности, потому что неверное количество или платёж, проведённый не по тому счёту, создают проблемы спустя недели. Именно такую работу берут на себя три бота ниже.
🤖 Какие боты BOTS4.me работают с ERPNext
Каждое ERP-приложение BOTS4.me работает на ERPNext 15 и 16. Эта страница посвящена трём, которые превращают письма в документы ERPNext. Таблица показывает, что каждый из них читает и что записывает.
| Бот | Читает | Записывает в ERPNext |
|---|---|---|
| Mail2ERP | Письма клиентов: заказы и запросы цен, в тексте письма и во вложениях PDF, Excel, Word, CSV, HTML, изображениях и сканах | Черновик коммерческого предложения для запроса; проведённый (submitted) заказ на продажу для твёрдого заказа; исходные файлы, приложенные к документу |
| Supplier2ERP | Подтверждения заказов и уведомления о поставке от отправителей из вашего списка поставщиков | Подтверждённые количества, цены и даты поставки в соответствующем заказе на закупку |
| Pay2ERP | Банковские уведомления по почте, файлы банковских выписок, подключения к банку или платёжному провайдеру либо собственные банковские транзакции ERPNext | Одна проведённая платёжная запись на каждый оплаченный счёт клиенту и сверенная банковская транзакция, если она пришла из ERPNext |
AutoERP (подтверждение, отгрузка и выставление счетов по помеченным заказам), AutoCASH (напоминания об оплате), Bill2ERP (счета поставщиков как черновики счетов на покупку), AutoSTOCK и AutoPURCHASE тоже работают на ERPNext. Одно подключение к ERPNext обслуживает их все, поэтому запуск ещё одного бота позже не требует новой интеграционной работы.
📧 Mail2ERP: письма клиентов — в коммерческие предложения и заказы на продажу
Приходит письмо от клиента
Запрос цены или заказ?
Коммерческое предложение или заказ на продажу в ERPNext
Письмо перемещено в OBRABOTANO
Mail2ERP читает ваш ящик продаж и по каждому письму решает, запрос цены это, твёрдый заказ или ни то, ни другое. За решение голосуют несколько независимых сигналов, и ваша ручная корректировка всегда побеждает. Затем он читает строки товаров из текста письма и всех вложений, без шаблонов, и сопоставляет каждый код с вашими позициями в ERPNext.
Что он создаёт в ERPNext
- Запрос → черновик коммерческого предложения. Ваш отдел продаж проверяет его, корректирует и отправляет как обычно.
- Твёрдый заказ → заказ на продажу, проведённый. Mail2ERP сначала создаёт заказ как черновик, а затем проводит его (submit), поэтому собственная логика цен и статусов ERPNext срабатывает точно так же, как для заказа, введённого человеком.
- Ответ на ваше предложение → заказ на продажу. При включённом «Обнаружении RFQ» ответ клиента, в котором указан номер одного из ваших предложений и просьба продолжить, превращает это предложение в проведённый заказ на продажу.
- Файлы и контекст: исходные вложения клиента прикладываются к документу, а текст письма добавляется как комментарий, поэтому любой, кто откроет предложение или заказ на продажу, видит, откуда он взялся.
- Никакого двойного ввода: если интеграционному пользователю разрешено добавлять пользовательские поля, Mail2ERP помечает каждый созданный документ исходным письмом, поэтому один и тот же заказ, пересланный дважды или отправленный на два адреса, создаётся один раз.
Чего он никогда не делает
Mail2ERP никогда не создаёт клиента или позицию в ERPNext. Отправитель должен принадлежать существующему клиенту, а каждая строка — совпадать с позицией вашего каталога. Строка, количество в которой нельзя прочитать уверенно, пропускается, а не угадывается, и вы получаете письмо с просьбой добавить её вручную. Со Smart Multi-Code Matching строки можно сопоставлять также по кодам поставщика, штрихкодам, номерам деталей производителя и собственным кодам позиций ваших клиентов, которые ERPNext хранит как коды позиций клиента.
📦 Supplier2ERP: подтверждения записываются в ваши заказы на закупку
Supplier2ERP — зеркальное отражение Mail2ERP на стороне закупок. Он читает подтверждения и уведомления о поставке от ваших поставщиков и записывает подтверждённое в соответствующий заказ на закупку в ERPNext.
- Только отправители, которым вы его научили. Supplier2ERP читает почту от отправителей из вашего списка поставщиков. Поставщика можно добавить, переместив одно из его писем в папку _AutoSPAM/POSTAVSHCHIK; пока список пуст, ничего не отфильтровывается.
- Поиск нужного заказа. Если в письме указан номер вашего заказа на закупку, побеждает этот номер. Если нет, Supplier2ERP сравнивает коды товаров в письме с вашими открытыми заказами на закупку у этого поставщика. Если два заказа подходят одинаково, ничего не записывается, и вы получаете отчёт.
- Проверки перед каждой записью: данные должны быть правдоподобными, а число различающихся строк, каждое отдельное расхождение в цене и каждое отдельное расхождение в количестве должны оставаться в заданных вами пределах. Если одна проверка не пройдена, вместо обновления вы получаете отчёт.
- Как обновляется ERPNext: черновик заказа на закупку сохраняется с новыми значениями. Проведённый заказ на закупку изменяется собственной функцией ERPNext Update Items с полным списком строк, а подтверждённая дата становится также ожидаемой датой поставки. Закрытые, выполненные и отменённые заказы не затрагиваются.
- Решают ваши правила: у автоматического обновления количеств и цен свой переключатель для каждого. Поставщик, подтвердивший ровно то, что вы заказали, регистрируется как подтвердивший, без каких-либо изменений.
Обработанные подтверждения перемещаются в папку _Supplier2ERP/OBRABOTANO вашего ящика; всё, что требует человека, остаётся непрочитанным в папке INBOX.
💶 Pay2ERP: входящие платежи проводятся по нужным счетам
Pay2ERP читает входящие платежи, определяет, какой из ваших открытых счетов клиентам гасит каждый из них, и регистрирует платёж в ERPNext. Он работает только с поступлениями; исходящие платежи игнорируются.
Откуда берутся платежи
- Банковские письма: уведомления или выписки, которые ваш банк уже присылает. Структурированные файлы, такие как MT940, MT942, CAMT.053, BAI2 и OFX, читаются запись за записью; остальные письма читаются по тексту.
- Подключения к банку и платёжным сервисам: например Revolut, Wise, Qonto, Mercury, Stripe, PayPal или Square.
- Банковские транзакции ERPNext: входящие, ещё не сверенные транзакции выбранных вами банковских счетов ERPNext.
Как платёж сопоставляется и проводится
Pay2ERP сначала ищет ссылку на счёт вместе с суммой. Если у платежа нет пригодной ссылки, он ищет плательщика среди изученных названий компаний и проверяет, какая комбинация открытых счетов этого клиента даёт в сумме нужную величину. Каждое успешное сопоставление чему-то его учит, поэтому второй месяц требует гораздо меньше внимания, чем первый.
Для каждого оплаченного счёта он создаёт и проводит одну платёжную запись через собственное сопоставление ERPNext, никогда не оплачивая больше, чем ещё открыто. Если платёж пришёл из банковской транзакции ERPNext, транзакция сверяется с этими записями. Платежи, которые не удаётся сопоставить, перечисляются в отдельном письме с приложенным исходным сообщением, чтобы их можно было провести вручную.
⚙️ Пошаговая настройка для ERPNext
- Шаг 1 — Начните бесплатный месяц Discovery: войдите на bots4.me/bots и нажмите Начать бесплатный месяц Discovery на карточке нужного бота, например Mail2ERP. Банковская карта не нужна.
- Шаг 2 — Создайте интеграционного пользователя в ERPNext: в разделе Users создайте пользователя, например “BOTS4.me Integration”, с ролями Sales User, Purchase User, Stock User, Accounts User, Sales Master Manager и Purchase Master Manager. Без двух ролей Master Manager ERPNext скрывает цены от API.
- Шаг 3 — Сгенерируйте ключ и секрет API: откройте пользователя, перейдите на вкладку Settings → API Access → Generate Keys. Скопируйте секрет API, который показывается только один раз, и ключ API.
- Шаг 4 — Подключите ERPNext на bots4.me: в Настройках → бот → Access Manager → Добавить назначение → ERP → ERPNext введите URL вашего сайта ERPNext, ключ API и секрет API. Полное описание — в руководстве по подключению.
- Шаг 5 — Подключите почтовый ящик: Gmail и Microsoft 365 подключаются через Secure Quick Connect; другие провайдеры — по IMAP с паролем приложения. Для Mail2ERP и Supplier2ERP можно вообще не подключать ящик: добавьте BOTS4.me Mailbox как источник и пересылайте письма туда.
- Шаг 6 — Прочитайте демо-отчёты, затем перейдите на LIVE: каждый бот начинает в демо-режиме и присылает вам по почте то, что он записал бы. Когда отчёты выглядят правильно, установите «Режим» на LIVE на вкладке «Управление».
🔐 Одно подключение для всех ботов
Одно и то же подключение к ERPNext используется каждым запущенным вами приложением BOTS4.me. Ваши ключ и секрет API шифруются в момент сохранения, а боты могут делать только то, что разрешают роли интеграционного пользователя.
🧪 Демо-режим и письма, с которыми боты не справляются
Каждый бот начинает в демо-режиме. Он читает ваши реальные письма и реальные данные ERPNext и присылает вам отчёт о том, что именно он создал бы или изменил, но ничего не записывает. LIVE открывается после первого демо-отчёта. Как это работает в целом, показано на странице Демо-режим; можно также сначала пройтись по живому демо панели с примерами данных.
Что происходит с неясными письмами
- Ничто не пропадает: письмо, которое бот не смог обработать, остаётся непрочитанным в папке INBOX. Импортированные письма перемещаются в папку OBRABOTANO соответствующего бота.
- Каждое решение журналируется на вкладке «Журналы» панели и в папке LOGS вашего ящика, с причиной, например отправитель не является клиентом в ERPNext или кода позиции не существует. См. руководство по папке LOGS.
- Корректируйте Mail2ERP папками: перетащите письмо в _Mail2ERP/PREDLOZHENIE или _Mail2ERP/ZAKAZY, чтобы повторить его как предложение или заказ, или в _Mail2ERP/PROPUSTIT, чтобы в дальнейшем пропускать такие письма. Корректировка запоминается для этого отправителя.
- Несопоставленные платежи приходят вам по почте с исходным банковским сообщением, а подтверждения поставщиков за пределами ваших лимитов остаются в папке INBOX, пока их кто-нибудь не проверит.
📅 Бесплатный месяц Discovery и бесплатный тариф
Первый месяц каждого бота — бесплатный месяц Discovery без банковской карты. Переключатели с меткой Discovery на вкладке «Управление» входят в этот месяц и изначально выключены, так что вы сами решаете, что попробовать.
📅 Когда месяц Discovery закончится
Каждый бот сам продолжает работу на бесплатном тарифе с небольшим месячным объёмом: около пяти заказов или запросов цен в месяц для Mail2ERP, около пяти документов поставщиков для Supplier2ERP и около десяти платежей для Pay2ERP. Когда объём исчерпан, новые задачи ждут следующего месяца или пока вы не выберете тариф, а уже начатая задача всегда доводится до конца. Ничто из записанного в ERPNext не отменяется. Тарифы указаны на странице каждого продукта.
❓ Часто задаваемые вопросы
Какие версии ERPNext поддерживает BOTS4.me?
ERPNext 15 и 16. Более старые версии не поддерживаются. Подключение использует стандартный Frappe REST API, поэтому устанавливать в ERPNext собственное приложение не нужно.
Создаёт ли Mail2ERP в ERPNext коммерческое предложение или заказ на продажу?
Это зависит от письма. Запрос цены становится черновиком коммерческого предложения. Твёрдый заказ клиента становится заказом на продажу, который Mail2ERP затем проводит. Когда клиент отвечает на одно из ваших предложений и просит продолжить, «Обнаружение RFQ» превращает это предложение в проведённый заказ на продажу.
Будет ли Mail2ERP создавать в ERPNext новых клиентов или позиции?
Нет. Клиент уже должен существовать в ERPNext, а каждая строка — совпадать с позицией вашего каталога. Письма, которые нельзя импортировать, остаются непрочитанными в папке INBOX, а журнал объясняет почему, так что можно добавить недостающего клиента или позицию и повторить.
Как работает аутентификация в ERPNext?
С помощью ключа API и секрета API, сгенерированных для пользователя ERPNext (User → Settings → API Access → Generate Keys). OAuth для ERPNext не предлагается. Мы рекомендуем отдельного интеграционного пользователя с ролями Sales User, Purchase User, Stock User, Accounts User, Sales Master Manager и Purchase Master Manager.
Может ли Supplier2ERP изменить уже проведённый заказ на закупку?
Да. Черновик заказа на закупку просто сохраняется. Проведённый изменяется собственной функцией ERPNext Update Items с полным списком строк, а подтверждённая дата поставки записывается также в ожидаемую дату поставки. Закрытые, выполненные и отменённые заказы никогда не изменяются.
Может ли Pay2ERP использовать банковские транзакции, которые я уже импортирую в ERPNext?
Да. Pay2ERP умеет читать входящие, ещё не сверенные банковские транзакции выбранных счетов, сопоставлять каждую со счетами и сверять её. Он также может читать банковские уведомления по почте, файлы банковских выписок, такие как MT940 или CAMT.053, или подключение к банку либо платёжному провайдеру.
Что происходит после бесплатного месяца Discovery?
Каждый бот сам продолжает работу на бесплатном тарифе с небольшим месячным объёмом, для Mail2ERP — около пяти заказов или запросов цен в месяц. Когда он исчерпан, новые задачи ждут следующего месяца или пока вы не выберете тариф. Ничто из уже записанного в ERPNext не отменяется.
📚 Читайте также
- Продукты: Mail2ERP, Supplier2ERP и Pay2ERP.
- Руководства: руководство по Mail2ERP, руководство по Supplier2ERP, руководство по Pay2ERP и руководство по подключению.
- Ещё одна ERP с открытым кодом: Автоматизация Dolibarr: заказы из почты, выставление счетов и напоминания об оплате.
- Сравнение подходов: Parseur, Docparser или Nanonets против Mail2ERP для ввода заказов в ERP.
- Другие ERP: Business Central, SAP Business One, Zoho Inventory и Zoho Books и Odoo.
- Основы: Что такое системы ERP и CRM и реальные цифры в кейсе IMP Kontakt.
Пусть ERPNext наполняется из вашего почтового ящика
Подключите почтовый ящик и ERPNext одной парой ключей API, посмотрите, как каждый бот работает в демо-режиме, и переключайтесь на LIVE только тогда, когда отчёты выглядят правильно. Первый месяц — бесплатный месяц Discovery, банковская карта не нужна.
Нужно автоматизировать несколько процессов или вашей ERP нет в нашем списке? We build it for you: book a free call →