Интеграции

Что такое блок «Интеграция»

Блок «Интеграция» позволяет вашему боту обращаться к сторонним сервисам — OpenAI, Google Sheets и другим — прямо в ходе сценария. Бот отправляет запрос, получает ответ и сохраняет результат в переменные.

Подключение сервиса

Перед использованием блока интеграции нужно создать подключение к сервису:

  1. Нажмите кнопку «Интеграции» в шапке конструктора.
  2. Выберите нужный сервис из списка.
  3. Введите данные авторизации:
    • API-ключ — для OpenAI и других сервисов с ключом.
    • OAuth2 — для Google (авторизация через аккаунт Google).
    • Сервисный аккаунт — для Google (JSON-файл сервисного аккаунта).
  4. Нажмите «Проверить» — система протестирует подключение.
  5. Сохраните подключение.

Одно подключение можно использовать в нескольких блоках одного или разных ботов.

Настройка блока интеграции

  1. Добавьте блок «Интеграция» в нужную ноду.
  2. Выберите сервис (например, OpenAI).
  3. Выберите подключение из списка созданных.
  4. Выберите операцию (например, «Отправить сообщение»).
  5. Заполните параметры операции.
  6. Укажите префикс переменных результата (по умолчанию result).

После выполнения блока результат будет доступен как {{result.поле}}.

Переход при ошибке интеграции

В нижней части каждого блока интеграции находится секция «Переход при ошибке».

Если интеграция завершается ошибкой (сервис недоступен, исчерпана квота, неверный ответ и т.д.), бот:

  1. Уведомляет владельца бота о проблеме (если уведомления включены).
  2. Прерывает выполнение оставшихся блоков текущей ноды.
  3. Переходит в ноду ошибки, указанную в поле «Ошибка интеграции».

Если поле «Ошибка интеграции» не заполнено — бот продолжает выполнение сценария как обычно (штатный путь после ноды), что может привести к некорректному поведению.

Рекомендации

  • Всегда указывайте ноду ошибки для интеграций, которые критичны для сценария (AI-ответы, TTS, запросы к БД и т.д.).
  • В ноде ошибки можно отправить пользователю понятное сообщение: «Сервис временно недоступен, попробуйте позже».
  • Кнопка «+ создать» рядом с полем автоматически создаёт новую ноду и сразу связывает её с блоком интеграции.
  • Связь с нодой ошибки отображается на схеме жёлтой стрелкой с подписью «Ошибка интеграции».

Важно: если в одной ноде несколько блоков интеграции, при ошибке первого из них остальные блоки не выполняются — бот сразу переходит к ноде ошибки.

Тестирование блока

Прямо в редакторе блока есть кнопка «Тест» — она выполняет операцию с текущими параметрами и показывает, какие переменные будут установлены. Это удобно для проверки запросов перед публикацией.


OpenAI

Отправить сообщение (Chat)

Отправляет запрос к ChatGPT и получает текстовый ответ.

Параметр Описание
Модель GPT-4o, GPT-4o mini и другие — выбираются из аккаунта
Сообщение пользователя Текст запроса; поддерживает {{переменные}}
Системный промпт Инструкции для модели — роль, стиль, ограничения. Поддерживает markdown-разметку и {{переменные}}. Кнопка открывает редактор на весь экран
Температура Степень случайности ответа 0–2
Макс. токенов Ограничение длины ответа

Результирующие переменные (при префиксе result):

Переменная Значение
{{result.text}} Текст ответа модели
{{result.model}} Использованная модель
{{result.tokens_used}} Потрачено токенов

Запомнить диалог

Позволяет сохранять историю переписки и передавать её в каждый последующий запрос к модели, создавая эффект «памяти». История хранится в базе данных.

Параметр Описание
Время памяти (часов) Через сколько часов неактивности история сбрасывается. 0 — без ограничения по времени
Максимум сообщений в истории Сколько последних сообщений передавать модели при каждом запросе. По умолчанию 100
Название диалога по умолчанию Имя нового диалога до того, как сгенерировано автоматическое. По умолчанию Main
Генерировать названия диалога Если включено — при создании нового диалога бот в фоне отправляет отдельный запрос к ИИ с просьбой сформулировать короткое название (до 5 слов) на основе первого сообщения пользователя. Название сохраняется автоматически, не задерживая ответ
Шифровать данные Если включено — сообщения пользователя и ответы ИИ сохраняются в базе данных в зашифрованном виде (AES-256-CBC). При каждом обращении к ИИ данные автоматически расшифровываются. Уже существующие незашифрованные диалоги продолжают читаться корректно
ID диалога Загрузить конкретный диалог по его идентификатору. Поддерживает {{переменные}} (например, "{{dialog_id}}"). Если не указан — берётся последний активный диалог, либо создаётся новый
Переменная с ID диалога Имя переменной, в которую будет записан ID текущего диалога. Используйте её в других блоках для явного обращения к нужному диалогу
Выводить предварительное сообщение ИИ может долго генерировать ответ. При включении бот немедленно отправляет пользователю короткое сообщение-заглушку, а когда ответ готов — редактирует его. Не задерживает ощущение реакции бота

Когда «Выводить предварительное сообщение» включено, появляются два дополнительных поля:

Параметр Описание
Предварительное сообщение Текст или эмодзи для мгновенного ответа пользователю (например, "⏳ Генерирую ответ...")
Название переменной для ID сообщения Имя переменной, куда сохраняется "message_id" отправленного предварительного сообщения. По умолчанию message_id. Используйте в блоке «Текст» с включённым «Редактировать сообщение»

Типичный сценарий с предварительным сообщением:

  1. Блок «Интеграция» → включить «Выводить предварительное сообщение» → переменная "message_id".
  2. Ответ ИИ сохраняется в "{{result.text}}".
  3. Следующий блок «Текст» с "{{result.text}}" → в «Дополнительных» включить «Редактировать сообщение» → указать переменную "{{message_id}}".
  4. Бот редактирует предварительное сообщение, заменяя заглушку на ответ ИИ.

Сгенерировать изображение

Создаёт изображение по текстовому описанию (DALL·E 3, GPT-image-1 и др.).

