Перейти к основному содержанию
Большинство CRM-систем дают вам панель настроек. Twenty даёт вам платформу. Приложения — это способ, с помощью которого разработчики расширяют Twenty за рамки возможностей интерфейса: они определяют модели данных, серверную логику, UI-компоненты и возможности ИИ как код, а затем развёртывают их в одном или нескольких рабочих пространствах.

Зачем нужны приложения

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

Что может определять приложение

Приложение — это пакет TypeScript, который объявляет сущности с помощью twenty-sdk:
СущностьЧто делает
Объекты и поляНовые таблицы данных и поля в существующих объектах — такой же подход, как и для встроенных.
Логические функцииСерверный TypeScript, запускаемый HTTP-маршрутами, расписаниями cron или событиями базы данных
Компоненты фронтендаИзолированные React-компоненты, которые отображаются внутри интерфейса Twenty (боковая панель, виджеты, командное меню).
Навыки и агентыВозможности ИИ — многократно используемые инструкции и автономные помощники
Представления и навигацияПредварительно настроенные представления списков и элементы бокового меню
Всё определяется с помощью анализа AST на этапе сборки — без конфигурационных файлов и шаблонного кода регистрации. Добавьте export default defineObject(...) в любой файл .ts, и SDK его подхватит.

Как они выполняются

  • Логические функции выполняются в изолированных процессах Node.js, отделённых от хоста. Они получают доступ к данным через типизированный клиент API, ограниченный правами роли приложения.
  • Компоненты фронтенда запускаются в Web Workers с использованием Remote DOM — изолированы от основной страницы, но при этом рендерят нативные элементы DOM (не iframes).
  • Права доступа применяются на уровне API. Приложение видит только то, что разрешает его роль.

Опыт разработки

Вы пишете своё приложение как TypeScript-проект на своём компьютере. CLI отслеживает ваши исходные файлы и в реальном времени синхронизирует их с запущенным сервером Twenty — редактируйте файл и увидите изменения в интерфейсе за секунду. Типизированный клиент API автоматически пересоздаётся при изменении схемы. Когда будете готовы, yarn twenty app:publish --private развернёт приложение на production-сервере, а yarn twenty app:publish опубликует его в npm и на маркетплейсе Twenty.

Создайте своё первое приложение

Пошаговое руководство из трёх этапов — создание каркаса, запуск локального сервера, синхронизация изменений.