Автоматизація рахунків за допомогою ШІ: 7 перевірочних кроків для Perfex CRM
Tech
AI
Automation
Engineering

Автоматизація рахунків за допомогою ШІ: 7 перевірочних кроків для Perfex CRM

Практичне дослідження автоматизації рахунків за допомогою ШІ: перевірка PDF-файлів, усунення дублікатів, перевірка полів посилань та безпечне керування витратами в Perfex CRM.

Uygar DuzgunUUygar Duzgun
May 9, 2026
Оновлено 14 трав. 2026 р.
17 min read

Я створив цю систему автоматизації рахунків за допомогою ШІ, тому що переслані електронною поштою рахунки часто бувають безладними, трапляються дублікати, а фінансові помилки коштують дорого. У цьому дослідженні я розповім, як використовую профіль вузькоспрямованого агента Hermes для читання листів з рахунками, перевірки PDF-файлів, усунення дублікатів, зіставлення консультантів і проєктів, а також створення або оновлення витрат в Perfex CRM лише тоді, коли всі перевірки успішно пройдені. Я використовую автоматизацію рахунків за допомогою ШІ, щоб прискорити нудну частину роботи, але водночас тримаю контрольні точки суворими. Мета полягає не в повністю автономних фінансах. Мета — керована автоматизація фінансів із детермінованими перевірками, можливістю аудиту та залученням людини за необхідності. Ця відмінність є важливою, якщо ви хочете швидкості без внесення хибних витрат до вашої CRM.

Чому я створив цього агента для автоматизації рахунків за допомогою ШІ

Проблема ручного процесу

Робота з рахунками здається простою, доки ви не спробуєте застосувати її в реальній компанії. Листи пересилаються, PDF-файли надходять через посилання, той самий рахунок надсилається двічі, а рахунки від консультантів часто містять рівно стільки контексту, щоб заплутати універсального помічника. Я знову й again бачу одні й ті самі режими збоїв: імена відправників, які не збігаються з реальним постачальником, поля посилань, що вказують на особу замість компанії, та дублікати пересилань, які виглядають новими, якщо покладатися лише на статус «непрочитані». Автоматизуйте це сліпо, і ви створите хибні витрати та витратите час на їх виправлення. Саме тому я побудував ці налаштування автоматизації рахунків за допомогою ШІ як консервативну операційну систему, а не розумного чат-бота. Вона має одне завдання: безпечно обробляти рахунки та зупинятися, коли щось виглядає невизначеним.

Що має вирішувати агент

Агент повинен не просто витягувати суму. Він має вирішити, чи містить лист справжній рахунок, чи валідний PDF-файл, чи вже існує елемент, чи належить він до наявних витрат консультанта, і чи має Perfex CRM отримати новий запис, чи оновлення. Йому також потрібна пам'ять. Не сира пам'ять про все, а структурована пам'ять про шаблони: як певні постачальники виставляють рахунки, як консультанти позначають посилання та які проєкти зазвичай отримують певні витрати. Саме тут стає корисною векторна пам'ять. Вона допомагає із зіставленням, але ніколи не може переважити живе поле посилання або перевірку на наявність дублікатів.

Огляд системи

Профіль та обов'язки агента Hermes

Рекомендовано для вас

Я запускаю цей робочий процес через спеціальний профіль Hermes під назвою `optagonen-ekonomi`. Я навмисно звів його сферу до мінімуму. Він відповідає за моніторинг вхідних, парсинг рахунків, перевірки PDF/OCR, усунення дублікатів, керування витратами в Perfex CRM, перевірку вкладень та звітування через Telegram. Він не займається SEO, залученням клієнтів, соціальними мережами або розробкою. Така вузька сфера є безпечнішою, ніж один універсальний помічник, який робить все. На практиці це та сама причина, через яку я писав про те, як я проєктую вузьких агентів ШІ: менші агенти ламаються рідше, а коли ламаються, їх простіше відстежити. Це важливо для автоматизації рахунків за допомогою ШІ, оскільки фінансова робота карає за впевненість без доказів. Вузький профіль Hermes дає мені контрольовану смугу, а не невизначеного помічника «зроби все».