Параметр Описание
Модель dall-e-3, dall-e-2, gpt-image-1 и др.
Описание Текст промпта; поддерживает {{переменные}}
Референсы До 5 ссылок на исходные изображения. Если указана хотя бы одна — модель будет принудительно переключена на gpt-image-1, если выбрана DALL·E. Каждое поле поддерживает {{переменные}}
Размер Разрешение изображения
Формат файла PNG / JPEG / WebP — формат выходного файла (только для моделей gpt-image-*)
Качество изображения Авто / Низкое / Среднее / Высокое (только для моделей gpt-image-*)
Прозрачный фон Сгенерировать изображение с прозрачным фоном (только для PNG/WebP, моделями gpt-image-*)
Количество 1–10 изображений

Результирующие переменные:

Переменная Значение
{{result.url}} URL изображения
{{result.revised_prompt}} Уточнённый промпт (возвращается моделями, поддерживающими переформулировку промпта)

Анализировать изображение (Vision)

Задаёт вопрос по изображению — модель отвечает на основе содержимого картинки.

Параметр Описание
Модель GPT-4o, GPT-4 Turbo и другие с поддержкой Vision
URL изображения Ссылка на изображение; поддерживает {{переменные}}
Вопрос Что именно нужно определить или описать

Результат: {{result.text}} — текстовый ответ модели.


Расшифровать аудио (Whisper)

Переводит голосовое сообщение или аудиофайл в текст.

Параметр Описание
file_id Telegram file_id аудио/голосового сообщения; поддерживает {{переменные}}
Модель whisper-1, gpt-4o-transcribe и др.
Язык ISO-код языка (пусто = автоопределение)

Результат: {{result.text}} — расшифрованный текст.

Типичный сценарий: пользователь отправляет голосовое → блок «Ввод данных» сохраняет file_id → блок интеграции Whisper расшифровывает → переменная {{result.text}} доступна в следующих блоках.


Получить список моделей (OpenAI)

Запрашивает OpenAI API и записывает массив моделей, доступных в вашем аккаунте, в указанную переменную.

Параметров нет — укажите только переменную, в которую будет записан результат.

Результат: {{result}} — массив объектов. Доступные свойства каждого элемента (N — порядковый номер с 0):

Свойство Описание
{{result.N.id}} Идентификатор модели (например, gpt-4o)
{{result.N.object}} Тип объекта (всегда "model")
{{result.N.created}} Дата создания (Unix timestamp)
{{result.N.owned_by}} Владелец модели (например, openai)

Нажмите Тест в редакторе, чтобы убедиться в работе и увидеть список моделей. Данные будут доступны через {{result.0.id}}, {{result.1.id}} и т.д.


Реакция на сообщение (OpenAI)

ИИ анализирует текст сообщения пользователя и выбирает одно эмодзи из разрешённого списка, после чего бот ставит эту реакцию на указанное сообщение через Telegram API.

Параметр Описание
ID сообщения ID сообщения, на которое ставится реакция. По умолчанию — {{USER_MESSAGE_ID}} (входящее сообщение пользователя)
Список реакций Сетка из 73 доступных emoji-реакций Telegram — выберите те, из которых ИИ может выбирать
Сообщение пользователя Текст для анализа; поддерживает {{переменные}}. По умолчанию — {{USER_MESSAGE}}
Инструкция Системный промпт для ИИ. Список разрешённых эмодзи добавляется автоматически в конец инструкции
Модель Модель OpenAI (по умолчанию "gpt-4o-mini"). В расширенных параметрах

Результирующие переменные (при префиксе result):

Переменная Значение
{{result.selected_emoji}} Выбранная реакция (пусто, если ИИ не смог подобрать подходящую или вернул null)

Поведение при отсутствии реакции: если ИИ вернул "null", пустую строку или эмодзи не из разрешённого списка — реакция не выставляется, переменная "selected_emoji" остаётся пустой строкой, выполнение сценария продолжается.


Anthropic Claude

Отправить сообщение

Отправляет запрос к Claude и получает текстовый ответ. Поддерживает те же возможности памяти диалога и предварительного сообщения, что и OpenAI Chat.

Параметр Описание
Модель Claude 4.6 Opus, Claude 4.6 Sonnet, Claude 4.5 Sonnet и другие — выбираются из аккаунта
Сообщение пользователя Текст запроса; поддерживает {{переменные}}
Системный промпт Инструкции для модели — роль, стиль, ограничения. Поддерживает markdown-разметку и {{переменные}}. Кнопка открывает редактор на весь экран
Макс. токенов Ограничение длины ответа

Результирующие переменные (при префиксе result):

Переменная Значение
{{result.text}} Текст ответа модели
{{result.model}} Использованная модель
{{result.tokens_used}} Потрачено токенов

Запомнить диалог

Аналогично разделу OpenAI → Запомнить диалог — все настройки (время памяти, максимум сообщений, название диалога, генерация названий, ID диалога, переменная с ID, предварительное сообщение) работают одинаково для Claude.


Получить список моделей (Anthropic)

Запрашивает Anthropic API и записывает массив доступных моделей Claude в указанную переменную.

Параметров нет — укажите только переменную, в которую будет записан результат.

Результат: {{result}} — массив объектов (sorted by created_at desc). Доступные свойства каждого элемента (N — порядковый номер с 0):

Свойство Описание
{{result.N.id}} Идентификатор модели (например, claude-sonnet-4-6)
{{result.N.display_name}} Отображаемое имя модели
{{result.N.created_at}} Дата создания (ISO 8601)
{{result.N.type}} Тип объекта (всегда "model")
{{result.N.max_input_tokens}} Максимальное число токенов контекста
{{result.N.max_tokens}} Максимальное число токенов ответа

Нажмите Тест в редакторе, чтобы убедиться в работе. После теста автодополнение {{result.0.id}}, {{result.1.id}} и т.д. будет доступно в редакторе.


Реакция на сообщение (Claude)

Идентична операции OpenAI → Реакция на сообщение: ИИ Claude анализирует текст сообщения и выбирает одну реакцию из разрешённого списка, после чего бот ставит её через Telegram API.

