Saltar al contenido principal
Las aplicaciones de Twenty son paquetes de TypeScript que amplían tu espacio de trabajo con objetos personalizados, lógica, componentes de UI y capacidades de IA. Se ejecutan en la plataforma Twenty con sandboxing completo y controles de permisos.

Cómo funcionan las aplicaciones

Una aplicación es un conjunto de entidades declaradas usando funciones defineEntity() del paquete twenty-sdk. El SDK detecta estas declaraciones mediante análisis de AST en tiempo de compilación y produce un manifiesto — una descripción completa de lo que tu aplicación agrega a un espacio de trabajo. Estas funciones validan tu configuración en tiempo de compilación y proporcionan autocompletado en el IDE y seguridad de tipos.
your-app/
├── src/
│   ├── application-config.ts    ← defineApplication (required, one per app)
│   ├── roles/                   ← defineRole
│   ├── objects/                 ← defineObject
│   ├── fields/                  ← defineField
│   ├── logic-functions/         ← defineLogicFunction
│   ├── front-components/        ← defineFrontComponent
│   ├── skills/                  ← defineSkill
│   ├── agents/                  ← defineAgent
│   ├── views/                   ← defineView
│   ├── navigation-menu-items/   ← defineNavigationMenuItem
│   └── page-layouts/            ← definePageLayout
├── public/                      ← Static assets (images, icons)
└── package.json
La organización de archivos depende de ti. La detección de entidades se basa en el AST — el SDK encuentra llamadas a export default defineEntity(...) sin importar dónde se encuentre el archivo. La estructura de carpetas anterior es una convención, no un requisito.

Tipos de entidades

EntidadPropósitoDocumentación
AplicaciónIdentidad de la aplicación, rol predeterminado, variablesConfiguración de la aplicación
RolConjuntos de permisos para objetos y camposRoles y permisos
ObjetoTipos de registros personalizados con camposObjetos
CampoAgregar campos a objetos de otras aplicacionesAmpliar objetos
RelaciónVínculos bidireccionales entre objetosRelaciones
Función de lógicaTypeScript del lado del servidor con activadoresFunciones de lógica
HabilidadInstrucciones reutilizables para agentes de IAHabilidades y agentes
AgenteAsistentes de IA con prompts personalizadosHabilidades y agentes
Proveedor de conexiónCredenciales OAuth para APIs de tercerosConexiones
VistaVistas de listas de registros preconfiguradasVistas
Elemento del menú de navegaciónEntradas personalizadas de la barra lateralElementos del menú de navegación
Diseño de páginaPestañas y widgets en la página de detalles de un registroDiseños de página
Componente de frontendInterfaz de usuario de React en entorno aislado dentro de TwentyComponentes de frontend
Elemento del menú de comandosAcciones rápidas y entradas Cmd+KElementos del menú de comandos

Sandboxing

  • Las funciones de lógica se ejecutan en procesos de Node.js aislados en el servidor. Solo acceden a los datos a través del cliente de API tipado, limitado a los permisos del rol de la aplicación.
  • Los componentes de frontend se ejecutan en Web Workers usando Remote DOM — aislados de la página principal pero renderizando elementos DOM nativos (no iframes). Se comunican con Twenty a través de una API de host de paso de mensajes.
  • Los permisos se aplican a nivel de API. El token de tiempo de ejecución (TWENTY_APP_ACCESS_TOKEN) se deriva del rol definido en defineApplication().

Ciclo de vida de la aplicación

┌─────────────────────────────────────────────────────────┐
│ Development                                             │
│   npx create-twenty-app → yarn twenty dev (live sync)   │
├─────────────────────────────────────────────────────────┤
│ Build & Deploy                                          │
│   yarn twenty dev:build → yarn twenty app:publish        │
├─────────────────────────────────────────────────────────┤
│ Install flow                                            │
│   upload → [pre-install] → metadata migration →         │
│   generate SDK → [post-install]                         │
├─────────────────────────────────────────────────────────┤
│ Publish                                                 │
│   npm publish → appears in Twenty marketplace           │
└─────────────────────────────────────────────────────────┘
  • yarn twenty dev — observa tus archivos fuente y sincroniza en tiempo real los cambios con un servidor de Twenty conectado. El cliente de API tipado se regenera automáticamente cuando cambia el esquema.
  • yarn twenty dev:build — compila TypeScript, agrupa las funciones de lógica y los componentes de frontend con esbuild, y produce un manifiesto.
  • Hooks de pre/post-instalación — funciones opcionales que se ejecutan durante la instalación. Consulta Hooks de instalación para más detalles.

Próximos pasos

Configuración

Identidad de la aplicación, rol predeterminado y hooks de instalación.

Datos

Objetos, campos y relaciones bidireccionales.

Lógica

Funciones de lógica, habilidades, agentes y conexiones OAuth.

Diseño

Vistas, navegación, diseños de página y componentes de frontend.

Operaciones

CLI, pruebas, remotos, CI y publicación de tu aplicación.