Перейти к содержимому
falang.ruEN

Интеграции

Внешние сервисы подключаются к сценарию двумя способами: как отдельные узлы триггеров и действий прямо на схеме (встроенные интеграции) или через каталог готовых интеграций ActivePieces.

  • Telegram Bot API. Триггер «При сообщении» запускает сценарий на каждое новое сообщение боту; триггер «При команде» запускает отдельную триггерную функцию на одну команду (/start, /help, …) — если привязаны оба, подходящая команда попадает только в свою функцию. «Отправить сообщение» отвечает от имени бота, а «Задать вопрос» отправляет вопрос с кнопками inline-клавиатуры и ждёт, пока пользователь нажмёт одну из них (при желании — с веткой по таймауту), продолжая выполнение по ветке нажатой кнопки. Фото, документ, голосовое сообщение, аудио или видео, приложенные к входящему сообщению, автоматически превращаются в File, а «Отправить файл» доставляет его обратно как вложение. Учётные данные (токен бота) хранятся раздельно для dev- и prod-окружений и шифруются перед сохранением. При локальном запуске движок опрашивает Telegram по long polling; если задан публичный адрес, автоматически переключается на вебхуки.

  • OpenAI-совместимые модели. Действие «Вызвать AI» отправляет запрос на completion выбранной модели и возвращает текст, при желании — с вложениями-файлами (например, входящим фото из Telegram); отдельный узел выбора «AI Choice» просит модель вернуть один из заранее заданных вариантов со структурированными данными — удобно для ветвления сценария по ответу модели. «Вызвать AI (изображение)» генерирует изображение и возвращает его как файл, а «Вызвать AI (распознавание)» превращает аудиофайл в текст. Базовый адрес API настраивается, поэтому подходит не только api.openai.com, но и Azure OpenAI, локальные серверы вроде llama.cpp и любые другие совместимые провайдеры.

  • HTTP-запрос. Универсальное исходящее обращение к любому HTTP API: метод, URL, заголовки и тело задаются выражениями, результат сохраняется в переменную — в том числе, если ответ бинарный, как файл вместо разбора в текст. Отдельных учётных данных не требует — авторизация дописывается прямо в заголовки запроса.

  • Вебхук. Универсальный входящий триггер: каждой триггер-функции присваивается собственный URL, вызов которого (POST-запрос) запускает сценарий, передавая тело запроса как входные данные.

  • Расписание. Триггер по таймеру — фиксированный интервал или cron-выражение, — который запускает сценарий на регулярной основе без внешнего сервиса и учётных данных. Подробности — на странице «Триггеры по расписанию» (конструктор cron-выражений, поведение в dev/prod, обработка перекрытия).

  • Файлы. Любой сценарий может создавать, читать, публиковать и передавать файлы — значение-ссылку, а не сырые байты в состоянии сценария, — поверх собственного объектного хранилища платформы, с квотами по пользователям и автоматическим истечением срока хранения. Подробности — на странице «Файлы».

  • Базы данных. Одна строка подключения связывает сценарий с базой Postgres или MySQL (а также SQLite — для локальной разработки); «Синхронизировать структуру» даёт редактору знание о таблицах базы, поэтому действия select/insert/update/delete типизированы по таблицам с подсказками Monaco, плюс небольшой operator-DSL для фильтрации и действие с сырым SQL для всего остального. Подробности — на странице «Базы данных».

  • Задачи. Задача для человека ставит сценарий на паузу, пока владелец проекта не решит её со страницы Tasks — одобрить/отклонить (или любой другой набор опций), каждая со своим типизированным ответом, плюс необязательная ветка по таймауту. Учётные данные не нужны — задача всегда адресована владельцу проекта.

  • Медиа. Изменение размера/конвертация изображения, обрезка/склейка/превью/транскодирование видео, извлечение или конвертация аудио — всё через ffmpeg на выделенном сервисе, на входе и выходе — файлы. Учётные данные не нужны. Полный каталог операций — на странице «Медиа».