Параметр Описание
ID сообщения ID сообщения, на которое ставится реакция. По умолчанию — {{USER_MESSAGE_ID}}
Список реакций Сетка из 73 emoji-реакций Telegram — выберите допустимые для ИИ
Сообщение пользователя Текст для анализа; поддерживает {{переменные}}
Инструкция Системный промпт; список разрешённых эмодзи добавляется автоматически
Модель Модель Claude (по умолчанию "claude-sonnet-4-6"). В расширенных параметрах

Результирующая переменная: {{result.selected_emoji}} — выбранное эмодзи (пусто, если ИИ не смог подобрать).


Google Sheets

Подключение

Поддерживаются два способа авторизации:

  • OAuth2 — авторизация через Google-аккаунт. Создайте OAuth2-клиент в Google Cloud Console (тип: Веб-приложение), включите Google Sheets API и Google Drive API и добавьте URI перенаправления.
  • Сервисный аккаунт — JSON-ключ сервисного аккаунта. После создания аккаунта откройте нужные таблицы и выдайте email сервисного аккаунта доступ (редактор).

Тип подключения выбирается при создании и затем неизменен. Чтобы сменить метод авторизации, создайте новое подключение.


Получить строку

Ищет строку в таблице Google Sheets по значению в указанном столбце.

Параметр Описание
ID или URL таблицы Идентификатор Google Sheets
Название листа Имя вкладки
Колонка для поиска Заголовок столбца, по которому искать
Значение для поиска Что искать; поддерживает {{переменные}}

Имена переменных результата соответствуют заголовкам столбцов таблицы:


{{result.Email}} → значение столбца «Email» в найденной строке {{result.Имя}} → значение столбца «Имя» {{result.Телефон}} → значение столбца «Телефон»


Если строка не найдена — переменные будут пустыми.


Добавить строку

Добавляет новую строку в конец листа.

Параметр Описание
ID или URL таблицы Идентификатор Google Sheets
Название листа Имя вкладки
Колонки и значения Список пар «Колонка → Значение»; поддерживает {{переменные}}

Переменных не возвращает. Используйте для сохранения заявок, ответов пользователей, логов.


Добавить или обновить запись

Ищет строку по значению в указанном столбце. Если строка найдена — обновляет её. Если нет — добавляет новую строку в конец листа.

Параметр Описание
ID или URL таблицы Идентификатор Google Sheets
Название листа Имя вкладки
Колонка для поиска совпадения Заголовок столбца, по которому определяется уникальность
Значение для поиска Поддерживает {{переменные}}
Данные (маппинг) Список пар «Колонка → Значение»; поддерживает {{переменные}}

Переменных не возвращает.


Обновить запись

Находит строку по значению в указанном столбце и обновляет её данные.

Параметр Описание
ID или URL таблицы Идентификатор Google Sheets
Название листа Имя вкладки
Колонка для поиска Заголовок столбца для поиска строки
Значение для поиска Поддерживает {{переменные}}
Данные для обновления Список пар «Колонка → Новое значение»; поддерживает {{переменные}}

Если строка не найдена — обновление не производится. Переменных не возвращает.


Получить записи

Возвращает все строки листа, соответствующие заданным фильтрам.

Параметр Описание
ID или URL таблицы Идентификатор Google Sheets
Название листа Имя вкладки
Фильтры Список условий «Колонка = Значение»; без фильтров возвращаются все строки
Комбинация фильтров И — все условия; ИЛИ — хотя бы одно
Вернуть первую совпадающую строку (доп.) Если включён — возвращает только первую найденную строку

Результат при «Вернуть первую строку» = включён (как «Получить строку»):

""" {{result.НазваниеКолонки}} → значение колонки в найденной строке """

Результат при «Вернуть первую строку» = выключен:

Переменная Значение
{{result}} JSON-массив всех найденных строк
{{result.count}} Количество найденных строк

Очистить лист

Удаляет содержимое ячеек, не удаляя сам лист.

Параметр Описание
ID или URL таблицы Идентификатор Google Sheets
Название листа Имя вкладки
Что очистить Весь лист / Определённые строки / Определённые столбцы / Определённый диапазон
Начальная строка (доп.) Для режима «Определённые строки»
Количество строк (доп.) Для режима «Определённые строки»
Начальный столбец (доп.) Для режима «Определённые столбцы» (например: A)
Количество столбцов (доп.) Для режима «Определённые столбцы»
Диапазон (доп.) Для режима «Определённый диапазон» (например: A2:C10)

Переменных не возвращает.


Удалить строки или столбцы

Удаляет указанные строки или столбцы со сдвигом оставшихся.

Параметр Описание
ID или URL таблицы Идентификатор Google Sheets
Название листа Имя вкладки
Что удалить Строки или Столбцы
Начальный номер Номер первой строки/столбца (считая с 1); поддерживает {{переменные}}
Количество Сколько строк/столбцов удалить; поддерживает {{переменные}}

Переменных не возвращает.


Создать лист

Добавляет новую вкладку в существующую таблицу.

Параметр Описание
ID или URL таблицы Идентификатор Google Sheets
Название нового листа Имя вкладки; поддерживает {{переменные}}

Переменных не возвращает.


Удалить лист

Удаляет вкладку из таблицы вместе со всеми данными.

Параметр Описание
ID или URL таблицы Идентификатор Google Sheets
Название листа Имя вкладки для удаления

Переменных не возвращает.


Google Drive

Управление файлами, папками и общими дисками Google Drive прямо из бота.

Подключение

Поддерживаются два способа авторизации:

  • OAuth2 — авторизация через Google-аккаунт. Создайте OAuth2-клиент в Google Cloud Console (тип: Веб-приложение), включите Google Drive API и добавьте URI перенаправления, показанный при создании подключения.
  • Сервисный аккаунт — JSON-ключ сервисного аккаунта. После создания аккаунта выдайте его email доступ к нужным папкам или файлам Google Drive.

Тип подключения выбирается при создании и затем неизменен. Чтобы сменить метод авторизации, создайте новое подключение.


Действия с файлами

Копировать файл

Параметр Описание
Файл Выберите из списка или укажите ID
Новое имя Имя копии; оставьте пустым, чтобы сохранить оригинальное. Поддерживает {{переменные}}
Папка назначения (доп.) Папка для копии; если не указана — копия создаётся в той же папке

