LUME · операційний блок · контур автоматизацій

Вісім автоматизацій, один контур

Кожна автоматизація — окремий бойовий проєкт: працює на реальному сервері, доступна з будь-якого пристрою, україномовна. Але цінність дає не кожна окремо, а те, як вони передають роботу одна одній: лід → діалог → бриф → кампанія → нагляд, і зворотні петлі між ними.

Середовище: n8n 2.23.4 + Dify 1.14.2, Docker Мова: українська Оновлено: 08.09.2026

Стек одним поглядом

П'ять сценаріїв у n8n (логіка, маршрутизація, SLA-таймери, планові перевірки) і три боти в Dify (розмова з клієнтом і зведення для власника). Один спільний «стор» замість Google Sheets — щоб демо не залежало від чужих акаунтів.

АвтоматизаціяЗапускЩо стереже / дає
1Лід-інтейкwebhook
lume-lead
Жоден лід не загублено; атрибуція; HOT-ліди — лікарю за хвилини; SLA за робочими годинами
2Маршрутизація зверненьwebhook
lume-inbound
DM / коментар / відгук / чат розкладено по відповідальних; гострі стани — в «LUME-911»
3Прийом брифівwebhook
lume-brief
Бриф не йде в роботу, поки не повний; дедлайни й буфер; ретро спринту
4Guardrails кампанійcron + webhook
lume-campaign-lead
Рішення kill / scale по кампаніях; миттєва перевірка UTM на вході
5Ops-watchdogcronЗламана форма, порожній рекламний кабінет, биті мітки — видно за добу, не за місяць
6FAQ-бот (Dify)чат / віджетКлієнт отримує ціни й відповіді 24/7; запис — у лог; мед-питання — лікарю
7Тижневе зведення (Dify)API / cronМетрики тижня → людський текст «що сталося і що робити»
8Радар ринку — аналітик (Dify)APIJSON радару попиту → бриф: 3 контент-можливості, 2 продуктові сигнали

Як вони зчеплені

flowchart TD
    CL([Клієнт / реклама]):::ext
    FORM[Форма-квіз]:::ext
    BOT6([6 · FAQ-бот]):::dify
    A1[1 · Лід-інтейк]:::n8n
    A2[2 · Маршрутизація]:::n8n
    A3[3 · Прийом брифів]:::n8n
    A4[4 · Guardrails кампаній]:::n8n
    A5[5 · Ops-watchdog]:::n8n
    A7[7 · Тижневе зведення]:::dify
    A8[8 · Радар ринку]:::dify
    STORE[(Спільний стор)]:::store
    TG{{Telegram — ролі студії}}:::tg

    CL --> FORM --> A1
    CL --> BOT6
    BOT6 -->|лід / телефон| A2 -->|це лід| A1
    BOT6 -->|мед-питання| TG
    A1 --> STORE
    A2 --> STORE
    A1 -->|HOT-лід| TG
    A1 -->|бита UTM| A4
    A4 -->|kill / scale| TG
    A4 --> STORE
    A3 --> STORE
    A3 -->|бриф не готовий| TG
    A5 -->|синтетична заявка| A1
    A5 --> STORE
    A5 -->|форма впала / кабінет порожній| TG
    STORE --> A7 --> TG
    A8 -->|контент-план| A3

    classDef n8n fill:#7A2E3A,stroke:#7A2E3A,color:#fff
    classDef dify fill:#B0704F,stroke:#B0704F,color:#fff
    classDef store fill:#5E6B4F,stroke:#5E6B4F,color:#fff
    classDef tg fill:#efe7d9,stroke:#B0704F,color:#2A2320
    classDef ext fill:#efe7d9,stroke:#8A8577,color:#2A2320
    

n8n — логіка й таймери   Dify — розмова й тексти   спільний стор   Telegram — пульт для ролей студії (адміністратор, лікар, керуюча, маркетинг-лід).

Кожна автоматизація — найкращі сценарії

01 Лід-інтейк webhook · lume-lead

Приймає заявку з форми, IG Lead Ads або квіза. Нормалізує UTM і click-id, рахує скоринг, звіряється зі стором на попередні звернення цього номера, захищає від дублів, ставить SLA-таймер за робочими годинами студії й ескалує, якщо лід не взяли в роботу.

Коли дає найбільше

Бойова готовність. Прогнано наскрізь через публічний URL, україномовні алерти, 0 помилок. Для продакшена — під'єднати справжнє джерело лідів (Meta Lead Ads / форма сайту) і Telegram-чати реальних ролей.

02 Маршрутизація звернень webhook · lume-inbound

Єдина точка входу для всього вхідного: IG DM, коментарі, відгуки, чат сайту, Telegram, Lead Ads. Робить перед-класифікацію правилами, за потреби добиває LLM-класифікатором, зводить клас + маршрут + робочий SLA, пише в comms_log, відсіює спам і ескалує гострі стани.

Коли дає найбільше

Бойова готовність. Працює, зокрема гілка LLM-класифікатора на OpenAI. Для продакшена — вебхуки від реальних каналів (ManyChat / IG API / віджет чату).