Встроенные интеграции с сервисами, востребованными на российском рынке. Каждая — отдельный вендор в документе интеграций проекта со своими учётными данными (раздельно для dev и prod, в зашифрованном виде).

  • 1С (OData). «Получить записи» читает коллекцию (например, Catalog_Контрагенты) из базы 1С:Предприятия через стандартный интерфейс OData, с необязательным фильтром OData $filter. Учётные данные: базовый адрес OData (…/odata/standard.odata), пользователь 1С и пароль. Нужна платформа 8.3.5+ с опубликованным стандартным интерфейсом OData; пока только чтение.

  • Bitrix24. Триггер «Event (outgoing webhook)» запускает сценарий на любое событие портала (ONCRMLEADADD, ONCRMDEALUPDATE, …); имя события лежит в event.event, так что одна функция может ветвиться по нему. У каждой привязанной триггерной функции свой адрес — его нужно указать в настройках исходящего вебхука портала; учётные данные — application_token этого вебхука, по нему проверяется каждый вызов. Действий нет: REST API Bitrix24 вызывается через HTTP-запрос с адресом входящего вебхука.

  • amoCRM. «Create lead» — создание сделки (название и бюджет). Подключается по OAuth2: выберите amoCRM в списке интеграций и нажмите «Подключить». Интеграция появляется, только когда администратор указал ключи приложения amoCRM на странице «OAuth-учётные данные» (см. администрирование). Только аккаунты amocrm.ru.

  • ЮKassa. Триггер «Событие (платёж/возврат)» запускает сценарий на уведомление вроде payment.succeeded, payment.canceled или refund.succeeded. Уведомления не подписаны, поэтому движок перечитывает платёж или возврат из API ЮKassa с учётными данными магазина и передаёт дальше только подтверждённый объект. Учётные данные: Shop ID и секретный ключ; адрес триггерной функции указывается в разделе «Уведомления» личного кабинета. Чтобы создать платёж, используйте HTTP-запрос (Basic-авторизация и заголовок Idempotence-Key).

  • Диадок (Контур). «Получить документы» возвращает список документов ящика организации (до 50, только метаданные). Подключается по OAuth2 через собственное приложение Контура (адрес перенаправления https://<адрес backend>/oauth2/callback/diadoc; Client ID и секрет, затем «Подключить») плюс идентификатор ящика. Отправка и подписание документов не поддерживаются — для них нужна квалифицированная электронная подпись.

  • МойСклад, Ozon Seller API, Wildberries Seller API. У каждого одно действие «Call method» с выбором из всего API вендора (около 1 200 методов у МойСклада, 470 у Ozon, 270 у Wildberries); параметры метода типизированы, поэтому редактор их подсказывает. Учётные данные: токен доступа МойСклада; Client-Id и Api-Key Ozon; API-токен Wildberries (действует 180 дней, перевыпускается вручную в кабинете продавца). Ограничения частоты запросов на стороне вендоров обрабатываются автоматическими повторами.

  • GigaChat и YandexGPT. «Chat completion» отправляет запрос и сохраняет текстовый ответ в переменную. GigaChat: ключ авторизации из личного кабинета разработчика Сбера и область доступа API (для физлиц или для бизнеса); YandexGPT: API-ключ сервисного аккаунта и идентификатор каталога. Имя модели вводится вручную (например, yandexgpt/latest).

  • Т-Банк (песочница). «Выписка по счёту» читает выписку бизнес-счёта из публичной песочницы Т-Банка — чтобы опробовать сценарий; работа с реальным счётом пока не поддерживается.

Для сервисов, под которые пока нет отдельной встроенной интеграции, используется адаптер поверх открытой библиотеки

ActivePieces

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

  • Мессенджеры — Slack, Discord, Mattermost, Microsoft Teams;

  • Google Workspace — Google Sheets, Gmail, Google Drive, Google Calendar, Google Forms;

  • Почта и маркетинг — SMTP, IMAP, SendGrid, Resend, Mailchimp, ActiveCampaign, Klaviyo, Sendinblue (Brevo);

  • Управление проектами/задачами и CRM — Notion, Trello, Jira Cloud, Todoist, Linear, ClickUp, HubSpot, Salesforce, Pipedrive, Zoho CRM, Close, monday.com, Asana, Wrike;

  • Поддержка и хелпдеск — Zendesk, Freshdesk, Intercom;

  • Инструменты разработчика — GitHub, GitLab;

  • Данные и хранилища — Airtable, Postgres, MySQL, Amazon S3, Dropbox, MongoDB, Box;

  • Формы и планирование встреч — Typeform, JotForm, Calendly;

  • Связь и видео — Zoom, Twilio;

  • Электронная коммерция — Shopify, WooCommerce;

  • Платежи и бухгалтерия — Stripe, Razorpay, Paddle, QuickBooks, Xero;

  • Документы и электронная подпись — DocuSign, PandaDoc;

  • Аналитика — Mixpanel, PostHog;

  • Контент и соцсети — WordPress, RSS, YouTube.

Механизм поддерживает базовую авторизацию, произвольные пользовательские поля авторизации и полноценный OAuth2 (всплывающее окно авторизации и автоматическое обновление токена) — поэтому через него можно подключать сервисы, которым нужен OAuth2, даже когда прямой поддержки OAuth2 во встроенных интеграциях ещё нет. Для сервиса с OAuth2 OAuth2-приложение (client ID/secret) регистрирует один раз администратор развёртывания — на странице «OAuth credentials» в админ-приложении, а не в каждой учётной записи по отдельности. Пока администратор не включит сервис там, он вообще не появляется в списке «добавить интеграцию»; после включения подключение — это просто клик «Connect», без ввода client ID/secret. Подробное описание — на странице «Администрирование». Часть сервисов из списка поддерживает несколько способов авторизации (например, Slack, Notion, HubSpot, GitHub) — в этих случаях адаптер выбирает тот способ, что удобнее для self-hosted-развёртывания (как правило, статический токен), а не требует регистрировать OAuth2-приложение у вендора.

Большинство действий выше — типизированные формы, сгенерированные из собственных описаний полей сервиса. У части сервисов (включая Typeform, JotForm, Calendly и Box, а также у общего действия «произвольный вызов API», присутствующего почти у каждого сервиса) поля, чья форма вычисляется вендором только во время выполнения, — для них вместо типизированной формы доступно одно свободное поле-выражение (авторизованный проброс запроса к API вендора), без подсказки конкретных ключей, которые вендор ожидает.

Список встроенных интеграций продолжает расти. Большинство российских сервисов выше начинаются с нескольких основных действий или одного триггера; дальше запланированы новые действия (запись в 1С, контакты и задачи amoCRM, отправка документов через Диадок).