Результирующие переменные (при префиксе result):

Переменная Значение
{{result.file_id}} ID созданной копии
{{result.name}} Имя копии
{{result.webViewLink}} Ссылка на файл в Google Drive

Создать файл из текста

Создаёт текстовый файл из содержимого переменной.

Параметр Описание
Имя файла Поддерживает {{переменные}}
Содержимое Текст файла; поддерживает {{переменные}}
Тип файла Текст (.txt), CSV, HTML, JSON
Папка (доп.) Папка для сохранения файла

Результирующие переменные — те же, что у «Копировать файл» (file_id, name, webViewLink).


Удалить файл

Параметр Описание
Файл Выберите из списка или укажите ID

Переменных не возвращает.


Скачать файл

Скачивает файл с Google Drive и сохраняет его для дальнейшего использования.

Параметр Описание
Файл Выберите из списка или укажите ID
Формат экспорта (доп.) Для Google Docs/Sheets: PDF, DOCX, XLSX, TXT, CSV. Оставьте «Авто» для обычных файлов

Результирующие переменные:

Переменная Значение
{{result.file_url}} URL скачанного файла
{{result.name}} Имя файла
{{result.mime_type}} MIME-тип
{{result.size}} Размер в байтах

Переместить файл

Параметр Описание
Файл Файл для перемещения
Папка назначения Папка, в которую переместить файл

Результирующие переменные: {{result.file_id}}, {{result.name}}.


Поделиться файлом

Предоставляет доступ к файлу пользователю, группе, домену или всем.

Параметр Описание
Файл Файл, к которому предоставляется доступ
Роль Читатель / Комментатор / Редактор
Тип Пользователь / Группа / Домен / Все
Email-адрес Для типов «Пользователь» и «Группа». Поддерживает {{переменные}}
Отправить уведомление Отправить email-уведомление получателю

Результирующие переменные: {{result.permission_id}}, {{result.role}}, {{result.type}}.


Обновить файл

Параметр Описание
Файл Файл для обновления
Новое имя Поддерживает {{переменные}}

Результирующие переменные: {{result.file_id}}, {{result.name}}, {{result.mimeType}}.


Загрузить файл

Загружает файл из указанного URL в Google Drive.

Параметр Описание
URL файла Ссылка на файл; поддерживает {{переменные}}. Для Telegram-файлов используйте file_url из переменных блока «Ввод данных»
Имя файла Определяется из URL автоматически, если не указано. Поддерживает {{переменные}}
Папка (доп.) Папка назначения
ID общего диска (доп.) Загрузить в общий диск (Shared Drive). Поддерживает {{переменные}}

Если URL начинается с адреса локального Telegram Bot API — файл читается с сервера напрямую, без HTTP-загрузки.

Результирующие переменные: {{result.file_id}}, {{result.name}}, {{result.webViewLink}}, {{result.mimeType}}.


Поиск файлов и папок

Найти файлы и папки

Выполняет поиск по Google Drive с использованием синтаксиса Drive Query Language.

Параметр Описание
Поисковый запрос Например: "name contains 'отчёт'" или "mimeType = 'application/pdf'". Поддерживает {{переменные}}
Максимум результатов (доп.) До 1000, по умолчанию 50
ID общего диска (доп.) Ограничить поиск конкретным общим диском. Поддерживает {{переменные}}

Результирующие переменные:

Переменная Значение
{{result.files}} Массив файлов (id, name, mimeType, size, webViewLink)
{{result.count}} Количество найденных элементов

Действия с папками

Создать папку

Параметр Описание
Название папки Поддерживает {{переменные}}
Родительская папка (доп.) Папка, внутри которой создаётся новая
ID общего диска (доп.) Создать в общем диске

Результирующие переменные: {{result.folder_id}}, {{result.name}}, {{result.webViewLink}}.


Cloudflare R2

Cloudflare R2 — S3-совместимое объектное хранилище. Подходит для хранения файлов с прямым доступом по URL.

Подключение

  1. Откройте Cloudflare DashboardR2 Object Storage → ваш бакет → вкладка Settings.
  2. Найдите поле S3 API — оно выглядит как "https://<account_id>.r2.cloudflarestorage.com/". Часть "<account_id>" — это ваш Account ID.
  3. Перейдите в R2 → Manage R2 API TokensCreate API Token.
  4. Выберите права Object Read & Write (или ограничьте конкретным бакетом), сохраните.
  5. Скопируйте Access Key ID и Secret Access Key.

Вставьте JSON в поле подключения:

"""json { "account_id": "abc123...", "access_key_id": "...", "secret_access_key": "...", "bucket_name": "my-bucket", "public_url": "https://pub-xxx.r2.dev" } """

"public_url"необязательное поле. Нужно для получения прямых ссылок на файлы после загрузки. Где взять:

  • Public Development URL (для тестов): Settings бакета → раздел Public Development URL → нажмите Enable. После включения скопируйте появившийся URL вида "https://pub-xxx.r2.dev".
  • Кастомный домен (для продакшна): Settings → Custom Domains → Add.

Если ни то ни другое не настроено — оставьте поле пустым; "{{result.public_url}}" будет пустой строкой.

Загрузить файл

Загружает файл в R2 по URL или из внутреннего хранилища бота.

Параметр Описание
URL файла Прямая ссылка на файл. Поддерживает {{переменные}}, в т.ч. "{{result.file_url}}" из предыдущих блоков
Ключ объекта Путь и имя файла внутри бакета, например "uploads/{{user.id}}/photo.jpg". Поддерживает {{переменные}}
MIME-тип (доп.) Если не указан — определяется автоматически по содержимому файла

Результирующие переменные:

Переменная Значение
{{result.key}} Ключ сохранённого объекта в бакете
{{result.public_url}} Прямая ссылка для скачивания (если задан "public_url" в подключении)
{{result.size}} Размер файла в байтах

Удалить файл

Параметр Описание
Ключ объекта Путь к файлу в бакете. Поддерживает {{переменные}}

Операция не возвращает результат.

Список файлов

Возвращает список объектов в бакете.

Параметр Описание
Префикс (папка) Фильтрует файлы по началу ключа, например "uploads/photos/". Необязательно
Максимум файлов От 1 до 1000. По умолчанию 100

