Автоматична маршрутизація звернень: форма для кожного відділу
Уявіть: клієнт пише в техпідтримку, а лист потрапляє до відділу продажів. Або питання про доставку опиняється в бухгалтера. Сортувати вручну 50+ звернень на день — помилки неминучі. Ми — команда з 5+ років досвіду у веб-розробці, реалізували понад 15 проєктів з маршрутизації звернень для середнього бізнесу. Наше рішення — автоматична маршрутизація: форма сама направляє повідомлення в потрібну поштову скриньку або канал — логістика, продажі, підтримка, бухгалтерія.
Навіщо потрібна розумна маршрутизація для форми зворотного зв'язку?
Ручне пересилання листів забирає до 30 хвилин на день у кожного менеджера — при 20 співробітниках це 600 годин на рік. Наша форма обробляє запит за секунди, виключаючи людський фактор. Тестування на 15 проєктах показало зниження часу обробки на 90%, а помилки пересилання зводяться до нуля. Плюс логування в БД: аналізуйте навантаження за відділами та оптимізуйте штатний розклад. Економія для середнього бізнесу — до 600 000 грн на рік за рахунок скорочення ручної праці.
Як працює автоматичне визначення відділу
Логіка — в одному PHP-класі FeedbackRouter, що реалізує принципи SOLID та Dependency Injection через контейнер Laravel. Користувач обирає категорію зі списку на фронтенді, і сервер зіставляє її з email-адресою відділу. Сповіщення відправляються асинхронно через черги (Queue) для підвищення продуктивності. Ось приклад коду:
class FeedbackRouter
{
private array $routes = [
'technical' => ['[email protected]', 'Техпідтримка'],
'sales' => ['[email protected]', 'Відділ продажів'],
'logistics' => ['[email protected]', 'Логістика'],
'billing' => ['[email protected]', 'Бухгалтерія'],
'other' => ['[email protected]', 'Загальні питання'],
];
public function route(FeedbackRequest $data): void
{
$category = $data->category ?? 'other';
[$recipient, $department] = $this->routes[$category] ?? $this->routes['other'];
// Email у відділ
Mail::to($recipient)->send(new FeedbackMail($data, $department));
// Автовідповідь клієнту
Mail::to($data->email)->send(new FeedbackAutoReplyMail($data, $department));
// Дублювання в Telegram для термінових категорій
if (in_array($category, ['technical', 'billing'])) {
$this->telegram->notify($department, $data);
}
FeedbackLog::create([
'from_email' => $data->email,
'category' => $category,
'recipient' => $recipient,
'subject' => $data->subject,
]);
}
}
Чому це краще, ніж ручне сортування?
Ручне сортування — джерело 70% затримок у відповідях. Наша форма обробляє запит за 0.2 секунди та гарантує доставку в потрібний відділ. Це в 1500 разів швидше, ніж ручна обробка (5 хвилин). Для термінових категорій сповіщення дублюється в Telegram або Slack, виключаючи ризик втрати листа. Логування в БД дозволяє відстежувати KPI: середній час відповіді, кількість запитів за відділами, пікові навантаження.
Типові помилки при реалізації
- Одна категорія для всього — клієнт не розуміє, куди писати, обирає «інше». Вихід: зробити 4–5 чітких категорій з підказками.
- Немає валідації email — помилка в адресі, і відповідь клієнту не йде. Використовуємо HTML5 + серверну перевірку.
- Забувають про автовідповідь — клієнт думає, що лист не дійшов. Обов'язково миттєве підтвердження.
Як це працює в продакшені (на React)
На одному з проєктів ми додали useForm з валідацією та кастомний селект для категорій:
const CATEGORIES = [
{ value: 'technical', label: 'Технічне питання' },
{ value: 'sales', label: 'Співпраця та продажі' },
{ value: 'logistics', label: 'Доставка та повернення' },
{ value: 'billing', label: 'Оплата та рахунки' },
{ value: 'other', label: 'Інше' },
];
export function FeedbackForm() {
const { register, handleSubmit } = useForm();
return (
<form onSubmit={handleSubmit(onSubmit)}>
<Select label="Тема звернення" {...register('category')}>
{CATEGORIES.map(c => (
<option key={c.value} value={c.value}>{c.label}</option>
))}
</Select>
<Input label="Ваше ім'я" {...register('name')} />
<Input label="Email" type="email" {...register('email')} />
<Textarea label="Повідомлення" rows={5} {...register('message')} />
<button type="submit" className="btn-primary">Відправити</button>
</form>
);
}
Додаткові канали доставки
Окрім email — Slack-інтеграція для команди через Incoming Webhooks: кожне звернення потрапляє у відповідний канал (#support, #sales) залежно від категорії. Або Telegram — для термінових питань. За потреби налаштовуємо інтеграцію з CRM (Bitrix24, AmoCRM) для автоматичного створення лідів.
Чому самописна маршрутизація краща за готові рішення?
Готові форми від конструкторів (Tilda, JotForm) обмежені: тільки email-сповіщення, немає гнучкої логіки, всі дані зберігаються у сторонньому сервісі. Наше рішення дає повний контроль над кодом і даними. Ви самі вирішуєте, які канали використовувати, як довго зберігати логи, які правила ескалації застосовувати. Для середнього бізнесу з високим навантаженням це єдиний надійний варіант.
Що входить у послугу
- Проєктування логіки маршрутизації під вашу структуру відділів.
- Верстка адаптивної форми на React/Vue/чистому HTML (на ваш вибір).
- Бекенд-клас
FeedbackRouterз підтримкою email, Telegram, Slack. - Логування всіх звернень у БД.
- Автовідповідь клієнту із зазначенням відділу.
- Документація з налаштування та доступів.
- 2 години підтримки після запуску.
Технічні параметри
| Параметр | Значення |
|---|---|
| Стек | Laravel 11 / PHP 8.3, React 18, MySQL |
| Термін | 2–3 робочих дні (базова версія) |
| Вартість | Від 15 000 грн (базова версія) |
| Гарантія | 3 місяці безкоштовного доопрацювання помилок |
| Досвід | Понад 15 проєктів з маршрутизацією |
Процес роботи
- Аналітика — розбираємо, які відділи та як отримують листи зараз.
- Проєктування — малюємо схему маршрутів, погоджуємо з вами.
- Розробка — пишемо бекенд-клас, фронтенд-форму, інтеграції.
- Тестування — перевіряємо всі сценарії (неправильна категорія, порожні поля, збій пошти).
- Деплой — заливаємо на ваш сервер, налаштовуємо cron для очищення логів.
| Варіант | Швидкість впровадження | Гнучкість | Контроль даних |
|---|---|---|---|
| Самописна маршрутизація | 2–3 дні | Абсолютна (ескалація, priority queue) | Повний |
| Готові форми (Tilda, JotForm) | Від 1 години | Мінімальна (тільки email) | Обмежений |
Хочете таку саму форму на своєму сайті? Напишіть нам — оцінимо проєкт за 1 робочий день. Отримайте консультацію з інтеграції з вашою CRM або 1С.
Докладніше про налаштування поштових драйверів Laravel читайте в офіційній документації.







