Зачем нужны приложения
Рабочие процессы охватывают автоматизацию без кода. Но для некоторых вещей нужен код: пользовательский механизм ценообразования, проприетарный конвейер обогащения данных, проверка на соответствие требованиям, которая запускается при каждом обновлении записи, пользовательская панель интерфейса, подтягивающая данные из внутреннего инструмента. Приложения позволяют создавать всё это как полноценные расширения — не хрупкие скрипты, которые снаружи обращаются к API, а код, который запускается на платформе с полным доступом к системе типов, модели прав доступа и пользовательскому интерфейсу.Что может определять приложение
Приложение — это пакет TypeScript, который объявляет сущности с помощьюtwenty-sdk:
| Сущность | Что делает |
|---|---|
| Объекты и поля | Новые таблицы данных и поля в существующих объектах — такой же подход, как и для встроенных. |
| Логические функции | Серверный TypeScript, запускаемый HTTP-маршрутами, расписаниями cron или событиями базы данных |
| Компоненты фронтенда | Изолированные React-компоненты, которые отображаются внутри интерфейса Twenty (боковая панель, виджеты, командное меню). |
| Навыки и агенты | Возможности ИИ — многократно используемые инструкции и автономные помощники |
| Представления и навигация | Предварительно настроенные представления списков и элементы бокового меню |
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.
Создайте своё первое приложение
Пошаговое руководство из трёх этапов — создание каркаса, запуск локального сервера, синхронизация изменений.