Результирующие переменные:

Переменная Значение
{{result.files}} Массив объектов: "key", "size", "last_modified", "public_url"
{{result.count}} Количество найденных файлов

Скопировать файл

Копирует объект внутри бакета без повторной загрузки.

Параметр Описание
Исходный ключ Ключ исходного файла в бакете
Ключ назначения Ключ нового файла-копии

Результирующие переменные: {{result.key}}, {{result.public_url}}.

Информация о файле

Возвращает метаданные объекта (без скачивания содержимого).

Параметр Описание
Ключ объекта Путь к файлу в бакете

Результирующие переменные:

Переменная Значение
{{result.exists}} "1" — файл существует, "0" — не найден
{{result.size}} Размер в байтах
{{result.content_type}} MIME-тип файла
{{result.last_modified}} Дата последнего изменения

Удалить папку

Параметр Описание
Папка Папка для удаления (удаляется вместе со всем содержимым)

Переменных не возвращает.


Поделиться папкой

Аналогично «Поделиться файлом» — те же параметры и результат, только для папки.


Действия с общими дисками

Создать общий диск

Параметр Описание
Название диска Поддерживает {{переменные}}

Результирующие переменные: {{result.drive_id}}, {{result.name}}.


Удалить общий диск

Параметр Описание
ID общего диска Поддерживает {{переменные}}

Переменных не возвращает.


Получить общий диск

Параметр Описание
ID общего диска Поддерживает {{переменные}}

Результирующие переменные: {{result.drive_id}}, {{result.name}}, {{result.created_time}}.


Список общих дисков

Параметр Описание
Максимум результатов (доп.) До 100, по умолчанию 50

Результирующие переменные: {{result.drives}} — массив дисков · {{result.count}} — количество.


Обновить общий диск

Параметр Описание
ID общего диска Поддерживает {{переменные}}
Новое название Поддерживает {{переменные}}

Результирующие переменные: {{result.drive_id}}, {{result.name}}.


Google Calendar

Управление событиями в Google Calendar: создание, получение, обновление, удаление и проверка доступности.

Подключение

Поддерживаются два способа авторизации:

  • OAuth2 — авторизация через Google-аккаунт. Необходимо создать OAuth2-клиент в Google Cloud Console (тип: Веб-приложение), включить Google Calendar API и добавить URI перенаправления.
  • Сервисный аккаунт — JSON-ключ сервисного аккаунта. После создания аккаунта поделитесь нужными календарями с email сервисного аккаунта в настройках самого Calendar.

Создать событие

Параметр Описание
Календарь Выберите из списка или укажите ID (primary — основной)
Название события Текст заголовка; поддерживает {{переменные}}
Весь день Да — событие на весь день (формат даты YYYY-MM-DD); Нет — с временем (RFC3339)
Начало Дата и время начала
Конец Дата и время окончания

Дополнительные параметры (раздел «Дополнительные»):

Параметр Описание
Описание Текст описания события
Место проведения Адрес или название места
Участники Email-адреса через запятую
Цвет события Один из 11 цветов Google Calendar
Видимость По умолчанию / Публичное / Приватное / Конфиденциальное
Статус события Подтверждено / Предварительно / Отменено
Гости могут приглашать других Да / Нет
Гости могут изменять событие Да / Нет
Гости видят других участников Да / Нет
Отправлять уведомления Всем / Только внешним / Никому
Использовать напоминания по умолчанию Да / Нет
ID события Пользовательский идентификатор (генерируется автоматически, если не указан)

Результирующие переменные (при префиксе result):

Переменная Значение
{{result.id}} ID созданного события
{{result.summary}} Название события
{{result.status}} Статус (confirmed, tentative)
{{result.htmlLink}} Ссылка на событие в Google Calendar
{{result.start}} Время начала
{{result.end}} Время окончания

Удалить событие

Параметр Описание
Календарь ID календаря
ID события Идентификатор события ({{result.id}} из предыдущей операции)
Отправлять уведомления (advanced) Всем / Только внешним / Никому

Переменных не возвращает.


Получить событие

Параметр Описание
Календарь ID календаря
ID события Идентификатор события
Временная зона (advanced) IANA timezone, например Europe/Moscow
Макс. участников (advanced) Ограничение числа участников в ответе

Результирующие переменные (при префиксе result):

Переменная Значение
{{result.id}} ID события
{{result.summary}} Название
{{result.status}} Статус
{{result.description}} Описание
{{result.location}} Место
{{result.start}} Начало
{{result.end}} Конец
{{result.htmlLink}} Ссылка
{{result.creator}} Email создателя
{{result.organizer}} Email организатора

Получить события

Параметр Описание
Календарь ID календаря
Начало диапазона (advanced) timeMin — RFC3339
Конец диапазона (advanced) timeMax — RFC3339
Поиск по тексту (advanced) Поиск по названию и описанию
Макс. результатов (advanced) По умолчанию 250, максимум 2500
Сортировка (advanced) По времени начала / По дате изменения
Разворачивать повторяющиеся (advanced) Требуется для сортировки по startTime
Показывать удалённые (advanced)

Результирующие переменные:

Переменная Значение
{{result.events}} Массив событий (каждое — объект с id, summary, start, end и др.)
{{result.count}} Количество найденных событий

Используйте {{result.count}} в блоке «Условие» для проверки наличия событий.


Обновить событие

Обязательные параметры: Календарь и ID события. Все остальные поля (название, время, описание и т.д.) опциональны — обновляются только те, что указаны.

Используйте «Дополнительные» (advanced) параметры — там доступны все те же поля, что и при создании события.

Результирующие переменные — те же, что у «Создать событие» (id, summary, status, htmlLink, start, end).


Доступность в календаре

Проверяет, свободен ли указанный временной диапазон в календаре (использует Google Calendar FreeBusy API).

Параметр Описание
Календарь ID календаря
Начало диапазона RFC3339 дата-время начала проверяемого периода
Конец диапазона RFC3339 дата-время конца проверяемого периода
Временная зона (advanced) IANA timezone

Результирующие переменные:

Переменная Значение
{{result.is_available}} true если период свободен, false если есть занятые слоты
{{result.busy_periods}} Массив занятых интервалов [{ "start": "...", "end": "..." }]