Потік залучення електронної пошти, перевірки PDF, синхронізації з CRM та звітування

Рекомендовано для вас

Процес починається зі спостерігача поштової скриньки, який перевіряє обмежене вікно нещодавніх UID IMAP. Я не покладаюся лише на статус «непрочитані», оскільки інші потоки залучення можуть позначати листи як переглянуті. Нат натомість я порівнюю кожен кандидат із локальним станом усунення дублікатів та поточним станом CRM/посилань перш ніж щось робити. Після цього агент читає тіло листа, витягує сигнали рахунка, перевіряє PDF, шукає дублікати, відображає рахунок на правильну ціль і лише тоді записує дані в Perfex CRM, якщо дані узгоджені. Увесь цей цикл природно вписується в ширшу систему автоматизації, тому цей проєкт добре поєднується з моєю побудовою екосистеми автоматизації ШІ для CRM. Я також спроєктував агента навколо інструментальних перевірок, а не невизначених міркувань. Якщо вас цікавить мислення щодо реалізації, я рекомендую мислити в термінах практичної архітектури агентів та інструментів. Саме детерміновані інструменти роблять агента надійним.

Парсинг листів з рахунками

Які сигнали електронної пошти важливі

Автоматизація рахунків за допомогою ШІ зазнає невдачі, коли покладається на хибний сигнал. Адреса відправника важлива, але цього недостатньо. Теми листів допомагають, але й цього замало. Текст тіла та сам рахунок несуть реальні дані для прийняття рішень. Найважливішими полями є номер рахунка, сума, дата, ідентифікація постачальника та посилання на рахунок. У моєму робочому процесі поле `Er referens` важливіше за ім'я відправника при вирішенні, кому або чому належать витрати. Я повторюю це, тому що це запобігає найпоширенішій помилці автоматизації фінансів. Це звучить дріб'язково. Це не так. Постачальник або посередник може переслати рахунок від імені консультанта, і якщо ви покладаєтеся лише на відправника, то прикріпите витрати до неправильної особи або проєкту.

Витягування даних постачальника, суми, дати та посилання

Я ставлюся до парсингу як до структурованої задачі витягування, а не вільного підсумовування. Агент спочатку читає тіло листа, потім шукає метадані рахунка, а потім перехресно перевіряє текст PDF або результат OCR із твердженнями в листі. Робочий процес зосереджений на кількох стабільних полях:

назва постачальника або постачальника
номер рахунка
загальна сума та ставлення до ПДВ
дата рахунка
`Er referens`
будь-яка ознака проєкту або особи в тілі

Якщо тіло каже одне, а PDF — інше, агент зупиняється. Якщо поле посилання відсутнє або неоднозначне, агент зупиняється. Якщо сума не збігається з поточним контекстом, агент зупиняється. Цей консерватизм є основою безпечної автоматизації рахунків за допомогою ШІ.

Перевірка PDF-рахунків

Базові перевірки валідності

PDF не є валідним лише тому, що існує посилання. Я перевіряю сам файл, перш ніж агент щось створить в Perfex CRM. Файл має бути справжнім PDF, а не HTML, не сторінкою входу і не зламаною відповіддю завантаження. Якщо файл не починається з `%PDF`, я ставлюся до нього як до недовіреного і зупиняюся. Я також перевіряю, чи прийшов PDF як вкладення до листа, чи з перевіреного публічного посилання для завантаження. Якщо посилання вимагає входу, термін дії закінчився, пересилає на HTML або повертає файл, що не є PDF, робочий процес запитує людський огляд замість того, щоб вгадувати. Це правило заощаджує час згодом, бо одразу запобігає потраплянню поганих записів до CRM.

