L'enregistrement
Une occurrence de l'objet : un client précis, une commande précise. C'est ce que vos utilisateurs créent et modifient au quotidien.
Trois notions suffisent pour construire une application sur Slamflow : des objets qui décrivent vos données, des flows qui les font vivre, et des formules qui calculent ce qui doit l'être. Cette page explique les trois, dans cet ordre.
Un objet est un type de donnée que vous définissez : un client, une commande, un ticket. Il tient lieu de table, de formulaire et d'écran à la fois — vous décrivez ses champs, le reste suit.
Une occurrence de l'objet : un client précis, une commande précise. C'est ce que vos utilisateurs créent et modifient au quotidien.
Une information portée par l'objet. Son type décide de la saisie, de l'affichage et des contrôles — une date n'est pas un texte.
Un champ qui pointe vers un autre objet : une commande appartient à un client. Les deux faces sont entretenues ensemble.
Le type ne sert pas qu'à ranger : il décide de ce que l'utilisateur peut saisir, de ce qui s'affiche et de ce qui est vérifié.
À retenir. Un champ de type Formula se calcule tout seul et ne se saisit jamais. Un champ AutoNumber attribue un numéro à la création, selon le motif que vous donnez. Ces deux-là vous évitent l'essentiel des saisies manuelles.
Un flow est une suite de tâches qui s'exécutent dans l'ordre. C'est lui qui envoie un courriel, crée un enregistrement, appelle un service externe ou affiche un écran — sans une ligne de code.
manual | Un bouton, sur la fiche d'un enregistrement ou dans une liste. |
object_after_upsert | Après la création ou la modification d'un enregistrement. |
object_before_upsert | Avant l'enregistrement — c'est là qu'on complète ou qu'on refuse. |
scheduled | À heure fixe, selon une planification. |
webhook | Un appel entrant depuis un autre logiciel. |
received_mail | La réception d'un courriel sur une boîte surveillée. |
Chaque tâche fait une chose et une seule. Voici les plus courantes ; la plateforme en compte une trentaine.
À retenir. Une tâche publie son résultat sous son propre nom : une tâche get appelée leClient se lit ensuite leClient.raison_sociale dans les tâches suivantes. C'est ce qui permet d'enchaîner sans rien recopier.
Chaque exemple donne le déclencheur, l'enchaînement des tâches et les formules exactes. Ils se recopient tels quels, en remplaçant les noms de champs par les vôtres.
Dès qu'une demande est enregistrée, le client reçoit une confirmation nominative avec sa référence.
getCharger le client rattaché à la demande.id == context.new.client[0]emailLui envoyer la confirmation.leClient.emailUne demande dépassant dix mille euros part en validation : le responsable est prévenu, les autres ne déclenchent rien.
decisionNe continuer que si le montant dépasse le seuil.context.new.montant > 10000getCharger le responsable désigné sur la demande.id == context.new.responsable[0]emailLui envoyer l'alerte.leResponsable.emailChaque matin, les devis envoyés dont la validité est passée sont relancés, un par un.
getChercher les devis envoyés et échus.statut == 'Envoyé' && date_validite < $System.currentDateloopParcourir la liste obtenue.lesDevis ?? []emailRelancer le contact du devis courant.leDevis.contact_emailDepuis un bouton sur la fiche, le récapitulatif est composé en PDF puis envoyé au client, document joint.
getRecharger la commande complète.id == context.commande.idgenerate_pdfComposer le PDF à partir du modèle.emailL'envoyer au client, en pièce jointe.laCommande.client_emailLe contenu du courriel est du HTML dans lequel vous placez des formules entre doubles accolades. Chacune est évaluée au moment de l'envoi.
<p>Bonjour {{ leClient.prenom }},</p>
<p>Nous avons bien reçu votre demande
{{ context.new.reference }} du
{{ context.new.date_creation }}.</p>
<p>Montant estimé : {{ context.new.montant }} €</p>Tout ce qui est disponible dans une formule l'est ici : les champs de l'enregistrement, le résultat des tâches précédentes, les variables système.
Une formule est une expression qui rend une valeur : un calcul, une condition, un texte composé. C'est le seul endroit de la plateforme où l'on écrit quelque chose qui ressemble à du code — et cela reste une ligne, pas un programme.
Les opérateurs usuels fonctionnent : les quatre opérations, les comparaisons, et le et/ou logiques. Un champ s'appelle par son nom technique. Le ?? donne une valeur de repli quand la première est vide.
prix_ht * 1.2 quantite > 0 && statut == 'Validé' prenom + ' ' + nom date_fin ?? $System.currentDate
Huit fonctions sont disponibles, sans préfixe et en majuscules.
| Fonction | Ce qu'elle fait |
|---|---|
NOW() | L'instant présent, pour horodater. |
ISBLANK(texte) | Vrai si le texte est vide ou absent. |
ADD(a, b) | L'addition de deux entiers. |
MROUND(valeur, multiple) | Arrondit au multiple le plus proche — au quart d'heure, à la dizaine. |
ROUNDUP(valeur, multiple) | Arrondit au multiple supérieur, jamais en dessous. |
ROUND_HALFUP(valeur, décimales) | Arrondit à un nombre de décimales, la moitié vers le haut. |
GETOBJECT('type', identifiant) | Charge un enregistrement par son identifiant et rend ses champs. |
DEBUG(valeur) | Écrit une valeur dans les journaux, le temps de comprendre un calcul. |
Cette liste s'enrichira : d'autres fonctions — texte, dates, cumuls sur plusieurs enregistrements — sont prévues, et nous en ajoutons au fil des besoins. En attendant, concaténez avec + et faites poser un cumul par un flow.
En plus des champs de l'enregistrement, trois variables sont toujours là :
Dans un flow, la donnée d'entrée se lit sous context, suivi du nom que vous avez donné à la variable. Dans un flow déclenché par un enregistrement, context.new désigne l'enregistrement qui vient d'être écrit.
context.demande.montant
context.new.email
GETOBJECT('client', context.demande.client[0]).raison_socialeMême quand elle ne pointe que vers un enregistrement. Écrivez context.demande.client[0], jamais context.demande.client seul.
Utilisez l'apostrophe typographique ’ ou échappez-la avec \'. Deux apostrophes simples à la suite rendent l'expression ambiguë et la font échouer.
Dans un flow manuel, l'enregistrement d'entrée n'est accessible que sous context. Oublier le préfixe rend une valeur vide, sans message d'erreur.
Concaténer un champ vide donne un résultat vide. Protégez avec (mon_champ ?? ') dès qu'un champ peut ne pas être renseigné.
Slamflow expose un serveur MCP : un assistant comme Claude peut lire et configurer votre organisation — créer des objets, écrire des flows, chercher des enregistrements. L'accès passe par une clé, rattachée à un utilisateur.
Dans l'administration, ouvrez Utilisateurs puis la fiche de la personne qui portera l'accès. Il faut être administrateur de l'organisation.
Dans le bloc « Clé d'API », cliquez sur Générer une clé d'API.
Copiez la clé affichée. Elle commence par sk- et n'est montrée qu'une fois.
Collez la configuration proposée par l'écran dans votre client IA, puis redémarrez-le.
La clé n'est affichée qu'une fois. Aucun écran ne permet de la relire ensuite. Si elle est perdue, régénérez-la — l'ancienne est alors immédiatement invalidée.
Vous n'avez rien à composer ni à adapter : l'écran qui génère la clé vous demande quel outil vous utilisez, et affiche la configuration qui lui convient — URL de votre instance comprise — avec un bouton pour la copier. Il n'y a plus qu'à la coller dans le fichier indiqué.
{
"mcpServers": {
"slamflow-mon-organisation": {
"type": "http",
"url": "https://<votre-instance>/mcp",
"headers": { "x-api-key": "sk-…" }
}
}
}Choisissez le vôtre sur l'écran de génération : la configuration prend alors la forme qu'il attend, et le fichier où la coller est indiqué juste au-dessus.
Claude Code
.mcp.json
Relancez, puis approuvez le serveur quand il vous le demande.
Cursor
~/.cursor/mcp.json
VS Code (Copilot)
.vscode/mcp.json
Claude Desktop
claude_desktop_config.json
Il ne sait pas encore joindre un serveur distant avec un en-tête ; l'écran vous donne alors une configuration qui passe par le pont mcp-remote.
ChatGPT
Réglages → Connecteurs (mode développeur)
Il se configure dans son interface, sans fichier : l'écran vous donne l'URL et la clé à y reporter, en choisissant l'authentification par clé d'API.
Une fois le client branché, décrivez ce que vous voulez, en français. Il n'y a rien d'autre à apprendre :
Sur mon organisation Slamflow, crée une application de gestion des interventions : clients, sites, interventions avec date, technicien, statut et temps passé ; une liste des interventions à planifier et un tableau de bord par technicien.
L'assistant crée les objets, les champs, les listes et les écrans, puis vous rend la main. Vous ouvrez votre application et vous corrigez ce qui ne vous convient pas, en le demandant.
Contactez-nous, ou lancez votre essai gratuit dès aujourd'hui.
Slamflow© 2026 · Qui sommes-nous · slamflow.com