СЕВЕРНЫЙ КОНТУР
С начала CRM сессия
AI AUTOMATION · Проект 2

AI Email
Assistant

Автоматизированный ассистент студии на n8n:
диалог, входящая почта и пресейл-визуал в одном процессе.

Автор
Дмитрий Князьков
Продукт
«Северный Контур»
Стек
n8n · OpenAI · Gmail · Calendar · Telegram
Тезисы
  • Показываю не набор нод, а рабочий инструмент небольшой студии.
  • Всё, что вы увидите, работает вживую прямо сейчас — записей нет.
Кто пользователь и что болит

Задача и сценарий

Бизнес-проблема

Студия из двух-пяти человек. Владелец сам продаёт, сам ведёт клиента и сам считает сроки.

  • Разбор одного письма руками — 5–10 минут
  • Встречи живут в переписке и не доезжают до календаря
  • Пресейл-визуал — день работы дизайнера ещё до договора
  • Заявки нигде не собираются: почта, мессенджеры, память
Решение

Один процесс с тремя входами и общей памятью. Человек принимает решения, ассистент готовит материал.

  • Диалог свободным текстом — встреча и черновик
  • Входящее письмо — категория, ответ, встреча
  • Бриф — до четырёх знаков за один прогон
  • Всё попадает в CRM автоматически, со статусом и журналом

Ассистент ничего не отправляет от лица человека: письмо остаётся черновиком, встреча — событием, которое можно отменить.

Тезисы
  • Пользователь — владелец студии на два-пять человек. Он сам себе продажник, аккаунт и дизайнер.
  • Его день начинается с почты: разобрать, ответить, не потерять встречу, а к вечеру ещё показать клиенту визуал.
  • Разбор одного письма руками — пять-десять минут. Двадцать писем в неделю — это рабочий день, вычеркнутый из месяца.
  • Задача не «сделать бота». Задача — снять с человека рутину и не дать ему потерять живого клиента.
Один workflow вместо трёх

Архитектура процесса

Диалог Письмо Бриф на логотип Общая нодакарточки CRM Data Tableзаявки Журнал Ответ сайту Картинки и Telegram
104ноды в одном процессе
9точек входа
3таблицы внутри n8n
0внешних сервисов хранения
Тезисы
  • Один workflow, девять точек входа. Три сценария для пользователя, шесть служебных — для CRM.
  • Ключевое решение: все три сценария сходятся в одну ноду, которая собирает карточку.
  • Поэтому строка в CRM выглядит одинаково независимо от того, пришла она из диалога, из письма или из брифа.
  • Журнал, картинки и Telegram висят боковыми ветками — ответ пользователю их не ждёт.
Что и почему

Архитектурные решения

1 Один workflow, а не три

Все сценарии сходятся в общую ноду карточки. Строки CRM однородные, импорт один, дублировать логику записи негде.

2 Ответ отдаётся раньше побочной работы

Журнал, картинки и Telegram — параллельные ветки. Отказ в любой из них не оставляет пользователя без ответа.

3 Хранилище внутри n8n

Data Table вместо внешней таблицы: на один аккаунт, один OAuth и одну точку отказа меньше. Таблицы создаются сами при первом запуске.

4 Правила поверх модели

Семь детерминированных правил ловят предсказуемые ошибки: дата в прошлом, встреча без даты, пустой черновик, чужая категория.

Тезисы
  • Каждое решение принято против конкретной боли, а не «потому что так красиво».
  • Самое дорогое из них — четвёртое: детерминированные правила поверх модели.
  • Модель ошибается предсказуемо, и на каждую предсказуемую ошибку есть правило.
Техника и итерация

Промпт: v1 → v2

v1 — что было

Ты ассистент. Разбери письмо и предложи ответ. Если нужна встреча — создай событие.

  • Ставила встречи в 2023 год — «сегодня» модель придумывала
  • Выдавала время 24:00:00, календарь такое не принимает
  • Помечала живые письма как рассылку
  • Отвечала свободным текстом — парсить нечем
v2 — что изменил
  • Структурированный вывод по JSON-схеме вместо текста
  • Дата приходит выражением n8n, а не из головы модели
  • Явные границы: часы 00–23, длительность по умолчанию 60 минут
  • Запрет выдумывать цены, сроки и имена — прямым текстом
  • Порог уверенности: не уверен → «нужен ответ»
Evaluation loop

Девять сценариев приёмки прогоняются против живого ассистента: обычное письмо, встреча с датой, встреча без даты, рассылка, no-reply, письмо в прошедшем времени. Судьёй выступает вторая модель, но транспортная ошибка всегда даёт fail — иначе судья «прощал» упавший запрос. Именно эта проверка поймала реальный дефект.

Тезисы
  • Техника: роль плюс жёсткие ограничения плюс структурированный вывод по JSON-схеме.
  • Первая версия уверенно выдумывала даты — ставила встречи в две тысячи двадцать третий год.
  • Причина оказалась не в модели: системное сообщение не было в режиме выражения, и дата не подставлялась.
  • Во второй версии дата приходит из n8n, часы ограничены, а на «не уверен» есть правило: лучше показать лишнее, чем потерять клиента.
Свободный диалог

Демо 1 · Агент

Диалог
Привет! Могу поставить событие в календарь или подготовить черновик письма. Напишите обычным текстом — например «поставь встречу завтра в 10 на час».

Готовые сценарии — запускаются одной кнопкой

Enter — отправить, Shift+Enter — перенос строки

