Passer au contenu principal
La plupart des CRM vous donnent un panneau de configuration. Twenty vous offre une plateforme. Les applications sont le moyen par lequel les développeurs étendent Twenty au-delà de ce que l’interface utilisateur propose — en définissant des modèles de données, de la logique côté serveur, des composants d’interface utilisateur et des fonctionnalités d’IA sous forme de code, puis en les déployant sur un ou plusieurs espaces de travail.

Pourquoi les applications existent

Les flux de travail couvrent l’automatisation sans code. Mais certaines choses nécessitent du code : un moteur de tarification personnalisé, un pipeline d’enrichissement propriétaire, une vérification de conformité qui s’exécute à chaque mise à jour d’enregistrement, un panneau d’interface utilisateur personnalisé qui extrait des données d’un outil interne. Les applications vous permettent de créer ces éléments en tant qu’extensions de première classe — non pas des scripts fragiles qui communiquent avec une API depuis l’extérieur, mais du code qui s’exécute sur la plateforme avec un accès complet au système de types, au modèle d’autorisations et à l’interface utilisateur.

Ce qu’une application peut définir

Une application est un package TypeScript qui déclare des entités en utilisant le twenty-sdk :
EntitéCe que cela fait
Objets et champsNouvelles tables de données et champs sur des objets existants — même traitement que les objets intégrés
Fonctions logiquesFonctions TypeScript côté serveur déclenchées par des routes HTTP, des tâches cron ou des événements de base de données
Composants frontauxComposants React isolés qui s’affichent dans l’interface de Twenty (panneau latéral, widgets, menu de commandes)
Compétences et agentsFonctionnalités d’IA — instructions réutilisables et assistants autonomes
Vues et navigationVues de liste préconfigurées et éléments de menu de la barre latérale
Tout est détecté via une analyse AST au moment de la compilation — aucun fichier de configuration, aucun code générique d’enregistrement. Ajoutez un export default defineObject(...) dans n’importe quel fichier .ts et le SDK le détectera.

Leur mode d’exécution

  • Les fonctions logiques s’exécutent dans des processus Node.js isolés, en bac à sable par rapport à l’hôte. Elles accèdent aux données via un client d’API typé, restreint aux autorisations de rôle de l’application.
  • Les composants frontaux s’exécutent dans des Web Workers en utilisant Remote DOM — isolés en bac à sable de la page principale mais rendant des éléments DOM natifs (pas d’iframes).
  • Les autorisations sont appliquées au niveau de l’API. Une application ne voit que ce que son rôle autorise.

L’expérience développeur

Vous écrivez votre application comme un projet TypeScript sur votre machine. La CLI surveille vos fichiers sources et les synchronise en direct avec un serveur Twenty en cours d’exécution — modifiez un fichier et voyez le changement dans l’interface en une seconde. Le client d’API typé est régénéré automatiquement lorsque le schéma change. Quand vous êtes prêt, yarn twenty app:publish --private envoie l’application vers un serveur de production, ou yarn twenty app:publish publie votre application sur npm et sur la place de marché Twenty.

Créez votre première application

Tutoriel en trois phases — création de l’ossature, exécution d’un serveur local, synchronisation de vos modifications.