June 10

Автоматизация follow-up сообщений в n8n

Клиенты часто говорят: «Хотим, чтобы ИИ сам напоминал, писал, дожимал, продавал». И это реально.

В этом гайде 2 сценария:

  • простой (Redis + Wait)
  • более гибкий (Postgres + CRON + база сообщений)

🔄 Сценарий 1: простой follow-up на Redis + Wait

Цель:

Если человек не ответил на сообщение, через х минут ему присылается follow-up.

Ключевые идеи:

  1. Создаём Redis-ключ followup:<session_id> со сроком жизни (TTL).
  2. Через Wait (3с / 30мин / 1ч...) читаем Redis:
    • есть ключ → фолловим
    • нет ключа → чел ответил, ничего не делаем
  3. Получаем историю, даем в LLM, тот пишет текст.
  4. Отправляем.

Фишки:

  • Redis TTL и чистка DEL key если был ответ
  • Wait не жрёт ресурсы (работает через cron)
  • Супер-промпт: «пользователь долго не отвечает... попробуй его вовлечь»

📊 Сценарий 2: база сообщений + Postgres

Цель:

Гибкое отслеживание, кому нужно фолловить + плановые прогоны CRONом

Структура базы:

messages:

  • id
  • session_id
  • role (user/assistant)
  • content
  • replied (bool, default false)
  • created_at

Логика:

  1. Сохраняем все сообщения в базу (и user, и assistant)
  2. У assistant replied: false
  3. Когда юзер отвечает — update replied: true у последнего ассистента

CRON-проверка:

  1. Запуск каждые 5 минут
  2. SELECT сообщения assistant WHERE replied = false AND created_at < now() - interval 'X'
  3. Собрали ID сессий
  4. По каждой сессии: поднимаем историю, даем в LLM, отстучим фоллов

Гибкие настройки:

  • дни недели, время дня
  • не посылать >3 фоллоупов одному юзеру
  • SQL логика: flexible as hell

📆 Когда использовать какой сценарий:

  • Хочешь быстро вкрутить follow-up для Telegram — Redis + Wait
  • Нужен масштаб, фильтры, повторы, контроль — Postgres + CRON

🚀 Шаблоны, SQL-запросы, структура базы — в платном посте.