Редактирование сообщения в блоке «Текст»

В блоке «Текст» в разделе «Дополнительные» доступна опция «Редактировать сообщение».

При её включении вместо отправки нового сообщения бот редактирует существующее — заменяет его текст на содержимое блока.

Параметр Описание
Редактировать сообщение Включить режим редактирования вместо отправки
ID сообщения ID сообщения для редактирования. Укажите число или подставьте переменную, например "{{message_id}}"

Типичное применение — связка с предварительным сообщением ИИ:

  1. Блок «Интеграция» (OpenAI / Claude) → включить «Выводить предварительное сообщение» → переменная для ID, например "message_id".
  2. Пока ИИ генерирует ответ, пользователь видит заглушку.
  3. Следующий блок «Текст» с текстом ответа "{{result.text}}" → «Дополнительные»«Редактировать сообщение» → "{{message_id}}".
  4. Бот редактирует предварительное сообщение: заглушка заменяется готовым ответом.

Если переменная пуста или указан несуществующий ID — блок отправит сообщение как обычный текст.


ElevenLabs

ElevenLabs — платформа для работы с голосом на основе ИИ: высококачественная озвучка текста, распознавание речи, изменение голоса, клонирование голоса и генерация звуковых эффектов.

Подключение

  1. Зарегистрируйтесь на elevenlabs.io.
  2. Перейдите в Settings → API Keys → нажмите Create API Key.
  3. Скопируйте созданный ключ и вставьте в поле подключения.
  4. Нажмите «Проверить» — система проверит доступ к API.

Бесплатный план ElevenLabs имеет лимит символов в месяц. Клонирование голоса требует платного плана Creator или выше.


Озвучить текст (Text-to-Speech)

Преобразует текст в аудиофайл с использованием выбранного голоса.

Параметр Описание
Голос Выберите голос из списка аккаунта или укажите voice_id вручную
Текст Текст для озвучки; поддерживает {{переменные}}

Дополнительные параметры:

Параметр Описание
Модель Multilingual v2 (рекомендуется для русского), Flash v2.5, Turbo v2.5, v3
Формат аудио MP3 128 kbps (рекомендуется), MP3 64 kbps, PCM, μ-law
Стабильность (0–1) Ниже — эмоциональнее и динамичнее; выше — монотоннее, но стабильнее
Усиление сходства (0–1) Насколько близко ИИ копирует оригинальный голос
Преувеличение стиля (0–1) Усиливает манеру речи; рекомендуется оставлять 0 для естественного звука
Скорость речи 1.0 — норма; меньше — медленнее, больше — быстрее
Усиление диктора Делает голос более насыщенным (требует чуть больше ресурсов)
Seed Фиксирует генерацию для воспроизводимости результата

Результирующие переменные (при префиксе result):

Переменная Значение
{{result.url}} URL аудиофайла — передайте в блок «Аудио»
{{result.character_count}} Количество использованных символов
{{result.request_id}} ID запроса

Важно: Ссылка на аудиофайл доступна в течение 24 часов, после чего удаляется автоматически.

Типичный сценарий — бот-диктор:

  1. Блок «Интеграция» → ElevenLabs → Озвучить текст → выбрать голос → текст "{{news_text}}".
  2. Следующий блок «Аудио» → в поле «file_id или URL» указать "{{result.url}}".
  3. Бот отправляет озвученную новость как аудиосообщение.

Распознать речь (Speech-to-Text)

Преобразует голосовое сообщение или аудиофайл в текст (модели серии Scribe).

Параметр Описание
file_id аудио Telegram file_id голосового/аудио сообщения; поддерживает {{переменные}}
Модель Scribe v2 (рекомендуется), Scribe v1
Язык (ISO 639-1) Например: ru, en, de. Оставьте пустым для автоопределения

Дополнительные параметры:

Параметр Описание
Разделить по спикерам Диаризация: помечает реплики «Спикер 1», «Спикер 2»
Очистить текст от слов-паразитов Убирает «э-э-э», «ну», повторы и ложные старты

Результирующие переменные:

Переменная Значение
{{result.text}} Распознанный текст
{{result.language_code}} Определённый язык
{{result.transcription_id}} ID транскрипции

Типичный сценарий — голосовой ассистент:

  1. Блок «Ввод данных» → сохраняет голосовое в переменную "voice_input".
  2. Блок «Интеграция»Распознать речь → "file_id: {{voice_input}}" → "{{result.text}}".
  3. Блок «Интеграция» → OpenAI / ChatGPT → "{{result.text}}" → ответ "{{ai.text}}".
  4. Блок «Текст» → "{{ai.text}}".

Изменить голос (Speech-to-Speech)

Заменяет голос в аудиозаписи, сохраняя все интонации и эмоции оригинала.

Параметр Описание
Целевой голос Голос, на который заменяется оригинальный
file_id аудио Telegram file_id голосового/аудио сообщения; поддерживает {{переменные}}

Дополнительные параметры: Модель, Формат аудио, Стабильность, Усиление сходства.

Результирующие переменные: {{result.url}} — URL аудиофайла · {{result.request_id}}.

Важно: Ссылка на аудиофайл доступна в течение 24 часов, после чего удаляется автоматически.


Сгенерировать звуковой эффект

Генерирует аудио по текстовому описанию: природные звуки, шумы, технические звуки.

Параметр Описание
Описание звука Текст описания; поддерживает {{переменные}}
Длительность (сек.) Желаемая длительность звука (необязательно)

Дополнительные параметры: Влияние промпта (0–1), Формат аудио.

Результирующие переменные: {{result.url}} — URL аудиофайла.

Важно: Ссылка на аудиофайл доступна в течение 24 часов, после чего удаляется автоматически.


Музыка к видео (Video-to-Music)

Генерирует музыкальный саундтрек под видеофайл — автоматически подбирает темп, настроение и инструментовку.

Параметр Описание
file_id видео Telegram file_id видеосообщения; поддерживает {{переменные}}
Описание музыки Необязательное текстовое направление стиля; поддерживает {{переменные}}

Дополнительные параметры: Формат аудио.

Результирующие переменные: {{result.url}} — URL аудиофайла с музыкой.

