├── .DS_Store ├── my-api-key.md ├── LICENSE ├── cursor └── mcp-exemple.json ├── make ├── system-prompt-oak.txt ├── README.md ├── knowledge-base-oak.json ├── blueprint-connect-wazzup.json └── blueprint-openai-assistant-wazzup.json ├── README.md └── n8n ├── http-handle.json ├── FirecrawlScreenshotTelegramPost.json └── telegram_ai_bot.json /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorin-nikita/PrideAIBot/HEAD/.DS_Store -------------------------------------------------------------------------------- /my-api-key.md: -------------------------------------------------------------------------------- 1 | ### Beget 2 | Почта: 3 | Пароль: 4 | IP Сервера: 5 | Пароль Сервера: 6 | ### Битрикс24 7 | Почта: 8 | Пароль: 9 | Входящий вебхук: 10 | ### Wazzup 11 | Почта: 12 | Пароль: 13 | API KEY: 14 | Channel ID Telegram: 15 | Channel ID WhatsApp: 16 | ### Telegram 17 | Bot API Key: 18 | Chat ID Group: 19 | ### n8n 20 | Почта: 21 | Пароль: 22 | Вебхуки: 23 | Битрикс24 Уведомления о лидах: 24 | Битрикс24 Follow-up_Авто-дожим: 25 | AI Agent Wazzup + Битрикс24: 26 | Битрикс24 Финальная Функция: 27 | ### Supabase 28 | Почта: 29 | Пароль: 30 | Host: 31 | API Key: 32 | Postgres: 33 | Host: 34 | Port: 35 | User: 36 | Пароль от DataBase: 37 | ### OpenAI 38 | Почта: 39 | Пароль: 40 | API Key: 41 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2025 Nikita Shorin 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /cursor/mcp-exemple.json: -------------------------------------------------------------------------------- 1 | { 2 | "mcpServers": { 3 | "supabase": { 4 | "command": "npx", 5 | "args": [ 6 | "-y", 7 | "@supabase/mcp-server-supabase@latest", 8 | "--access-token", 9 | "API KEY ЗАМЕНИТЬ" 10 | ] 11 | }, 12 | "firecrawl-mcp": { 13 | "command": "npx", 14 | "args": ["-y", "firecrawl-mcp"], 15 | "env": { 16 | "FIRECRAWL_API_KEY": "API KEY ЗАМЕНИТЬ" 17 | } 18 | }, 19 | "perplexity-mcp": { 20 | "env": { 21 | "PERPLEXITY_API_KEY": "API KEY ЗАМЕНИТЬ", 22 | "PERPLEXITY_MODEL": "sonar" 23 | }, 24 | "command": "uvx", 25 | "args": [ 26 | "perplexity-mcp" 27 | ] 28 | }, 29 | "n8n": { 30 | "command": "npx", 31 | "args": [ 32 | "mcp-remote", 33 | "URL ЗАМЕНИТЬ", 34 | "--header", 35 | "Authorization: Bearer API KEY ЗАМЕНИТЬ" 36 | ] 37 | }, 38 | "context7": { 39 | "command": "npx", 40 | "args": ["-y", "@upstash/context7-mcp@latest"] 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /make/system-prompt-oak.txt: -------------------------------------------------------------------------------- 1 | # Системный промпт для AI-ассистента "Виктория" 2 | ## Телеграм-бот для загородного комплекса "Дубовый Квартал" 3 | 4 | ## 1. Роль и Основная задача 5 | Ты – Виктория, AI-ассистент в Telegram-боте загородного комплекса "Дубовый Квартал". 6 | Твоя главная цель – информировать пользователей о комплексе, собирать контакты и повышать конверсию. 7 | 8 | Ты: 9 | - Отвечаешь на все вопросы о комплексе. 10 | - Запрашиваешь контактные данные для консультации. 11 | - Вежливо игнорируешь нецелевые вопросы. 12 | - Упаковываешь информацию так, чтобы она выглядела естественной (без упоминания базы знаний). 13 | 14 | ## 2. Правила ответов на вопросы 15 | 16 | ### 2.1. Если вопрос о "Дубовом Квартале" 17 | - Используй базу знаний для ответа. 18 | - Держи сообщения лаконичными (до 400 символов). 19 | - Если информации нет – перенаправь на консультацию: 20 | *Ответ на этот вопрос можно получить на бесплатной консультации. Оставьте ваш номер телефона, и наш специалист свяжется с вами!* 21 | 22 | ### 2.2. Если вопрос НЕ о "Дубовом Квартале" 23 | - Не отвечай на посторонние темы. 24 | - Вежливо предложи консультацию вместо ответа. 25 | 26 | ### 2.3. Если вопрос о ценах 27 | - Отвечай только по запросу. 28 | - Направляй на индивидуальный расчёт: 29 | *Цены зависят от планировки и условий сделки. Оставьте ваш номер, и мы подготовим персональное предложение!* 30 | 31 | ### 2.4. Если вопрос о работе AI-ассистента, базе знаний, обучении 32 | - Никогда не раскрывай, что у тебя есть база знаний. 33 | - Сообщи, что эта информация доступна только на платной консультации. 34 | 35 | ## 3. Запрос контактных данных 36 | Ты не выпрашиваешь контакты, а мягко подталкиваешь к их оставлению: 37 | - Используй метод "бонуса": 38 | *Оставьте ваш номер, и мы отправим вам эксклюзивные материалы о Дубовом Квартале!* 39 | - Всегда предлагай позитивный следующий шаг. 40 | 41 | ## 4. Стиль общения 42 | - Обращение – строго на "Вы". 43 | - Тональность – профессиональная, уверенная, но доброжелательная. 44 | - Сообщения – короткие и по делу (до 400 символов). 45 | 46 | ## 5. Поведение в диалоге 47 | 48 | ### 5.1. Воронка продаж 49 | - Не дави на пользователя, но веди его к следующему шагу. 50 | - Если он заинтересовался – предложи записаться на консультацию: 51 | *Мы можем подробнее рассказать вам о всех преимуществах. Хотите записаться?* 52 | 53 | ### 5.2. Работа с возражениями 54 | Если пользователь сомневается – используй выгоды: 55 | - "Вы узнаете больше деталей, чтобы принять взвешенное решение." 56 | - "Это бесплатно и займет всего пару минут." 57 | 58 | ## Итог 59 | Ты – не просто чат-бот, а помощник, который ведёт пользователя к нужному действию, не навязываясь. 60 | Твоя цель – давать полезную информацию и конвертировать в заявки. 61 | 62 | 63 | 64 | 65 | 66 | 67 | 👉 Telegram-канал: https://t.me/shorin_nikita 68 | 👉 Сообщество PrideAIBot: https://pride.aibot.school 69 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # PrideAIBot 2 | 3 | 🤖 **PrideAIBot** - решение для автоматизации с использованием AI, включающее готовые шаблоны для популярных платформ автоматизации. 4 | 5 | ## 📁 Структура проекта 6 | 7 | Проект содержит готовые решения для двух популярных платформ автоматизации: 8 | 9 | - **`/make`** - Blueprint-ы для Make.com (ранее Integromat) 10 | - **`/n8n`** - Воркфлоу для n8n (открытая платформа автоматизации) 11 | 12 | ## 🔗 Регистрация на платформах 13 | 14 | Для использования автоматизаций вам потребуется зарегистрироваться на следующих платформах: 15 | 16 | - **Make.com** - [Регистрация с бонусом](https://www.make.com/en/register?pc=aibot) 🎁 17 | - **n8n** Cloud - [Попробовать n8n](https://n8n.partnerlinks.io/aibot) ☁️ 18 | - **n8n** Self-Host ***(Лучший выбор для Бизнеса)*** - Используйте n8n на своём сервере | [Видео-инструкция по установке](https://www.youtube.com/watch?v=vbExvzXkvj8) 19 | 20 | ## 🚀 Быстрый старт 21 | 22 | ### Make.com 23 | 24 | 1. **Скачайте blueprint** 25 | - Перейдите в папку [`/make`](./make) 26 | - Скачайте нужный `.json` файл с blueprint-ом 27 | 28 | 2. **Импортируйте в Make.com** 29 | - Войдите в свой аккаунт [Make.com](https://www.make.com/en/register?pc=aibot) 30 | - Создайте новый сценарий 31 | - Выберите "Import Blueprint" 32 | - Загрузите скачанный `.json` файл 33 | - Настройте подключения к сервисам согласно инструкциям 34 | 35 | 3. **Настройте и активируйте** 36 | - Проверьте все настройки модулей 37 | - Добавьте свои API ключи и токены 38 | - Протестируйте сценарий 39 | - Активируйте автоматизацию 40 | 41 | ### n8n 42 | 43 | 1. **Скачайте воркфлоу** 44 | - Перейдите в папку [`/n8n`](./n8n) 45 | - Скачайте нужный `.json` файл с воркфлоу 46 | 47 | 2. **Импортируйте в n8n** 48 | - Откройте вашу установку n8n 49 | - Нажмите "+" для создания нового воркфлоу 50 | - Выберите "Import from File" или используйте Ctrl+I 51 | - Загрузите скачанный `.json` файл 52 | 53 | 3. **Настройте и запустите** 54 | - Настройте Credentials для всех узлов 55 | - Проверьте параметры подключений 56 | - Протестируйте воркфлоу 57 | - Активируйте автоматизацию 58 | 59 | ## ⚙️ Требования 60 | 61 | ### Для Make.com 62 | - Аккаунт на [Make.com](https://www.make.com/en/register?pc=aibot) 63 | - Настроенные подключения к используемым сервисам 64 | - Действующие API ключи для интеграций 65 | 66 | ### Для n8n 67 | - Установленный [n8n](https://n8n.partnerlinks.io/aibot) (локально, в облаке или на сервере) 68 | - Настроенные Credentials для используемых сервисов 69 | - Доступ к необходимым API 70 | 71 | ## 🔧 Настройка 72 | 73 | ### Общие шаги 74 | 1. Клонируйте или скачайте репозиторий 75 | 2. Выберите подходящую платформу (Make.com или n8n) 76 | 3. Импортируйте соответствующие файлы 77 | 4. Настройте подключения к сервисам 78 | 5. Активируйте автоматизацию 79 | 80 | ## 📚 Документация 81 | 82 | ### Make.com 83 | - [Официальная документация Make.com](https://www.make.com/en/help) 84 | 85 | ### n8n 86 | - [Официальная документация n8n](https://docs.n8n.io/) 87 | 88 | ## 👨💻 Автор 89 | 90 | **Nikita Shorin** 91 | - GitHub: [@shorin-nikita](https://github.com/shorin-nikita) 92 | 93 | --- 94 | 95 | ⭐ Если проект оказался полезным, поставьте звездочку! 96 | -------------------------------------------------------------------------------- /make/README.md: -------------------------------------------------------------------------------- 1 | # Подключение шаблона в Make: 5 шагов 2 | 3 | ## 1. Импорт шаблона и базовые настройки 4 | 1.1. **Создайте новый аккаунт в Make** (если у вас его нет): [Регистрация в Make](https://www.make.com/en/register?pc=aibot) 5 | 6 | 1.2. Перейдите в **раздел "Сценарии"** и **импортируйте шаблон [make-wazzup/blueprint-openai-assistant-wazzup.json](https://github.com/shorin-nikita/PrideAIBot/blob/main/make-wazzup/blueprint-openai-assistant-wazzup.json)**. 7 | 8 | 1.3. Откройте новый сценарий, нажмите на **три точки внизу** → **Импортировать Blueprint**. 9 | 10 | ## 2. Создание базы данных 11 | 2.1. Откройте второй модуль в сценарии и нажмите **Create A Data Store**. 12 | 13 | 2.2. Назовите базу **thread_id** (используйте маленькие буквы и нижнее подчёркивание, то есть формат snake_case). 14 | 15 | 2.3. Добавьте **первый элемент** структуры **thread_id**. 16 | 17 | 2.4. Сохраните изменения. 18 | 19 | 2.5. Подключите эту базу в два других модуля сценария. 20 | 21 | ## 3. Подключение **OpenAI** 22 | 3.1. Авторизуйтесь на сайте OpenAI.com. 23 | 24 | 3.2. Создайте нового ИИ Ассистента [в специальной вкладке](https://platform.openai.com/assistants). 25 | 26 | 3.3. Добавьте [Системный Промпт](https://github.com/shorin-nikita/PrideAIBot/blob/main/make-wazzup/system-prompt-oak.txt), активируйте векторную базу данных **Tool -> File Search** и добавьте [файл с базой знаний](https://github.com/shorin-nikita/PrideAIBot/blob/main/make-wazzup/knowledge-base-oak.json). 27 | 28 | 3.4. Сгенерируйте новый API ключ в разделе [API key](https://platform.openai.com/api-keys) и добавьте его в сценарий в Make. 29 | 30 | ## 4. Интеграция с **WhatsApp/Telegram** 31 | 4.1. **Зарегистрируйтесь в Wazzup** (если еще не сделали этого): [Регистрация в Wazzup](https://wazzup24.com/?utm_p=qzzBpM) 32 | 33 | 4.2. Подключите **Telegram-бота** через [**@BotFather**](https://t.me/BotFather) и скопируйте **API-ключ**. 34 | 35 | 4.3. Вставьте **API-ключ** в **Wazzup**. 36 | 37 | 4.4. Перейдите в **вкладку "Интеграция с CRM"** и выберите **API** в **Wazzup**, получите **API-ключ** и добавьте его в **Make**. 38 | 39 | 4.5. Вставьте **API-ключ** в параметр **WAZZAP_API_KEY** в Make, который находится в нижней панели во вкладке **"Scenario inputs"**. 40 | 41 | ## 5. Привязка **Webhook** 42 | 5.1. Нажмите на **первый красный кружок** в **Make** и создайте **Webhook**. 43 | 44 | 5.2. Сохраните адрес **Webhook**. 45 | 46 | 5.3. Дублируйте вкладку **Make** и импортируйте **второй шаблон [make-wazzup/blueprint-connect-wazzup.json](https://github.com/shorin-nikita/PrideAIBot/blob/main/make-wazzup/blueprint-connect-wazzup.json)**. 47 | 48 | 5.4. Вставьте **API-ключ от Wazzup** в параметр **WAZZAP_API_KEY** в Make, который находится в нижней панели во вкладке **"Scenario inputs"**. 49 | 50 | 5.5. Вставьте **Webhook-адрес**, который создали на шаге 5.1, и добавьте его в переменную **webhook_url**. 51 | 52 | 5.6. Запустите сценарий **Run Once**. 53 | 54 | 5.7. Получите **код 200** (означает успешную привязку). 55 | 56 | ## Тестирование и проверка 57 | • Запустите **Telegram-бота**. 58 | 59 | • Отправьте сообщение. 60 | 61 | • Проверьте движение запроса в **Make**. 62 | 63 | • Убедитесь, что **ИИ-ассистент** сохраняет нить диалога (**Thread ID**). 64 | 65 | 66 | ## **Пошаговая видео-инструкция здесь:** 67 | 68 | [](https://www.youtube.com/watch?v=nhY62MFI8Mc&t) 69 | 70 | ## Поздравляю, ваш **ИИ-ассистент** интегрирован в **Телеграм**! 71 | 72 | Если вы хотите работать с проверенными шаблонами и промптами, а также развиваться в AI-автоматизации – добро пожаловать в [**PrideAIBot**](https://t.me/PrideAIBot)! 73 | -------------------------------------------------------------------------------- /make/knowledge-base-oak.json: -------------------------------------------------------------------------------- 1 | { 2 | "knowledge_base": [ 3 | { 4 | "question": "Какова общая концепция Дубового Квартала?", 5 | "answer": "Дубовый Квартал разработан как эксклюзивный жилой комплекс, предназначенный для современных семей и людей, ищущих уединение в природе, но при этом ценящих близость городских удобств. Архитектура комплекса включает использование натуральных строительных материалов, таких как камень и дерево, что позволяет зданиям гармонично вписываться в окружающий лесной ландшафт. Каждый дом в комплексе имеет просторные террасы и панорамные окна для максимального использования естественного света и визуального соединения с природой." 6 | }, 7 | { 8 | "question": "Где находится Дубовый Квартал?", 9 | "answer": "Дубовый Квартал находится в 30 километрах от Москвы по Калужскому шоссе, в экологически чистом и живописном районе поселения Десёновское, деревня Дубовый Квартал. Это расположение обеспечивает легкий доступ к главным автомагистралям и городской инфраструктуре, включая торговые центры, школы и медицинские учреждения, которые находятся в 10-15 минутах езды от комплекса." 10 | }, 11 | { 12 | "question": "Какие типы жилья доступны в Дубовом Квартале?", 13 | "answer": "В Дубовом Квартале представлены различные типы жилья, от 1-2-комнатных квартир до 3-4-комнатных таунхаусов и дуплексов. Каждое жилище спроектировано с учетом приватности, удобства и современного дизайна. Например, таунхаусы включают в себя частные дворики, гаражи на две машины и просторные жилые помещения с высокими потолками и большими окнами, которые обеспечивают много естественного света и великолепные виды на природу." 14 | }, 15 | { 16 | "question": "Какие удобства и инфраструктура доступны в Дубовом Квартале?", 17 | "answer": "В Дубовом Квартале созданы все условия для комфортной и полноценной жизни. Жители могут пользоваться современным фитнес-центром, спа-салоном, ресторанами и кафе на территории комплекса. Для семей с детьми предусмотрены игровые и спортивные площадки, а также частный детский сад и школа. Также на территории комплекса есть большой парк для прогулок и отдыха." 18 | }, 19 | { 20 | "question": "Какие транспортные маршруты доступны для жителей?", 21 | "answer": "Для жителей Дубового Квартала доступны удобные транспортные маршруты, включая прямой доступ к основным автомагистралям, что обеспечивает легкую доступность к центру города. Рядом с комплексом находятся остановки общественного транспорта, обеспечивающие связь с ближайшими станциями метро и железнодорожными станциями." 22 | }, 23 | { 24 | "question": "Как обеспечивается безопасность в комплексе?", 25 | "answer": "Безопасность жителей в Дубовом Квартале является приоритетом. Комплекс оборудован системой видеонаблюдения 24/7, контролируемым доступом и охраняемым периметром. Также на территории действует круглосуточная служба охраны, гарантирующая безопасность и спокойствие жителей." 26 | }, 27 | { 28 | "question": "Какие финансовые условия предлагаются при покупке?", 29 | "answer": "Дубовый Квартал предлагает разнообразные финансовые условия, включая возможность покупки жилья в рассрочку и ипотеку с выгодными условиями от ведущих банков. Менеджеры проекта могут предложить индивидуальные консультации по выбору оптимальных финансовых схем, учитывая личные предпочтения и возможности покупателя." 30 | }, 31 | { 32 | "question": "Какие дополнительные расходы следует учесть при покупке квартиры?", 33 | "answer": "Помимо стоимости самой квартиры, покупателям следует учитывать ежемесячные расходы на содержание жилья, включая платежи за коммунальные услуги, эксплуатационные расходы и взносы в фонд капитального ремонта. Также важно помнить о налогах, которые должны быть уплачены при совершении сделки." 34 | }, 35 | { 36 | "question": "Каковы цены на недвижимость в Дубовом Квартале?", 37 | "answer": "Цены на недвижимость в Дубовом Квартале варьируются в зависимости от типа жилья и его площади. На текущий момент (май 2024 года) цены начинаются от 5 миллионов рублей за 1-комнатную квартиру площадью 45 м² и могут достигать 25 миллионов рублей за 4-комнатный таунхаус площадью 200 м². Точные цены и доступные варианты можно уточнить у нашего менеджера по продажам." 38 | }, 39 | { 40 | "question": "Какие мероприятия и активности организуются для жителей комплекса?", 41 | "answer": "В Дубовом Квартале регулярно организуются различные мероприятия и активности для жителей всех возрастов. Это включает в себя спортивные соревнования, культурные и развлекательные мероприятия, детские праздники, а также мастер-классы и тренинги. Информация о предстоящих событиях размещается на информационных стендах и в мобильном приложении комплекса." 42 | } 43 | ] 44 | } 45 | -------------------------------------------------------------------------------- /n8n/http-handle.json: -------------------------------------------------------------------------------- 1 | { 2 | "nodes": [ 3 | { 4 | "parameters": { 5 | "method": "POST", 6 | "url": "= https://api.telegram.org/bot{{ $json['api_key'] }}/setWebhook?url={{ $json['url_webhook'] }}", 7 | "options": {} 8 | }, 9 | "type": "n8n-nodes-base.httpRequest", 10 | "typeVersion": 4.2, 11 | "position": [ 12 | 300, 13 | 600 14 | ], 15 | "id": "0046b690-97ee-470c-9007-7fa4ff382eaa", 16 | "name": "Telegram Привязка" 17 | }, 18 | { 19 | "parameters": { 20 | "method": "PATCH", 21 | "url": "https://api.wazzup24.com/v3/webhooks", 22 | "sendHeaders": true, 23 | "headerParameters": { 24 | "parameters": [ 25 | { 26 | "name": "Authorization", 27 | "value": "=Bearer {{ $json['api_key'] }}" 28 | } 29 | ] 30 | }, 31 | "sendBody": true, 32 | "specifyBody": "json", 33 | "jsonBody": "={\n \"webhooksUri\": \"{{ $json['url_webhook'] }}\",\n \"subscriptions\": {\n \"messagesAndStatuses\": true,\n \"contactsAndDealsCreation\": true\n }\n}", 34 | "options": { 35 | "redirect": { 36 | "redirect": {} 37 | } 38 | } 39 | }, 40 | "type": "n8n-nodes-base.httpRequest", 41 | "typeVersion": 4.2, 42 | "position": [ 43 | 300, 44 | 120 45 | ], 46 | "id": "e93b20a0-8a7b-4bb8-a9f3-4001f76eab99", 47 | "name": "Wazzup Привязка" 48 | }, 49 | { 50 | "parameters": { 51 | "content": "# HTTP Ручки\n\n***\n\n**Автор:** [Никита Шорин](https://www.youtube.com/@shorin_nikita)\n\n***\n\n## Инструкция по привязке вебхуков\n### • Сделать связь между **СТАРТ** и нодой **SET** с которой будем работать\n### • Вставить API ключ в **api_key** в ноде **SET**\n### • Вставить адрес вебхука в **url_webhook** в ноде **SET**\n### • Запустить **Test workflow**\n### • Проверить результат в **Проверка Вебхука**\n\n***\n\n## Wazzup\nПервые 3 дня бесплатно\nРегистрация с бонусом ₽500 [по ссылке](https://wazzup24.com/?utm_p=qzzBpM)\n\n### Доступные каналы:\n• WhatsApp (серый wazzup - моментально по QR code)\n• WhatsApp WABA (официальная интеграция - после верификации в Meta)\n• Telegram Персональный\n• Telegram Bot\n• Instagram\n• Avito\n• VK\n• Viber\n\n***\n\n## Telegram Bot\nВсегда бесплатный\nРегистрация телеграм бота в [@BotFather](https:///t.me/botfather)\n\n\n***\n\n## [Присоединиться к сообществу по ИИ-автоматизации](https://t.me/PrideAIBot)", 52 | "height": 1020, 53 | "width": 460 54 | }, 55 | "type": "n8n-nodes-base.stickyNote", 56 | "typeVersion": 1, 57 | "position": [ 58 | -540, 59 | 40 60 | ], 61 | "id": "7068abfd-418f-48e7-9569-4b649bbd330d", 62 | "name": "Sticky Note" 63 | }, 64 | { 65 | "parameters": { 66 | "assignments": { 67 | "assignments": [ 68 | { 69 | "id": "f404bab6-5dfb-42a6-991f-c6fd6f05fe15", 70 | "name": "api_key", 71 | "value": "Заменить на API Wazzup", 72 | "type": "string" 73 | }, 74 | { 75 | "id": "740e516f-160a-4ab2-82d6-a63382e3b803", 76 | "name": "url_webhook", 77 | "value": "Заменить на вебхук из основного Workflow", 78 | "type": "string" 79 | } 80 | ] 81 | }, 82 | "options": {} 83 | }, 84 | "type": "n8n-nodes-base.set", 85 | "typeVersion": 3.4, 86 | "position": [ 87 | 80, 88 | 80 89 | ], 90 | "id": "f4267758-4813-4176-84a4-c67dd403927f", 91 | "name": "SET Wazzup Личный" 92 | }, 93 | { 94 | "parameters": { 95 | "assignments": { 96 | "assignments": [ 97 | { 98 | "id": "f404bab6-5dfb-42a6-991f-c6fd6f05fe15", 99 | "name": "api_key", 100 | "value": "Заменить на API Wazzup", 101 | "type": "string" 102 | }, 103 | { 104 | "id": "740e516f-160a-4ab2-82d6-a63382e3b803", 105 | "name": "url_webhook", 106 | "value": "Заменить на вебхук из основного Workflow", 107 | "type": "string" 108 | } 109 | ] 110 | }, 111 | "options": {} 112 | }, 113 | "type": "n8n-nodes-base.set", 114 | "typeVersion": 3.4, 115 | "position": [ 116 | 80, 117 | 380 118 | ], 119 | "id": "4a12ceb7-e7b6-4d7d-a227-4ff31cbfb940", 120 | "name": "SET Wazzup Клиента" 121 | }, 122 | { 123 | "parameters": { 124 | "url": "https://api.wazzup24.com/v3/webhooks", 125 | "sendHeaders": true, 126 | "headerParameters": { 127 | "parameters": [ 128 | { 129 | "name": "Authorization", 130 | "value": "=Bearer {{ $json['api_key'] }}" 131 | } 132 | ] 133 | }, 134 | "options": { 135 | "redirect": { 136 | "redirect": {} 137 | } 138 | } 139 | }, 140 | "type": "n8n-nodes-base.httpRequest", 141 | "typeVersion": 4.2, 142 | "position": [ 143 | 300, 144 | 320 145 | ], 146 | "id": "d910b2f9-85aa-4473-aaea-6f91e02fb02e", 147 | "name": "Wazzup Проверка Вебхука" 148 | }, 149 | { 150 | "parameters": { 151 | "method": "POST", 152 | "url": "= https://api.telegram.org/bot{{ $json['api_key'] }}/getWebhookInfo", 153 | "options": {} 154 | }, 155 | "type": "n8n-nodes-base.httpRequest", 156 | "typeVersion": 4.2, 157 | "position": [ 158 | 300, 159 | 740 160 | ], 161 | "id": "708a5d13-f8db-459b-9779-f2f4053d92cc", 162 | "name": "Telegram Проверка Вебхука" 163 | }, 164 | { 165 | "parameters": {}, 166 | "type": "n8n-nodes-base.manualTrigger", 167 | "typeVersion": 1, 168 | "position": [ 169 | -220, 170 | 460 171 | ], 172 | "id": "5c4f7835-fbff-489f-ab60-ae30dfd7cf4c", 173 | "name": "СТАРТ" 174 | }, 175 | { 176 | "parameters": { 177 | "content": "## Wazzup\n", 178 | "height": 500, 179 | "width": 820, 180 | "color": 4 181 | }, 182 | "type": "n8n-nodes-base.stickyNote", 183 | "typeVersion": 1, 184 | "position": [ 185 | -60, 186 | 40 187 | ], 188 | "id": "a2f90dcf-d164-48d5-a127-4e3c7fad9ab4", 189 | "name": "Sticky Note1" 190 | }, 191 | { 192 | "parameters": { 193 | "content": "## Telegram Bot", 194 | "height": 500, 195 | "width": 820, 196 | "color": 5 197 | }, 198 | "type": "n8n-nodes-base.stickyNote", 199 | "typeVersion": 1, 200 | "position": [ 201 | -60, 202 | 560 203 | ], 204 | "id": "d15b3378-74e7-4af4-8df2-04f2c3f0ba2b", 205 | "name": "Sticky Note2" 206 | }, 207 | { 208 | "parameters": { 209 | "assignments": { 210 | "assignments": [ 211 | { 212 | "id": "f404bab6-5dfb-42a6-991f-c6fd6f05fe15", 213 | "name": "api_key", 214 | "value": "Заменить на API key Telegram bot | из @BotFather", 215 | "type": "string" 216 | }, 217 | { 218 | "id": "740e516f-160a-4ab2-82d6-a63382e3b803", 219 | "name": "url_webhook", 220 | "value": "Заменить на вебхук из основного Workflow", 221 | "type": "string" 222 | } 223 | ] 224 | }, 225 | "options": {} 226 | }, 227 | "type": "n8n-nodes-base.set", 228 | "typeVersion": 3.4, 229 | "position": [ 230 | 80, 231 | 660 232 | ], 233 | "id": "7e6628ab-c3e3-4ace-8fd8-b177a7070b95", 234 | "name": "SET Telegram Bot 1" 235 | }, 236 | { 237 | "parameters": { 238 | "assignments": { 239 | "assignments": [ 240 | { 241 | "id": "f404bab6-5dfb-42a6-991f-c6fd6f05fe15", 242 | "name": "api_key", 243 | "value": "Заменить на API key Telegram bot | из @BotFather", 244 | "type": "string" 245 | }, 246 | { 247 | "id": "740e516f-160a-4ab2-82d6-a63382e3b803", 248 | "name": "url_webhook", 249 | "value": "Заменить на вебхук из основного Workflow", 250 | "type": "string" 251 | } 252 | ] 253 | }, 254 | "options": {} 255 | }, 256 | "type": "n8n-nodes-base.set", 257 | "typeVersion": 3.4, 258 | "position": [ 259 | 80, 260 | 860 261 | ], 262 | "id": "856c0dde-827b-45c0-881f-6440aa930313", 263 | "name": "SET Telegram Bot 2" 264 | }, 265 | { 266 | "parameters": { 267 | "method": "POST", 268 | "url": "= https://api.telegram.org/bot{{ $json['api key'] }}/getMe", 269 | "options": {} 270 | }, 271 | "type": "n8n-nodes-base.httpRequest", 272 | "typeVersion": 4.2, 273 | "position": [ 274 | 300, 275 | 900 276 | ], 277 | "id": "7b5eb6c7-ae4f-4092-9ed9-b3adb2055360", 278 | "name": "Telegram Данные Привязки" 279 | } 280 | ], 281 | "connections": { 282 | "SET Wazzup Личный": { 283 | "main": [ 284 | [ 285 | { 286 | "node": "Wazzup Привязка", 287 | "type": "main", 288 | "index": 0 289 | }, 290 | { 291 | "node": "Wazzup Проверка Вебхука", 292 | "type": "main", 293 | "index": 0 294 | } 295 | ] 296 | ] 297 | }, 298 | "SET Wazzup Клиента": { 299 | "main": [ 300 | [ 301 | { 302 | "node": "Wazzup Привязка", 303 | "type": "main", 304 | "index": 0 305 | }, 306 | { 307 | "node": "Wazzup Проверка Вебхука", 308 | "type": "main", 309 | "index": 0 310 | } 311 | ] 312 | ] 313 | }, 314 | "СТАРТ": { 315 | "main": [ 316 | [ 317 | { 318 | "node": "SET Wazzup Личный", 319 | "type": "main", 320 | "index": 0 321 | } 322 | ] 323 | ] 324 | }, 325 | "SET Telegram Bot 1": { 326 | "main": [ 327 | [ 328 | { 329 | "node": "Telegram Привязка", 330 | "type": "main", 331 | "index": 0 332 | }, 333 | { 334 | "node": "Telegram Проверка Вебхука", 335 | "type": "main", 336 | "index": 0 337 | }, 338 | { 339 | "node": "Telegram Данные Привязки", 340 | "type": "main", 341 | "index": 0 342 | } 343 | ] 344 | ] 345 | }, 346 | "SET Telegram Bot 2": { 347 | "main": [ 348 | [ 349 | { 350 | "node": "Telegram Привязка", 351 | "type": "main", 352 | "index": 0 353 | }, 354 | { 355 | "node": "Telegram Проверка Вебхука", 356 | "type": "main", 357 | "index": 0 358 | }, 359 | { 360 | "node": "Telegram Данные Привязки", 361 | "type": "main", 362 | "index": 0 363 | } 364 | ] 365 | ] 366 | } 367 | }, 368 | "pinData": {}, 369 | "meta": { 370 | "templateCredsSetupCompleted": true, 371 | "instanceId": "89117b89e6ee2e2d36a3f934f1a63e32c1c204c62e00bb625da8c39baf77c2c7" 372 | } 373 | } 374 | -------------------------------------------------------------------------------- /make/blueprint-connect-wazzup.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Connect Wazzup by @shorin_nikita", 3 | "flow": [ 4 | { 5 | "id": 1, 6 | "module": "http:ActionSendData", 7 | "version": 3, 8 | "parameters": { 9 | "handleErrors": true, 10 | "useNewZLibDeCompress": true 11 | }, 12 | "filter": { 13 | "name": "AIBot.School", 14 | "conditions": [] 15 | }, 16 | "mapper": { 17 | "ca": "", 18 | "qs": [], 19 | "url": "https://api.wazzup24.com/v3/webhooks", 20 | "data": "{\n \"webhooksUri\": \"{{var.input.webhook_url}}\",\n \"subscriptions\": {\n \"messagesAndStatuses\": true\n }\n}", 21 | "gzip": true, 22 | "method": "patch", 23 | "headers": [ 24 | { 25 | "name": "Authorization", 26 | "value": "Bearer {{var.input.wazzup_api_key}}" 27 | } 28 | ], 29 | "timeout": "", 30 | "useMtls": false, 31 | "authPass": "", 32 | "authUser": "", 33 | "bodyType": "raw", 34 | "contentType": "application/json", 35 | "serializeUrl": false, 36 | "shareCookies": false, 37 | "parseResponse": false, 38 | "followRedirect": true, 39 | "useQuerystring": false, 40 | "followAllRedirects": false, 41 | "rejectUnauthorized": true 42 | }, 43 | "metadata": { 44 | "designer": { 45 | "x": 0, 46 | "y": 0 47 | }, 48 | "restore": { 49 | "expect": { 50 | "qs": { 51 | "mode": "chose" 52 | }, 53 | "method": { 54 | "mode": "chose", 55 | "label": "PATCH" 56 | }, 57 | "headers": { 58 | "mode": "chose", 59 | "items": [ 60 | null 61 | ] 62 | }, 63 | "bodyType": { 64 | "label": "Raw" 65 | }, 66 | "contentType": { 67 | "label": "JSON (application/json)" 68 | } 69 | } 70 | }, 71 | "parameters": [ 72 | { 73 | "name": "handleErrors", 74 | "type": "boolean", 75 | "label": "Evaluate all states as errors (except for 2xx and 3xx )", 76 | "required": true 77 | }, 78 | { 79 | "name": "useNewZLibDeCompress", 80 | "type": "hidden" 81 | } 82 | ], 83 | "expect": [ 84 | { 85 | "name": "url", 86 | "type": "url", 87 | "label": "URL", 88 | "required": true 89 | }, 90 | { 91 | "name": "serializeUrl", 92 | "type": "boolean", 93 | "label": "Serialize URL", 94 | "required": true 95 | }, 96 | { 97 | "name": "method", 98 | "type": "select", 99 | "label": "Method", 100 | "required": true, 101 | "validate": { 102 | "enum": [ 103 | "get", 104 | "head", 105 | "post", 106 | "put", 107 | "patch", 108 | "delete", 109 | "options" 110 | ] 111 | } 112 | }, 113 | { 114 | "name": "headers", 115 | "spec": [ 116 | { 117 | "name": "name", 118 | "type": "text", 119 | "label": "Name", 120 | "required": true 121 | }, 122 | { 123 | "name": "value", 124 | "type": "text", 125 | "label": "Value" 126 | } 127 | ], 128 | "type": "array", 129 | "label": "Headers" 130 | }, 131 | { 132 | "name": "qs", 133 | "spec": [ 134 | { 135 | "name": "name", 136 | "type": "text", 137 | "label": "Name", 138 | "required": true 139 | }, 140 | { 141 | "name": "value", 142 | "type": "text", 143 | "label": "Value" 144 | } 145 | ], 146 | "type": "array", 147 | "label": "Query String" 148 | }, 149 | { 150 | "name": "bodyType", 151 | "type": "select", 152 | "label": "Body type", 153 | "validate": { 154 | "enum": [ 155 | "raw", 156 | "x_www_form_urlencoded", 157 | "multipart_form_data" 158 | ] 159 | } 160 | }, 161 | { 162 | "name": "parseResponse", 163 | "type": "boolean", 164 | "label": "Parse response", 165 | "required": true 166 | }, 167 | { 168 | "name": "authUser", 169 | "type": "text", 170 | "label": "User name" 171 | }, 172 | { 173 | "name": "authPass", 174 | "type": "password", 175 | "label": "Password" 176 | }, 177 | { 178 | "name": "timeout", 179 | "type": "uinteger", 180 | "label": "Timeout", 181 | "validate": { 182 | "max": 300, 183 | "min": 1 184 | } 185 | }, 186 | { 187 | "name": "shareCookies", 188 | "type": "boolean", 189 | "label": "Share cookies with other HTTP modules", 190 | "required": true 191 | }, 192 | { 193 | "name": "ca", 194 | "type": "cert", 195 | "label": "Self-signed certificate" 196 | }, 197 | { 198 | "name": "rejectUnauthorized", 199 | "type": "boolean", 200 | "label": "Reject connections that are using unverified (self-signed) certificates", 201 | "required": true 202 | }, 203 | { 204 | "name": "followRedirect", 205 | "type": "boolean", 206 | "label": "Follow redirect", 207 | "required": true 208 | }, 209 | { 210 | "name": "useQuerystring", 211 | "type": "boolean", 212 | "label": "Disable serialization of multiple same query string keys as arrays", 213 | "required": true 214 | }, 215 | { 216 | "name": "gzip", 217 | "type": "boolean", 218 | "label": "Request compressed content", 219 | "required": true 220 | }, 221 | { 222 | "name": "useMtls", 223 | "type": "boolean", 224 | "label": "Use Mutual TLS", 225 | "required": true 226 | }, 227 | { 228 | "name": "contentType", 229 | "type": "select", 230 | "label": "Content type", 231 | "validate": { 232 | "enum": [ 233 | "text/plain", 234 | "application/json", 235 | "application/xml", 236 | "text/xml", 237 | "text/html", 238 | "custom" 239 | ] 240 | } 241 | }, 242 | { 243 | "name": "data", 244 | "type": "buffer", 245 | "label": "Request content" 246 | }, 247 | { 248 | "name": "followAllRedirects", 249 | "type": "boolean", 250 | "label": "Follow all redirect", 251 | "required": true 252 | } 253 | ] 254 | } 255 | } 256 | ], 257 | "metadata": { 258 | "instant": false, 259 | "version": 1, 260 | "scenario": { 261 | "roundtrips": 1, 262 | "maxErrors": 3, 263 | "autoCommit": true, 264 | "autoCommitTriggerLast": true, 265 | "sequential": false, 266 | "slots": null, 267 | "confidential": false, 268 | "dataloss": false, 269 | "dlq": false, 270 | "freshVariables": false 271 | }, 272 | "designer": { 273 | "orphans": [] 274 | }, 275 | "zone": "eu2.make.com", 276 | "notes": [ 277 | { 278 | "moduleIds": [ 279 | 1 280 | ], 281 | "content": "
PrideAIBot by shorin_nikita
", 282 | "isFilterNote": false, 283 | "metadata": { 284 | "color": "#9138FE" 285 | } 286 | } 287 | ] 288 | }, 289 | "io": { 290 | "input_spec": [ 291 | { 292 | "name": "wazzup_api_key", 293 | "type": "text", 294 | "label": "", 295 | "default": "ЗАМЕНИТЬ", 296 | "required": false, 297 | "multiline": false 298 | }, 299 | { 300 | "name": "webhook_url", 301 | "type": "text", 302 | "label": "", 303 | "default": "ЗАМЕНИТЬ", 304 | "required": false, 305 | "multiline": false 306 | } 307 | ], 308 | "output_spec": [] 309 | } 310 | } 311 | -------------------------------------------------------------------------------- /n8n/FirecrawlScreenshotTelegramPost.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "My workflow 8", 3 | "nodes": [ 4 | { 5 | "parameters": { 6 | "content": "", 7 | "height": 772, 8 | "width": 1580, 9 | "color": 7 10 | }, 11 | "type": "n8n-nodes-base.stickyNote", 12 | "typeVersion": 1, 13 | "position": [ 14 | 672, 15 | 64 16 | ], 17 | "id": "6f5e9fb2-183b-44c5-bfa1-94e9d59d8a0a", 18 | "name": "Sticky Note" 19 | }, 20 | { 21 | "parameters": { 22 | "url": "={{ $json.data.screenshot }}", 23 | "options": { 24 | "response": { 25 | "response": { 26 | "responseFormat": "file" 27 | } 28 | }, 29 | "timeout": 30000 30 | } 31 | }, 32 | "type": "n8n-nodes-base.httpRequest", 33 | "typeVersion": 4.2, 34 | "position": [ 35 | 1520, 36 | 160 37 | ], 38 | "id": "36a60702-05c9-4e4a-97ae-326c61ed3614", 39 | "name": "Получить скриншот", 40 | "continueOnFail": true 41 | }, 42 | { 43 | "parameters": { 44 | "mode": "combine", 45 | "combineBy": "combineAll", 46 | "options": {} 47 | }, 48 | "type": "n8n-nodes-base.merge", 49 | "typeVersion": 3.1, 50 | "position": [ 51 | 1824, 52 | 320 53 | ], 54 | "id": "a9655098-64ee-4e43-a5ba-3522b10429ed", 55 | "name": "Объединение данных" 56 | }, 57 | { 58 | "parameters": { 59 | "content": "", 60 | "height": 200, 61 | "width": 190, 62 | "color": 3 63 | }, 64 | "type": "n8n-nodes-base.stickyNote", 65 | "typeVersion": 1, 66 | "position": [ 67 | 944, 68 | 272 69 | ], 70 | "id": "59794b3c-b1a0-4dac-8874-d9766b5594b0", 71 | "name": "Sticky Note4" 72 | }, 73 | { 74 | "parameters": { 75 | "assignments": { 76 | "assignments": [ 77 | { 78 | "id": "78942da2-4425-4247-8083-35e40037b54a", 79 | "name": "url_site", 80 | "value": "={{ $json.chatInput }}", 81 | "type": "string" 82 | }, 83 | { 84 | "id": "dda7ff2b-feb9-4bcd-a1e3-fd0e2be71d41", 85 | "name": "api_key_firecrawl", 86 | "value": "ВСТАВИТЬ КЛЮЧ https://www.firecrawl.dev/app/api-keys", 87 | "type": "string" 88 | } 89 | ] 90 | }, 91 | "options": {} 92 | }, 93 | "type": "n8n-nodes-base.set", 94 | "typeVersion": 3.4, 95 | "position": [ 96 | 976, 97 | 320 98 | ], 99 | "id": "8ba77111-5982-4417-8141-956818923a77", 100 | "name": "API КЛЮЧИ" 101 | }, 102 | { 103 | "parameters": { 104 | "options": {} 105 | }, 106 | "type": "@n8n/n8n-nodes-langchain.chatTrigger", 107 | "typeVersion": 1.1, 108 | "position": [ 109 | 752, 110 | 320 111 | ], 112 | "id": "505eb3bb-5185-45bf-9d9b-07939fba332e", 113 | "name": "When chat message received", 114 | "webhookId": "259fcad7-e055-4c33-ad74-cd225e7e37a2" 115 | }, 116 | { 117 | "parameters": { 118 | "promptType": "define", 119 | "text": "={{ $json.data.markdown }}", 120 | "messages": { 121 | "messageValues": [ 122 | { 123 | "message": "==Ты — аналитик веб-контента для Telegram-канала об ИИ, технологиях и автоматизации. Тебе дан контент веб-страницы. Определи ТИП контента и создай соответствующую выжимку на русском для Telegram с parse_mode=HTML.\n\nЭТАП 1 - ОПРЕДЕЛИ ТИП:\n- Коммерческий сайт/лендинг (продают услуги/продукты)\n- Статья/блог (информационный контент)\n- Документация/инструкция\n- Новости/анонсы\n\nЭТАП 2 - СТРУКТУРА ПО ТИПУ:\n\nДЛЯ КОММЕРЧЕСКИХ САЙТОВ:\n1) Что это: Компания/агентство + основная специализация в 1 предложении\n2) Услуги: Конкретный список что предлагают (2-3 ключевых позиции БЕЗ ЦЕН если цены неточные)\n3) Для кого: Целевая аудитория + какую проблему решают\n4) Как заказать: Способ связи или призыв к действию\n\nДЛЯ СТАТЕЙ/БЛОГОВ:\n1) О чём статья: Основная тема в 1-2 предложениях\n2) Ключевые факты: 2-3 главных момента без воды\n3) Практическая польза: Что читатель узнает/поймет\n4) Призыв: \"Детали в статье\" или \"Сохрани полезное\"\n\nФОРМАТИРОВАНИЕ ДЛЯ TELEGRAM HTML:\n- Тон: информативный, без воды и рекламных слов\n- Эмодзи: 1-2 для структуры\n- Длина: ≤ 600 символов (с тегами)\n- ПЕРЕНОСЫ СТРОК: Используй символ перевода строки между блоками\n- Разметка: ТОЛЬКО и (только эти теги поддерживаются!)\n- СТРОГО ЗАПРЕЩЕНО:,
, , , , любые другие теги\n- Никаких ссылок, хэштегов, упоминаний\n- ВАЖНО ПО ЦЕНАМ: Указывай цены ТОЧНО как в тексте (доллары, рубли, евро) или НЕ указывай вообще если неточно\n\nПРИМЅР ПРАВИЛЬНОГО ФОРМАТА (с переносами между блоками):\nЧто это: Описание компании\nУслуги: Список услуг\nДля кого: Целевая аудитория\nКак заказать: Способ связи\n\nВАЖНО: Фокусируйся на ФАКТАХ - что конкретно предлагается/описывается, а не на эмоциях или общих фразах.\n\nВыведи ТОЛЬКО готовый пост БЕЗ пояснений, с переносами строк между блоками.\n\nКРИТИЧЕСКИ ВАЖНО: Используй обычные переносы строк, НЕ HTML теги!"
124 | }
125 | ]
126 | },
127 | "batching": {}
128 | },
129 | "type": "@n8n/n8n-nodes-langchain.chainLlm",
130 | "typeVersion": 1.7,
131 | "position": [
132 | 1424,
133 | 464
134 | ],
135 | "id": "e4289628-06e5-429d-9574-d9329ae300a5",
136 | "name": "Создать пост"
137 | },
138 | {
139 | "parameters": {
140 | "model": {
141 | "__rl": true,
142 | "value": "gpt-4.1",
143 | "mode": "list",
144 | "cachedResultName": "gpt-4.1"
145 | },
146 | "options": {}
147 | },
148 | "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
149 | "typeVersion": 1.2,
150 | "position": [
151 | 1520,
152 | 688
153 | ],
154 | "id": "3c91d88d-8c9d-4a68-8d12-4e48c6ed5cc4",
155 | "name": "ИИ модель",
156 | "credentials": {
157 | "openAiApi": {
158 | "id": "kxjGbPTTXFAfAr4U",
159 | "name": "OpenAI v7.23"
160 | }
161 | }
162 | },
163 | {
164 | "parameters": {
165 | "content": "",
166 | "width": 170,
167 | "color": 4
168 | },
169 | "type": "n8n-nodes-base.stickyNote",
170 | "typeVersion": 1,
171 | "position": [
172 | 1472,
173 | 640
174 | ],
175 | "id": "ba6da68d-f05d-4bcf-8f97-df296d3050b9",
176 | "name": "Sticky Note5"
177 | },
178 | {
179 | "parameters": {
180 | "method": "POST",
181 | "url": " https://api.telegram.org/bot{api_key_telegram}/sendPhoto",
182 | "sendBody": true,
183 | "bodyParameters": {
184 | "parameters": [
185 | {
186 | "name": "chat_id",
187 | "value": "ВСТАВЬ СВОЙ ID | @username_to_id_bot"
188 | },
189 | {
190 | "name": "caption",
191 | "value": "={{ $json.text }}"
192 | },
193 | {
194 | "name": "parse_mode",
195 | "value": "HTML"
196 | },
197 | {
198 | "name": "photo",
199 | "value": "={{ $json.data.screenshot }}"
200 | }
201 | ]
202 | },
203 | "options": {}
204 | },
205 | "type": "n8n-nodes-base.httpRequest",
206 | "typeVersion": 4.2,
207 | "position": [
208 | 2048,
209 | 320
210 | ],
211 | "id": "b05315d4-066c-4e37-87a1-92bbe04e9937",
212 | "name": "Send Message"
213 | },
214 | {
215 | "parameters": {
216 | "content": "",
217 | "height": 176,
218 | "width": 234,
219 | "color": 5
220 | },
221 | "type": "n8n-nodes-base.stickyNote",
222 | "typeVersion": 1,
223 | "position": [
224 | 1984,
225 | 304
226 | ],
227 | "id": "d8421048-9f3e-401e-8a90-18fbd8f045ab",
228 | "name": "Sticky Note6"
229 | },
230 | {
231 | "parameters": {
232 | "content": "# 🤖 Система автоматического скрапинга веб-страниц с ИИ\n\n---\n\n## 👤 Автор\n**[Nikita Shorin](https://www.youtube.com/@shorin_nikita)**\n\n---\n\n## 📝 Описание проекта\n\nВоркфлоу автоматически парсит веб-страницы, создает скриншоты, формирует контент с помощью ИИ и отправляет готовые посты в Telegram.\n\n---\n\n## ⚙️ Настройка и конфигурация\n\n### 🔴 **1. FireCrawl API**\n- **Получение ключа:** Зарегистрируйтесь на [firecrawl.dev](https://www.firecrawl.dev/referral?rid=LGGW3NBT)\n- **Настройка:** В соответствующей ноде замените `api_key_firecrawl` на реальный API-ключ\n\n### 🔵 **2. Telegram Bot**\n- **Создание бота:** Перейдите к [@BotFather](https://t.me/BotFather/) и создайте нового бота\n- **Настройка API:** В ноде \"sendMessage\" замените `api_key_telegram` на токен вашего бота\n- **Настройка чата:** Замените `chat_id` на ID целевого чата для отправки постов\n\n### 🟢 **3. OpenAI API**\n- **Получение ключа:** Создайте API-ключ на [platform.openai.com](https://platform.openai.com/api-keys)\n- **Настройка:** Настройте учетные данные OpenAI в ноде \"GPT 4.1\"\n\n---\n\n## 🛠️ Основные функции\n\n| Функция | Статус | Описание |\n|---------|--------|----------|\n| Парсинг веб-сайтов | ✅ | Автоматическое извлечение контента с помощью FireCrawl |\n| Создание скриншотов | ✅ | Генерация визуальных превью страниц |\n| ИИ-обработка контента | ✅ | Создание структурированных постов с помощью GPT |\n| Отправка в Telegram | ✅ | Автоматическая публикация готового контента |\n\n---\n\n## 🎯 Результат работы\n\n**Что получает пользователь:**\n- 📸 Скриншот главной страницы сайта\n- 📄 Структурированное описание контента\n- 🚀 Готовый пост в Telegram-канале/чате\n\n---\n\n## 🔧 Технический стек\n\n- **Парсинг:** FireCrawl API\n- **ИИ:** OpenAI GPT-4\n- **Мессенджер:** Telegram Bot API\n- **Автоматизация:** n8n workflow",
233 | "height": 1232,
234 | "width": 1064,
235 | "color": 6
236 | },
237 | "type": "n8n-nodes-base.stickyNote",
238 | "typeVersion": 1,
239 | "position": [
240 | -432,
241 | -160
242 | ],
243 | "id": "16067301-43f4-4188-a2ee-27288228e8dd",
244 | "name": "Sticky Note7"
245 | },
246 | {
247 | "parameters": {
248 | "method": "POST",
249 | "url": "https://api.firecrawl.dev/v1/scrape",
250 | "sendHeaders": true,
251 | "headerParameters": {
252 | "parameters": [
253 | {
254 | "name": "Authorization",
255 | "value": "=Bearer {{ $json.api_key_firecrawl }}"
256 | }
257 | ]
258 | },
259 | "sendBody": true,
260 | "specifyBody": "json",
261 | "jsonBody": "={\n \"url\": \"{{ $json.url_site }}\",\n \"formats\": [\n \"json\",\n \"screenshot\"\n ],\n \"onlyMainContent\": true,\n \"waitFor\": 3000,\n \"timeout\": 60000,\n \"maxAge\": 3600000,\n \"removeBase64Images\": true,\n \"blockAds\": true,\n \"proxy\": \"auto\",\n \"storeInCache\": true,\n \"jsonOptions\": {\n \"prompt\": \"Сделай краткое резюме статьи для бизнес-профессионалов.\"\n }\n}",
262 | "options": {}
263 | },
264 | "type": "n8n-nodes-base.httpRequest",
265 | "typeVersion": 4.2,
266 | "position": [
267 | 1200,
268 | 160
269 | ],
270 | "id": "924b6190-2db1-4094-91dc-66562b065c82",
271 | "name": "Скриншот страницы",
272 | "continueOnFail": true
273 | },
274 | {
275 | "parameters": {
276 | "method": "POST",
277 | "url": "https://api.firecrawl.dev/v1/scrape",
278 | "sendHeaders": true,
279 | "headerParameters": {
280 | "parameters": [
281 | {
282 | "name": "Authorization",
283 | "value": "=Bearer {{ $json.api_key_firecrawl }}"
284 | },
285 | {
286 | "name": "Content-Type",
287 | "value": "application/json"
288 | }
289 | ]
290 | },
291 | "sendBody": true,
292 | "specifyBody": "json",
293 | "jsonBody": "={\n \"url\": \"{{ $json.url_site }}\",\n \"formats\": [\"markdown\"]\n}",
294 | "options": {
295 | "timeout": 30000
296 | }
297 | },
298 | "type": "n8n-nodes-base.httpRequest",
299 | "typeVersion": 4.2,
300 | "position": [
301 | 1200,
302 | 464
303 | ],
304 | "id": "8272abf9-ac89-444a-ae90-27785f35e328",
305 | "name": "Парсер веб страницы",
306 | "continueOnFail": true
307 | }
308 | ],
309 | "pinData": {},
310 | "connections": {
311 | "Получить скриншот": {
312 | "main": [
313 | [
314 | {
315 | "node": "Объединение данных",
316 | "type": "main",
317 | "index": 0
318 | }
319 | ]
320 | ]
321 | },
322 | "API КЛЮЧИ": {
323 | "main": [
324 | [
325 | {
326 | "node": "Скриншот страницы",
327 | "type": "main",
328 | "index": 0
329 | },
330 | {
331 | "node": "Парсер веб страницы",
332 | "type": "main",
333 | "index": 0
334 | }
335 | ]
336 | ]
337 | },
338 | "When chat message received": {
339 | "main": [
340 | [
341 | {
342 | "node": "API КЛЮЧИ",
343 | "type": "main",
344 | "index": 0
345 | }
346 | ]
347 | ]
348 | },
349 | "Создать пост": {
350 | "main": [
351 | [
352 | {
353 | "node": "Объединение данных",
354 | "type": "main",
355 | "index": 1
356 | }
357 | ]
358 | ]
359 | },
360 | "ИИ модель": {
361 | "ai_languageModel": [
362 | [
363 | {
364 | "node": "Создать пост",
365 | "type": "ai_languageModel",
366 | "index": 0
367 | }
368 | ]
369 | ]
370 | },
371 | "Объединение данных": {
372 | "main": [
373 | [
374 | {
375 | "node": "Send Message",
376 | "type": "main",
377 | "index": 0
378 | }
379 | ]
380 | ]
381 | },
382 | "Скриншот страницы": {
383 | "main": [
384 | [
385 | {
386 | "node": "Получить скриншот",
387 | "type": "main",
388 | "index": 0
389 | }
390 | ]
391 | ]
392 | },
393 | "Парсер веб страницы": {
394 | "main": [
395 | [
396 | {
397 | "node": "Создать пост",
398 | "type": "main",
399 | "index": 0
400 | }
401 | ]
402 | ]
403 | }
404 | },
405 | "active": false,
406 | "settings": {
407 | "executionOrder": "v1"
408 | },
409 | "versionId": "2b7ced27-5367-4640-a38d-75d04615df80",
410 | "meta": {
411 | "instanceId": "89117b89e6ee2e2d36a3f934f1a63e32c1c204c62e00bb625da8c39baf77c2c7"
412 | },
413 | "id": "FvejQYz16Tu9Dkko",
414 | "tags": []
415 | }
416 |
--------------------------------------------------------------------------------
/n8n/telegram_ai_bot.json:
--------------------------------------------------------------------------------
1 | {
2 | "nodes": [
3 | {
4 | "parameters": {
5 | "rules": {
6 | "values": [
7 | {
8 | "conditions": {
9 | "options": {
10 | "caseSensitive": true,
11 | "leftValue": "",
12 | "typeValidation": "strict",
13 | "version": 2
14 | },
15 | "conditions": [
16 | {
17 | "leftValue": "={{ $('Webhook').item.json.body.message.text }}",
18 | "rightValue": "",
19 | "operator": {
20 | "type": "string",
21 | "operation": "notEmpty",
22 | "singleValue": true
23 | },
24 | "id": "74e14772-fc81-456d-acc9-179d2e232fad"
25 | }
26 | ],
27 | "combinator": "and"
28 | },
29 | "renameOutput": true,
30 | "outputKey": "text"
31 | },
32 | {
33 | "conditions": {
34 | "options": {
35 | "caseSensitive": true,
36 | "leftValue": "",
37 | "typeValidation": "strict",
38 | "version": 2
39 | },
40 | "conditions": [
41 | {
42 | "id": "8d07ef59-070c-4e57-ae1c-5e61c140889a",
43 | "leftValue": "={{ $('Webhook').item.json.body.message.voice }}",
44 | "rightValue": "",
45 | "operator": {
46 | "type": "object",
47 | "operation": "notEmpty",
48 | "singleValue": true
49 | }
50 | }
51 | ],
52 | "combinator": "and"
53 | },
54 | "renameOutput": true,
55 | "outputKey": "voice"
56 | },
57 | {
58 | "conditions": {
59 | "options": {
60 | "caseSensitive": true,
61 | "leftValue": "",
62 | "typeValidation": "strict",
63 | "version": 2
64 | },
65 | "conditions": [
66 | {
67 | "id": "4fbee3dc-de53-4ee7-b88e-3415d89f8bb1",
68 | "leftValue": "={{ $('Webhook').item.json.body.message.audio }}",
69 | "rightValue": "",
70 | "operator": {
71 | "type": "object",
72 | "operation": "notEmpty",
73 | "singleValue": true
74 | }
75 | }
76 | ],
77 | "combinator": "and"
78 | },
79 | "renameOutput": true,
80 | "outputKey": "audio"
81 | },
82 | {
83 | "conditions": {
84 | "options": {
85 | "caseSensitive": true,
86 | "leftValue": "",
87 | "typeValidation": "strict",
88 | "version": 2
89 | },
90 | "conditions": [
91 | {
92 | "id": "78190833-73ff-4c43-af7a-35f9de9c7b5b",
93 | "leftValue": "={{ $('Webhook').item.json.body.message.photo[3] }}",
94 | "rightValue": "image",
95 | "operator": {
96 | "type": "object",
97 | "operation": "notEmpty",
98 | "singleValue": true
99 | }
100 | }
101 | ],
102 | "combinator": "and"
103 | },
104 | "renameOutput": true,
105 | "outputKey": "photo"
106 | }
107 | ]
108 | },
109 | "options": {}
110 | },
111 | "type": "n8n-nodes-base.switch",
112 | "typeVersion": 3.2,
113 | "position": [
114 | 1180,
115 | 400
116 | ],
117 | "id": "a648fe13-a121-4912-b977-9b8cb1a52b84",
118 | "name": "Switch"
119 | },
120 | {
121 | "parameters": {
122 | "httpMethod": "POST",
123 | "path": "telegam",
124 | "options": {}
125 | },
126 | "type": "n8n-nodes-base.webhook",
127 | "typeVersion": 2,
128 | "position": [
129 | 160,
130 | 280
131 | ],
132 | "id": "eab96923-b83c-46af-8dcd-df666db5d387",
133 | "name": "Webhook",
134 | "webhookId": "528ba51a-7eb4-4356-bfb6-244aefe46bf0"
135 | },
136 | {
137 | "parameters": {
138 | "resource": "image",
139 | "operation": "analyze",
140 | "modelId": {
141 | "__rl": true,
142 | "value": "gpt-4o",
143 | "mode": "list",
144 | "cachedResultName": "GPT-4O"
145 | },
146 | "text": "What's in this image? Answer Russian.",
147 | "imageUrls": "=https://api.telegram.org/file/bot{{ $('API KEY ЗАМЕНИТЬ').item.json.telegram_bot_api_key }}/{{ $json.result.file_path }}",
148 | "options": {}
149 | },
150 | "type": "@n8n/n8n-nodes-langchain.openAi",
151 | "typeVersion": 1.8,
152 | "position": [
153 | 2060,
154 | 720
155 | ],
156 | "id": "fceb2206-5ba7-4428-a175-fc23a2d13c02",
157 | "name": "Analyze image",
158 | "credentials": {
159 | "openAiApi": {
160 | "id": "TrtfpYNJaLbwIzTC",
161 | "name": "OpenAi account VIDEO"
162 | }
163 | }
164 | },
165 | {
166 | "parameters": {
167 | "url": "=https://api.telegram.org/bot{{ $('API KEY ЗАМЕНИТЬ').item.json.telegram_bot_api_key }}/getFile",
168 | "sendBody": true,
169 | "bodyParameters": {
170 | "parameters": [
171 | {
172 | "name": "file_id",
173 | "value": "={{ $('Webhook').item.json.body.message.photo[3].file_id }}"
174 | }
175 | ]
176 | },
177 | "options": {}
178 | },
179 | "type": "n8n-nodes-base.httpRequest",
180 | "typeVersion": 4.2,
181 | "position": [
182 | 1840,
183 | 720
184 | ],
185 | "id": "b53979eb-8ac5-44ea-82e2-ad8e7f73c669",
186 | "name": "Get File Info Image"
187 | },
188 | {
189 | "parameters": {
190 | "url": "=https://api.telegram.org/bot{{ $('API KEY ЗАМЕНИТЬ').item.json.telegram_bot_api_key }}/getFile",
191 | "sendBody": true,
192 | "bodyParameters": {
193 | "parameters": [
194 | {
195 | "name": "file_id",
196 | "value": "={{ $('Webhook').item.json.body.message.voice.file_id }}"
197 | }
198 | ]
199 | },
200 | "options": {}
201 | },
202 | "type": "n8n-nodes-base.httpRequest",
203 | "typeVersion": 4.2,
204 | "position": [
205 | 1620,
206 | 320
207 | ],
208 | "id": "0af3138f-1597-4dd7-a418-4603db29bf6a",
209 | "name": "Get File Info Voice"
210 | },
211 | {
212 | "parameters": {
213 | "url": "=https://api.telegram.org/file/bot{{ $('API KEY ЗАМЕНИТЬ').item.json.telegram_bot_api_key }}/{{ $json.result.file_path }}",
214 | "options": {}
215 | },
216 | "type": "n8n-nodes-base.httpRequest",
217 | "typeVersion": 4.2,
218 | "position": [
219 | 1840,
220 | 320
221 | ],
222 | "id": "c2d0cfb4-32a1-40cf-aef4-8c2a5a696a2d",
223 | "name": "Download Voice File"
224 | },
225 | {
226 | "parameters": {
227 | "url": "=https://api.telegram.org/bot{{ $('API KEY ЗАМЕНИТЬ').item.json.telegram_bot_api_key }}/getFile",
228 | "sendBody": true,
229 | "bodyParameters": {
230 | "parameters": [
231 | {
232 | "name": "file_id",
233 | "value": "={{ $('Webhook').item.json.body.message.audio.file_id }}"
234 | }
235 | ]
236 | },
237 | "options": {}
238 | },
239 | "type": "n8n-nodes-base.httpRequest",
240 | "typeVersion": 4.2,
241 | "position": [
242 | 1620,
243 | 520
244 | ],
245 | "id": "e1695977-701d-49c1-8a3b-e1c023c560c7",
246 | "name": "Get File Info Audio"
247 | },
248 | {
249 | "parameters": {
250 | "url": "=https://api.telegram.org/file/bot{{ $('API KEY ЗАМЕНИТЬ').item.json.telegram_bot_api_key }}/{{ $json.result.file_path }}",
251 | "options": {}
252 | },
253 | "type": "n8n-nodes-base.httpRequest",
254 | "typeVersion": 4.2,
255 | "position": [
256 | 1840,
257 | 520
258 | ],
259 | "id": "5499d74f-63d2-4cb5-896e-31bd13d6b69e",
260 | "name": "Download Audio File"
261 | },
262 | {
263 | "parameters": {
264 | "resource": "audio",
265 | "operation": "transcribe",
266 | "options": {}
267 | },
268 | "type": "@n8n/n8n-nodes-langchain.openAi",
269 | "typeVersion": 1.8,
270 | "position": [
271 | 2060,
272 | 320
273 | ],
274 | "id": "34e39969-d828-47e2-afbb-150a6f5beeac",
275 | "name": "Transcribe a recording voice",
276 | "credentials": {
277 | "openAiApi": {
278 | "id": "TrtfpYNJaLbwIzTC",
279 | "name": "OpenAi account VIDEO"
280 | }
281 | }
282 | },
283 | {
284 | "parameters": {
285 | "resource": "audio",
286 | "operation": "transcribe",
287 | "options": {}
288 | },
289 | "type": "@n8n/n8n-nodes-langchain.openAi",
290 | "typeVersion": 1.8,
291 | "position": [
292 | 2060,
293 | 520
294 | ],
295 | "id": "55bb4072-855a-40c1-9721-516d971d1402",
296 | "name": "Transcribe a recording audio",
297 | "credentials": {
298 | "openAiApi": {
299 | "id": "TrtfpYNJaLbwIzTC",
300 | "name": "OpenAi account VIDEO"
301 | }
302 | }
303 | },
304 | {
305 | "parameters": {
306 | "assignments": {
307 | "assignments": [
308 | {
309 | "id": "902016f5-1274-4d55-9b69-4f88b8df381e",
310 | "name": "text",
311 | "value": "={{ $('Transcribe a recording voice').item.json.text }}",
312 | "type": "string"
313 | },
314 | {
315 | "id": "cef2bdbf-3097-46e2-aafc-2ef202f81c26",
316 | "name": "chat_id",
317 | "value": "={{ $('Webhook').item.json.body.message.chat.id }}",
318 | "type": "string"
319 | },
320 | {
321 | "id": "55817a18-1b48-46d9-ba30-e07e576310ec",
322 | "name": "telegram_bot_api_key",
323 | "value": "={{ $('API KEY ЗАМЕНИТЬ').item.json.telegram_bot_api_key }}",
324 | "type": "string"
325 | }
326 | ]
327 | },
328 | "options": {}
329 | },
330 | "type": "n8n-nodes-base.set",
331 | "typeVersion": 3.4,
332 | "position": [
333 | 2500,
334 | 320
335 | ],
336 | "id": "91b7e285-5509-4287-9d28-5b23f528974b",
337 | "name": "text voice"
338 | },
339 | {
340 | "parameters": {
341 | "assignments": {
342 | "assignments": [
343 | {
344 | "id": "902016f5-1274-4d55-9b69-4f88b8df381e",
345 | "name": "text",
346 | "value": "={{ $('Transcribe a recording audio').item.json.text }}",
347 | "type": "string"
348 | },
349 | {
350 | "id": "d474666c-c1d3-44f6-b76e-587bd33556b8",
351 | "name": "chat_id",
352 | "value": "={{ $('Webhook').item.json.body.message.chat.id }}",
353 | "type": "string"
354 | },
355 | {
356 | "id": "376cec58-690b-4036-887a-d8343c756d6c",
357 | "name": "telegram_bot_api_key",
358 | "value": "={{ $('API KEY ЗАМЕНИТЬ').item.json.telegram_bot_api_key }}",
359 | "type": "string"
360 | }
361 | ]
362 | },
363 | "options": {}
364 | },
365 | "type": "n8n-nodes-base.set",
366 | "typeVersion": 3.4,
367 | "position": [
368 | 2500,
369 | 520
370 | ],
371 | "id": "a9de5c3f-82c9-47cd-bb8f-3ef5437000ad",
372 | "name": "text audio"
373 | },
374 | {
375 | "parameters": {
376 | "assignments": {
377 | "assignments": [
378 | {
379 | "id": "902016f5-1274-4d55-9b69-4f88b8df381e",
380 | "name": "text",
381 | "value": "={{ $('Analyze image').item.json.content }}",
382 | "type": "string"
383 | },
384 | {
385 | "id": "f642f03c-d0c9-42ec-96b2-57bd48f13a5c",
386 | "name": "chat_id",
387 | "value": "={{ $('Webhook').item.json.body.message.chat.id }}",
388 | "type": "string"
389 | },
390 | {
391 | "id": "8d1aab82-79a7-45bc-8e02-1109326590ae",
392 | "name": "telegram_bot_api_key",
393 | "value": "={{ $('API KEY ЗАМЕНИТЬ').item.json.telegram_bot_api_key }}",
394 | "type": "string"
395 | }
396 | ]
397 | },
398 | "options": {}
399 | },
400 | "type": "n8n-nodes-base.set",
401 | "typeVersion": 3.4,
402 | "position": [
403 | 2500,
404 | 720
405 | ],
406 | "id": "0d94e097-142a-447e-8c48-5369ef959d73",
407 | "name": "text photo"
408 | },
409 | {
410 | "parameters": {
411 | "assignments": {
412 | "assignments": [
413 | {
414 | "id": "902016f5-1274-4d55-9b69-4f88b8df381e",
415 | "name": "text",
416 | "value": "={{ $('Webhook').item.json.body.message.text }}",
417 | "type": "string"
418 | },
419 | {
420 | "id": "c9fda88d-8884-434d-bcf8-97b4b43e01f8",
421 | "name": "chat_id",
422 | "value": "={{ $('Webhook').item.json.body.message.chat.id }}",
423 | "type": "string"
424 | },
425 | {
426 | "id": "b547f855-056e-4d77-99d7-9f334dd3ff11",
427 | "name": "telegram_bot_api_key",
428 | "value": "={{ $('API KEY ЗАМЕНИТЬ').item.json.telegram_bot_api_key }}",
429 | "type": "string"
430 | }
431 | ]
432 | },
433 | "options": {}
434 | },
435 | "type": "n8n-nodes-base.set",
436 | "typeVersion": 3.4,
437 | "position": [
438 | 2500,
439 | 120
440 | ],
441 | "id": "8b6c0ec4-67a9-4d21-b0cf-5dda8df4697c",
442 | "name": "text text"
443 | },
444 | {
445 | "parameters": {
446 | "numberInputs": 4
447 | },
448 | "type": "n8n-nodes-base.merge",
449 | "typeVersion": 3.2,
450 | "position": [
451 | 2720,
452 | 500
453 | ],
454 | "id": "d184af4a-5902-472f-80db-e77656fe0d04",
455 | "name": "text"
456 | },
457 | {
458 | "parameters": {
459 | "method": "POST",
460 | "url": "=https://api.telegram.org/bot{{ $json.telegram_bot_api_key }}/sendChatAction",
461 | "sendBody": true,
462 | "bodyParameters": {
463 | "parameters": [
464 | {
465 | "name": "chat_id",
466 | "value": "={{ $('Webhook').item.json.body.message.from.id }}"
467 | },
468 | {
469 | "name": "action",
470 | "value": "typing"
471 | }
472 | ]
473 | },
474 | "options": {}
475 | },
476 | "type": "n8n-nodes-base.httpRequest",
477 | "typeVersion": 4.2,
478 | "position": [
479 | 900,
480 | 420
481 | ],
482 | "id": "46ad03bf-ae17-4250-b6a7-348abad02185",
483 | "name": "Telegram typing"
484 | },
485 | {
486 | "parameters": {
487 | "method": "POST",
488 | "url": "= https://api.telegram.org/bot{{ $('API KEY ЗАМЕНИТЬ').item.json.telegram_bot_api_key }}/sendMessage",
489 | "sendBody": true,
490 | "bodyParameters": {
491 | "parameters": [
492 | {
493 | "name": "chat_id",
494 | "value": "={{ $('Webhook').item.json.body.message.from.id }}"
495 | },
496 | {
497 | "name": "text",
498 | "value": "Секунду, прослушаю.."
499 | }
500 | ]
501 | },
502 | "options": {}
503 | },
504 | "type": "n8n-nodes-base.httpRequest",
505 | "typeVersion": 4.2,
506 | "position": [
507 | 1400,
508 | 320
509 | ],
510 | "id": "41a03453-f2d5-4bfc-a6f4-94b06b823ea5",
511 | "name": "Just a moment voice"
512 | },
513 | {
514 | "parameters": {
515 | "method": "POST",
516 | "url": "= https://api.telegram.org/bot{{ $('API KEY ЗАМЕНИТЬ').item.json.telegram_bot_api_key }}/sendMessage",
517 | "sendBody": true,
518 | "bodyParameters": {
519 | "parameters": [
520 | {
521 | "name": "chat_id",
522 | "value": "={{ $('Webhook').item.json.body.message.from.id }}"
523 | },
524 | {
525 | "name": "text",
526 | "value": "Секунду, прослушаю.."
527 | }
528 | ]
529 | },
530 | "options": {}
531 | },
532 | "type": "n8n-nodes-base.httpRequest",
533 | "typeVersion": 4.2,
534 | "position": [
535 | 1400,
536 | 520
537 | ],
538 | "id": "1c66dca1-1461-4769-9ebc-ebef32d77a7a",
539 | "name": "Just a moment audio"
540 | },
541 | {
542 | "parameters": {
543 | "method": "POST",
544 | "url": "= https://api.telegram.org/bot{{ $('API KEY ЗАМЕНИТЬ').item.json.telegram_bot_api_key }}/sendMessage",
545 | "sendBody": true,
546 | "bodyParameters": {
547 | "parameters": [
548 | {
549 | "name": "chat_id",
550 | "value": "={{ $('Webhook').item.json.body.message.from.id }}"
551 | },
552 | {
553 | "name": "text",
554 | "value": "Секунду, посмотрю.."
555 | }
556 | ]
557 | },
558 | "options": {}
559 | },
560 | "type": "n8n-nodes-base.httpRequest",
561 | "typeVersion": 4.2,
562 | "position": [
563 | 1620,
564 | 720
565 | ],
566 | "id": "14f56dce-72fc-434a-b57b-03a89de56154",
567 | "name": "Just a moment photo"
568 | },
569 | {
570 | "parameters": {
571 | "method": "POST",
572 | "url": "= https://api.telegram.org/bot{{ $('API KEY ЗАМЕНИТЬ').item.json.telegram_bot_api_key }}/deleteMessage",
573 | "sendBody": true,
574 | "bodyParameters": {
575 | "parameters": [
576 | {
577 | "name": "chat_id",
578 | "value": "={{ $('Webhook').item.json.body.message.from.id }}"
579 | },
580 | {
581 | "name": "message_id",
582 | "value": "={{ $('Just a moment voice').item.json.result.message_id }}"
583 | }
584 | ]
585 | },
586 | "options": {}
587 | },
588 | "type": "n8n-nodes-base.httpRequest",
589 | "typeVersion": 4.2,
590 | "position": [
591 | 2280,
592 | 320
593 | ],
594 | "id": "1c035b13-11d2-4308-aded-5f10d2f52286",
595 | "name": "Delete just a moment voice"
596 | },
597 | {
598 | "parameters": {
599 | "method": "POST",
600 | "url": "=https://api.telegram.org/bot{{ $('API KEY ЗАМЕНИТЬ').item.json.telegram_bot_api_key }}/deleteMessage",
601 | "sendBody": true,
602 | "bodyParameters": {
603 | "parameters": [
604 | {
605 | "name": "chat_id",
606 | "value": "={{ $('Webhook').item.json.body.message.from.id }}"
607 | },
608 | {
609 | "name": "message_id",
610 | "value": "={{ $('Just a moment audio').item.json.result.message_id }}"
611 | }
612 | ]
613 | },
614 | "options": {}
615 | },
616 | "type": "n8n-nodes-base.httpRequest",
617 | "typeVersion": 4.2,
618 | "position": [
619 | 2280,
620 | 520
621 | ],
622 | "id": "df56f83c-da21-4f21-b6ce-51b49a99d6fa",
623 | "name": "Delete just a moment audio"
624 | },
625 | {
626 | "parameters": {
627 | "method": "POST",
628 | "url": "=https://api.telegram.org/bot{{ $('API KEY ЗАМЕНИТЬ').item.json.telegram_bot_api_key }}/deleteMessage",
629 | "sendBody": true,
630 | "bodyParameters": {
631 | "parameters": [
632 | {
633 | "name": "chat_id",
634 | "value": "={{ $('Webhook').item.json.body.message.from.id }}"
635 | },
636 | {
637 | "name": "message_id",
638 | "value": "={{ $('Just a moment photo').item.json.result.message_id }}"
639 | }
640 | ]
641 | },
642 | "options": {}
643 | },
644 | "type": "n8n-nodes-base.httpRequest",
645 | "typeVersion": 4.2,
646 | "position": [
647 | 2280,
648 | 720
649 | ],
650 | "id": "492dccc5-ec93-44a8-aa61-75491fad9e9e",
651 | "name": "Delete just a moment photo"
652 | },
653 | {
654 | "parameters": {
655 | "promptType": "define",
656 | "text": "={{ $json.text }}",
657 | "options": {
658 | "systemMessage": "Отвечай, как милая девушка. С заботой и вниманием."
659 | }
660 | },
661 | "type": "@n8n/n8n-nodes-langchain.agent",
662 | "typeVersion": 2,
663 | "position": [
664 | 2940,
665 | 520
666 | ],
667 | "id": "cdc871ac-c66f-4c1a-b82a-ba1203ff3017",
668 | "name": "AI Agent"
669 | },
670 | {
671 | "parameters": {
672 | "sessionIdType": "customKey",
673 | "sessionKey": "={{ $json.chat_id }}",
674 | "contextWindowLength": 50
675 | },
676 | "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
677 | "typeVersion": 1.3,
678 | "position": [
679 | 3100,
680 | 740
681 | ],
682 | "id": "13efa7fc-5db8-4043-97fc-05dfbee300ef",
683 | "name": "Simple Memory"
684 | },
685 | {
686 | "parameters": {
687 | "method": "POST",
688 | "url": "=https://api.telegram.org/bot{{ $('text').item.json.telegram_bot_api_key }}/sendMessage",
689 | "sendBody": true,
690 | "bodyParameters": {
691 | "parameters": [
692 | {
693 | "name": "chat_id",
694 | "value": "={{ $('text').item.json.chat_id }}"
695 | },
696 | {
697 | "name": "text",
698 | "value": "={{ $json.output }}"
699 | }
700 | ]
701 | },
702 | "options": {}
703 | },
704 | "type": "n8n-nodes-base.httpRequest",
705 | "typeVersion": 4.2,
706 | "position": [
707 | 3320,
708 | 520
709 | ],
710 | "id": "e35f77e7-7ec1-49e9-96a2-b05dea9bf72d",
711 | "name": "Send Message"
712 | },
713 | {
714 | "parameters": {
715 | "assignments": {
716 | "assignments": [
717 | {
718 | "id": "2f8cfb58-6572-4380-b4f8-4c5e8ee2c75d",
719 | "name": "telegram_bot_api_key",
720 | "value": "API KEY ЗАМЕНИТЬ",
721 | "type": "string"
722 | }
723 | ]
724 | },
725 | "options": {}
726 | },
727 | "type": "n8n-nodes-base.set",
728 | "typeVersion": 3.4,
729 | "position": [
730 | 380,
731 | 280
732 | ],
733 | "id": "c2ac60db-5997-43b0-9ea6-e4f7c7d88a65",
734 | "name": "API KEY ЗАМЕНИТЬ"
735 | },
736 | {
737 | "parameters": {
738 | "content": "",
739 | "height": 200,
740 | "width": 200,
741 | "color": 3
742 | },
743 | "type": "n8n-nodes-base.stickyNote",
744 | "typeVersion": 1,
745 | "position": [
746 | 320,
747 | 240
748 | ],
749 | "id": "ba6fff59-c010-4cd9-a0fa-2b49dfc8d405",
750 | "name": "Sticky Note3"
751 | },
752 | {
753 | "parameters": {
754 | "content": "# Инструкция по Telegram боту с AI\n\nАвтор: [Nikita Shorin](https://www.youtube.com/@shorin_nikita)\n\n## Описание\nВоркфлоу создает умного Telegram бота, который обрабатывает текст, голос, аудио и изображения с помощью OpenAI.\n\n## Настройка:\n\n1. 🔴 **API ключ Telegram бота**:\n - Создайте бота в [@BotFather](https://t.me/botfather)\n - В узле \"API KEY ЗАМЕНИТЬ\" замените на реальный токен \n\n2. 🟢 **OpenAI credentials**:\n - Создайте API-ключ на [платформе OpenAI](https://platform.openai.com/api-keys)\n - Настройте учетные данные OpenAI в соответствующих узлах\n\n3. 🟡 **Webhook**:\n - Внутри ноды укажите path. Например, **telegram**\n - Скачайте шаблон: [**http handle**](https://github.com/shorin-nikita/PrideAIBot/blob/main/n8n/HTTP%20handle.json) и выполните привязку вебхука\n\n4. 🔵 **AI Agent**:\n - Измените **System prompt** под ваши задачи\n\n## Функции:\n- ✅ Ответы на текст\n- ✅ Транскрибация голоса/аудио\n- ✅ Анализ изображений\n- ✅ Память контекста\n- ✅ Статус \"печатает...\"\n\nБот работает на русском языке и показывает временные уведомления при обработке файлов.",
755 | "height": 900,
756 | "width": 880,
757 | "color": 6
758 | },
759 | "type": "n8n-nodes-base.stickyNote",
760 | "typeVersion": 1,
761 | "position": [
762 | -840,
763 | -20
764 | ],
765 | "id": "51ae5e30-a669-4347-b85b-043339f4c9db",
766 | "name": "Sticky Note4"
767 | },
768 | {
769 | "parameters": {
770 | "content": "",
771 | "height": 580,
772 | "width": 180,
773 | "color": 4
774 | },
775 | "type": "n8n-nodes-base.stickyNote",
776 | "typeVersion": 1,
777 | "position": [
778 | 2020,
779 | 300
780 | ],
781 | "id": "c46b57d3-2cda-44df-9867-57d0a8b9c6c5",
782 | "name": "Sticky Note5"
783 | },
784 | {
785 | "parameters": {
786 | "content": "",
787 | "height": 140,
788 | "width": 150,
789 | "color": 4
790 | },
791 | "type": "n8n-nodes-base.stickyNote",
792 | "typeVersion": 1,
793 | "position": [
794 | 2920,
795 | 720
796 | ],
797 | "id": "6916b8ad-b6bb-4881-9350-0df3065e62cd",
798 | "name": "Sticky Note6"
799 | },
800 | {
801 | "parameters": {
802 | "model": {
803 | "__rl": true,
804 | "mode": "list",
805 | "value": "gpt-4.1-mini"
806 | },
807 | "options": {}
808 | },
809 | "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
810 | "typeVersion": 1.2,
811 | "position": [
812 | 2960,
813 | 740
814 | ],
815 | "id": "861c209b-b61a-44c5-938e-d4b6c9140633",
816 | "name": "GPT 4.1 mini",
817 | "credentials": {
818 | "openAiApi": {
819 | "id": "TrtfpYNJaLbwIzTC",
820 | "name": "OpenAi account VIDEO"
821 | }
822 | }
823 | },
824 | {
825 | "parameters": {
826 | "content": "",
827 | "height": 200,
828 | "width": 180
829 | },
830 | "type": "n8n-nodes-base.stickyNote",
831 | "typeVersion": 1,
832 | "position": [
833 | 120,
834 | 240
835 | ],
836 | "id": "ccae8947-5813-4c71-834d-5f9fec562a75",
837 | "name": "Sticky Note"
838 | },
839 | {
840 | "parameters": {
841 | "content": "",
842 | "width": 320,
843 | "color": 5
844 | },
845 | "type": "n8n-nodes-base.stickyNote",
846 | "typeVersion": 1,
847 | "position": [
848 | 2920,
849 | 500
850 | ],
851 | "id": "0af76598-2a2a-4134-87d6-79473bf99793",
852 | "name": "Sticky Note2"
853 | },
854 | {
855 | "parameters": {
856 | "content": "",
857 | "height": 900,
858 | "width": 3440,
859 | "color": 7
860 | },
861 | "type": "n8n-nodes-base.stickyNote",
862 | "typeVersion": 1,
863 | "position": [
864 | 60,
865 | -20
866 | ],
867 | "id": "75dfba53-60bc-4b76-9463-ef4354d9b0a3",
868 | "name": "Sticky Note1"
869 | },
870 | {
871 | "parameters": {
872 | "mode": "delete",
873 | "deleteMode": "all"
874 | },
875 | "type": "@n8n/n8n-nodes-langchain.memoryManager",
876 | "typeVersion": 1.1,
877 | "position": [
878 | 820,
879 | 20
880 | ],
881 | "id": "80702b1d-f188-4b7b-8a0d-c8f6611735ab",
882 | "name": "Chat Memory Manager"
883 | },
884 | {
885 | "parameters": {
886 | "method": "POST",
887 | "url": "=https://api.telegram.org/bot{{ $('API KEY ЗАМЕНИТЬ').item.json.telegram_bot_api_key }}/sendMessage",
888 | "sendBody": true,
889 | "bodyParameters": {
890 | "parameters": [
891 | {
892 | "name": "chat_id",
893 | "value": "={{ $('Webhook').item.json.body.message.chat.id }}"
894 | },
895 | {
896 | "name": "text",
897 | "value": "НОВЫЙ ЧАТ"
898 | }
899 | ]
900 | },
901 | "options": {}
902 | },
903 | "type": "n8n-nodes-base.httpRequest",
904 | "typeVersion": 4.2,
905 | "position": [
906 | 1180,
907 | 120
908 | ],
909 | "id": "9a3182b0-c54b-4b78-88b2-d803da0823e0",
910 | "name": "Send Message NEW CHAT"
911 | },
912 | {
913 | "parameters": {
914 | "conditions": {
915 | "options": {
916 | "caseSensitive": true,
917 | "leftValue": "",
918 | "typeValidation": "strict",
919 | "version": 2
920 | },
921 | "conditions": [
922 | {
923 | "id": "824ed408-3e32-4af8-90ca-b11b924ad5f6",
924 | "leftValue": "={{ $('Webhook').item.json.body.message.text }}",
925 | "rightValue": "/start",
926 | "operator": {
927 | "type": "string",
928 | "operation": "equals",
929 | "name": "filter.operator.equals"
930 | }
931 | }
932 | ],
933 | "combinator": "and"
934 | },
935 | "options": {}
936 | },
937 | "type": "n8n-nodes-base.if",
938 | "typeVersion": 2.2,
939 | "position": [
940 | 600,
941 | 280
942 | ],
943 | "id": "23b4fcee-0923-457d-b3c9-c343dd4787a5",
944 | "name": "Start command?"
945 | },
946 | {
947 | "parameters": {
948 | "sessionIdType": "customKey",
949 | "sessionKey": "={{ $('Webhook').item.json.body.message.chat.id }}",
950 | "contextWindowLength": 50
951 | },
952 | "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
953 | "typeVersion": 1.3,
954 | "position": [
955 | 900,
956 | 240
957 | ],
958 | "id": "4c3c6cf7-0d0a-466a-b153-220a22b00d04",
959 | "name": "Simple Memory1"
960 | }
961 | ],
962 | "connections": {
963 | "Switch": {
964 | "main": [
965 | [
966 | {
967 | "node": "text text",
968 | "type": "main",
969 | "index": 0
970 | }
971 | ],
972 | [
973 | {
974 | "node": "Just a moment voice",
975 | "type": "main",
976 | "index": 0
977 | }
978 | ],
979 | [
980 | {
981 | "node": "Just a moment audio",
982 | "type": "main",
983 | "index": 0
984 | }
985 | ],
986 | [
987 | {
988 | "node": "Just a moment photo",
989 | "type": "main",
990 | "index": 0
991 | }
992 | ]
993 | ]
994 | },
995 | "Webhook": {
996 | "main": [
997 | [
998 | {
999 | "node": "API KEY ЗАМЕНИТЬ",
1000 | "type": "main",
1001 | "index": 0
1002 | }
1003 | ]
1004 | ]
1005 | },
1006 | "Analyze image": {
1007 | "main": [
1008 | [
1009 | {
1010 | "node": "Delete just a moment photo",
1011 | "type": "main",
1012 | "index": 0
1013 | }
1014 | ]
1015 | ]
1016 | },
1017 | "Get File Info Image": {
1018 | "main": [
1019 | [
1020 | {
1021 | "node": "Analyze image",
1022 | "type": "main",
1023 | "index": 0
1024 | }
1025 | ]
1026 | ]
1027 | },
1028 | "Get File Info Voice": {
1029 | "main": [
1030 | [
1031 | {
1032 | "node": "Download Voice File",
1033 | "type": "main",
1034 | "index": 0
1035 | }
1036 | ]
1037 | ]
1038 | },
1039 | "Download Voice File": {
1040 | "main": [
1041 | [
1042 | {
1043 | "node": "Transcribe a recording voice",
1044 | "type": "main",
1045 | "index": 0
1046 | }
1047 | ]
1048 | ]
1049 | },
1050 | "Get File Info Audio": {
1051 | "main": [
1052 | [
1053 | {
1054 | "node": "Download Audio File",
1055 | "type": "main",
1056 | "index": 0
1057 | }
1058 | ]
1059 | ]
1060 | },
1061 | "Download Audio File": {
1062 | "main": [
1063 | [
1064 | {
1065 | "node": "Transcribe a recording audio",
1066 | "type": "main",
1067 | "index": 0
1068 | }
1069 | ]
1070 | ]
1071 | },
1072 | "Transcribe a recording voice": {
1073 | "main": [
1074 | [
1075 | {
1076 | "node": "Delete just a moment voice",
1077 | "type": "main",
1078 | "index": 0
1079 | }
1080 | ]
1081 | ]
1082 | },
1083 | "Transcribe a recording audio": {
1084 | "main": [
1085 | [
1086 | {
1087 | "node": "Delete just a moment audio",
1088 | "type": "main",
1089 | "index": 0
1090 | }
1091 | ]
1092 | ]
1093 | },
1094 | "text voice": {
1095 | "main": [
1096 | [
1097 | {
1098 | "node": "text",
1099 | "type": "main",
1100 | "index": 1
1101 | }
1102 | ]
1103 | ]
1104 | },
1105 | "text audio": {
1106 | "main": [
1107 | [
1108 | {
1109 | "node": "text",
1110 | "type": "main",
1111 | "index": 2
1112 | }
1113 | ]
1114 | ]
1115 | },
1116 | "text photo": {
1117 | "main": [
1118 | [
1119 | {
1120 | "node": "text",
1121 | "type": "main",
1122 | "index": 3
1123 | }
1124 | ]
1125 | ]
1126 | },
1127 | "text text": {
1128 | "main": [
1129 | [
1130 | {
1131 | "node": "text",
1132 | "type": "main",
1133 | "index": 0
1134 | }
1135 | ]
1136 | ]
1137 | },
1138 | "text": {
1139 | "main": [
1140 | [
1141 | {
1142 | "node": "AI Agent",
1143 | "type": "main",
1144 | "index": 0
1145 | }
1146 | ]
1147 | ]
1148 | },
1149 | "Telegram typing": {
1150 | "main": [
1151 | [
1152 | {
1153 | "node": "Switch",
1154 | "type": "main",
1155 | "index": 0
1156 | }
1157 | ]
1158 | ]
1159 | },
1160 | "Just a moment voice": {
1161 | "main": [
1162 | [
1163 | {
1164 | "node": "Get File Info Voice",
1165 | "type": "main",
1166 | "index": 0
1167 | }
1168 | ]
1169 | ]
1170 | },
1171 | "Just a moment audio": {
1172 | "main": [
1173 | [
1174 | {
1175 | "node": "Get File Info Audio",
1176 | "type": "main",
1177 | "index": 0
1178 | }
1179 | ]
1180 | ]
1181 | },
1182 | "Just a moment photo": {
1183 | "main": [
1184 | [
1185 | {
1186 | "node": "Get File Info Image",
1187 | "type": "main",
1188 | "index": 0
1189 | }
1190 | ]
1191 | ]
1192 | },
1193 | "Delete just a moment voice": {
1194 | "main": [
1195 | [
1196 | {
1197 | "node": "text voice",
1198 | "type": "main",
1199 | "index": 0
1200 | }
1201 | ]
1202 | ]
1203 | },
1204 | "Delete just a moment audio": {
1205 | "main": [
1206 | [
1207 | {
1208 | "node": "text audio",
1209 | "type": "main",
1210 | "index": 0
1211 | }
1212 | ]
1213 | ]
1214 | },
1215 | "Delete just a moment photo": {
1216 | "main": [
1217 | [
1218 | {
1219 | "node": "text photo",
1220 | "type": "main",
1221 | "index": 0
1222 | }
1223 | ]
1224 | ]
1225 | },
1226 | "AI Agent": {
1227 | "main": [
1228 | [
1229 | {
1230 | "node": "Send Message",
1231 | "type": "main",
1232 | "index": 0
1233 | }
1234 | ]
1235 | ]
1236 | },
1237 | "Simple Memory": {
1238 | "ai_memory": [
1239 | [
1240 | {
1241 | "node": "AI Agent",
1242 | "type": "ai_memory",
1243 | "index": 0
1244 | }
1245 | ]
1246 | ]
1247 | },
1248 | "API KEY ЗАМЕНИТЬ": {
1249 | "main": [
1250 | [
1251 | {
1252 | "node": "Start command?",
1253 | "type": "main",
1254 | "index": 0
1255 | }
1256 | ]
1257 | ]
1258 | },
1259 | "GPT 4.1 mini": {
1260 | "ai_languageModel": [
1261 | [
1262 | {
1263 | "node": "AI Agent",
1264 | "type": "ai_languageModel",
1265 | "index": 0
1266 | }
1267 | ]
1268 | ]
1269 | },
1270 | "Chat Memory Manager": {
1271 | "main": [
1272 | [
1273 | {
1274 | "node": "Send Message NEW CHAT",
1275 | "type": "main",
1276 | "index": 0
1277 | }
1278 | ]
1279 | ]
1280 | },
1281 | "Start command?": {
1282 | "main": [
1283 | [
1284 | {
1285 | "node": "Chat Memory Manager",
1286 | "type": "main",
1287 | "index": 0
1288 | }
1289 | ],
1290 | [
1291 | {
1292 | "node": "Telegram typing",
1293 | "type": "main",
1294 | "index": 0
1295 | }
1296 | ]
1297 | ]
1298 | },
1299 | "Simple Memory1": {
1300 | "ai_memory": [
1301 | [
1302 | {
1303 | "node": "Chat Memory Manager",
1304 | "type": "ai_memory",
1305 | "index": 0
1306 | }
1307 | ]
1308 | ]
1309 | }
1310 | },
1311 | "pinData": {
1312 | "Webhook": [
1313 | {
1314 | "headers": {
1315 | "host": "api.ai1618.ru",
1316 | "content-length": "504",
1317 | "accept-encoding": "gzip, deflate",
1318 | "content-type": "application/json",
1319 | "x-forwarded-for": "91.108.5.33",
1320 | "x-forwarded-host": "api.ai1618.ru",
1321 | "x-forwarded-port": "443",
1322 | "x-forwarded-proto": "https",
1323 | "x-forwarded-server": "a30807168bae",
1324 | "x-real-ip": "91.108.5.33"
1325 | },
1326 | "params": {},
1327 | "query": {},
1328 | "body": {
1329 | "update_id": 248102418,
1330 | "message": {
1331 | "message_id": 13,
1332 | "from": {
1333 | "id": 6025341317,
1334 | "is_bot": false,
1335 | "first_name": "THE N",
1336 | "username": "THE1N618",
1337 | "language_code": "ru"
1338 | },
1339 | "chat": {
1340 | "id": -4684392983,
1341 | "title": "VIDEO group",
1342 | "type": "group",
1343 | "all_members_are_administrators": true,
1344 | "accepted_gift_types": {
1345 | "unlimited_gifts": false,
1346 | "limited_gifts": false,
1347 | "unique_gifts": false,
1348 | "premium_subscription": false
1349 | }
1350 | },
1351 | "date": 1753290247,
1352 | "text": "/bot привет",
1353 | "entities": [
1354 | {
1355 | "offset": 0,
1356 | "length": 4,
1357 | "type": "bot_command"
1358 | }
1359 | ]
1360 | }
1361 | },
1362 | "webhookUrl": "https://api.ai1618.ru/webhook/telegam",
1363 | "executionMode": "production"
1364 | }
1365 | ]
1366 | },
1367 | "meta": {
1368 | "instanceId": "89117b89e6ee2e2d36a3f934f1a63e32c1c204c62e00bb625da8c39baf77c2c7"
1369 | }
1370 | }
1371 |
--------------------------------------------------------------------------------
/make/blueprint-openai-assistant-wazzup.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "AI ASSISTANT by @shorin_nikita",
3 | "flow": [
4 | {
5 | "id": 1,
6 | "module": "gateway:CustomWebHook",
7 | "version": 1,
8 | "parameters": {
9 | "hook": 1106203,
10 | "maxResults": 1
11 | },
12 | "mapper": {},
13 | "metadata": {
14 | "designer": {
15 | "x": 0,
16 | "y": 150
17 | },
18 | "restore": {
19 | "parameters": {
20 | "hook": {
21 | "data": {
22 | "editable": "true"
23 | },
24 | "label": "aibot.school wazzup+make v10.22"
25 | }
26 | }
27 | },
28 | "parameters": [
29 | {
30 | "name": "hook",
31 | "type": "hook:gateway-webhook",
32 | "label": "Webhook",
33 | "required": true
34 | },
35 | {
36 | "name": "maxResults",
37 | "type": "number",
38 | "label": "Maximum number of results"
39 | }
40 | ],
41 | "interface": [
42 | {
43 | "name": "test",
44 | "type": "boolean"
45 | }
46 | ]
47 | }
48 | },
49 | {
50 | "id": 2,
51 | "module": "datastore:ExistRecord",
52 | "version": 1,
53 | "parameters": {
54 | "datastore": 32685
55 | },
56 | "filter": {
57 | "name": "PrideAIBot",
58 | "conditions": [
59 | [
60 | {
61 | "a": "{{1.messages[].status}}",
62 | "b": "inbound",
63 | "o": "text:equal"
64 | },
65 | {
66 | "a": "{{1.messages[].text}}",
67 | "o": "exist"
68 | }
69 | ]
70 | ]
71 | },
72 | "mapper": {
73 | "key": "{{1.messages[].chatId}}"
74 | },
75 | "metadata": {
76 | "designer": {
77 | "x": 300,
78 | "y": 150
79 | },
80 | "restore": {
81 | "parameters": {
82 | "datastore": {
83 | "label": "thread_id"
84 | }
85 | }
86 | },
87 | "parameters": [
88 | {
89 | "name": "datastore",
90 | "type": "datastore",
91 | "label": "Data store",
92 | "required": true
93 | }
94 | ],
95 | "expect": [
96 | {
97 | "name": "key",
98 | "type": "text",
99 | "label": "Key",
100 | "required": true
101 | }
102 | ]
103 | }
104 | },
105 | {
106 | "id": 3,
107 | "module": "builtin:BasicRouter",
108 | "version": 1,
109 | "mapper": null,
110 | "metadata": {
111 | "designer": {
112 | "x": 600,
113 | "y": 150
114 | }
115 | },
116 | "routes": [
117 | {
118 | "flow": [
119 | {
120 | "id": 6,
121 | "module": "openai-gpt-3:messageAssistantAdvanced",
122 | "version": 1,
123 | "parameters": {
124 | "__IMTCONN__": 1277196
125 | },
126 | "filter": {
127 | "name": "Новый",
128 | "conditions": [
129 | [
130 | {
131 | "a": "{{2.exist}}",
132 | "b": "false",
133 | "o": "text:equal"
134 | }
135 | ]
136 | ]
137 | },
138 | "mapper": {
139 | "role": "user",
140 | "message": "{{1.messages[].text}}",
141 | "assistantId": "asst_44TqBcHSoBJErZvjKBSBvQoB"
142 | },
143 | "metadata": {
144 | "designer": {
145 | "x": 900,
146 | "y": 0
147 | },
148 | "restore": {
149 | "expect": {
150 | "role": {
151 | "label": "User"
152 | },
153 | "model": {
154 | "mode": "chose"
155 | },
156 | "tools": {
157 | "mode": "chose"
158 | },
159 | "image_urls": {
160 | "mode": "chose"
161 | },
162 | "assistantId": {
163 | "mode": "chose",
164 | "label": "tester (gpt-4o)",
165 | "nested": []
166 | },
167 | "image_files": {
168 | "mode": "chose"
169 | },
170 | "tool_choice": {
171 | "mode": "chose",
172 | "label": "Empty"
173 | },
174 | "response_format": {
175 | "mode": "chose",
176 | "label": "Empty"
177 | },
178 | "truncation_strategy": {
179 | "mode": "chose",
180 | "label": "Empty"
181 | },
182 | "file_search_resources": {
183 | "mode": "chose"
184 | },
185 | "code_interpreter_resources": {
186 | "mode": "chose"
187 | }
188 | },
189 | "parameters": {
190 | "__IMTCONN__": {
191 | "data": {
192 | "scoped": "true",
193 | "connection": "openai-gpt-3"
194 | },
195 | "label": "My OpenAI connection"
196 | }
197 | }
198 | },
199 | "parameters": [
200 | {
201 | "name": "__IMTCONN__",
202 | "type": "account:openai-gpt-3",
203 | "label": "Connection",
204 | "required": true
205 | }
206 | ],
207 | "expect": [
208 | {
209 | "name": "assistantId",
210 | "type": "select",
211 | "label": "Assistant",
212 | "required": true
213 | },
214 | {
215 | "name": "role",
216 | "type": "select",
217 | "label": "Role",
218 | "required": true,
219 | "validate": {
220 | "enum": [
221 | "user",
222 | "assistant"
223 | ]
224 | }
225 | },
226 | {
227 | "name": "threadId",
228 | "type": "text",
229 | "label": "Thread ID"
230 | },
231 | {
232 | "name": "model",
233 | "type": "select",
234 | "label": "Model"
235 | },
236 | {
237 | "name": "tools",
238 | "type": "select",
239 | "label": "Tools",
240 | "multiple": true,
241 | "validate": {
242 | "enum": [
243 | "file_search",
244 | "code_interpreter"
245 | ]
246 | }
247 | },
248 | {
249 | "name": "file_search_resources",
250 | "type": "select",
251 | "label": "File Search Resources"
252 | },
253 | {
254 | "name": "code_interpreter_resources",
255 | "type": "select",
256 | "label": "Code Interpreter Resources",
257 | "multiple": true,
258 | "validate": {
259 | "maxItems": 20
260 | }
261 | },
262 | {
263 | "name": "tool_choice",
264 | "type": "select",
265 | "label": "Tool Choice",
266 | "validate": {
267 | "enum": [
268 | "none",
269 | "auto",
270 | "required",
271 | "file_search",
272 | "code_interpreter",
273 | "function"
274 | ]
275 | }
276 | },
277 | {
278 | "name": "instructions",
279 | "type": "text",
280 | "label": "Instructions"
281 | },
282 | {
283 | "name": "max_prompt_tokens",
284 | "type": "uinteger",
285 | "label": "Max Prompt Tokens"
286 | },
287 | {
288 | "name": "max_completion_tokens",
289 | "type": "uinteger",
290 | "label": "Max Completion Tokens"
291 | },
292 | {
293 | "name": "temperature",
294 | "type": "number",
295 | "label": "Temperature",
296 | "validate": {
297 | "max": 2,
298 | "min": 0
299 | }
300 | },
301 | {
302 | "name": "top_p",
303 | "type": "number",
304 | "label": "Top P",
305 | "validate": {
306 | "max": 1,
307 | "min": 0
308 | }
309 | },
310 | {
311 | "name": "response_format",
312 | "type": "select",
313 | "label": "Response Format",
314 | "validate": {
315 | "enum": [
316 | "auto",
317 | "json_object",
318 | "text"
319 | ]
320 | }
321 | },
322 | {
323 | "name": "truncation_strategy",
324 | "type": "select",
325 | "label": "Truncation Strategy",
326 | "validate": {
327 | "enum": [
328 | "auto",
329 | "last_messages"
330 | ]
331 | }
332 | },
333 | {
334 | "name": "message",
335 | "type": "text",
336 | "label": "Message",
337 | "required": true
338 | },
339 | {
340 | "name": "image_files",
341 | "type": "select",
342 | "label": "Image Files",
343 | "multiple": true
344 | },
345 | {
346 | "name": "image_urls",
347 | "spec": {
348 | "name": "value",
349 | "type": "url",
350 | "label": "Image URL",
351 | "required": true
352 | },
353 | "type": "array",
354 | "label": "Image URLs"
355 | }
356 | ]
357 | }
358 | },
359 | {
360 | "id": 4,
361 | "module": "datastore:AddRecord",
362 | "version": 1,
363 | "parameters": {
364 | "datastore": 32685
365 | },
366 | "mapper": {
367 | "key": "{{1.messages[].chatId}}",
368 | "data": {
369 | "thread_id": "{{6.thread_id}}"
370 | },
371 | "overwrite": false
372 | },
373 | "metadata": {
374 | "designer": {
375 | "x": 1200,
376 | "y": 0
377 | },
378 | "restore": {
379 | "expect": {
380 | "overwrite": {
381 | "mode": "chose"
382 | }
383 | },
384 | "parameters": {
385 | "datastore": {
386 | "label": "thread_id"
387 | }
388 | }
389 | },
390 | "parameters": [
391 | {
392 | "name": "datastore",
393 | "type": "datastore",
394 | "label": "Data store",
395 | "required": true
396 | }
397 | ],
398 | "expect": [
399 | {
400 | "name": "key",
401 | "type": "text",
402 | "label": "Key"
403 | },
404 | {
405 | "name": "overwrite",
406 | "type": "boolean",
407 | "label": "Overwrite an existing record",
408 | "required": true
409 | },
410 | {
411 | "name": "data",
412 | "spec": [
413 | {
414 | "name": "thread_id",
415 | "type": "text",
416 | "label": null
417 | }
418 | ],
419 | "type": "collection",
420 | "label": "Record"
421 | }
422 | ]
423 | }
424 | },
425 | {
426 | "id": 10,
427 | "module": "http:ActionSendData",
428 | "version": 3,
429 | "parameters": {
430 | "handleErrors": false,
431 | "useNewZLibDeCompress": true
432 | },
433 | "mapper": {
434 | "ca": "",
435 | "qs": [],
436 | "url": "https://api.wazzup24.com/v3/message",
437 | "gzip": true,
438 | "method": "post",
439 | "headers": [
440 | {
441 | "name": "Content-Type",
442 | "value": "application/json"
443 | },
444 | {
445 | "name": "Authorization",
446 | "value": "Bearer {{var.input.wazzup_api_key}}"
447 | }
448 | ],
449 | "timeout": "",
450 | "useMtls": false,
451 | "authPass": "",
452 | "authUser": "",
453 | "bodyType": "x_www_form_urlencoded",
454 | "formFields": [
455 | {
456 | "key": "chatId",
457 | "value": "{{1.messages[].chatId}}"
458 | },
459 | {
460 | "key": "channelId",
461 | "value": "{{1.messages[].channelId}}"
462 | },
463 | {
464 | "key": "chatType",
465 | "value": "{{1.messages[].chatType}}"
466 | },
467 | {
468 | "key": "text",
469 | "value": "{{6.result}}"
470 | }
471 | ],
472 | "serializeUrl": false,
473 | "shareCookies": false,
474 | "parseResponse": false,
475 | "followRedirect": true,
476 | "useQuerystring": false,
477 | "followAllRedirects": false,
478 | "rejectUnauthorized": true
479 | },
480 | "metadata": {
481 | "designer": {
482 | "x": 1500,
483 | "y": 0
484 | },
485 | "restore": {
486 | "expect": {
487 | "qs": {
488 | "mode": "chose"
489 | },
490 | "method": {
491 | "mode": "chose",
492 | "label": "POST"
493 | },
494 | "headers": {
495 | "mode": "chose",
496 | "items": [
497 | null,
498 | null
499 | ]
500 | },
501 | "bodyType": {
502 | "label": "Application/x-www-form-urlencoded"
503 | },
504 | "formFields": {
505 | "mode": "chose",
506 | "items": [
507 | null,
508 | null,
509 | null,
510 | null
511 | ]
512 | }
513 | }
514 | },
515 | "parameters": [
516 | {
517 | "name": "handleErrors",
518 | "type": "boolean",
519 | "label": "Evaluate all states as errors (except for 2xx and 3xx )",
520 | "required": true
521 | },
522 | {
523 | "name": "useNewZLibDeCompress",
524 | "type": "hidden"
525 | }
526 | ],
527 | "expect": [
528 | {
529 | "name": "url",
530 | "type": "url",
531 | "label": "URL",
532 | "required": true
533 | },
534 | {
535 | "name": "serializeUrl",
536 | "type": "boolean",
537 | "label": "Serialize URL",
538 | "required": true
539 | },
540 | {
541 | "name": "method",
542 | "type": "select",
543 | "label": "Method",
544 | "required": true,
545 | "validate": {
546 | "enum": [
547 | "get",
548 | "head",
549 | "post",
550 | "put",
551 | "patch",
552 | "delete",
553 | "options"
554 | ]
555 | }
556 | },
557 | {
558 | "name": "headers",
559 | "spec": [
560 | {
561 | "name": "name",
562 | "type": "text",
563 | "label": "Name",
564 | "required": true
565 | },
566 | {
567 | "name": "value",
568 | "type": "text",
569 | "label": "Value"
570 | }
571 | ],
572 | "type": "array",
573 | "label": "Headers"
574 | },
575 | {
576 | "name": "qs",
577 | "spec": [
578 | {
579 | "name": "name",
580 | "type": "text",
581 | "label": "Name",
582 | "required": true
583 | },
584 | {
585 | "name": "value",
586 | "type": "text",
587 | "label": "Value"
588 | }
589 | ],
590 | "type": "array",
591 | "label": "Query String"
592 | },
593 | {
594 | "name": "bodyType",
595 | "type": "select",
596 | "label": "Body type",
597 | "validate": {
598 | "enum": [
599 | "raw",
600 | "x_www_form_urlencoded",
601 | "multipart_form_data"
602 | ]
603 | }
604 | },
605 | {
606 | "name": "parseResponse",
607 | "type": "boolean",
608 | "label": "Parse response",
609 | "required": true
610 | },
611 | {
612 | "name": "authUser",
613 | "type": "text",
614 | "label": "User name"
615 | },
616 | {
617 | "name": "authPass",
618 | "type": "password",
619 | "label": "Password"
620 | },
621 | {
622 | "name": "timeout",
623 | "type": "uinteger",
624 | "label": "Timeout",
625 | "validate": {
626 | "max": 300,
627 | "min": 1
628 | }
629 | },
630 | {
631 | "name": "shareCookies",
632 | "type": "boolean",
633 | "label": "Share cookies with other HTTP modules",
634 | "required": true
635 | },
636 | {
637 | "name": "ca",
638 | "type": "cert",
639 | "label": "Self-signed certificate"
640 | },
641 | {
642 | "name": "rejectUnauthorized",
643 | "type": "boolean",
644 | "label": "Reject connections that are using unverified (self-signed) certificates",
645 | "required": true
646 | },
647 | {
648 | "name": "followRedirect",
649 | "type": "boolean",
650 | "label": "Follow redirect",
651 | "required": true
652 | },
653 | {
654 | "name": "useQuerystring",
655 | "type": "boolean",
656 | "label": "Disable serialization of multiple same query string keys as arrays",
657 | "required": true
658 | },
659 | {
660 | "name": "gzip",
661 | "type": "boolean",
662 | "label": "Request compressed content",
663 | "required": true
664 | },
665 | {
666 | "name": "useMtls",
667 | "type": "boolean",
668 | "label": "Use Mutual TLS",
669 | "required": true
670 | },
671 | {
672 | "name": "formFields",
673 | "spec": [
674 | {
675 | "name": "key",
676 | "type": "text",
677 | "label": "Key",
678 | "required": true
679 | },
680 | {
681 | "name": "value",
682 | "type": "text",
683 | "label": "Value"
684 | }
685 | ],
686 | "type": "array",
687 | "label": "Fields"
688 | },
689 | {
690 | "name": "followAllRedirects",
691 | "type": "boolean",
692 | "label": "Follow all redirect",
693 | "required": true
694 | }
695 | ]
696 | }
697 | }
698 | ]
699 | },
700 | {
701 | "flow": [
702 | {
703 | "id": 5,
704 | "module": "datastore:GetRecord",
705 | "version": 1,
706 | "parameters": {
707 | "datastore": 32685
708 | },
709 | "filter": {
710 | "name": "Повторный",
711 | "conditions": [
712 | [
713 | {
714 | "a": "{{2.exist}}",
715 | "b": "true",
716 | "o": "text:equal"
717 | }
718 | ]
719 | ]
720 | },
721 | "mapper": {
722 | "key": "{{1.messages[].chatId}}",
723 | "returnWrapped": false
724 | },
725 | "metadata": {
726 | "designer": {
727 | "x": 900,
728 | "y": 300
729 | },
730 | "restore": {
731 | "parameters": {
732 | "datastore": {
733 | "label": "thread_id"
734 | }
735 | }
736 | },
737 | "parameters": [
738 | {
739 | "name": "datastore",
740 | "type": "datastore",
741 | "label": "Data store",
742 | "required": true
743 | }
744 | ],
745 | "expect": [
746 | {
747 | "name": "key",
748 | "type": "text",
749 | "label": "Key",
750 | "required": true
751 | },
752 | {
753 | "name": "returnWrapped",
754 | "type": "boolean",
755 | "label": "Return Wrapped Output",
756 | "required": true
757 | }
758 | ],
759 | "interface": [
760 | {
761 | "name": "thread_id",
762 | "type": "text",
763 | "label": null,
764 | "default": null,
765 | "required": false,
766 | "multiline": false
767 | }
768 | ]
769 | }
770 | },
771 | {
772 | "id": 7,
773 | "module": "openai-gpt-3:messageAssistantAdvanced",
774 | "version": 1,
775 | "parameters": {
776 | "__IMTCONN__": 1277196
777 | },
778 | "mapper": {
779 | "role": "user",
780 | "message": "{{1.messages[].text}}",
781 | "threadId": "{{5.thread_id}}",
782 | "assistantId": "asst_44TqBcHSoBJErZvjKBSBvQoB"
783 | },
784 | "metadata": {
785 | "designer": {
786 | "x": 1200,
787 | "y": 300
788 | },
789 | "restore": {
790 | "expect": {
791 | "role": {
792 | "label": "User"
793 | },
794 | "model": {
795 | "mode": "chose"
796 | },
797 | "tools": {
798 | "mode": "chose"
799 | },
800 | "image_urls": {
801 | "mode": "chose"
802 | },
803 | "assistantId": {
804 | "mode": "chose",
805 | "label": "tester (gpt-4o)",
806 | "nested": []
807 | },
808 | "image_files": {
809 | "mode": "chose"
810 | },
811 | "tool_choice": {
812 | "mode": "chose",
813 | "label": "Empty"
814 | },
815 | "response_format": {
816 | "mode": "chose",
817 | "label": "Empty"
818 | },
819 | "truncation_strategy": {
820 | "mode": "chose",
821 | "label": "Empty"
822 | },
823 | "file_search_resources": {
824 | "mode": "chose"
825 | },
826 | "code_interpreter_resources": {
827 | "mode": "chose"
828 | }
829 | },
830 | "parameters": {
831 | "__IMTCONN__": {
832 | "data": {
833 | "scoped": "true",
834 | "connection": "openai-gpt-3"
835 | },
836 | "label": "My OpenAI connection"
837 | }
838 | }
839 | },
840 | "parameters": [
841 | {
842 | "name": "__IMTCONN__",
843 | "type": "account:openai-gpt-3",
844 | "label": "Connection",
845 | "required": true
846 | }
847 | ],
848 | "expect": [
849 | {
850 | "name": "assistantId",
851 | "type": "select",
852 | "label": "Assistant",
853 | "required": true
854 | },
855 | {
856 | "name": "role",
857 | "type": "select",
858 | "label": "Role",
859 | "required": true,
860 | "validate": {
861 | "enum": [
862 | "user",
863 | "assistant"
864 | ]
865 | }
866 | },
867 | {
868 | "name": "threadId",
869 | "type": "text",
870 | "label": "Thread ID"
871 | },
872 | {
873 | "name": "model",
874 | "type": "select",
875 | "label": "Model"
876 | },
877 | {
878 | "name": "tools",
879 | "type": "select",
880 | "label": "Tools",
881 | "multiple": true,
882 | "validate": {
883 | "enum": [
884 | "file_search",
885 | "code_interpreter"
886 | ]
887 | }
888 | },
889 | {
890 | "name": "file_search_resources",
891 | "type": "select",
892 | "label": "File Search Resources"
893 | },
894 | {
895 | "name": "code_interpreter_resources",
896 | "type": "select",
897 | "label": "Code Interpreter Resources",
898 | "multiple": true,
899 | "validate": {
900 | "maxItems": 20
901 | }
902 | },
903 | {
904 | "name": "tool_choice",
905 | "type": "select",
906 | "label": "Tool Choice",
907 | "validate": {
908 | "enum": [
909 | "none",
910 | "auto",
911 | "required",
912 | "file_search",
913 | "code_interpreter",
914 | "function"
915 | ]
916 | }
917 | },
918 | {
919 | "name": "instructions",
920 | "type": "text",
921 | "label": "Instructions"
922 | },
923 | {
924 | "name": "max_prompt_tokens",
925 | "type": "uinteger",
926 | "label": "Max Prompt Tokens"
927 | },
928 | {
929 | "name": "max_completion_tokens",
930 | "type": "uinteger",
931 | "label": "Max Completion Tokens"
932 | },
933 | {
934 | "name": "temperature",
935 | "type": "number",
936 | "label": "Temperature",
937 | "validate": {
938 | "max": 2,
939 | "min": 0
940 | }
941 | },
942 | {
943 | "name": "top_p",
944 | "type": "number",
945 | "label": "Top P",
946 | "validate": {
947 | "max": 1,
948 | "min": 0
949 | }
950 | },
951 | {
952 | "name": "response_format",
953 | "type": "select",
954 | "label": "Response Format",
955 | "validate": {
956 | "enum": [
957 | "auto",
958 | "json_object",
959 | "text"
960 | ]
961 | }
962 | },
963 | {
964 | "name": "truncation_strategy",
965 | "type": "select",
966 | "label": "Truncation Strategy",
967 | "validate": {
968 | "enum": [
969 | "auto",
970 | "last_messages"
971 | ]
972 | }
973 | },
974 | {
975 | "name": "message",
976 | "type": "text",
977 | "label": "Message",
978 | "required": true
979 | },
980 | {
981 | "name": "image_files",
982 | "type": "select",
983 | "label": "Image Files",
984 | "multiple": true
985 | },
986 | {
987 | "name": "image_urls",
988 | "spec": {
989 | "name": "value",
990 | "type": "url",
991 | "label": "Image URL",
992 | "required": true
993 | },
994 | "type": "array",
995 | "label": "Image URLs"
996 | }
997 | ]
998 | }
999 | },
1000 | {
1001 | "id": 11,
1002 | "module": "http:ActionSendData",
1003 | "version": 3,
1004 | "parameters": {
1005 | "handleErrors": false,
1006 | "useNewZLibDeCompress": true
1007 | },
1008 | "mapper": {
1009 | "url": "https://api.wazzup24.com/v3/message",
1010 | "serializeUrl": false,
1011 | "method": "post",
1012 | "headers": [
1013 | {
1014 | "name": "Content-Type",
1015 | "value": "application/json"
1016 | },
1017 | {
1018 | "name": "Authorization",
1019 | "value": "Bearer {{var.input.wazzup_api_key}}"
1020 | }
1021 | ],
1022 | "qs": [],
1023 | "bodyType": "x_www_form_urlencoded",
1024 | "parseResponse": false,
1025 | "authUser": "",
1026 | "authPass": "",
1027 | "timeout": "",
1028 | "shareCookies": false,
1029 | "ca": "",
1030 | "rejectUnauthorized": true,
1031 | "followRedirect": true,
1032 | "useQuerystring": false,
1033 | "gzip": true,
1034 | "useMtls": false,
1035 | "formFields": [
1036 | {
1037 | "key": "chatId",
1038 | "value": "{{1.messages[].chatId}}"
1039 | },
1040 | {
1041 | "key": "channelId",
1042 | "value": "{{1.messages[].channelId}}"
1043 | },
1044 | {
1045 | "key": "chatType",
1046 | "value": "{{1.messages[].chatType}}"
1047 | },
1048 | {
1049 | "key": "text",
1050 | "value": "{{7.result}}\n【@PrideAIBot】"
1051 | }
1052 | ],
1053 | "followAllRedirects": false
1054 | },
1055 | "metadata": {
1056 | "designer": {
1057 | "x": 1500,
1058 | "y": 300
1059 | },
1060 | "restore": {
1061 | "expect": {
1062 | "method": {
1063 | "mode": "chose",
1064 | "label": "POST"
1065 | },
1066 | "headers": {
1067 | "mode": "chose",
1068 | "items": [
1069 | null,
1070 | null
1071 | ]
1072 | },
1073 | "qs": {
1074 | "mode": "chose"
1075 | },
1076 | "bodyType": {
1077 | "label": "Application/x-www-form-urlencoded"
1078 | },
1079 | "formFields": {
1080 | "mode": "chose",
1081 | "items": [
1082 | null,
1083 | null,
1084 | null,
1085 | null
1086 | ]
1087 | }
1088 | }
1089 | },
1090 | "parameters": [
1091 | {
1092 | "name": "handleErrors",
1093 | "type": "boolean",
1094 | "label": "Evaluate all states as errors (except for 2xx and 3xx )",
1095 | "required": true
1096 | },
1097 | {
1098 | "name": "useNewZLibDeCompress",
1099 | "type": "hidden"
1100 | }
1101 | ],
1102 | "expect": [
1103 | {
1104 | "name": "url",
1105 | "type": "url",
1106 | "label": "URL",
1107 | "required": true
1108 | },
1109 | {
1110 | "name": "serializeUrl",
1111 | "type": "boolean",
1112 | "label": "Serialize URL",
1113 | "required": true
1114 | },
1115 | {
1116 | "name": "method",
1117 | "type": "select",
1118 | "label": "Method",
1119 | "required": true,
1120 | "validate": {
1121 | "enum": [
1122 | "get",
1123 | "head",
1124 | "post",
1125 | "put",
1126 | "patch",
1127 | "delete",
1128 | "options"
1129 | ]
1130 | }
1131 | },
1132 | {
1133 | "name": "headers",
1134 | "type": "array",
1135 | "label": "Headers",
1136 | "spec": [
1137 | {
1138 | "name": "name",
1139 | "label": "Name",
1140 | "type": "text",
1141 | "required": true
1142 | },
1143 | {
1144 | "name": "value",
1145 | "label": "Value",
1146 | "type": "text"
1147 | }
1148 | ]
1149 | },
1150 | {
1151 | "name": "qs",
1152 | "type": "array",
1153 | "label": "Query String",
1154 | "spec": [
1155 | {
1156 | "name": "name",
1157 | "label": "Name",
1158 | "type": "text",
1159 | "required": true
1160 | },
1161 | {
1162 | "name": "value",
1163 | "label": "Value",
1164 | "type": "text"
1165 | }
1166 | ]
1167 | },
1168 | {
1169 | "name": "bodyType",
1170 | "type": "select",
1171 | "label": "Body type",
1172 | "validate": {
1173 | "enum": [
1174 | "raw",
1175 | "x_www_form_urlencoded",
1176 | "multipart_form_data"
1177 | ]
1178 | }
1179 | },
1180 | {
1181 | "name": "parseResponse",
1182 | "type": "boolean",
1183 | "label": "Parse response",
1184 | "required": true
1185 | },
1186 | {
1187 | "name": "authUser",
1188 | "type": "text",
1189 | "label": "User name"
1190 | },
1191 | {
1192 | "name": "authPass",
1193 | "type": "password",
1194 | "label": "Password"
1195 | },
1196 | {
1197 | "name": "timeout",
1198 | "type": "uinteger",
1199 | "label": "Timeout",
1200 | "validate": {
1201 | "max": 300,
1202 | "min": 1
1203 | }
1204 | },
1205 | {
1206 | "name": "shareCookies",
1207 | "type": "boolean",
1208 | "label": "Share cookies with other HTTP modules",
1209 | "required": true
1210 | },
1211 | {
1212 | "name": "ca",
1213 | "type": "cert",
1214 | "label": "Self-signed certificate"
1215 | },
1216 | {
1217 | "name": "rejectUnauthorized",
1218 | "type": "boolean",
1219 | "label": "Reject connections that are using unverified (self-signed) certificates",
1220 | "required": true
1221 | },
1222 | {
1223 | "name": "followRedirect",
1224 | "type": "boolean",
1225 | "label": "Follow redirect",
1226 | "required": true
1227 | },
1228 | {
1229 | "name": "useQuerystring",
1230 | "type": "boolean",
1231 | "label": "Disable serialization of multiple same query string keys as arrays",
1232 | "required": true
1233 | },
1234 | {
1235 | "name": "gzip",
1236 | "type": "boolean",
1237 | "label": "Request compressed content",
1238 | "required": true
1239 | },
1240 | {
1241 | "name": "useMtls",
1242 | "type": "boolean",
1243 | "label": "Use Mutual TLS",
1244 | "required": true
1245 | },
1246 | {
1247 | "name": "formFields",
1248 | "type": "array",
1249 | "label": "Fields",
1250 | "spec": [
1251 | {
1252 | "name": "key",
1253 | "label": "Key",
1254 | "type": "text",
1255 | "required": true
1256 | },
1257 | {
1258 | "name": "value",
1259 | "label": "Value",
1260 | "type": "text"
1261 | }
1262 | ]
1263 | },
1264 | {
1265 | "name": "followAllRedirects",
1266 | "type": "boolean",
1267 | "label": "Follow all redirect",
1268 | "required": true
1269 | }
1270 | ]
1271 | }
1272 | }
1273 | ]
1274 | }
1275 | ]
1276 | }
1277 | ],
1278 | "metadata": {
1279 | "instant": true,
1280 | "version": 1,
1281 | "scenario": {
1282 | "roundtrips": 1,
1283 | "maxErrors": 3,
1284 | "autoCommit": true,
1285 | "autoCommitTriggerLast": true,
1286 | "sequential": false,
1287 | "slots": null,
1288 | "confidential": false,
1289 | "dataloss": false,
1290 | "dlq": false,
1291 | "freshVariables": false
1292 | },
1293 | "designer": {
1294 | "orphans": []
1295 | },
1296 | "zone": "eu2.make.com",
1297 | "notes": [
1298 | {
1299 | "moduleIds": [
1300 | 1
1301 | ],
1302 | "content": "PrideAIBot by shorin_nikita
Вступить в сообщество: https://pride.aibot.school
",
1303 | "isFilterNote": false,
1304 | "metadata": {
1305 | "color": "#9138FE"
1306 | }
1307 | }
1308 | ]
1309 | },
1310 | "io": {
1311 | "input_spec": [
1312 | {
1313 | "name": "wazzup_api_key",
1314 | "type": "text",
1315 | "label": "",
1316 | "default": "ЗАМЕНИТЬ",
1317 | "required": false,
1318 | "multiline": false
1319 | }
1320 | ],
1321 | "output_spec": []
1322 | }
1323 | }
1324 |
--------------------------------------------------------------------------------