Виявлення спотворених, відсутніх або підозрілих рахунків

Я не припускаю, що кожен долучений документ є рахунком. Я використовую фактичний PDF-файл рахунка, а не вкладення специфікації, якщо людина явно не просить інакше. Це важливо, коли постачальники долучають брошури, підтвердження замовлень або дублікати PDF в одному ланцюжку. Файл має бути достатньо повним, щоб підтримати реальне бухгалтерське рішення. Якщо сума відсутня, посилання незрозуміле або ідентифікація постачальника не збігається з тілом листа, агент зупиняється. Автоматизація рахунків за допомогою ШІ працює найкраще, коли вона відмовляється імпровізувати. Просте правило тримає робочий процес у безпеці:

валідні байти PDF, або жодної дії
читабельні метадані рахунка, або жодної дії
узгоджені суми та ознаки посилання, або жодної дії
жодної стіни входу, жодної HTML-сторінки, жодного простроченого посилання, або жодної дії

Це консервативно за задумом. Саме це робить процес таким, що піддається аудиту.

Стратегія усунення дублікатів

Зіставлення за номером рахунка, сумою, постачальником і датою

Саме через дублікати рахунків автоматизація швидко стає дорогою. Я не покладаюся лише на непрочитані листи або ідентифікатори повідомлень, оскільки інші потоки залучення можуть позначати листи як переглянуті. Натомість агент перевіряє обмежене вікно нещодавніх UID IMAP, порівнює його з локальним станом і перевіряє поточний контекст Perfex/посилань перш ніж щось створювати. Логіка усунення дублікатів розглядає звичайні маркери рахунка: постачальника, номер рахунка, суму та дату. Якщо ці сигнали вказують на наявний запис, агент ставиться до листа як до повторення, якщо людині не потрібне оновлення. Цей процес є серцем практичної автоматизації рахунків за допомогою ШІ. Він скорочує повторювану роботу, не вдаючи, що поштова скринька є чистим джерелом істини.

Обробка майже-дублікатів та повторних пересилань

Переслані рахунки часто виглядають новими, навіть коли ними не є. Колега пересилає той самий PDF з іншої гілки. Постачальник надсилає той самий рахунок з новою темою. Консультант відповідає виправленою нотаткою, але з тим самим документом. Я обробляю ці випадки, перевіряючи комбінацію поточних даних CRM, локального стану усунення дублікатів та відомих шаблонів рахунків. Тут допомагає векторна пам'ять, але лише як контекст. Вона не може перевизначити перевірений дублікат і не може вигадати збіг, якщо докази слабкі. Правило просте: якщо система не може довести, що це нове, вона повинна вважати, що це не нове.

Зіставлення консультантів та проєктів

Відображення контексту рахунка на правильну ціль витрат

Саме тут найбільш важливі поля посилань. Я завжди читаю тіло листа та поле рахунка `Er referens` перш ніж обрати власника, особу або проєкт. Лише компанії відправника недостатньо. Цей урок прийшов із реального виправлення. Один рахунок консультанта спочатку було зіставлено з неправильною особою, тому що постачальник та відправник припускали Black Moose/Eventcenter, тоді як посилання в рахунку вказувало на Алекса. Я виправив робочий процес, тож рахунки з посиланнями на кшталт `Sotenäs V20 Alex` або `Oxelösund V19 Alex` прикріплюються до наявних витрат Alex Jassim, а не Black Moose, навіть якщо юридичний постачальник виглядає інакше. Це сильний приклад того, чому автоматизація рахунків за допомогою ШІ потребує можливості аудиту та коригування пам'яті. Пам'ять може допомогти вивчити шаблони, але посилання в рахунку все одно перемагає.

Правила резервування за низької впевненості