03 Прийом брифів webhook · lume-brief

Бриф із форми (Tally / Google Forms) перевіряється на Definition of Ready. Неповний — не йде в роботу, ініціатору прилітає, чого бракує. Повний — стає задачею на дошці, підрядник і маркетинг-лід отримують сповіщення. Планові гілки: дедлайни + буфер по буднях, ретро спринту в п'ятницю.

Коли дає найбільше

Бойова готовність. Вебхук-гілка прогнана (алерти «бриф не готовий» приходили в тесті). Планові гілки — по крону, ручний прогін через «Execute» в редакторі.

04 Guardrails кампаній cron 09:30 + webhook · lume-campaign-lead

Щоранку після імпорту витрат зводить campaign_thresholds + raw_spend + raw_leads у рішення: масштабувати, зупинити, не чіпати. Сигналить лише там, де потрібна дія, і запам'ятовує сигнал, щоб не повторюватись. Окрема гілка — дзеркало ліда: миттєва перевірка UTM на вході.

Коли дає найбільше

Потрібна дія. Логіка й UTM-гілка працюють. Для бойового режиму — щоденний імпорт витрат із рекламних кабінетів у стор (ручний CSV або конектор).

05 Ops-watchdog cron

Синтетичний моніторинг усього, що тихо ламається. Щодня 09:05 — тестова заявка через реальну форму, за 3 хв перевірка, чи дійшла. Щодня 09:00 — запас днів по рекламних кабінетах. Щопонеділка — аудит UTM за тиждень і статус бойових сторінок. 1-го числа — чек-лист закриття місяця.

Коли дає найбільше

Потрібна дія. Каркас усіх перевірок готовий. Бойовий режим — прописати в ops_endpoints реальні URL форм і сторінок та ключі рекламних кабінетів.

06 FAQ-бот Dify · чат / віджет

Розмовний бот для клієнтів. Відповідає на питання про послуги й ціни, фіксує намір записатися в comms_log (звідти підхоплює пайплайн №2 → №1), а медичні питання («чи можна після пологів», «болить після процедури») передає лікарю, не відповідаючи сам.

Коли дає найбільше

Бойова готовність. Перевірено: інфо+ціни, запис, ескалація мед-питань. Публічний чат: /chat/TkeH62f2v3jxnnox. Для сайту — вставити віджет і підняти TLS-проксі.

07 Тижневе зведення Dify · API / cron

Отримує JSON метрик тижня (ліди, звернення, конверсія, витрати) і повертає короткий людський текст: що сталося, де ризик, що робити. Не таблиця — абзац, який власник читає за хвилину.

Коли дає найбільше

Бойова готовність. Опубліковано, перевірено. Запуск: POST /v1/workflows/run з metrics_json. Для автоматизму — n8n-гілка щопонеділка збирає метрики зі стору й викликає бота.

08 Радар ринку — аналітик Dify · API