Ассистент
  • 📅
    Событие в календареПеред созданием всегда проверяет занятость. Нашёл пересечение — спрашивает, а не создаёт молча.
  • ✍️
    Черновик письмаНужны получатель, тема и текст. Чего-то нет — переспросит. Письмо остаётся черновиком.
  • 🧠
    Память диалогаСледующее сообщение читается как уточнение, а не новый запрос.
  • 🗂
    Карточка в CRMКаждый диалог сохраняется как заявка со статусом и историей.
Не выдумывает данные. Адрес, дата или тема не названы — спросит, а не подставит правдоподобное.
Тезисы
  • Первый сценарий — свободный диалог. Пишу человеческим языком, без шаблонов.
  • Ассистент сначала проверяет занятость и только потом создаёт встречу. Нашёл пересечение — спросит.
  • Если данных не хватает, он переспрашивает, а не подставляет правдоподобное.
  • Каждый диалог тут же становится карточкой в CRM.
Классификация и решение

Демо 2 · Входящее письмо

Письмо
✨ Написать за меня Опишите задачу в двух словах — нейросеть составит письмо и заполнит форму целиком

Готовые письма — отправляются сразу по нажатию

Разбор —

Здесь появится разбор

Ассистент определит тип письма, решит, нужен ли ответ, и покажет ссылки для проверки.

Ассистент думает…

Обычно это занимает 5–15 секунд.

Письмо обработано

Проверить результат
Ответ n8n целиком

Не удалось отправить

    Тезисы
    • Второй сценарий — входящее письмо. Ассистент решает три вещи: что это, нужен ли ответ, есть ли встреча.
    • Кнопки слева — готовые сценарии: обычный вопрос, письмо со встречей, рассылка и пограничный случай.
    • Пограничный случай — «давай созвонимся на неделе». Встреча просится, но даты нет. Модель хочет поставить meeting, правило это отменяет.
    • Черновик уходит в Gmail, встреча — в календарь. Письмо остаётся черновиком: последнее слово за человеком.
    Пресейл-визуал и продажа

    Демо 3 · Логотип

    Бриф
    Результат —

    Здесь появится логотип

    Ответьте на несколько коротких вопросов — нейросеть нарисует знак.

    Рисуем логотип…

    Сначала пишем техзадание, потом рисуем. Обычно 20–40 секунд.

    Готово

    Что дальше
    Забрать в работу Демонстрация — деньги не списываются
      $0
      Технические детали

      Не получилось

        Тезисы
        • Третий сценарий — пресейл-визуал. Клиент просит «показать идею» — обычно это день работы дизайнера.
        • Короткий бриф, и арт-директор пишет техзадание, а модель рисует до четырёх знаков одновременно.
        • Параллельно — принципиально: четыре варианта занимают столько же времени, сколько один.
        • И сразу дальше по воронке: варианты можно забрать за деньги. Оплата демонстрационная.
        Что осталось после демонстрации

        CRM и журнал

        Живая доска — те же данные, что в n8n Открыть отдельно
        Тезисы
        • Всё, что вы видели, уже здесь. Ни одной записи руками.
        • Слева заявки, справа карточка. У логотипов — сами картинки, их можно скачать.
        • Внизу журнал: каждое действие отдельной строкой. Черновик создан, встреча создана, три из четырёх нарисованы.
        • Журнал не украшение. Именно он показал мне реальную причину, когда карточки перестали записываться.
        Где ошибётся и что дальше

        Риски и вывод

        Риски галлюцинаций
        • Выдуманная дата. Встреча уезжает в прошлое или в несуществующий час
        • Выдуманные условия. Модель называет цену, которой никто не обещал
        • Ложный игнор. Живое письмо помечено как рассылка и теряется
        • Молчаливый отказ. Ошибка внутри процесса не доходит до человека
        Чем закрыты
        • Дата из n8n, проверка на прошлое, границы часов
        • Прямой запрет на цифры, которых не было в письме
        • Порог уверенности: сомнение трактуется в пользу клиента
        • Журнал: каждое действие и каждый отказ — отдельной строкой
        Что получилось

        Три сценария в одном процессе, общая CRM, встречи и черновики в реальных Google-аккаунтах. Четыре логотипа рисуются параллельно и занимают столько же времени, сколько один.

        Что улучшить

        Картинки едут внутри ответа — на потоке нужны ссылки вместо base64. Приёмку стоит запускать автоматически на каждое изменение, а не руками.

        Тезисы
        • Три риска галлюцинаций: выдуманная дата, выдуманная цена, ложный игнор живого письма.
        • Дату закрыл подстановкой из n8n и проверкой на прошлое. Цены запрещены промптом полностью.
        • Ложный игнор — порогом уверенности: не уверен, значит нужен ответ. Потерять клиента дороже, чем показать лишнее.
        • Что улучшить: картинки сейчас едут внутри ответа, на потоке нужны ссылки. И приёмку стоит гонять на каждом изменении, а не руками.

          Подключение к n8n

          агент—
          письмо—
          логотип—

          Оформление

          —

          Это демонстрация. Форма никуда ничего не отправляет и не хранит. Настоящая карта не примется — введите тестовый номер ниже.
            Скидка
            К оплате $0

            Тестовые номера взяты из общепринятого набора для демо-платежей. Любой другой номер форма отклонит.

            Проводим оплату…

            Это займёт пару секунд.

            Стойте!

            —

            Оплачено

            Заказ — · —

              Демонстрационный заказ. Ни одного реального платежа не создано.