Коли впевненість низька, я не вгадую. Я зупиняюся і прошу переглянути. Зазвичай це трапляється, коли постачальник невідомий, категорія незрозуміла, проєкт відсутній, сума не узгоджується або посилання в рахунку суперечить припущенням відправника. Векторна пам'ять допомагає мені розпізнавати повторювані шаблони, такі як рахунки власної компанії, посилання Bokio, фінансові посередники, Eventcenter/Black Moose та звички конкретних консультантів. Однак вона лише інформує вибір. Вона ніколи не перевизначає явні дані рахунка. Якщо ви будуєте власну систему автоматизації рахунків за допомогою ШІ, запам'ятайте це правило:

Спочатку довіряйте полю посилання.
Потім довіряйте перевіреним PDF.
Довіряйте пам'яті лише як додатковим доказам.
Залучайте людину, коли сигнали суперечать одне одному.

Створення та оновлення витрат в Perfex CRM

Робочий процес створення витрат

Я створюю нові витрати в Perfex CRM лише після того, як агент пройшов перевірки валідності, усунення дублікатів та зіставлення. Це включає перевірку поточного контексту запису, підтвердження вкладення PDF і переконання, що сума та постачальник відповідають цілі. Робочий процес також поважає бухгалтерські правила Optagonen. Суми зазвичай йдуть до Perfex без ПДВ, і система використовує ПДВ 25%, податковий ідентифікатор 1, якщо правило збереженого постачальника не каже інакше. Дата витрат за замовчуванням слідує найближчому шведському банківському дню та процедурі SEB, а не даті рахунка. Це може здатися дрібницею в операційному плані, але такі налаштування за замовчуванням усувають багато ручного прибирання.

Логіка оновлення для вже відомих рахунків

Автоматизація рахунків за допомогою ШІ не повинна ставитися до кожного рахунка як до цілком нового об'єкта. Для рахунків консультантів я спочатку намагаюся зіставити наявні витрати Perfex, видимі для проєкту, і прикріпити або оновити їх замість створення дубліката витрат. Ця відмінність важлива. Нові витрати створюють нову бухгалтерську подію. Оновлення покращує наявні, додаючи кращі дані посилання, перевірене вкладення PDF або виправлене посилання на проєкт. Якщо система вже знає про витрати, оновити їх безпечніше, ніж дублювати.

Аудиторський слід та простежуваність

Я завжди хочу мати змогу відповісти пізніше на одне й те саме питання: чому агент створив або оновив цей запис? Якщо я не можу простежити це рішення назад до листа, PDF, поля посилання та поточного стану Perfex, то робочий процес занадто вільний. Саме тому автоматизація рахунків за допомогою ШІ має бути перевірена від початку до кінця. Ви повинні мати змогу перевірити запис CRM, долучений файл, стан усунення дублікатів та ланцюжок міркувань без зворотного інженерингу того, що подумав агент.

Векторна пам'ять для навчання з часом

Що зберігається в пам'яті

Векторна пам'ять допомагає агенту покращувати повторювані зіставлення, не перетворюючи його на чорну скриньку. Я використовую її для зберігання санітарних шаблонів про постачальників, посилання консультантів, ознаки проєктів та результати обробки рахунків. Мені не потрібен вміст сирих рахунків або секрети, щоб вивчити шаблон. Таблиця пам'яті та інструмент, який я використовую, підтримують вузький цикл навчання: що спрацювало, що не спрацювало, що було замінено і що має відбутися наступного разу. Цього достатньо для покращення майбутніх рішень без створення проблем з конфіденційністю або управлінням.

Як пам'ять покращує майбутнє зіставлення та класифікацію

Пам'ять стає корисною, коли одна й та сама сім'я рахунків з'являється знову й again. Постійний постачальник може завжди надсилати з однієї адреси, але виставляти рахунок через іншу. Консультант може використовувати специфічний формат посилання, який відображається на особу або проєкт. Відомий посередник може пересилати рахунки від імені когось іншого. Цінність пам'яті не в передбаченні задля самого передбачення. Цінність у зменшенні повторюваного ручного огляду, коли шаблон уже відомий. В автоматизації рахунків за допомогою ШІ це може заощадити час, але лише якщо пам'ять залишається підпорядкованою живим доказам. Саме тому я ставлюся до векторної пам'яті як до доказу, а не авторитету. Збережений шаблон може припустити ймовірний збіг, але не може перемогти перевірене посилання рахунка або відому вартість, видиму для проєкту.

