Guide Brryx
Documentation complète des fonctionnalités d'administration. Apprenez à configurer vos objets, champs, vues, automatisations et plus encore.
Objets
Les objets sont les entités métier de votre application
Un objet représente une entité métier (Client, Facture, Produit, etc.). Lorsque vous créez un objet dans l'administration, Brryx génère automatiquement la table SQL, l'API REST et l'interface utilisateur.
Création d'objets
Pour créer un objet, accédez à Administration > Objets > Nouveau. Chaque objet doit avoir un nom API unique (en snake_case).
Propriétés
Identifiants
Noms et labels de l'objet
- API Name: identifiant technique (snake_case)
- Label: nom affiché au singulier
- Plural Label: nom affiché au pluriel
- Description: texte d'aide optionnel
Options
Comportements de l'objet
- Icône: icône Lucide pour l'affichage
- Track History: activer l'historique des modifications
- Allow Attachments: autoriser les pièces jointes
- Allow Notes: autoriser les notes
Génération automatique
À la création d'un objet, Brryx génère automatiquement:
- Table SQL
data_[api_name]avec colonnes système (id, created_at, etc.) - API REST
/api/data/[api_name]avec CRUD complet - Interface à
/app/[api_name]avec liste et détail - Politiques RLS pour l'isolation multi-tenant
Champs
Les champs définissent la structure des données de chaque objet
Champs basiques
text
Texte court (255 caractères max)
number
Nombre entier ou décimal avec précision configurable
date
Date seule (sans heure)
datetime
Date et heure avec timezone
boolean
Vrai/Faux (case à cocher)
Adresse email avec validation format
phone
Numéro de téléphone
url
Lien URL avec validation
textarea
Texte long (plusieurs lignes)
Champs avancés
picklist
Liste déroulante à choix unique
- Valeurs définies dans l'administration
- Support couleurs pour affichage badges
- Valeur par défaut configurable
multi_select
Liste à choix multiples
- Sélection de plusieurs valeurs
- Stocké comme tableau JSON
- Affichage en tags/badges
file
Upload de fichier
- Types MIME autorisés configurables
- Taille max configurable
- Stockage sécurisé Supabase Storage
json
Données JSON structurées
- Éditeur JSON intégré
- Validation de schéma optionnelle
- Pour données complexes non structurées
richtext
Texte riche avec formatage
- Éditeur WYSIWYG intégré
- Gras, italique, listes, liens
- Stocké en HTML sanitizé
Relations
lookup
Relation N:1
- Référence vers un autre objet
- Le record enfant peut exister seul
- Ex: Facture → Client
master_detail
Relation parent-enfant
- L'enfant dépend du parent
- Suppression en cascade
- Ex: Facture → LigneFacture
many_to_many
Relation N:N
- Association multiple
- Table de jonction auto-générée
- Ex: Produit ↔ Catégorie
Champs calculés
formula
Valeur calculée
- Expression JavaScript
- Accès aux autres champs
- Ex: Total_TTC = HT * (1 + TVA/100)
rollup_summary
Agrégation d'enfants
- COUNT, SUM, AVG, MIN, MAX
- Sur relation master_detail
- Ex: Total lignes facture
auto_number
Numéro auto-incrémenté
- Format personnalisable
- Préfixe/suffixe optionnel
- Ex: FAC-{YYYY}-{0000}
Options communes
Validation
- Required: champ obligatoire
- Unique: valeur unique par organisation
- Default Value: valeur par défaut
Affichage
- Label: libellé affiché
- Help Text: texte d'aide au survol
- Placeholder: texte indicatif
Vues Liste
Configuration de l'affichage des listes d'enregistrements
Les vues liste définissent comment les enregistrements sont affichés dans les tableaux. Chaque vue peut avoir ses propres colonnes, filtres et tri. Les vues sont configurables par profil utilisateur.
Colonnes
Sélection des colonnes
Choisissez les champs à afficher
- Glisser-déposer pour réordonner
- Largeur personnalisable par colonne
- Colonnes figées à gauche optionnelles
Formatage
Personnalisation de l'affichage
- Format date/nombre configurable
- Badges colorés pour picklists
- Liens cliquables pour relations
Filtres
Chaque vue peut définir des filtres pour limiter les enregistrements affichés:
Opérateurs disponibles
= Égal à!= Différent de> Supérieur à< Inférieur àCONTAINS ContientSTARTS_WITH Commence parIS_NULL Est videIN Dans la listeTri
Définissez l'ordre de tri par défaut:
- Tri ascendant ou descendant
- Multi-colonnes (tri secondaire)
- L'utilisateur peut modifier le tri à l'exécution
Actions
Nouveau
Créer un nouvel enregistrement
Modifier
Éditer l'enregistrement sélectionné
Supprimer
Supprimer (avec confirmation)
Layouts de Détail
Organisation de l'affichage des fiches détaillées
Sections
Les layouts sont organisés en sections. Chaque section peut contenir:
Disposition des champs
Configuration par section
- 1, 2, 3 ou 4 colonnes
- Champs sur toute la largeur optionnel
- Ordre personnalisable
Visibilité
Contrôle d'affichage
- Section repliable/dépliable
- État par défaut (ouvert/fermé)
- Titre personnalisable
Onglets
Organisez les sections en onglets pour les fiches complexes:
- Onglets multiples avec libellés personnalisés
- Sections assignées à chaque onglet
- Onglet par défaut configurable
Listes liées (Related Lists)
Affichez les enregistrements enfants liés à l'enregistrement courant:
Configuration
- • Objet lié: sélection de l'objet enfant
- • Champ de relation: le champ lookup/master_detail
- • Colonnes: champs à afficher dans la liste
- • Filtres additionnels: critères supplémentaires
- • Tri: ordre d'affichage
- • Limite: nombre max d'enregistrements
Actions personnalisées
Ajoutez des boutons d'action sur la fiche:
- Génération de document PDF
- Envoi d'email
- Appel webhook
- Création d'enregistrement lié
Automatisations
Workflows automatiques sans code
Les automatisations permettent de définir des règles de type "QUAND [événement] SI [condition] ALORS [action]".
Déclencheurs
on_create
À la création d'un enregistrement
on_update
À la modification d'un enregistrement
on_delete
À la suppression d'un enregistrement
scheduled
Planifié (cron expression)
Conditions
Deux modes de définition des conditions:
Mode Filtre
Interface visuelle
- Construction par glisser-déposer
- Combinaison AND/OR
- Tous les opérateurs de comparaison
Mode Formule
Expression JavaScript
- Syntaxe libre
- Accès à tous les champs
- Fonctions personnalisées
Actions disponibles
send_email
Envoyer un email
- Templates avec variables
- Destinataires dynamiques
- Pièces jointes
notification
Notification in-app
- Vers utilisateurs spécifiques
- Ou propriétaire du record
- Avec lien vers l'enregistrement
create_record
Créer un enregistrement
- Dans n'importe quel objet
- Mapping de champs
- Valeurs calculées
update_field
Modifier un champ
- Sur l'enregistrement courant
- Ou sur un enregistrement lié
- Valeur fixe ou calculée
webhook
Appeler une URL externe
- POST avec payload JSON
- Headers personnalisés
- Données de l'enregistrement
approval
Processus d'approbation
- Workflow multi-étapes
- Approbateurs configurables
- Actions sur approbation/rejet
Templates PDF
Génération de documents PDF personnalisés
Éditeur visuel
L'éditeur de templates utilise un canvas avec deux modes:
Mode Grille
Positionnement aligné
- Grille magnétique configurable
- Alignement automatique
- Idéal pour formulaires structurés
Mode Freeform
Positionnement libre
- Placement pixel-perfect
- Superposition d'éléments
- Image de fond possible
Éléments
Texte
Texte statique ou dynamique
Image
Logo ou image uploadée
Tableau
Liste liée en tableau
Rectangle
Forme avec bordure/fond
Variables dynamiques
Insérez des données dynamiques avec la syntaxe {{champ}}:
- •
{{nom_client}}- Champ de l'enregistrement - •
{{client.email}}- Champ d'une relation - •
{{DATE_FORMAT(date, "DD/MM/YYYY")}}- Fonction de formatage - •
{{SUM(lignes.montant)}}- Agrégation sur liste liée - •
{{CURRENT_DATE}}- Date du jour - •
{{CURRENT_USER}}- Utilisateur courant
Validations
Règles de validation des données
Règles de validation
Les règles de validation permettent de contrôler les données avant sauvegarde:
- • Condition: expression qui doit être VRAIE pour que l'erreur s'affiche
- • Message d'erreur: texte affiché à l'utilisateur
- • Actif: activer/désactiver la règle
Opérateurs
Exemples de règles de validation:
// Montant doit être positif Montant <= 0 → "Le montant doit être supérieur à 0" // Date de fin après date de début Date_fin < Date_debut → "La date de fin doit être après la date de début" // Email requis si type = "Professionnel" Type == "Professionnel" && Email == null → "L'email est requis pour les contacts professionnels"
Sécurité & Permissions
Contrôle d'accès granulaire
Brryx implémente 6 couches de sécurité pour un contrôle d'accès complet.
Profils
Dans Brryx, les profils centralisent toute la gestion de sécurité. Chaque profil définit:
Permissions
Ce que l'utilisateur peut faire
- • CRUD par objet
- • Lecture/écriture par champ
Visibilité
Ce que l'utilisateur peut voir
- • Public/Privé par objet
- • Hiérarchie entre profils
Hiérarchie
Position dans l'organisation
- • Profil parent
- • Héritage de visibilité
Exemples de profils
Permissions objets
Pour chaque objet, définissez par profil:
can_read
Voir les enregistrements
can_create
Créer des enregistrements
can_edit
Modifier les enregistrements
can_delete
Supprimer les enregistrements
Permissions champs
Pour chaque champ, définissez par profil:
can_read
Lecture du champ
- Visible dans les listes
- Visible dans les fiches
can_write
Écriture du champ
- Modifiable en création
- Modifiable en édition
Hiérarchie des profils
Chaque profil peut avoir un profil parent, créant une hiérarchie organisationnelle. Les utilisateurs d'un profil supérieur peuvent voir les enregistrements des profils inférieurs (si l'objet est en mode privé).
Exemple de hiérarchie de profils
Configuration du profil parent
Dans les paramètres de chaque profil, vous pouvez définir un profil parent:
→ Le profil "Directeur Commercial" verra les enregistrements du profil courant
- Le Directeur Général voit tous les enregistrements (pas de parent)
- Le Directeur Commercial voit les records de ses commerciaux
- Un Commercial ne voit que ses propres enregistrements (si privé)
- La hiérarchie n'affecte que les objets configurés en mode Privé
Visibilité (Public/Privé)
Pour chaque objet, vous configurez le mode de visibilité dans les paramètres du profil. Ce paramètre détermine qui peut voir les enregistrements.
Configuration dans le profil
Administration → Profils → [Profil] → Permissions objets → Visibilité
Mode Privé
L'utilisateur ne voit que:
- • Ses propres enregistrements (owner_id = lui)
- • Les enregistrements des profils enfants (hiérarchie)
Mode Public
L'utilisateur voit:
- • Tous les enregistrements de l'organisation
- • La hiérarchie n'a pas d'impact
Ordre d'évaluation des accès
- 1Permissions objet - Le profil a-t-il accès à cet objet ? (CRUD)
- 2Visibilité - L'objet est-il Public ou Privé pour ce profil ?
- 3Hiérarchie - Si privé, le profil est-il parent du propriétaire ?
- 4Permissions champs - Quels champs sont visibles/modifiables ?
Champ Propriétaire (Owner)
Chaque enregistrement a un champ owner_id qui détermine son propriétaire. Ce champ est essentiel pour le mode privé.
- • Création: L'utilisateur connecté devient propriétaire
- • Transfert: Un admin peut changer le propriétaire
- • Mode privé: Seul le propriétaire + hiérarchie voient le record
Page d'Accueil
Dashboard personnalisable
Builder
L'éditeur de page d'accueil permet de créer des dashboards par glisser-déposer:
- Grille responsive avec colonnes configurables
- Composants redimensionnables
- Configuration par profil utilisateur
Composants
Stats Card
Indicateur chiffré
- COUNT, SUM, AVG sur un objet
- Filtres personnalisés
- Tendance optionnelle
Liste
Tableau d'enregistrements
- Basé sur une vue liste existante
- Limite configurable
- Lien vers vue complète
Graphique
Visualisation des données
- Camembert, barres, lignes
- Groupement par champ
- Filtres personnalisés
Bar Chart
Graphique en barres
- Horizontal ou vertical
- Comparaison de valeurs
- Couleurs personnalisables
Calendrier
Vue calendrier
- Événements d'un objet
- Champ date configurable
- Vue mois/semaine/jour
Texte/HTML
Contenu statique
- Annonces
- Instructions
- Liens rapides
Notes
Ajoutez des notes et commentaires sur vos enregistrements
Vue d'ensemble
Les notes permettent d'ajouter des commentaires, remarques et informations contextuelles sur n'importe quel enregistrement. C'est un historique de communication interne.
Activation des notes
Pour activer les notes sur un objet:
Administration → Objets → [Objet] → Allow Notes ✓
Contenu
Ce qu'une note peut contenir
- Texte libre (commentaires)
- Auteur et date automatiques
- Visible par tous les utilisateurs
Historique
Suivi des notes
- Liste chronologique
- Tri par date (récent en premier)
- Non modifiable après création
Utilisation
Les notes apparaissent dans un onglet dédié sur la fiche de l'enregistrement:
- Ajouter une note via le bouton "Nouvelle note"
- Voir l'historique complet des notes
- Filtrer par auteur ou période
Documents & Pièces jointes
Gérez les fichiers attachés à vos enregistrements
Pièces jointes
Les pièces jointes permettent d'attacher des fichiers (PDF, images, documents) à n'importe quel enregistrement.
Activation des pièces jointes
Administration → Objets → [Objet] → Allow Attachments ✓
Upload
Téléversement de fichiers
- Drag & drop
- Sélection multiple
- Barre de progression
Prévisualisation
Affichage des fichiers
- Images (preview inline)
- PDF (viewer intégré)
- Téléchargement direct
Gestion
Actions sur les fichiers
- Renommer
- Supprimer
- Télécharger
Stockage
Les fichiers sont stockés de manière sécurisée:
- Supabase Storage - Stockage cloud sécurisé
- Isolation - Fichiers isolés par organisation
- URLs signées - Accès temporaire sécurisé
- Types autorisés - Configuration des MIME types acceptés
Événements & Activités
Suivez les interactions et planifiez des actions
Vue d'ensemble
Le système d'activités permet de tracker toutes les interactions liées à un enregistrement: appels, réunions, tâches, emails envoyés, etc.
Timeline d'activités
Chaque enregistrement dispose d'une timeline chronologique regroupant:
Appel téléphonique
Il y a 2 heures - Par Jean Dupont
Email envoyé
Hier - Proposition commerciale
Réunion
Il y a 3 jours - Présentation produit
Types d'activités
Appels
Suivi des appels téléphoniques
- Entrants / Sortants
- Durée
- Notes d'appel
Réunions
Rendez-vous et meetings
- Date et heure
- Participants
- Compte-rendu
Tâches
Actions à réaliser
- Échéance
- Priorité
- Statut (À faire/Fait)
Emails
Emails envoyés
- Historique automatique
- Suivi d'ouverture
- Pièces jointes
Notes
Commentaires internes
- Texte libre
- Horodatage auto
- Auteur tracé
Rappels
Notifications planifiées
- Date de rappel
- Notification push
- Email de rappel
Envoi d'Emails
Envoyez des emails personnalisés depuis Brryx
Templates email
Créez des modèles d'emails réutilisables avec des variables dynamiques.
Création d'un template
Administration → Templates Email → Nouveau
Bienvenue chez nous, {{prenom}} !
Bonjour {{prenom}} {{nom}},
Nous sommes ravis de vous compter parmi nos clients.
Votre commercial dédié: {{commercial.nom}}
Variables disponibles
Données dynamiques
- {{champ}} - Champs de l'enregistrement
- {{relation.champ}} - Champs des relations
- {{CURRENT_USER}} - Utilisateur connecté
- {{CURRENT_DATE}} - Date du jour
Formatage
Mise en forme
- Éditeur HTML WYSIWYG
- Styles personnalisés
- Images et logos
- Pièces jointes
Envoi
Plusieurs méthodes pour envoyer des emails:
Manuel
Bouton "Envoyer email" sur la fiche, sélection du template
Automatisation
Action "send_email" dans une automatisation
API
Endpoint API pour envoi programmatique
Suivi
Suivez l'historique et les statistiques de vos emails:
Email transmis au serveur
Reçu par le destinataire
Email lu (tracking pixel)
Lien cliqué dans l'email
Historique des emails
Tous les emails envoyés sont automatiquement enregistrés dans l'historique de l'enregistrement:
- • Date et heure d'envoi
- • Template utilisé
- • Destinataire
- • Statut (envoyé, ouvert, cliqué)
- • Contenu de l'email
Configuration Email
Configurez le provider d'envoi d'emails pour votre organisation
Providers supportés
Brryx supporte plusieurs providers d'envoi d'emails. Configurez celui de votre choix dans Administration → Organisation → Email.
SMTP
Serveur SMTP classique
- • Hôte et port
- • Utilisateur / mot de passe
- • SSL/TLS configurable
Resend
API moderne pour développeurs
- • Clé API uniquement
- • Webhooks de tracking
- • Haute délivrabilité
SendGrid
Leader du marché
- • Clé API uniquement
- • Analytics avancés
- • Grande scalabilité
Paramètres
Configurez les informations d'expéditeur pour tous vos emails:
Email expéditeur
Adresse "From" des emails envoyés
noreply@votredomaine.comNom expéditeur
Nom affiché dans la boîte mail
Mon EntrepriseAdresse de réponse (Reply-To)
Adresse utilisée quand le destinataire répond
contact@votredomaine.comTest de configuration
Après avoir configuré votre provider, utilisez le bouton "Envoyer un email de test"pour vérifier que tout fonctionne correctement.
Quotas
Définissez des limites d'envoi pour contrôler les coûts et éviter les abus:
Quota journalier
Nombre maximum d'emails par jour
Quota mensuel
Nombre maximum d'emails par mois
Suivi de consommation
La page de configuration affiche en temps réel:
- Emails envoyés aujourd'hui / quota journalier
- Emails envoyés ce mois / quota mensuel
- Nombre d'échecs d'envoi
Rapports
Analysez vos données avec des rapports personnalisés
Vue d'ensemble
Le module Rapports permet de créer des analyses personnalisées sur vos données. Créez des tableaux avec filtres, groupements, agrégations et graphiques.
Accès aux rapports
Menu principal → Rapports
Rapports publics
Visibles par tous les profils
Rapports privés
Visibles uniquement par le créateur
Organisation en dossiers
Les rapports peuvent être organisés dans une arborescence de dossiers pour faciliter la navigation.
Fonctionnalités
Tableau de données
Affichage tabulaire
- Colonnes configurables
- Tri par colonne
- Pagination des résultats
- Jusqu'à 50 000 lignes en export
Groupements
Données groupées avec sous-totaux
- Groupement par un ou plusieurs champs
- Sous-totaux automatiques par groupe
- Totaux généraux
Création d'un rapport
Le builder de rapports permet de créer des analyses en quelques étapes:
Configuration
Choisir l'objet source
Sélectionnez l'objet principal du rapport
Sélectionner les colonnes
Champs de l'objet + champs des relations (multi-niveaux)
Définir les filtres
Critères avec combinaison AND/OR (même interface que les vues liste)
Configurer les groupements
Organiser les données par champ avec sous-totaux
Ajouter des agrégations
SUM, AVG, MIN, MAX, COUNT sur les champs numériques
Ajouter un graphique (optionnel)
Visualisation des données du rapport
Colonnes disponibles
Données affichables
- Champs de l'objet principal
- Champs des relations (lookup)
- Relations multi-niveaux
- Champs calculés (formules)
Agrégations
Calculs sur les données
- SUM - Somme
- AVG - Moyenne
- MIN / MAX - Minimum / Maximum
- COUNT - Nombre d'enregistrements
Filtres
Les filtres utilisent la même interface que les vues liste:
Opérateurs
- • Égal / Différent
- • Supérieur / Inférieur
- • Contient / Commence par
- • Est vide / N'est pas vide
- • Dans la liste (IN)
Combinaison
- • Groupes de conditions
- • Logique AND / OR
- • Groupes imbriqués
Exemple: Rapport des ventes par commercial
Graphiques
Ajoutez des visualisations graphiques à vos rapports:
Barres
Verticales ou empilées
Lignes
Tendances et évolutions
Camembert
Pie et Donut
Aires
Zones empilées
Scatter
Nuage de points
Radar
Graphique en toile
Funnel
Entonnoir
Options des graphiques
- Couleurs personnalisables
- Affichage/masquage de la légende
- Affichage des labels sur les données
- Mode empilé (barres et aires)
- Hauteur personnalisable
Export
Exportez les données de vos rapports:
Excel (.xlsx)
Fichier Excel formaté
CSV
Données brutes séparées par virgules
Limites d'export
- Maximum 50 000 lignes par export
- Formatage automatique des dates, booléens, tableaux
- Nom de fichier:
{rapport}_{date}.xlsx
Clés API
Gérez les clés d'authentification pour les intégrations externes
Vue d'ensemble
Les clés API permettent à des services externes (n8n, Zapier, scripts personnalisés) de s'authentifier auprès de l'API Brryx de manière sécurisée.
Accès
Administration → Clés API d'intégration
Seuls les administrateurs peuvent créer et gérer les clés API.
Sécurité
Protection des clés
- Hashage SHA256 (non réversible)
- Clé affichée une seule fois
- Préfixe visible: dk_xxx...
Expiration
Durée de validité
- Date d'expiration optionnelle
- Clé désactivable à tout moment
- Dernière utilisation trackée
Scopes
Permissions granulaires
- Accès limité par scope
- Lecture / Écriture séparés
- Wildcards supportés
Création d'une clé
Pour créer une nouvelle clé API:
Nom de la clé
Identifiant descriptif (ex: "Integration n8n Production")
Description (optionnel)
Notes sur l'utilisation de la clé
Sélectionner les scopes
Permissions accordées à cette clé
Date d'expiration (optionnel)
La clé sera automatiquement désactivée après cette date
Important
La clé secrète n'est affichée qu'une seule fois lors de la création. Copiez-la immédiatement et stockez-la de manière sécurisée. Il n'est pas possible de la récupérer ultérieurement.
Format de la clé
dk_aBcDeFgHiJkLmNoPqRsTuVwXyZ123456789012Préfixe dk_ suivi de 32 caractères aléatoires (base64url)
Scopes disponibles
Les scopes définissent les permissions de la clé:
| Scope | Description |
|---|---|
scan-ai:read | Lire les documents et résultats Scan AI |
scan-ai:write | Créer et modifier des scans AI |
webhooks:read | Lire les configurations webhooks |
webhooks:write | Créer et gérer les webhooks |
Wildcards
Utilisez * pour accorder toutes les permissions d'un domaine:
- •
scan-ai:*= scan-ai:read + scan-ai:write - •
webhooks:*= webhooks:read + webhooks:write
Utilisation
Deux méthodes pour authentifier vos requêtes:
Header X-API-Key
X-API-Key: dk_votre_cle_secrete
Header Authorization
Authorization: Bearer dk_votre_cle_secrete
Exemple avec cURL
curl -X GET "https://votre-instance.dicto.app/api/data/clients" \ -H "X-API-Key: dk_aBcDeFgHiJkLmNoPqRsTuVwXyZ123456789012" \ -H "Content-Type: application/json"
Gestion des clés
- Désactiver - Bloquer temporairement une clé
- Supprimer - Révoquer définitivement une clé
- Dernière utilisation - Voir quand la clé a été utilisée
- Modifier - Changer nom, description, scopes, expiration
API & Intégrations
Connectez Brryx à vos autres outils
API REST
Chaque objet expose automatiquement une API REST complète:
GET /api/data/[object] # Liste (avec pagination) GET /api/data/[object]/[id] # Détail POST /api/data/[object] # Création PUT /api/data/[object]/[id] # Modification DELETE /api/data/[object]/[id] # Suppression # Filtres via query params GET /api/data/client?status=actif&montant_gt=1000 # Tri GET /api/data/client?_sort=nom&_order=asc
Webhooks
Configurez des webhooks pour notifier des systèmes externes:
Webhooks sortants
Brryx appelle une URL externe
- Configurés via automatisations
- Payload JSON personnalisable
- Headers d'authentification
Webhooks entrants
URL pour recevoir des données
- Endpoint dédié par objet
- Création/mise à jour automatique
- Validation des données