Plateforme ERP / CRM pilotée par les métadonnées

Un logiciel d'entreprise qui évolue aussi vite que votre activité

Formata pilote votre CRM et votre back-office à partir de métadonnées — formulaires, logique et processus vivent comme des données dans la base. Déployez des changements en minutes sans redéploiement, avec la profondeur de Siebel et la vitesse du no-code.

~50klignes/seconde en import massif
14langues, détectées automatiquement
REST + OpenAPIAPI d'intégration
100%self-hosted, vos données

Pourquoi choisir Formata

Rapidité no-code

Concevez formulaires, requêtes, tableaux de bord et processus visuellement. Publication instantanée, sans build ni redéploiement.

Profondeur entreprise

Business Components, sécurité au niveau ligne, BPM versionné et routage par compétences — la profondeur des grandes organisations.

Vos données vous appartiennent

Self-hosted sur votre infrastructure ou cloud privé. Piste d'audit complète et résidence des données sous votre contrôle.

S'intègre avec tout

API REST versionnée avec clés et OpenAPI automatique, webhooks sortants, SSO et import massif.

Une plateforme complète, pas une boîte à outils

Tout ci-dessous est déjà dans le produit — et ne cesse de croître.

Cœur piloté par les métadonnées

Formulaires, requêtes et scripts Python sont des données. Modifiez l'application dans le concepteur — le système en cours se met à jour sans reconstruction.

Business Components

Une couche logique réutilisable sur vos tables : jointures, champs calculés, validation, masquage et hooks — avec un constructeur visuel.

Moteur BPM visuel

Concevez les processus sur un canevas : branches parallèles, sous-processus, escalade, relances, versionnage et heatmap en direct.

Assignment Manager intelligent

Routez leads et affaires selon compétences, territoires, disponibilité et capacité — avec équilibrage pondéré et traçabilité.

Contrôle d'accès entreprise

Matrice rôle → formulaires/actions, visibilité par hiérarchie (Mes / Équipe / Tous) et blocage strict des enregistrements d'autrui.

API d'intégration

REST /api/v1 versionnée avec clés API et scopes, auto-documentée via OpenAPI 3, plus webhooks et requêtes nommées.

Données massives (EIM)

Chargez des millions de lignes : CSV → staging → une transformation ensembliste avec résolution des clés étrangères. Environ 50 000 lignes par seconde.

Conçu pour la fiabilité

Pool BD à reconnexion automatique, BPM et imports auto-réparateurs, et un coupe-circuit qui désactive les scripts fautifs.

Python & IA intégrés

Python en bac à sable pour la logique, listes de valeurs (LOV) sans code et scoring de leads par IA — étendez sans quitter la plateforme.

Un cœur C++ natif, conçu pour la vitesse

Pas de machine virtuelle par requête, pas de taxe multi-locataire. Le moteur de Formata est du C++ compilé qui sert les requêtes directement — avec du Python embarqué exécutant votre logique au plus près du cœur.

~50klignes/seconde en import massif
~220×plus rapides : expressions compilées vs interprétées
1binaire natif, plusieurs services
0surcoût VM par requête

Compilé, pas interprété

Le cœur est en C++ natif (httplib + libpq). Les requêtes sont servies sans lourde VM applicative dans le chemin.

Python à vitesse native

La logique métier s'exécute dans des processus Python en bac à sable, dérivés du cœur — isolés, parallèles et remplaçables à chaud.

Évolue linéairement

Un binaire natif alimente plusieurs services ; ajoutez des processus et des threads selon votre charge.

Pourquoi le natif compte

Formata — cœur C++ natif
Couche applicative interprétée / VM
Chemin de requête SaaS multi-locataire

À titre indicatif : le code natif compilé traite bien plus par cœur que les couches interprétées et multi-locataires.

Une requête — des microsecondes de travail

