Перейти до змісту
Інженер AI-автоматизацій
UA
Назад до проєктів

2026

AI-оцінка заявок, яка не губить жодної

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

Проблема

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

Що я зробив

Вебхук приймає заявку з форми. Дані нормалізуються і йдуть у мовну модель, яка повертає суворий JSON: оцінка від одного до пʼяти, коротка причина, визначена мова і прапорець needs_review. Рядок додається в таблицю, а все, що отримало чотири або вище, миттєво падає повідомленням в окремий канал Slack.

Усе побудовано на рідних нодах n8n. Без Code-нод і без HTTP-запитів замість інтеграцій, бо воркфлоу, який клієнт може прочитати, це воркфлоу, який клієнт може підтримувати.

Як зробити відповідь моделі надійною

Мовна модель час від часу повертає текст замість JSON або вигадує поле. Це закривають два шари:

  • Structured Output Parser із явною JSON-схемою відхиляє все, що не збігається.
  • Коли він відхиляє, окрема модель автовиправлення отримує одну спробу полагодити власну відповідь під ту саму схему.

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

Місця, які виявились справді складними

Одночасні записи затирали один одного. Нода Google Sheets за замовчуванням читає останній рядок і оновлює його. Дві заявки в ту саму секунду давали один рядок. Перемикання ноди в справжній режим append це виправило, а тест із трьома одночасними заявками тепер перевіряє, що рядків рівно три.

Повтори множили дані. Увімкнений retry на ноді Sheets змусив n8n писати кожен рядок тричі і розтягнув запуск із 2.5 до 16 секунд. Повтори потрібні на викликах, які падають тимчасово, а не на append, який уже пройшов.

Захист від ботів блокував мої ж тести. Тестовий скрипт відкидала перевірка Cloudflare, поки він не почав надсилати реалістичний User-Agent. Це варто знати до того, як почнеш дебажити воркфлоу, який ніколи не був проблемою.

Надійність, а не функції

У збірці є окремий воркфлоу помилок. Будь-яка поломка в будь-якому місці пайплайна надсилає в Slack сповіщення з назвою воркфлоу і нодою, що впала. Зламана автоматизація повідомляє про себе сама, а не мовчки згасає.

Невеликий дашборд на Next.js під паролем показує останні пʼятдесят заявок, щоб ніхто не відкривав таблицю заради питання “сьогодні щось прийшло?”.