Важно: Ссылка на аудиофайл доступна в течение 24 часов, после чего удаляется автоматически.


Клонировать голос (Instant Voice Cloning)

Создаёт цифровую копию голоса по короткой аудиозаписи (от нескольких секунд до минуты). Клонированный голос сохраняется в аккаунте ElevenLabs и его можно использовать в операции «Озвучить текст».

Параметр Описание
Название голоса Имя нового голоса в аккаунте ElevenLabs; поддерживает {{переменные}}
file_id аудио Telegram file_id записи с нужным голосом; поддерживает {{переменные}}

Дополнительные параметры: Описание голоса, Убрать фоновый шум.

Результирующие переменные:

Переменная Значение
{{result.voice_id}} ID клонированного голоса — используйте в операции «Озвучить текст»
{{result.voice_name}} Название голоса

Типичный сценарий — персональный голос бота:

  1. Блок «Ввод данных» → пользователь отправляет голосовое → "voice_sample".
  2. Блок «Интеграция»Клонировать голос → "name: Мой голос", "file_id: {{voice_sample}}" → "{{result.voice_id}}".
  3. Сохранить "{{result.voice_id}}" в базу данных.
  4. В следующих сценариях: блок «Интеграция»Озвучить текст → "voice_id: {{saved_voice_id}}".

Клонирование голоса требует платного плана ElevenLabs Creator или выше.


Советы по работе с интеграциями

  • Сохраняйте результаты интеграций в переменные с понятными именами: ai_answer, sheet_row.
  • Используйте блок «Условие» после интеграции, чтобы проверить, нашла ли операция нужные данные.
  • Тестируйте блок прямо в редакторе кнопкой «Тест» — это экономит время при разработке.
  • При использовании памяти диалога с ИИ включайте «Генерировать названия диалога» — это помогает ориентироваться в истории переписки в будущих версиях панели.
  • Для сложных сценариев с несколькими AI-блоками используйте «Переменная с ID диалога», чтобы каждый блок работал с нужным диалогом явно, а не по принципу «последний».
  • Если бот обрабатывает конфиденциальные данные пользователей, включите «Шифровать данные» в настройках памяти диалога — сообщения будут сохранены в БД в зашифрованном виде.

Supabase

Supabase — open-source-альтернатива Firebase на базе PostgreSQL. Интеграция позволяет выполнять CRUD-операции с таблицами через Supabase REST API (PostgREST) прямо из сценария бота.

Подключение

  1. Откройте настройки вашего проекта: supabase.com/dashboard → ваш проект → Settings → API.
  2. Скопируйте Project URL из раздела Project URL.
  3. Скопируйте ключ service_role (secret) из раздела Project API keys.
  4. В диалоге подключения заполните два поля:
Поле Значение
URL проекта "https://xxxx.supabase.co"
Service Role Key "eyJ..." (секретный ключ)
  1. Нажмите «Проверить подключение» — система выполнит запрос к API и подтвердит корректность данных.
  2. Сохраните подключение.

Важно: Используйте ключ "service_role" (secret), а не "anon". Это позволяет обходить Row Level Security и работать с данными в обход политик доступа. Храните ключ в безопасности.


Создать запись

Вставляет новую строку в таблицу.

Параметр Описание
Таблица Название таблицы в БД; поддерживает {{переменные}}
Данные Список пар «Колонка → Значение»; поддерживает {{переменные}}

Результирующие переменные (при префиксе result):

Переменная Значение
{{result.id}} ID созданной записи (и другие поля, возвращённые базой)
{{result.НазваниеКолонки}} Значение любой возвращённой колонки

Удалить запись

Удаляет строки, соответствующие условиям.

Параметр Описание
Таблица Название таблицы; поддерживает {{переменные}}
Select Conditions Условия отбора строк (поле, оператор, значение); поддерживает {{переменные}}
Must Match (доп.) All — все условия (AND); Any — хотя бы одно (OR)

Результирующие переменные:

Переменная Значение
{{result}} Массив удалённых записей
{{result.count}} Количество удалённых записей

Получить запись

Получает первую строку, удовлетворяющую условиям.

Параметр Описание
Таблица Название таблицы; поддерживает {{переменные}}
Select Conditions Условия поиска; без условий вернётся первая строка

Результирующие переменные:

Переменная Значение
{{result.id}} ID найденной записи
{{result.НазваниеКолонки}} Значение любой колонки найденной строки

Если запись не найдена — переменные не устанавливаются.


Получить список записей

Возвращает массив строк, соответствующих фильтрам.

Параметр Описание
Таблица Название таблицы; поддерживает {{переменные}}
Return All Если включено — возвращаются все строки (игнорирует Limit)
Limit (доп.) Максимум записей. По умолчанию 50; поддерживает {{переменные}}
Filters Условия отбора (поле, оператор, значение); поддерживает {{переменные}}
Must Match (доп.) All — AND; Any — OR

Результирующие переменные:

Переменная Значение
{{result}} Массив записей
{{result.count}} Количество записей
{{result.0.НазваниеКолонки}} Значение колонки в первой записи

Используйте {{result}} с динамическими кнопками (тип «Динамические кнопки») или блоком «Условие» для проверки "{{result.count}}".


Обновить запись

Обновляет строки, соответствующие условиям.

Параметр Описание
Таблица Название таблицы; поддерживает {{переменные}}
Select Conditions Условия отбора строк для обновления; поддерживает {{переменные}}
Must Match All — AND; Any — OR
Fields to Send Список пар «Колонка → Новое значение»; поддерживает {{переменные}}

Результирующие переменные:

Переменная Значение
{{result}} Массив обновлённых записей
{{result.count}} Количество обновлённых записей

Операторы условий

В блоках с условиями (Select Conditions / Filters) поддерживаются следующие операторы:

Оператор Описание
"=" Равно
"!=" Не равно
"<" Меньше
"<=" Меньше или равно
">" Больше
">=" Больше или равно
"like" Поиск по шаблону ("%текст%")
"ilike" То же, без учёта регистра

