yandex-messenger

n8n node for Yandex Messenger Bot API - send and edit text messages, files, images, albums and receive updates via webhook

Documentation

n8n-nodes-yandex-messenger

npm version
npm downloads
License: MIT
n8n community

Community node for n8n to interact with Yandex Messenger Bot API

English • Русский


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.4.0

  • ✏️ Edit Messages — Update previously sent text messages (and their suggest buttons) via the same sendText API with message_id.
  • 📌 Persistent Buttons — Suggest buttons stay under the message after the next chat message by default (persist: true). Turn off Keep Buttons After Next Message if they should disappear.

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)

  1. Open Settings → Community Nodes
  2. Enter n8n-nodes-yandex-messenger
  3. 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
Edit Edit a previously sent text message (same chat). Can also update suggest buttons. 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_id or login must 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.
Persist: By default, buttons remain visible even after a newer message is sent (Keep Buttons After Next Message). This maps to suggest_buttons.persist in the Bot API.

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_id to deduplicate)

🔗 API Reference

Endpoint Documentation
Send / Edit 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

MIT


Русский

📖 О проекте

Эта community-нода для n8n позволяет автоматизировать работу с Яндекс Мессенджером (часть Яндекс 360 для бизнеса) и интегрировать его с более чем 400 сервисами, доступными в n8n. Создана сообществом, архитектура вдохновлена Telegram-нодой.

🆕 Что нового в v0.4.0

  • ✏️ Редактирование сообщений — Можно менять ранее отправленный текст (и suggest-кнопки) через тот же sendText с параметром message_id.
  • 📌 Кнопки не исчезают — Suggest-кнопки по умолчанию остаются под сообщением после следующего сообщения в чате (persist: true). Выключите Keep Buttons After Next Message, если они должны пропадать.

Что нового в v0.3.0

  • 📊 Поддержка Опросов — Создание опросов, получение результатов и списков проголосовавших.
  • ✨ Улучшение UX — Создание чатов и добавление участников теперь работает через обычные списки логинов через запятую. Умная авто-сетка для Suggest-кнопок.
  • 🏗 Рефакторинг архитектуры — Код стал модульным, чистым и легко поддерживаемым.

🚀 Установка

Через интерфейс n8n (рекомендуется)

  1. Откройте Settings → Community Nodes
  2. Введите n8n-nodes-yandex-messenger
  3. Нажмите Install

Вручную

cd ~/.n8n/nodes
npm install n8n-nodes-yandex-messenger
# Перезапустите n8n после установки

🔑 Авторизация

Для работы необходим OAuth-токен бота Яндекс Мессенджера.

Поле Описание
Bot OAuth Token OAuth-токен, выданный боту в панели администратора Яндекс 360

⚡ Операции

Нода Yandex Messenger

Сообщения
Операция Описание
Send Text Отправка текстового сообщения с поддержкой suggest-кнопок, ответов и тредов. Максимум 6000 символов
Edit Редактирование ранее отправленного текстового сообщения (тот же чат). Можно также обновить 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-формат этажами.
Persist: По умолчанию кнопки остаются под сообщением даже после следующего сообщения в чате (Keep Buttons After Next Message). Это поле suggest_buttons.persist в Bot API.

Типы директив:

Тип Описание
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

📄 Лицензия

MIT


Made with ❤️ for the n8n community

Report Bug · Request Feature

Discussion