Є готовий 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 немає апдейту, бот нагадує спеціалісту;
- дублювання відправок і спам нагадуваннями виключені.