CRM.
Сценарій на 120+ Telegram-контактів і 30 активних діалогів: приймання заявок з портфоліо та AI OPS, фільтри, задачі, inline-правки та відправлення в n8n. ШІ-синхронізація Telegram → CRM кожні 20 хвилин і розумний розподіл за 15 параметрами.
Роль
Архітектура, full-stack, деплой
Рік
2026
Статус
Next.js 16 · SQLite · n8n
Публічного посилання немає: CRM працює лише для власника. Метрики — сценарій навантаження на одному сервері, не публічна аналітика.
Огляд
Ліди
120
контактів
30
активних
0
помилок
Анна Орлова
@anna_ops
Михаил Ковалёв
m.kovalev@example.com
Ирина Соколова
@irina_smm
Денис Морозов
@denis_build
120+
Telegram-контактів
30
активних діалогів
10+
функцій
1
користувач
Розумна синхронізація через ШІ
Відповіді, етапи й задачі оновлюються самі: 20 хвилин, 15 параметрів і один next action.
20 хв
цикл синхронізації
15
параметрів розподілу
4
кроки задач
Задача
Ліди надходили з форми портфоліо, AI OPS і Telegram-вивантажень. Частина губилася, дублі не відстежувалися, а відправлення в n8n було ручним.
Рішення
Одна база SQLite, один вхідний API і один екран. Заявки автоматично створюють лід, дублі склеюються за email, Telegram і телефоном, а n8n отримує підписаний payload з черги з повторами.
Що відбувається кожні 20 хвилин
Модель читає нові повідомлення, оновлює етап і температуру, а синк переносить дані в CRM. Без дублів і втрачених відповідей.
Читає нові повідомлення, розуміє контекст, відрізняє живого клієнта від бота чи агрегатора, оновлює етап, температуру й теги. Детермінований синк переносить історію, score, follow-up і помилки доставки; повторний запуск не створює дублі.
Відповіді розбираються за змістом
Вхідне повідомлення не губиться: модель визначає, хто пише — клієнт, бот чи агрегатор, — і оновлює етап, температуру й теги.
Наступний крок з'являється сам
З контексту й плану народжується задача: відповісти, зробити follow-up, повторити після PEER_FLOOD. У роботі завжди один next action.
Дублі не створюються
Повторна синхронізація оновлює ту саму картку. Дедуп за Telegram, email і телефоном; timeline і задачі ідемпотентні.
Задачі: спочатку план
План за датами й пріоритетами: перший контакт, follow-up через 3 дні, розбір відповіді, повтор після PEER_FLOOD. З нього народжуються задачі та next action.
Архітектура
Next.js приймає заявки, SQLite зберігає ліди та чергу, worker відправляє в n8n. Усе на одному сервері за Caddy.
Джерела
Портфоліо, AI OPS, Telegram JSON і ручне введення.
API
Bearer-ключ, ідемпотентність і дедуп за контактами.
SQLite
Ліди, події, задачі та черга доставок в одному файлі.
n8n
Вебхук з HMAC, повторами та журналом відповідей.
{
"schema": "lead.v1",
"event": "lead.created",
"lead": {
"id": "ld_...",
"name": "Ivan",
"email": "ivan@example.com",
"source": "portfolio",
"temperature": "hot",
"score": 70
},
"consent": { "granted": true },
"meta": { "attempt": 1 }
}Стек
n8n отримує lead.v1, перевіряє HMAC-підпис та ідемпотентність. При 5xx CRM повторює відправлення.
Ключові рішення
Один користувач — без ролей
Не будував команду й права, яких немає. Один вхід, один власник, мінімум зайвих сутностей.
SQLite замість Postgres
Для одного користувача й десятків лідів на день SQLite швидший, простіший і дешевший. WAL та індекси закривають фільтри.
Черга, а не прямий fetch
Якщо n8n недоступний, доставка залишається в черзі. Worker повторює відправлення, а failed видно в журналі.
Канонічний payload lead.v1
CRM не залежить від формату отримувача: назовні йде один контракт, n8n розбирає його у своєму workflow.
Список — робоче місце, а не вітрина
Сортування, inline-правки, масові дії та збережені види дозволяють вести десятки лідів без постійних переходів у картку.
Стан не губиться
Фільтри, сортування й колонки живуть в URL і sessionStorage: повернення з картки відкриває той самий робочий вид.
Що всередині
Гнучкі колонки: 21 поле, вибір зберігається в URL
Inline-редагування етапу, температури, score, бюджету й дати кроку
Збережені види: фільтри + сортування + колонки
Розширені фільтри: score, канал зв'язку, активність і вік
SLA-мітка «N днів без відповіді»
Глобальний пошук ⌘K / Alt+K по всій базі
Масові дії та експорт лише вибраних лідів
Закріплення лідів і навігація j/k по рядках
Задачі та наступні кроки в одному робочому екрані
n8n outbox: HMAC, retry, журнал доставок
Імпорт Telegram-лідів і дедуп за email / Telegram / телефоном
API приймання, SQLite, бекап і systemd
ШІ-синхронізація Telegram → CRM кожні 20 хвилин
Розподіл за 15 параметрами: score, бюджет, мова, SLA та ін.
План задач: перший контакт, follow-up, розбір відповіді, повтор
Як це виглядає
Демо-дані: імена, контакти та повідомлення вигадані. Реальні ліди на скриншотах не показані.