Пример: сохранение заявки пользователя

  1. Блок «Ввод данных» — имя → "user_name", телефон → "user_phone".
  2. Блок «Интеграция» → Supabase → Создать запись:
    • Таблица: "leads"
    • Данные: "name" → "{{user_name}}", "phone" → "{{user_phone}}", "chat_id" → "{{USER_ID}}"
  3. Переменная "{{result.id}}" — ID созданной заявки в Supabase.

Grok (xAI)

Grok — мощная языковая модель от компании xAI, предоставляющая возможности чат-ИИ, анализа изображений, генерации медиа и работы с аудио.

API Base URL: "https://api.x.ai/v1"
API ключ: Начинается с "xai-". Получить можно на console.x.ai.


Настройка подключения

В настройках интеграции введите API ключ в формате "xai-...".
Кнопка «Проверить соединение» отправит запрос к "/models" для проверки валидности ключа.


Операции

Отправить сообщение ("send_message")

Отправляет текстовый запрос языковой модели Grok и возвращает ответ.

Параметры:

Параметр Описание
Модель ID модели (по умолчанию "grok-3")
Системный промпт Контекст/инструкция для модели
Сообщение пользователя Запрос к модели
Температура Случайность ответа (0–2)
Макс. токенов Ограничение длины ответа
История диалога Переменная с историей для поддержания контекста
JSON-режим Принудительный ответ в JSON-формате

Результирующие переменные:

  • "{prefix}.text" — текст ответа модели
  • "{prefix}.model" — использованная модель
  • "{prefix}.tokens_used" — количество потреблённых токенов
  • "{prefix}." — поля JSON (если включён JSON-режим со схемой)

Анализировать изображение ("analyze_image")

Отправляет изображение модели для визуального анализа (Vision API).

Параметры:

Параметр Описание
Модель ID модели с поддержкой Vision (напр. "grok-4.20-reasoning")
URL или file_id изображения Telegram "file_id" или прямая ссылка
Вопрос Что нужно узнать об изображении
Детализация "auto", "low" или "high"
Макс. токенов Ограничение длины ответа

Результирующие переменные:

  • "{prefix}.text" — ответ модели
  • "{prefix}.model" — использованная модель
  • "{prefix}.tokens_used" — количество потреблённых токенов

Создать изображение ("generate_image")

Генерирует изображение по текстовому описанию с помощью модели "grok-imagine-image".

Параметры:

Параметр Описание
Промпт Описание изображения
Соотношение сторон "auto", "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "2:1", "1:2"
Разрешение "1k" (стандарт) или "2k" (высокое)
Количество Число изображений (1–10)

Результирующие переменные:

  • "{prefix}.url" — URL сгенерированного изображения (временный)
  • "{prefix}.file_id" — Telegram "file_id" первого изображения (стабильный)
  • "{prefix}.file_ids" — массив Telegram "file_id" всех изображений
  • "{prefix}.count" — количество сгенерированных изображений
  • "{prefix}.{i}.file_id" — "file_id" каждого изображения по индексу

Примечание: URL изображений, возвращаемые xAI, являются временными. Блок автоматически загружает изображения в Telegram и сохраняет стабильный "file_id".


Реакция на сообщение ("react_to_message")

Анализирует сообщение пользователя с помощью ИИ и ставит подходящую эмодзи-реакцию в Telegram.

Параметры:

Параметр Описание
ID сообщения Telegram "message_id" для реакции
Допустимые реакции Список эмодзи, из которых ИИ выбирает
Сообщение пользователя Текст для анализа
Модель ID модели (по умолчанию "grok-3-mini")
Системный промпт Дополнительные инструкции для выбора реакции

Результирующие переменные:

  • "{prefix}.selected_emoji" — выбранный эмодзи (или пустая строка, если ИИ решил не реагировать)

Создать видео ("generate_video")

Генерирует видеоролик по текстовому описанию с помощью модели "grok-imagine-video".

⚠️ Важно: Генерация видео занимает 1–5 минут (иногда до 10 минут). Блок выполняет асинхронный опрос API каждые 5 секунд. Убедитесь, что ваша очередь задач поддерживает длительное выполнение.

Параметры:

Параметр Описание
Промпт Описание видео
Длительность Продолжительность в секундах (1–15)
Соотношение сторон "16:9", "9:16", "1:1"
Разрешение "480p" или "720p"

Результирующие переменные:

  • "{prefix}.url" — URL готового видео (временный)
  • "{prefix}.file_id" — Telegram "file_id" видео (стабильный)
  • "{prefix}.duration" — продолжительность видео в секундах
  • "{prefix}.model" — использованная модель

Расшифровать аудио ("transcribe_audio")

Конвертирует голосовое сообщение или аудиофайл из Telegram в текст (Speech-to-Text).

Параметры:

Параметр Описание
File ID аудио Telegram "file_id" аудио- или голосового сообщения
Язык ISO-код языка аудио (необязательно — для повышения точности)
Нормализация Привести числа и аббревиатуры в текстовый вид

Результирующие переменные:

  • "{prefix}.text" — расшифрованный текст
  • "{prefix}.language" — определённый язык
  • "{prefix}.duration" — продолжительность аудио в секундах

Озвучить текст ("text_to_speech")

Синтезирует речь из текста и возвращает временный URL аудиофайла.

Параметры:

Параметр Описание
Текст Текст для озвучивания
Голос Один из: "eve" (энергичный), "ara" (тёплый), "rex" (профессиональный), "sal" (плавный), "leo" (авторитетный)
Язык ISO-код языка (или "auto" для автоопределения)
Формат Аудиоформат: "mp3", "wav", "pcm", "mulaw"

Результирующие переменные:

  • "{prefix}.url" — временный URL аудиофайла (действителен 24 часа)

Файл автоматически удаляется через 24 часа после генерации.


Получить список моделей ("list_models")

Получает актуальный список доступных моделей Grok.

Результирующие переменные:

  • "{prefix}" — массив объектов с полями "id" и "created"

Примеры моделей

Модель Назначение
"grok-3" Флагманская языковая модель — тексты, чат
"grok-3-mini" Лёгкая и быстрая — короткие задачи, реакции
"grok-4.20-reasoning" Vision + рассуждения — анализ изображений
"grok-imagine-image" Генерация изображений
"grok-imagine-video" Генерация видео

Актуальный список доступен через операцию «Получить список моделей».