Formata≈ 2 ms
Analyse HTTP · 0,04 msLiaisons (AOT C++) · 0,3 msSQL sur votre réseau · 1,2 msSortie JSON · 0,2 ms
CRM SaaS typique≈ 120 ms

Chemin illustratif : banc LAN contre latences typiques des SaaS publics. Vos chiffres dépendent du réseau et des données.

Navigateur / client API Cœur C++ Workers Python PostgreSQL métadonnées

Formulaires, logique et processus sont des métadonnées dans la base. Le cœur C++ les compile à la volée ; des workers Python en bac à sable exécutent vos scripts.

Python illimité, partout

Chaque hook, validation, tâche et intégration est du Python — stocké comme donnée, édité dans le concepteur, remplacé à chaud sans redémarrage. Le langage complet, en bac à sable sécurisé.

Les scripts sont des donnéesLa logique vit dans la base, versionnée et modifiable en direct. Sans build ni redéploiement : enregistrez et c'est actif.
Des hooks partoutBefore/after save, changement de champ, boutons, hooks BC, nœuds BPM, tâches planifiées, web-to-lead, téléphonie — tout est scriptable.
Sûr par conceptionLes workers s'exécutent sous un rôle restreint dans des processus isolés ; un coupe-circuit désactive les scripts fautifs.
before_save.py
def before_save(ctx):
    deal = ctx.data('deal')
    # enrich, validate, integrate — full Python
    if deal['amount'] > 1_000_000:
        deal['tier'] = 'enterprise'
        ctx.assign(role='key-account')
    if not deal['owner_id']:
        ctx.abort('Owner is required')
    ctx.audit('deal.checked', deal['id'])
Un hook before-save — stocké comme donnée, remplaçable à chaud

Python sans limites, bien clôturé

Cœur C++ pypypypy Workers Python isolés · hot-swap à l’enregistrement
Depuis les scripts, d’emblée : PostgreSQL ORMSMTP / IMAPLDAP / ADHTTP & RESTRedisWebhooksLLM / AI APIsCSV / ExcelTelephonyPDF printing

Comment Formata se compare

La profondeur entreprise sans verrouillage SaaS. Un regard juste sur ce qui distingue Formata des plateformes CRM classiques.

VitessePropriété des donnéesPersonnalisationRythme de changementCoût

La forme de la différence

FormataCRM SaaS grand public

Vue qualitative des cinq axes que nous optimisons. Le détail est dans la matrice ci-dessous.

FormataSalesforceSiebelHubSpotDynamics 365
Self-hosted — les données vous appartiennent~
Cœur C++ natif (pas de VM par requête)
Modifier l'application sans redéploiement~~~
Scripting embarqué illimité (Python)~~~
Import massif ensembliste (~50k lignes/s)~~~
Pas de verrouillage à la licence par siège
BPM visuel avec versionnage~~
API REST ouverte + OpenAPI + clés API~
Oui ~ Partiel Non

La comparaison reflète des déploiements typiques et sert au positionnement ; vérifiez les détails pour votre édition et votre contrat.

Conforme là où vous vendez

Le self-hosting signifie que vous décidez où résident les données et combien de temps. Formata fournit les contrôles ; voici la correspondance avec votre région.