Безпечні звіти в Telegram

Про що агент може звітувати автоматично

Для цього робочого процесу достатньо Cron, оскільки мені не потрібні відповіді в мілісекундах. Спостерігач запускається кожні дві хвилини, що достатньо швидко для внутрішніх фінансових операцій, не роблячи систему галасливою. Telegram натомість обробляє рівень, орієнтований на людину. Я надсилаю повідомлення лише тоді, коли щось змінюється або коли потрібне рішення людини. Якщо нічого не відбувається, агент мовчить. Ця тиша важлива, бо тримає Telegram корисним, замість того щоб перетворювати його на черговий потік шуму. Це одна з причин, чому Hermes добре підходить для цього випадку. Агент Hermes підтримує шлюзи повідомлень та робочі процеси Telegram, тож оператор може тримати цикл у простому, спостережуваному каналі.

Редагування, узагальнення та повідомлення, безпечні для затвердження

Я тримаю звіти короткими та безпечними. Повідомлення має говорити, що сталося, що було перевірено і що потребує уваги, не вивантажуючи чутливий вміст рахунків у чат. Хороший звіт каже мені:

чи було створено або оновлено витрати
чи було перевірено PDF
чи виявлено дублікат
чи потрібен людський огляд
якого запису або проєкту стосувалася дія

Цього достатньо для щоденних операцій. Це дає мені впевненість, не викриваючи більше даних, ніж потрібно робочому процесу.

Залучення людини та правила безпеки

Пороги впевненості

Автоматизація рахунків за допомогою ШІ не повинна гнатися за повнотою. Вона має гнатися за правильністю. Я встановив планку так, що агент може просуватися лише тоді, коли PDF справжній, посилання чітке, перевірка на дублікати пройдена, і ціль витрат має сенс. Якщо будь-який головний сигнал суперечить, агент зупиняється. Це включає невідомих постачальників, відсутні або підозрілі PDF, незрозумілу власність проєкту, невідповідність сум та невизначені дублікати. Я краще витратжу 30 секунд на перегляд випадку, ніж 30 хвилин на виправлення хибного бухгалтерського запису.

Коли агент зупиняється і запитує огляд

Умови зупинки є частиною дизайну, а не станом помилки. Агент має запитувати огляд, коли не може безпечно продовжувати. Зазвичай це трапляється в таких випадках:

PDF відсутній або недійсний
завантаження повертає HTML або стіну входу
посилання в рахунку суперечить припущенням відправника
система бачить можливий дублікат, але не може довести це
постачальник або ціль проєкту незрозумілі

Консервативний фінансовий агент, який знає, коли зупинитися, кращий за впевненого, який вгадує.

Як автоматизація рахунків за допомогою ШІ працює на практиці

Цикл перевірки, який я використовую щоразу

Коли агент створює або оновлює витрати, я перевіряю результат від початку до кінця. Я не довіряю жодному сигналу успіху.

Перевіряю поточний запис Perfex.
Переконуюся, що рядок вкладення існує, коли долучено PDF.
Перевіряю рядок Dropbox, коли це застосовно.
Перевіряю синхронізацію документа бухгалтерії.
Оновлюю файл стану усунення дублікатів.
Записую санітарний випадок до векторної пам'яті.
Надсилаю звіт Telegram лише після перевірки робочого процесу.

Ця послідовність важлива, бо кожен крок доводить, що попередній спрацював. Автоматизація рахунків за допомогою ШІ цінна лише тоді, коли запис, вкладення, синхронізація документа бухгалтерії та внутрішній стан узгоджені.

