n8n-nodes-yandex-messenger
v0.3.0
Published
n8n node for Yandex Messenger Bot API - send text messages, files, images, albums and receive updates via webhook
Maintainers
Readme
n8n-nodes-yandex-messenger
Community node for n8n to interact with Yandex Messenger Bot API
English
📖 About
This n8n community node lets you automate work in Yandex Messenger (part of Yandex 360 for Business) and integrate it with 400+ other services available in n8n. Built by the community, inspired by the architecture of the Telegram node.
🆕 What's New in v0.3.0
- 📊 Polls Support — Create polls, retrieve vote counts, and get lists of voters.
- ✨ UX Improvements — Comma-separated logins for quick chat creation (no more tedious clicking!), smart grid auto-detection for Suggest Buttons.
- 🏗 Architecture Refactoring — Modular, clean, and highly maintainable codebase.
🚀 Installation
Via n8n UI (recommended)
- Open Settings → Community Nodes
- Enter
n8n-nodes-yandex-messenger - Click Install
Manual
cd ~/.n8n/nodes
npm install n8n-nodes-yandex-messenger
# Restart n8n after installation🔑 Credentials
You need an OAuth token for your Yandex Messenger bot.
| Field | Description | |---|---| | Bot OAuth Token | OAuth token issued for your bot in Yandex 360 admin panel |
⚡ Operations
Yandex Messenger Node
Message
| Operation | Description |
|---|---|
| Send Text | Send a text message with optional suggest buttons, reply, and threading support. Max 6000 characters |
| Send File | Send a file to a chat or user via multipart/form-data |
| Send Image | Send an image to a chat or user |
| Send Album | Send multiple images as an album |
| Delete | Delete a message from a chat |
Poll 🆕
| Operation | Description | |---|---| | Create | Create a new poll with multiple answers and optional interactive buttons | | Get Results | Retrieve the total number of voters and vote counts per answer | | Get Voters | Get the list of users who voted for a specific answer (supports pagination) |
Chat
| Operation | Description | |---|---| | Create | Create a new group chat or channel with optional members, subscribers, admins, and avatar | | Update Members | Add or remove members, admins, or subscribers in an existing chat or channel |
Bot Settings
| Operation | Description | |---|---| | Set Webhook | Set or remove the webhook URL for receiving updates |
Yandex Messenger Trigger Node
Starts the workflow when a Yandex Messenger event occurs:
| Event | Description | |---|---| | All Updates | Receive all types of updates | | New Message | Triggered when a new message is sent to the bot | | Message Updated | Triggered when an existing message is edited | | Callback Button Pressed | Triggered when a user presses an inline button |
📬 Recipient Types
Each message/poll operation supports two recipient types:
| Type | Parameter | Description |
|---|---|---|
| Group Chat | chat_id | Send to a group chat where the bot is a member |
| User | login | Send a private message to a user by login |
Note: At least one of
chat_idorloginmust be provided. The bot can only send messages to chats where it is a member or admin.
🆕📊 Polls — Create & Track
Easily interact with audiences using polls.
| Field | Required | Type | Description |
|---|---|---|---|
| pollTitle | ✅ | string | Question or title of the poll |
| pollAnswers | ✅ | array | List of answers (min 2, max 100) |
| is_anonymous | ❌ | boolean | Hide who voted for what |
| max_choices | ❌ | number | Allow users to select multiple options |
| answerId | ❌ | number | Required for Get Voters. The ID of the answer (starts from 1) |
💬 Chat — Create & Update
Create chats effortlessly by providing a comma-separated list of logins (e.g., ivan, anna, petr).
| Field | Required | Type | Description |
|---|---|---|---|
| name | ✅ | string | Name of the chat or channel (max 200 characters) |
| description | ✅ | string | Description (max 500 characters, empty string allowed) |
| channel | ❌ | boolean | Set to true to create a channel instead of a chat |
| admins | ❌ | string | Comma-separated list of administrators (max 100) |
| members | ❌ | string | Comma-separated list of chat members (max 500, only for chats) |
| subscribers | ❌ | string | Comma-separated list of channel subscribers (max 500, only for channels) |
Example:
{
"resource": "chat",
"operation": "create",
"chatName": "Project Alpha",
"chatDescription": "Discussion chat for Project Alpha",
"channel": false,
"chatMembersString": "john.doe, jane.smith"
}🔘 Suggest Buttons
Modern interactive buttons that replace the deprecated inline_keyboard. Each button can contain up to 3 directives.
Smart Grid: If you set a Row Number > 0 for any button, the node automatically formats them as a Grid.
Directive Types:
| Type | Description |
|---|---|
| open_uri | Opens a URL in the browser |
| send_message | Sends a message to the chat on behalf of the user |
| server_action | Sends a silent callback to the bot (no visible message) |
| set_elements_state | Changes button state (e.g., loading, disabled) |
⚠️ Limitations
- Bot can only message chats where it's a member or admin
- Bot cannot send private messages to users who have disabled it in privacy settings
- Bot cannot message users outside its organization
- Text messages are limited to 6000 characters
- Chat/channel name is limited to 200 characters, description to 500 characters
- Max 100 admins, 500 members/subscribers per request
- Each user must be unique within a single chat update request
- Suggest buttons are limited to 100 buttons per message and 3 directives per button
- Webhook delivery is "at least once" — duplicates are possible (use
payload_idto deduplicate)
🔗 API Reference
| Endpoint | Documentation | |---|---| | Send Text | API Docs | | Create Poll | API Docs | | Get Poll Results | API Docs | | Get Poll Voters | API Docs | | Create Chat | API Docs | | Update Members | API Docs | | Webhook | API Docs |
🤝 Compatibility
| Requirement | Version | |---|---| | n8n | 1.0+ | | Node.js | 18 or 20 LTS |
📄 License
Русский
📖 О проекте
Эта community-нода для n8n позволяет автоматизировать работу с Яндекс Мессенджером (часть Яндекс 360 для бизнеса) и интегрировать его с более чем 400 сервисами, доступными в n8n. Создана сообществом, архитектура вдохновлена Telegram-нодой.
🆕 Что нового в v0.3.0
- 📊 Поддержка Опросов — Создание опросов, получение результатов и списков проголосовавших.
- ✨ Улучшение UX — Создание чатов и добавление участников теперь работает через обычные списки логинов через запятую. Умная авто-сетка для Suggest-кнопок.
- 🏗 Рефакторинг архитектуры — Код стал модульным, чистым и легко поддерживаемым.
🚀 Установка
Через интерфейс n8n (рекомендуется)
- Откройте Settings → Community Nodes
- Введите
n8n-nodes-yandex-messenger - Нажмите Install
Вручную
cd ~/.n8n/nodes
npm install n8n-nodes-yandex-messenger
# Перезапустите n8n после установки🔑 Авторизация
Для работы необходим OAuth-токен бота Яндекс Мессенджера.
| Поле | Описание | |---|---| | Bot OAuth Token | OAuth-токен, выданный боту в панели администратора Яндекс 360 |
⚡ Операции
Нода Yandex Messenger
Сообщения
| Операция | Описание |
|---|---|
| Send Text | Отправка текстового сообщения с поддержкой suggest-кнопок, ответов и тредов. Максимум 6000 символов |
| Send File | Отправка файла в чат или пользователю через multipart/form-data |
| Send Image | Отправка изображения в чат или пользователю |
| Send Album | Отправка нескольких изображений в виде альбома |
| Delete | Удаление сообщения из чата |
Опросы 🆕
| Операция | Описание | |---|---| | Create | Создание опроса с вариантами ответов и интерактивными кнопками | | Get Results | Получение общего количества проголосовавших и числа голосов за каждый вариант | | Get Voters | Получение списка пользователей, проголосовавших за конкретный вариант (с пагинацией) |
Чаты
| Операция | Описание | |---|---| | Create | Создание группового чата или канала с участниками, подписчиками, администраторами и аватаром | | Update Members | Добавление или удаление участников, администраторов или подписчиков |
Настройки бота
| Операция | Описание | |---|---| | Set Webhook | Установка или удаление URL вебхука для получения обновлений |
Нода-триггер Yandex Messenger Trigger
Запускает workflow при наступлении события в Яндекс Мессенджере:
| Событие | Описание | |---|---| | All Updates | Получение всех типов обновлений | | New Message | Срабатывает при получении нового сообщения | | Message Updated | Срабатывает при редактировании сообщения | | Callback Button Pressed | Срабатывает при нажатии инлайн-кнопки |
📬 Типы получателей
Каждая операция с сообщениями и опросами поддерживает два типа получателей:
| Тип | Параметр | Описание |
|---|---|---|
| Групповой чат | chat_id | Отправка в групповой чат, где бот является участником |
| Пользователь | login | Отправка личного сообщения пользователю по логину |
Важно: Необходимо указать хотя бы один из параметров:
chat_idилиlogin. Бот может отправлять сообщения только в чаты, где он является участником или администратором.
🆕📊 Опросы — Создание и Аналитика
Взаимодействуйте с аудиторией с помощью опросов.
| Поле | Обязательное | Тип | Описание |
|---|---|---|---|
| pollTitle | ✅ | string | Вопрос или заголовок опроса |
| pollAnswers | ✅ | array | Список вариантов ответа (от 2 до 100) |
| is_anonymous | ❌ | boolean | Скрыть список проголосовавших |
| max_choices | ❌ | number | Максимальное количество вариантов, которые может выбрать юзер |
| answerId | ❌ | number | Обязательно для Get Voters. Номер варианта ответа (начиная с 1) |
💬 Чат — Создание и Управление
Добавляйте участников и админов мгновенно, передавая список логинов через запятую (например, ivan, anna, petr).
| Поле | Обязательное | Тип | Описание |
|---|---|---|---|
| name | ✅ | string | Название чата или канала (макс. 200 символов) |
| description | ✅ | string | Описание (макс. 500 символов, допустима пустая строка) |
| channel | ❌ | boolean | true для создания канала вместо чата |
| admins | ❌ | string | Логины админов через запятую (макс. 100) |
| members | ❌ | string | Логины участников через запятую (макс. 500, только для чатов) |
| subscribers | ❌ | string | Логины подписчиков через запятую (макс. 500, только для каналов) |
Пример:
{
"resource": "chat",
"operation": "create",
"chatName": "Проект Альфа",
"chatDescription": "Рабочий чат проекта Альфа",
"channel": false,
"chatMembersString": "ivan.petrov, anna.sidorova"
}🔘 Suggest Buttons
Современные интерактивные кнопки, заменяющие устаревший inline_keyboard. Каждая кнопка может содержать до 3 директив.
Умная сетка: Если вы укажете Row Number > 0 хотя бы для одной кнопки, нода автоматически выстроит их в Grid-формат этажами.
Типы директив:
| Тип | Описание |
|---|---|
| open_uri | Открывает URL в браузере |
| send_message | Отправляет сообщение в чат от имени пользователя |
| server_action | Отправляет «тихий» callback боту (без видимого сообщения) |
| set_elements_state | Изменяет состояние кнопок (loading, disabled) |
⚠️ Ограничения
- Бот может отправлять сообщения только в чаты, где он является участником или администратором
- Бот не может отправлять личные сообщения пользователям, запретившим это в настройках приватности
- Бот не может отправлять сообщения пользователям вне своей организации
- Текстовые сообщения ограничены 6000 символами
- Название чата/канала — не более 200 символов, описание — не более 500 символов
- Максимум 100 админов, 500 участников/подписчиков за один запрос
- Каждый пользователь должен быть уникален в рамках одного запроса на обновление участников
- Suggest buttons: не более 100 кнопок на сообщение и 3 директивы на кнопку
- Доставка через вебхук работает по принципу «at least once» — возможны дубликаты (используйте
payload_idдля защиты) - Недоставленные сообщения вебхука удаляются через 24 часа
🔗 Справочник API
| Эндпоинт | Документация | |---|---| | Отправка текста | Документация | | Создание опроса | Документация | | Результаты опроса | Документация | | Список проголосовавших | Документация | | Создание чата | Документация | | Управление участниками | Документация | | Webhook | Документация |
🤝 Совместимость
| Требование | Версия | |---|---| | n8n | 1.0+ | | Node.js | 18 или 20 LTS |
📄 Лицензия
Made with ❤️ for the n8n community