Вхід — radar.json від збирача (YouTube, Google Trends, autocomplete, новини — станом на зараз 406 б'юті-каналів, ~58k відео з метриками, ~11k запитів, 1305 новин). Вихід — бриф: картина ринку, 3 контент-можливості з цифрами, 2 продуктові / операційні сигнали, 1 «чого не робити».

Коли дає найбільше

Бойова готовність. Бот працює, перший бриф отримано (data/analyst_brief.md). Збір даних триває за кроном — Google Trends лімітує, повна вибірка 26 термінів добереться за кілька днів. Дашборд — окремий артефакт.

Три наскрізні сценарії

Тут видно суть контуру: жодна автоматизація не працює сама — вона передає роботу далі й лишає слід, який читають інші.

Сценарій А — заявка з реклами о 22:40

  1. реклама → квіз Клієнтка проходить квіз-форму по контурній пластиці, лишає телефон. Форма б'є у lume-lead.
  2. 1 · лід-інтейк UTM розібрано, скоринг високий, послуга дорога → HOT. Стор каже: номер новий. Ставиться SLA-таймер — але за робочим календарем дедлайн переноситься на 09:00.
  3. 1 → Telegram Лікарю одразу: «HOT-лід, контурна пластика, +380…». Адміністратору — картка заявки.
  4. 4 · guardrails Дзеркало ліда перевіряє UTM: мітка ціла, кампанія в межах порогів — тиша (дії не треба).
  5. 1 · SLA 09:15: стор показує, що лід досі «новий». Ескалація керуючій.
  6. 1 ← webhook Адміністратор передзвонив, натиснув «взято в роботу» — lume-lead-handled гасить таймер, лід позначено обробленим.
  7. 7 · зведення У понеділок цей лід — рядок у метриках тижня; бот згадує його в абзаці про HOT-канал.

Сценарій Б — питання в Instagram, що виявилось скаргою

  1. клієнт → FAQ-бот «після філерів тиждень тому досі набряк, це нормально?» у чат на сайті.
  2. 6 · FAQ-бот Розпізнає медичну природу питання — не відповідає сам, пише в comms_log і віддає далі.
  3. 2 · маршрутизація Класифікатор: гострий стан. Маршрут — лікар, SLA ≤ 4 год.
  4. 2 → Telegram Дубль у «LUME-911»: лікарю + власнику, з контактом і текстом звернення.
  5. 2 · SLA Через 4 год стор перевіряється: якщо відповіді немає — ескалація керуючій.
  6. 2 ← webhook Лікар відповів, позначив lume-inbound-answered — інцидент закрито.
  7. 2 · зведення У понеділок у тижневому зведенні по зверненнях — один гострий випадок, оброблено вчасно.

Сценарій В — від радару до опублікованого ролика

  1. збирач · cron Щоранку 10:30 daily.sh добирає дані YouTube/Trends/новин, report.py оновлює radar.json.
  2. 8 · радар-аналітик Бот дає бриф: «полінуклеотиди — вікно, українського контенту майже немає».
  3. людина → 3 Маркетолог оформлює бриф на серію роликів у форму → lume-brief.
  4. 3 · прийом брифів Definition of Ready пройдено (є serviceline, channel, дедлайн) → задача на дошці, підряднику сповіщення.
  5. 3 · дедлайни Щоранку контроль буфера; при зриві — алерт маркетинг-ліду.
  6. 3 · ретро У п'ятницю — чи був зрив, що виправити в процесі.
  7. → 4 Ролик виходить у рекламу як кампанія — далі її веде guardrails (№4), а ліди з неї йдуть у №1. Коло замкнулось.

Що тримає контур разом

Спільний стор. raw_leads, comms_log, creative_board, raw_spend, ops_log — це одні й ті самі таблиці для всіх. №1 пише лід — його бачать №4, №5, №7. №6 пише діалог — його читають №2 і №7.

Telegram як пульт. Не «ще один канал», а єдине місце, де ролі студії (адміністратор, лікар, керуюча, маркетинг-лід) отримують тільки те, що стосується їх, і тільки коли потрібна дія.

Робочий календар. Усі SLA-таймери рахують час за годинами роботи студії — система не «протерміновує» нічні заявки й не мовчить у робочий час.

Принцип «сигналити лише коли потрібна дія». №3, №4, №5 за замовчуванням мовчать. Повідомлення = щось вимагає рішення людини. Тиша = все гаразд.

Що потрібно від тебе, щоб решта стала бойовою

Витягти Google Sheet твоя дія

Зараз замість Google Sheets працює локальний стор (щоб демо не залежало від акаунтів). Щоб перемкнути на справжню таблицю:

  1. Google Cloud Console → новий проєкт → APIs & Services → увімкнути Google Sheets API і Google Drive API.
  2. Credentials → Create → Service Account → готово → вкладка Keys → Add Key → JSON. Завантажиться файл-ключ.
  3. Створити таблицю в Google Sheets, дати доступ (Editor) на e-mail сервіс-акаунта (він у JSON, поле client_email).
  4. Надіслати мені цей JSON + посилання на таблицю. Я підставлю STORE у конфіг і перевірю всі 5 сценаріїв на реальних аркушах.

Це не той самий OAuth-клієнт, до якого в тебе прив'язано багато сервісів — сервіс-акаунт окремий і нічого не чіпає.

Підняти FAQ-бота на домені твоя дія

Бот уже працює на http://…:8080/chat/…, але по HTTP і не на твоєму домені. Варіанти від найпростішого:

  1. Cloudflare Tunnel (безкоштовно, домен не обов'язковий): встановити cloudflared на сервер, cloudflared tunnel --url http://localhost:8080 → отримаєш HTTPS-адресу *.trycloudflare.com. Для сталого — прив'язати до свого домену в дашборді Cloudflare (5 хв).
  2. Свій домен через Cloudflare Pages / GitHub Pages: статична сторінка-лендинг з вбудованим віджетом чату Dify (<script> + <iframe>), домен наводиться на Cloudflare.
  3. Від тебе: домен (або субдомен), доступ до його DNS. Далі роблю я.

Джерела даних для №4 і №5 твоя дія

  1. №4 Guardrails: щоденний експорт витрат/показів із Meta Ads і Google Ads. Мінімум — раз на день кинути CSV у стор; краще — доступ до кабінетів для конектора.
  2. №5 Watchdog: реальні URL бойових форм і лендингів + ідентифікатори рекламних кабінетів для перевірки балансу.

Реальні Telegram-чати ролей твоя дія

Зараз усі алерти йдуть в один тестовий чат. Для бойового режиму: створити чати/групи під ролі (адміністратор студії, лікар, LUME-911, керуюча, маркетинг-лід), додати бота @dbar368_bot, надіслати мені chat_id кожного.

Уже зроблено, від тебе нічого не треба готово

  1. n8n-пісочниця з 5 сценаріями, публічний URL, україномовні алерти, наскрізний прогін — 0 помилок.
  2. 3 боти Dify в окремому воркспейсі, підключені до n8n.
  3. Форма-квіз заявок — окремий артефакт, читає UTM, валідує телефон.
  4. Радар ринку: збір за кроном, дашборд, бот-аналітик.