Синхронізація документа бухгалтерії

Останній крок — не просто зберегти PDF всередині CRM. Робочий процес також синхронізує перевірений файл рахунка в структуру документів, що використовується для бухгалтерії. Це дає людині, яка веде бухгалтерський облік, ті самі докази, які використовував агент: PDF рахунка, запис витрат в CRM, номер посилання та контекст проєкту або категорії. Це важливо, бо автоматизація рахунків за допомогою ШІ має не лише створювати дані. Вона має готувати чисту, придатну для огляду підтримку бухгалтерії. Запис CRM пояснює, що було зареєстровано, тоді як синхронізований документ дає бухгалтеру основні докази, необхідні для правильного проведення витрат. У моєму циклі перевірки випадок не вважається завершеним, допоки не перевірено витрати CRM, долучений файл рахунка та синхронізацію документа бухгалтерії. Якщо ця синхронізація не вдається, агент має повідомити про проблему, замість того щоб удавати, ніби робочий процес завершено.

Чому цей цикл тримає систему в безпеці

Багато демонстрацій автоматизації зупиняються на «агент сказав, що він це зробив». Для фінансів цього недостатньо. Я хочу бачити докази в CRM, докази в таблиці файлів, докази в теці бухгалтерії, докази в пам'яті та докази в операційному стані. Якщо одна частина відсутня, я вважаю запуск неповним. Це тримає робочий процес таким, що піддається аудиту, і прискорює усунення несправностей, коли щось все ж ламається.

Результати, уроки та те, що я б покращив наступного разу

Заощаджений час та випадки невдач

Я не називаю це повністю автономними фінансами, бо це не так. Я називаю це безпечнішою автоматизацією фінансів з меншою кількістю ручних кроків та меншою кількістю перевірочок на дублікати. Найбільший виграш — скорочення повторюваного сортування рахунків із збереженням консервативного остаточного рішення. Найбільший випадок невдачі навчив мене найбільше: виправлення Black Moose/Alex. Довелося, що ідентифікація постачальника може ввести в оману, тоді як `Er referens` часто вказує на реального власника або проєкт. Я виправив пам'ять, позначив хибні рядки застарілими та додав краще правило. Це правильний спосіб побудувати автоматизацію рахунків за допомогою ШІ у виробництві. Ви тримаєте систему вузькою, дозволяєте їй вчитися і виправляєте пам'ять, коли реальність заперечує.

Наступні кроки для сильнішої автоматизації

Якщо я розширю це далі, я покращу структуровану валідацію, посилю зіставлення консультантів і продовжуватиму звужувати умови зупинки. Я також залишу шлюз затвердження людиною для неоднозначних випадків. Урок простий. Вузька сфера, перевірені документи, консервативна автоматизація та залучення людини перемагають блискучу автономію щоразу.

Контрольний список для безпечної автоматизації рахунків за допомогою ШІ

Перевірте байти PDF перш ніж робити щось інше.
Усувайте дублікати проти поточного стану CRM та локальної пам'яті.
Перевте поле посилання рахунка, особливо `Er referens`.
Спочатку зіставляйте рахунки консультантів з наявними витратами, видимими для проєкту.
Зупиняйтеся, коли постачальник, проєкт або сума незрозумілі.
Використовуйте шлюз затвердження людиною для відсутніх або підозрілих документів.
Перевірте запис Perfex, рядок вкладення, синхронізацію документа бухгалтерії та оновлення стану від початку до кінця.

Найкращі агенти ШІ є вузькими, такими, що піддаються аудиту, і готовими зупинитися. Це головний урок цієї системи автоматизації рахунків за допомогою ШІ: перевірені документи, консервативні рішення та залучення людини тримають фінансові робочі процеси в безпеці, водночас заощаджуючи час. Якщо ви будуєте щось подібне, використовуйте наведений вище контрольний список і тримайте шлюз затвердження на місці.