Есть готовый n8n workflow, который:
- По расписанию проверяет комментарии в Worksection за последние 3 дня.
- Если есть новые комментарии, формирует клиентский апдейт через OpenAI.
- Отправляет апдейт PM в Telegram на согласование.
- PM имеет кнопки:
Подтвердить и отправить клиенту, Переделать, Скопировать, Отклонить.
Нужно доработать именно существующий workflow, а не создавать новый с нуля. JSON workflow будет предоставлен.
1. Доработать Telegram кнопки
«Подтвердить и отправить клиенту»
При нажатии:
- клиенту отправляется только финальный текст для клиента;
- без служебных блоков, кнопок, названия проекта, технической информации;
- сообщение идет в
client_chat_id, указанный в конфигурации; - в PM чате появляется подтверждение;
- повторное нажатие не должно дублировать отправку.
«Переделать»
При нажатии:
- бот просит PM написать правку ответом;
- PM может отправить правку текстом или голосом;
- голос должен распознаваться в текст;
- OpenAI перегенерирует апдейт с учетом правки;
- PM получает новую версию с теми же кнопками;
- переделку можно делать несколько раз.
«Скопировать»
При нажатии:
- бот отправляет PM отдельным сообщением только финальный клиентский текст;
- без служебной информации и кнопок.
«Отклонить»
При нажатии:
- черновик получает статус отклоненного;
- клиенту ничего не отправляется;
- в PM чате показывается подтверждение;
- старые кнопки не должны позволять отправку отклоненного черновика.
2. Добавить логику напоминаний, если нет апдейта в СРМ Ворксекшн
Если за последние 3 дня в Ворксекшн нет новых содержательных комментариев, workflow не должен просто завершаться.
Первое напоминание в Ворксекшн
Бот должен добавить комментарий в соответствующую задачу Ворксекшн.
Пример текста:
Сергею, привет.
К сожалению, за последние 3 дня не было нового апдейта по этой задаче.
Пожалуйста, пропишите в этой задаче, что было сделано за последние 3 дня в рамках проекта, чтобы я мог взять эту информацию в работу, проанализировать ее и подготовить регулярный 3-дневный апдейт для клиента.
Проект: "..."
Задача Ворксекшн: {{task_id}}
Повторное напоминание в Telegram
Если после первого напоминания в Worksection новых комментариев все равно нет, на следующем запуске бот должен написать во внутреннюю Telegram группу специалиста.
Пример текста:
"тег чувака", привет.
Это электронный помощник руководителя проектов Solarweb.
Напоминаю, что в Worksection каждые 3 дня необходимо обновлять информацию по проекту: какие действия были выполнены, что сейчас в работе, какие есть результаты, риски или следующие шаги.
Это нужно для подготовки регулярных 3-дневных апдейтов для клиентов.
Проект: "..."
Направление: Таргетированная реклама
Задача Worksection: {{worksection_task_url}}
Пожалуйста, перейдите в Worksection и пропишите, что было сделано за последние дни.
Telegram сообщение должно идти не клиенту и не PM, а в отдельный внутренний чат, указанный в конфигурации.
3. Защита от спама
Нужно сохранять состояние в staticData, чтобы бот не дублировал напоминания.
Логика:
- Если нет апдейта и еще не было напоминания за этот период, написать в Worksection.
- Если напоминание в Worksection уже было, но комментариев все еще нет, написать в Telegram.
- Telegram напоминание не чаще 1 раза в день по одному проекту.
- Если специалист добавил новый комментарий, состояние напоминаний сбрасывается.
- Далее workflow работает стандартно: формирует апдейт и отправляет PM на согласование.
4. Что нужно учесть технически
Нужно проверить и доработать:
callback_query от Telegram кнопок;- сохранение черновиков в
staticData.pmDrafts; - связь
draft_id с конкретным проектом; - отправку только клиентского текста;
- обработку текстовых и голосовых правок;
- повторное отображение кнопок после переделки;
- защиту от повторной отправки;
- работу с длинными Telegram сообщениями;
- добавление комментария в Worksection через API;
- Telegram напоминания специалисту;
- логирование понятных статусов;
- чтобы в логах не светились API ключи или токены.
5. Конфигурация
Нужно добавить или предусмотреть поля:
specialist_name: 'Сергий',
specialist_telegram_username: 'собака сергий',
specialist_reminder_chat_id: '-100...',
worksection_task_url: 'https://"000".worksection.com/...',
reminder_enabled: true,
worksection_reminder_enabled: true,
telegram_reminder_enabled: true
Если какого-то поля нет, workflow не должен падать, а должен возвращать понятный статус.
6. Тестирование
Нужно реально протестировать workflow и показать результат на тестовых или реальных Telegram чатах.
Показать:
- PM получает апдейт с кнопками.
- «Подтвердить» отправляет клиенту только клиентский текст.
- «Переделать» работает с текстовой правкой.
- «Переделать» работает с голосовой правкой.
- «Скопировать» отправляет только клиентский текст.
- «Отклонить» не отправляет текст клиенту.
- Если в Worksection нет комментариев, бот пишет напоминание в Worksection.
- Если комментариев все еще нет, бот пишет напоминание в Telegram.
- Бот не спамит одинаковыми напоминаниями.
- После появления нового комментария бот формирует апдейт.
7. Что должно быть на выходе
Исполнитель должен предоставить:
- Обновленный JSON workflow.
- Краткое описание изменений.
- Инструкцию по env variables или credentials.
- Объяснение, какие поля изменять под другие проекты.
- Скриншоты или видео тестирования.
Критерий приемки
Я импортирую workflow, подставляю свои credentials/env variables и получаю готовую логику без ручной доработки:
- апдейт генерируется из Worksection;
- PM согласует, переделывает, копирует или отклоняет текст;
- клиенту идет только согласованный клиентский текст;
- если в Worksection нет апдейта, бот напоминает специалисту;
- дублирование отправок и спам напоминаниями исключены.