Recommandations pour

    Ceci est un positionnement produit, pas un conseil juridique. Validez vos obligations précises avec des juristes qualifiés.

    Livré en continu

    Ce site se met à jour automatiquement à mesure que le produit évolue. Récemment :

    Concepteur BPM : sélecteurs de champs, changement d'entité en direct, analytiqueUn audit complet du module BPM a restauré tout ce qui s'était perdu en silence : l'entité du processus arrive de nouveau dans le concepteur, les sélecteurs de champs, rôles et scripts (dont l'étape « Définir un champ ») se remplissent dès le choix de l'entité — sans enregistrer ni rouvrir ; la liste des entités vient du registre extensible (y compris les tâches et les tables reliées depuis le diagramme ER). La synchronisation du déclencheur depuis le nœud de départ, le démarrage des processus à la modification et l'analytique avec heatmap des jetons refonctionnent ; tout le contenu BPM fait partie de la chaîne d'installation reproductible, vérifiée par neuf suites de tests.
    Listes de prix : marges par groupe, périodes de validité, tâches d'étiquetageLes listes de prix disposent du modèle complet : type détail ou gros, périodes de validité (une liste par défaut sans date de fin plus des listes datées prioritaires — tarifs de nuit ou de week-end) et marges par groupe de produits avec héritage dans l'arbre des groupes. La génération remplit chaque fiche produit ; les utilisateurs habilités peuvent corriger chaque prix à la main, la colonne Δ% montre l'écart avec le prix calculé par groupe — les corrections manuelles survivent au recalcul. Une liste se copie en un clic. Quand la liste active change, une tâche est créée pour le responsable et seules les étiquettes modifiées sont imprimées.
    Annulation, clavier, lecteurs d’écranL’ajout de lignes s’accompagne désormais d’un bouton « Annuler » : un clic retire exactement les lignes qui viennent d’être ajoutées, via un jeton serveur à usage unique valable pour vous seul — le client ne peut donc jamais lancer de scripts arbitraires. Les tableaux se pilotent entièrement au clavier (flèches, espace pour cocher, Entrée pour agir), Échap ferme uniquement la fenêtre du dessus, le focus reste dans la fenêtre modale puis revient à son origine, et tableaux, dialogues et messages sont balisés pour les lecteurs d’écran.
    Partager un seul enregistrement, pas un rôle entierLa visibilité suit l’organigramme — vos enregistrements, votre service, votre société — mais le travail, non. Un commercial suit l’affaire et un juriste d’un autre service doit y être associé. Jusqu’ici il fallait élargir le rôle, et la personne voyait trop, définitivement. L’accès se donne désormais sur un enregistrement précis, à une personne ou un rôle, en lecture ou en écriture, avec une échéance si besoin. Il ne fait qu’ajouter, jamais retirer : retirer reste l’affaire des rôles, pour que « pourquoi voyait-il cela ? » ait un seul endroit où chercher. L’échéance s’éteint seule, car un accès temporaire qu’il faut penser à révoquer ne l’est jamais — et le motif, l’auteur et l’heure sont conservés.
    Des droits par champ qu’un administrateur peut réellement poserLe salaire visible seulement par les RH, le prix de revient seulement par les achats : la règle se pose une fois, sur une colonne, et vaut partout où le champ est affiché ou écrit — sans script par champ ni formulaire oublié. Caché veut dire non inscriptible : affichage et écriture sont fermés par la même règle. Sans règle, le champ est ouvert : la règle décrit une restriction, pas une permission. Quand plusieurs rôles se croisent, le droit le plus large l’emporte — une interdiction doit être une décision, non un hasard.
    Déplacer les réglages entre environnements — et revenirFormulaires, requêtes, scripts et planification sont des données : ce qui a été mis au point sur la plateforme d’essai part en production comme un seul lot. Avant application, on voit ce qui apparaîtra et ce qui changera, champ par champ ; tout s’applique en une transaction ; l’état précédent est conservé, donc on revient en arrière sans restaurer toute une base. Les données métier ne voyagent jamais.
    Un numéro de demande à citerChaque requête reçoit un code court, sans caractères qui se confondent, pour pouvoir être dicté au téléphone. Il figure dans le message d’erreur et dans le journal du service : un appel au support commence par « code 7KMQ2XPD » et non par « hier après-midi, ça n’a pas enregistré ». Les requêtes de base de données au-delà du seuil sont collectées avec leur texte, leur durée et ce numéro — y compris celles des scripts, où se cache le plus lourd. Par script : appels, temps total et pire temps, taux d’erreurs.
    File d’attente des tâches de fondLe travail long ne bloque plus la fenêtre. Envois en nombre, exports vers les échanges, recalculs de rapports partent dans une file : la réponse arrive tout de suite et le travail poursuit son cours, en survivant à un redémarrage du service. Un échec n’est pas perdu — la tâche est reprise avec une pause croissante : un système externe indisponible trois minutes ne consomme pas toutes les tentatives en trois secondes. Une fois les tentatives épuisées, la tâche reste visible avec sa dernière erreur, ses données d’entrée et l’horaire de chaque tentative ; la cause corrigée, un bouton la remet dans la file. Si l’exécutant lui-même meurt, la tâche revient dans la file au lieu de rester bloquée en « en cours ».
    Documents légaux par paysLes documents d'expédition suivent les règles du pays depuis lequel s'effectue la vente : pour la Russie, le bon de livraison TORG-12, la facture de TVA et le formulaire combiné UPD ; pour les États-Unis, une facture commerciale et une liste de colisage conformes aux exigences douanières ; pour l'Union européenne, une facture portant toutes les mentions obligatoires de la directive TVA ainsi qu'un bon de livraison. Le système ne propose que les formulaires valables dans le pays du document, reprend les identifiants fiscaux des parties, calcule la taxe par ligne et par taux, et écrit le montant en toutes lettres là où la forme l'exige.
    Concepteur de formulaires d'impressionLes utilisateurs composent eux-mêmes leurs documents imprimés — bons de livraison, états, contrats — à partir de bandes et de champs, sans développeur. Les données passent uniquement par l'ORM, un script Python facultatif calcule ce que la requête ne fournit pas, et l'aperçu affiche exactement ce qui ira dans le PDF. L'impression multipage gère la répétition des en-têtes de tableau, les sous-totaux par groupe, la numérotation, le changement d'orientation, les QR codes et les codes-barres ; le PDF/A d'archivage est disponible.
    Gestion des stocks : soldes, réservations, validationComptabilité des stocks complète, portée depuis un système hérité en C++Builder : entrepôts, réceptions, transferts entre entrepôts, mises au rebut, retours et réévaluations. Le stock est suivi par entrepôt, emplacement, lot, état et prix d'achat, sur deux couches — stock physique et réservation — de sorte que la quantité disponible est toujours le stock moins ce qui est déjà engagé. Valider un document au-delà du disponible est refusé, chiffres exacts à l'appui. Les prix sont historisés, avec tarifs et marges ; les rapports couvrent les mouvements de la période, les réservations, les articles sous le minimum et le journal complet des mouvements.
    TinyORM : le seul chemin des scripts vers la baseLes scripts Python accèdent aux données via un constructeur de requêtes fluide : valeurs passées en paramètres, identifiants vérifiés contre le schéma, condition obligatoire pour les modifications et suppressions ; le SQL brut peut être désactivé entièrement. Le concepteur offre la coloration syntaxique et des suggestions à la volée sur les tables et leurs champs, issues du schéma réel.
    Événements de démarrage BPM : les quatre typesLes processus démarrent sur signal (enregistrement créé, modifié — jusqu'à un champ et une condition précis — ou supprimé), sur minuterie (une fois à une date et heure, périodiquement ou par cron), à la main (bouton global ou depuis la fiche d'un enregistrement, en reprenant son identifiant) ou sur message d'un autre processus.
    Notifications en temps réelLes changements atteignent immédiatement les écrans ouverts : le serveur émet des événements en s'appuyant sur les notifications de la base, si bien qu'un enregistrement sauvegardé par un collègue apparaît sans rafraîchir.
    Structure organisationnelle d'entreprise dans le cœurModèle organisationnel versionné dans le temps à n'importe quelle date — passée ou future : entités juridiques, hiérarchie des unités, postes avec ETP planifié, grades et lignes hiérarchiques, sites et centres de coûts, affectations (principale et cumuls, avec quotité d'ETP, responsable administratif et fonctionnel) et délégations. Il calcule effectif prévu/réel/vacances, les chaînes hiérarchiques et le destinataire effectif d'une délégation ; une réorganisation se planifie à une date future sans perdre l'historique. Le concepteur gagne un onglet « Structure organisationnelle » avec date d'observation.
    Permissions par requête et gestion centrale des utilisateursLa couche SQL de lecture est désormais soumise à permissions : chaque requête nommée porte une liste de rôles vérifiée par le cœur C++ à chaque exécution (vide — tous, admin — toujours ; fail-closed). Le concepteur gagne un onglet « Utilisateurs et rôles » : création, rôles, désactivation, réinitialisation de mot de passe — dans chaque produit. Les mots de passe sont stockés en hachés bcrypt ; les comptes hérités sont re-hachés de façon transparente à la première connexion. Les groupes d'utilisateurs — statiques ou calculés par votre propre requête SQL — font aussi partie du cœur et se gèrent depuis le concepteur.
    BPM et diagramme ER dans le cœur de la plateformeLe moteur de processus métier (concepteur visuel, approbations, minuteries, scripts, déclencheurs sur n'importe quelle table) et le diagramme ER interactif du modèle de données font désormais partie du cœur de la plateforme : un pack idempotent les installe dans toute base produit, et le concepteur de formulaires gagne les onglets intégrés « Processus (BPM) » et « Diagramme ER » — disponibles dans chaque produit, du CRM à l'IDM.
    IAM d'entreprise : cycle de vie piloté par les RH et gouvernance ADFormata IDM couvre désormais de bout en bout une spécification industrielle d'identité : 11 rapports de sécurité intégrés avec abonnements, prolongation des rôles lors des mutations avec révocation automatique, validation en deux étapes pour l'intégration des prestataires/GPH, cinq rôles standard avec cloisonnement de l'interface, mappage complet des attributs AD avec placement en OU et format Description, et modèles d'e-mails de cycle de vie.
    Connecteur Active DirectoryConnectez Formata IDM à Microsoft Active Directory via LDAP : synchronisez les comptes dans le registre des identités, associez-les aux employés par e-mail/UPN et lisez le statut (activé/désactivé). Provisionnement du cycle de vie complet — création, activation/désactivation, appartenance aux groupes et réinitialisation du mot de passe — via LDAPS.
    Connecteur Microsoft ExchangeFormata IDM provisionne désormais de vraies boîtes aux lettres Exchange 2019 via remote PowerShell (pypsrp + Kerberos) : à l'embauche, une boîte est activée (SMTP principal, visible dans le carnet d'adresses) et, au départ, elle est masquée de la liste d'adresses globale avec suppression du transfert et des règles de boîte de réception. Intégré aux processus d'embauche/départ et vérifié de bout en bout sur un domaine réel.
    Diagramme interactif du modèle de données (ER)Visualisez la base comme un diagramme ER interactif — tables avec clés, relations par clés étrangères en flèches, recherche, glisser-déposer et disposition automatique. Clic droit sur une table pour attacher un déclencheur BPM (avec détection de changement de champ) ; les tables avec déclencheurs sont marquées ⚡.
    Gouvernance des identités (IGA) d'entrepriseLe gestionnaire d'identités propose désormais le scoring de risque, des contrôles compensatoires SoD, des rôles métier à appartenance dynamique, un IT Shop avec accès à durée limitée et des connecteurs Microsoft Entra ID et Google Workspace. Désormais avec un indice de risque pondéré et un connecteur SAP SuccessFactors. Poids de risque configurables, approbation des contrôles SoD, connecteurs Google service-account et SCIM.
    Client e-mail completConnectez plusieurs boîtes (Gmail, Outlook, Yandex, Mail.ru ou tout IMAP/SMTP) : réception, lecture, réponse, transfert et envoi avec pièces jointes — dans le CRM, liés aux contacts.
    Liens profonds partageables (ancres)Copiez un lien vers une tâche, un document ou un enregistrement et collez-le dans le chat — vos collègues l'ouvrent en un clic, s'ils y ont accès.
    Messagerie d'équipe intégréeDiscussions directes et de groupe entre employés avec remise en temps réel, présence en ligne, non-lus et notifications de messages manqués — les appels arrivent bientôt. Désormais avec accusés de lecture (✓✓). Les messages sont modifiables (avec la mention « modifié »). Transfert de messages et pièces jointes (fichiers et images).
    Routage BPM des tâches vers les équipesLors d'un changement de statut, le BPM affecte la tâche à la bonne équipe et choisit un membre au hasard — ex. nouvelle→managers, à payer→comptabilité, payée→direction.
    Graphiques de solde de compte & tableaux plus lisiblesChaque compte dispose d'un graphique de solde dans le temps avec journal des mouvements ; les arbres budgétaires ont désormais des en-têtes de colonnes, des chiffres alignés et des lignes alternées. Les flux d'argent s'affichent avec +/− et couleur.
    Budget : virements, réévaluation et répartition autoTransférez de l'argent entre comptes (conversion automatique), historique des taux avec réévaluation, répartition automatique d'un paiement sur les nœuds du plan et export CSV.
    Budgets prévu/réelBudgets arborescents avec cumul prévu/réel, statut des paiements, autocorrection et suivi par client.
    Navigation entre formulairesTransmettez une valeur sélectionnée à un autre formulaire et ouvrez-le en fenêtre modale — configuré visuellement dans le concepteur.
    Tests d'UI automatisés intégrésCréez ou enregistrez des cas de test, exécutez-les et vérifiez les valeurs des champs — sans outils externes.
    Visibilité des lignes en profondeurStructure organisationnelle, hiérarchies de postes et accès par catalogues — au-delà du propriétaire et du manager.
    Assignment Manager intelligentRoutez le travail par compétences, territoires, disponibilité et capacité avec équilibrage pondéré.
    API REST d'intégration v1Clés API à scopes, OpenAPI automatique et une surface d'intégration en libre-service.
    Coupe-circuit des scriptsLes automatisations en échec sont désactivées automatiquement et présentées avec un diagnostic complet pour une reprise en un clic.
    Import massif (EIM)Chargez des millions de lignes à ~50k lignes/seconde avec résolution des clés étrangères.
    Améliorations BPM visuelCouloirs, heatmap en direct, versionnage, branches parallèles et escalade.
    Filtrage des tableauxFiltres par colonne avec opérateurs sur toutes les grilles.

    Build 19f6e12 · 2026-08-06 · 45+ updates in the last 90 days

    Tarifs

    Achetez une fois, gardez pour toujours — ou choisissez le cloud, environ trois fois moins cher que louer vos propres serveurs.

    Départ
    5 postes — première année gratuitepuis $99 en une fois, pour toujours

    Produit complet, sans publicité. Inscrivez-vous et commencez aujourd'hui.

    Commencer gratuitement
    Cloud
    dès $12 / moishébergé et géré par nous

    5 postes — $12 · 10 — $25 · 25 — $49 · 100 — $99 · 1 000 — $490 · 5 000 — $1 490 par mois. Environ trois fois moins cher que louer des serveurs comparables sur AWS ou un autre cloud public.

    Choisir le cloud
    Licence à vie
    dès $200 — un seul paiement10 postes

    10 postes — $200 · 25 — $845 · 100 — $930 · 1 000 — $4 900 · 5 000 — $19 900 · au-delà de 5 000 — prix négocié.

    Acheter

    Support et mises à jour en option — environ 20% du prix de la licence par an (dès $19/an).

    Mise en œuvre à partir de $1,500 — minimale ; dépend de votre cahier des charges et des personnalisations du produit de base.

    Paiement : crypto, virement bancaire / facture, carte ou moyens locaux de votre pays.

    Voyez Formata en direct

    Explorez dès maintenant le produit en fonctionnement — le CRM et le gestionnaire d'identités. Sans inscription.