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

Коннекторы

Подключайте приложение к сторонним сервисам: Slack, Resend, ElevenLabs. Учётные данные шифруются, действия выполняются с предварительной аутентификацией.

Коннекторы позволяют интегрировать внешние сервисы в приложение без необходимости хранить API-ключи в коде. Ты настраиваешь подключение один раз, привязываешь его к проекту и вызываешь готовые действия из приложения. Учётные данные хранятся в зашифрованном виде и никогда не передаются в frontend-код.

Коннектор Категория Тип аутентификации Что умеет
Resend Коммуникации API-ключ Отправка транзакционных писем, массовая рассылка, список проверенных доменов
Slack Коммуникации OAuth Публикация сообщений, список каналов и участников, реакции на сообщения, чтение тредов
ElevenLabs ИИ API-ключ Синтез речи, список доступных голосов, генерация звуковых эффектов

Список коннекторов регулярно пополняется.

  1. Ты создаёшь подключение — вводишь учётные данные (API-ключ или входишь через OAuth)
  2. Привязываешь подключение к проекту — это даёт проекту доступ к указанным учётным данным
  3. Приложение вызывает действия — запрос идёт через Proyecta Cloud, который на стороне сервера подставляет учётные данные

Код приложения никогда не видит сырой API-ключ или OAuth-токен. Система коннекторов берёт на себя аутентификацию, ограничение частоты запросов и ведение журнала аудита.

  1. Открой проект в builder
  2. Перейди в Settings > Connectors
  3. Выбери коннектор из каталога (например, Resend)
  4. Введи учётные данные:
    • Коннекторы с API-ключом (Resend, ElevenLabs): вставь секретный ключ
    • OAuth-коннекторы (Slack): войди в аккаунт и предоставь доступ
  5. Дай подключению имя (например, «Production Resend»)
  6. Подключение проверяется автоматически и помечается как Active, если данные корректны

Твоё приложение может читать сторонний API прямо из браузера, и API-ключ при этом никогда не попадёт в бандл. Учётные данные остаются зашифрованными на платформе; приложение указывает только коннектор, действие и типизированный ввод, а вызов выполняет платформа.

import { useConnectorData, useHttpRead } from '@/hooks/useConnector.ts';
// A connector's own read action, as a cached query
const { data, isLoading, error } = useConnectorData('eleven-labs', 'listVoices');
// The generic HTTP-read connector, by endpoint name
const { data: feed } = useHttpRead('news-feed', { limit: 10 });

Стоит знать про два ограничения — они сделаны намеренно:

  • Только чтение. Доступны лишь те действия, которые платформа пометила как безопасные для браузера; всё остальное возвращает 403. Записи (публикация в Slack, отправка письма, списание с карты) из браузера недоступны в принципе.
  • Нельзя передать URL или хост. Для универсального коннектора http-read ввод выглядит как { endpointKey, params }, а URL за endpointKey настраиваешь ты, владелец приложения, — не код приложения. Ответы кешируются на сервере и ограничиваются по частоте, поскольку сторонние ключи расходуют квоту.

Ответ 404 означает, что владелец ещё не подключил этот коннектор, — именно этот случай стоит обработать в интерфейсе.

Писать код коннекторов вручную не обязательно. ИИ-builder знает, какие коннекторы привязаны к проекту, и может сгенерировать интеграцию за тебя:

  • «Отправь приветственное письмо при регистрации пользователя» — использует коннектор Resend
  • «Отправь сообщение в Slack при поступлении нового заказа» — использует коннектор Slack
  • «Воспроизведи аудионарратив на странице статьи» — использует коннектор ElevenLabs
Действие Тип операции Описание
sendEmail write Отправить одно транзакционное письмо
sendBatch write Отправить несколько писем за один запрос
listDomains read Получить список проверенных отправляющих доменов
Действие Тип операции Описание
postMessage write Опубликовать сообщение в канале
listChannels read Получить список каналов воркспейса
listUsers read Получить список участников воркспейса
reactToMessage write Добавить emoji-реакцию на сообщение
getThread read Получить ответы в треде
Действие Тип операции Описание
textToSpeech write Преобразовать текст в речь
listVoices read Получить список доступных голосов
generateSoundEffect write Сгенерировать звуковой эффект ИИ
Статус Значение
Active Учётные данные действительны, подключение готово к работе
Broken Учётные данные истекли или были отозваны — обнови их, чтобы восстановить доступ
  • Учётные данные шифруются с использованием AES-256-GCM
  • Частота запросов ограничена: 1 000 запросов в минуту на коннектор на проект
  • Каждый вызов действия фиксируется в журнале аудита (подключение, действие, длительность, статус)
  • Подключения действуют на уровне всего воркспейса

Можно ли использовать одно подключение в нескольких проектах?

Да. Создай подключение один раз и привяжи его к любому количеству проектов в одном воркспейсе.

Что произойдёт, если API-ключ истечёт или будет отозван?

Статус подключения изменится на Broken. Обнови учётные данные в Settings > Connectors, чтобы восстановить работу.

Можно ли вызывать действия коннекторов из frontend?

Твоё приложение никогда не хранит учётные данные. Безопасные для браузера действия чтения проксируются через Proyecta Cloud, который подставляет учётные данные на стороне сервера, поэтому ключ не попадает в бандл. Действия записи из браузера недоступны вовсе.

Можно ли добавить собственный коннектор?

Пока нет. Поддержка пользовательских коннекторов запланирована в roadmap.

  • Новые коннекторы (Google, Twilio, SendGrid и другие)
  • Пользовательские определения коннекторов — подключай собственные API
  • Приём входящих webhook-событий от подключённых сервисов
  • OAuth-шлюз — токены остаются на стороне сервера даже при инициированных клиентом потоках