Aller au contenu
TrompTech
LayerSites webSur mesureProduitsNos réalisations
FR
NederlandsEnglishFrançaisDeutschEspañol
Se connecterPrendre rendez-vous
LayerSites webSur mesureProduitsNos réalisationsRessources & pratiqueContact
Prendre rendez-vousSe connecter
NLENFRFrançaisDEES
Home / Développeurs

TROMPTECH LAYER

Développeurs

Connectez vos propres logiciels et apps d’IA au Layer. La lecture est directe, dans les limites des droits que vous accordez. Une modification devient toujours d’abord une proposition qu’une personne approuve.

Dernière mise à jour : 2 octobre 2026

Il y a trois façons de travailler avec le Layer depuis l’extérieur :

  • Connecter une app d’IA via MCP, comme Claude ou ChatGPT. Vous vous connectez au Layer et choisissez ce que l’app peut faire.
  • L’API REST pour vos propres logiciels, avec une clé que vous créez vous-même.
  • Webhooks : le Layer signale à votre adresse qu’il s’est passé quelque chose, comme une facture payée.

1. Comment cela reste sûr

  • Jamais plus que le créateur. Une clé ou une app connectée ne peut jamais faire plus que la personne qui l’a créée. Si son rôle change, la clé change aussi. Si quelqu’un quitte l’équipe, sa clé ne fonctionne plus.
  • Écrire est toujours une proposition. Rien de l’extérieur ne modifie quoi que ce soit de lui-même dans votre espace de travail. Chaque modification arrive dans Approbations et n’a lieu que lorsqu’une personne disposant de ce droit l’approuve.
  • Le texte externe reste marqué. Ce qui arrive via l’API ou MCP compte comme texte externe. Une proposition contenant un tel texte ne s’exécute jamais automatiquement, même si vous laissez d’autres propositions s’exécuter automatiquement.
  • Visible et révocable. Dans Paramètres, Appareils, vous voyez chaque clé et app, quand elle a été utilisée pour la dernière fois et ce qu’elle a fait. La révocation est immédiate.
  • Un frein. Chaque clé et app peut faire 120 requêtes par minute. Au-delà, vous recevez un 429 avec un Retry-After.

2. Créer une clé

Dans le Layer : Paramètres, Développeurs, Clé pour l’API. Donnez un nom à la clé, choisissez sa durée de validité (30 jours, 90 jours ou un an) et cochez ce qu’elle peut faire. Vous ne voyez la clé qu’une fois. Nous ne conservons qu’un hash, donc une clé perdue est perdue : révoquez-la et créez-en une nouvelle.

Les clés appartiennent à votre propre espace de travail, pas à la démo. L’adresse exacte de votre API et de votre serveur MCP figure sur la même page ; dans les exemples ci-dessous, elle apparaît comme https://jouw-werkplek.example.

DroitCe qu’il donne
relaties.lezenClients, leads, fournisseurs et leurs contacts.
offertes.lezenDevis avec leurs lignes et leur statut.
facturen.lezenFactures avec montants, statut et date de paiement.
leads.lezenLeads avec phase, valeur et action suivante. Avec Créer des propositions, aussi créer et mettre à jour des leads.
communicatie.lezenLa chronologie des appels, e-mails, conversations et notes par relation. Avec Créer des propositions, aussi les consigner.
mail.lezenRechercher et lire dans les boîtes de réception que vous voyez vous-même dans le Layer, avec pour chaque conversation qui a écrit en dernier et s’il y a déjà une réponse. Lecture seule, sans pièces jointes. Ce que l’app lit est transmis à l’IA que vous connectez.
agenda.lezenVos propres rendez-vous. Avec Créer des propositions, aussi planifier un rendez-vous, sans invitation.
facturen.conceptCréer une facture brouillon (à partir d’heures non facturées ou avec vos propres lignes) ou une facture ouverte avec un lien pour le client, la modifier et voir le PDF. L’envoi est toujours une proposition dans Approbations ; le lien, vous le partagez vous-même.
offertes.conceptUn nouveau devis en brouillon. L’envoi, vous le faites toujours vous-même dans le Layer.
bedrijf.vragenRecherche dans les comptes rendus de conversations, la base de connaissances, les clients, les tâches et les enregistrements les éléments qui correspondent à une question, avec la source.
projecten.lezenProjets avec statut, échéance et tâches.
taken.lezenTâches avec statut, échéance et priorité.
uren.lezenHeures saisies. Les montants seulement si votre rôle peut voir les données financières.
producten.lezenProduits et services avec prix et stock.
tickets.lezenTickets de support avec statut et priorité.
content.lezenPosts du calendrier de contenu avec canal, date et statut.
series.lezenFormats, séries et épisodes avec leur étape et leur évaluation.
radar.lezenIdées avec score et signaux du radar : pics, croissance de chaîne, requêtes de recherche.
social.lezenAbonnés et chiffres fixes par compte social propre et par jour.
analytics.lezenVisiteurs et trafic de recherche depuis Google Analytics et Search Console.
radar.sturenActiver ou désactiver la découverte, piloter les termes de recherche et les chaînes et lancer l’analyste de tendances. Uniquement pour qui gère le radar dans l’espace de travail.
radar.feedbackJuger les idées du radar bonnes ou pas. Cela oriente seulement où le radar cherche et ce que produit l’analyste de tendances ; rien ne sort.
content.voorstellenProposer un post comme idée dans le calendrier de contenu. Avec Créer des propositions ; il attend dans Approbations.
verslagen.insturenPlacer les comptes rendus de TrompTech Notulen dans Réunions. Ce qu’il en advient (tâches, contact, e-mail), vous le choisissez ensuite vous-même.
verslagen.verwerkenÀ partir d’un compte rendu que vous avez envoyé vous-même, créer des tâches, un contact et un brouillon d’e-mail, comme le bouton Traiter dans Réunions. Uniquement ce que votre rôle permet ; un e-mail n’est jamais envoyé.
opnames.insturenPlacer les inspections, réceptions et constats de dommages de TrompTech Opname sur PC dans Relevés, avec les photos et le rapport.
opnames.lezenVos relevés avec leurs points et leurs photos, pour terminer sur le PC un relevé commencé sur le téléphone.
uren.schrijvenPlacer en brouillon dans votre propre feuille de la semaine ce que TrompTech Uren a vu sur votre PC et que vous avez vérifié, et lire vos propres heures pour ne rien saisir en double. La soumission, vous la faites vous-même ; les titres de fenêtres ne sont pas transmis.
gids.lezenLes pages et articles d’aide que vous pouvez ouvrir dans cet espace de travail, pour TrompTech Gids sur votre PC : il répond aux questions sur le Layer et vous mène au bon endroit. Aucune donnée de clients ou de collègues.
content.insturenPlacer les carrousels de TrompTech Slides et les vidéos et shorts de TrompTech Studio comme post dans le calendrier de contenu, avec les images ou la vidéo. Ils attendent votre accord ; la publication, vous la faites vous-même.
dictaat.insturenPlacer ce que vous dictez dans TrompTech Voice comme tâche, comme note interne sur un client ou comme brouillon d’e-mail dans la boîte d’envoi. Uniquement ce que votre rôle permet ; un e-mail n’est jamais envoyé.
documenten.delenPartager les propositions et rapports de TrompTech Documenten avec un client sous forme de page web, voir quand il les ouvre, et rattacher le PDF au client et au projet.
kennis.insturenPlacer les vidéos d’instructions avec étapes de TrompTech Uitleg dans la base de connaissances.
afletteren.transacties.schrijvenPlacer les crédits d’un compte dans le rapprochement, pour un compte privé également utilisé à titre professionnel. Ce droit ne permet pas la lecture.
huishouden.lezenVotre budget du foyer (revenus, charges fixes, budgets et dettes), votre liste de courses et vos tâches. Lecture seule, aucun conseil.
huishouden.schrijvenAjouter, cocher et retirer des courses de la liste, et ajouter et cocher des tâches ménagères : directement, avec Annuler. Une dette ou un budget reste toujours une proposition dans Approbations. Lit aussi votre foyer.
aanbiedingen.lezenLes promotions de supermarché de cette semaine et de la suivante depuis votre app de promotions, et comparer les prix par magasin pour vos courses. Lecture seule.
voorstellen.makenProposer des modifications. Elles attendent dans Approbations jusqu’à ce que quelqu’un les approuve ; rien ne se passe tout seul.

Un droit ne fonctionne que si le module fait partie de votre abonnement et que votre rôle l’autorise. Les montants, comme un taux horaire, ne sont visibles que si votre rôle peut voir les données financières.

3. L’API REST

Tout se trouve sous /api/v1. Envoyez la clé comme Authorization : Bearer. GET /api/v1 montre quelles ressources votre clé peut lire. La description complète se trouve dans /api/v1/openapi.json (OpenAPI 3.1), consultable aussi sans clé.

Lire et paginer

curl "https://jouw-werkplek.example/api/v1/taken?status=open&per_pagina=20" \
  -H "Authorization: Bearer $LAYER_SLEUTEL"

Chaque liste arrive en pages, les plus récents d’abord. Avec per_pagina (1 à 100, 50 par défaut) et pagina, vous parcourez les pages ; volgende donne l’adresse de la page suivante, ou null. Filtrez avec status, ou avec sinds (une date ou une heure en ISO 8601) pour ne récupérer que ce qui a changé depuis.

{
  "data": [ { "id": "...", "titel": "...", "status": "open", "deadline": "2026-10-03T07:00:00.000Z" } ],
  "pagina": 1,
  "per_pagina": 20,
  "totaal": 1,
  "volgende": null
}
RessourceDroitPropositions
/api/v1/relaties
Clients, leads et (avec le module Fournisseurs) fournisseurs.
relaties.lezennouveau (POST) : soort, naam, bedrijf, email, telefoon, adres, postcode, plaats, kvk, btw, branche, rechtsvorm, notities, bron; modifier (PATCH) : telefoon, branche, rechtsvorm, plaats, website, bron
/api/v1/contactpersonen
Contacts chez un client, un lead ou un fournisseur.
relaties.lezennouveau (POST) : naam, bedrijf, email, telefoon, notities, bron
/api/v1/offertes
Devis avec lignes, montant et statut.
offertes.lezenmodifier (PATCH) : status
/api/v1/facturen
Factures avec lignes, montant, statut et date de paiement.
facturen.lezenmodifier (PATCH) : status, betaald_op
/api/v1/projecten
Projets avec statut, échéance, tâches et avancement.
projecten.lezenmodifier (PATCH) : status, deadline
/api/v1/taken
Tâches avec statut, échéance et priorité.
taken.lezennouveau (POST) : titel, omschrijving, deadline, prioriteit, klant_id, project_id; modifier (PATCH) : status, deadline, prioriteit
/api/v1/uren
Heures saisies : les vôtres, ou celles de toute l’équipe si votre rôle peut les voir. Tarif et facture seulement si votre rôle peut les voir.
uren.lezenlecture seule
/api/v1/producten
Produits et services avec prix et stock. Le prix d’achat seulement si votre rôle peut voir les données financières.
producten.lezenlecture seule
/api/v1/tickets
Tickets de support avec statut, priorité et catégorie.
tickets.lezenmodifier (PATCH) : status
/api/v1/content
Posts du calendrier de contenu : date, canal, sujet, statut et la série à laquelle ils appartiennent.
content.lezenlecture seule
/api/v1/formats
Formats : la structure fixe d’un épisode, par plateforme la forme et la durée, et la checklist.
series.lezenlecture seule
/api/v1/series
Séries : un format avec cadence, compte et statut.
series.lezenlecture seule
/api/v1/afleveringen
Épisodes de toutes les séries, avec date, étape, script et évaluation.
series.lezenlecture seule
/api/v1/radar-ideeen
Idées avec score issues du radar de contenu. Le score est une fourchette avec ses composantes, jamais une probabilité de devenir viral.
radar.lezenlecture seule
/api/v1/radar-serievoorstellen
Suggestions de séries de l’analyste de tendances : une émission récurrente sur un sujet qui revient dans plusieurs pics. Créer une série, vous le faites dans le Layer lui-même.
radar.lezenlecture seule
/api/v1/radar-signalen
Signaux des 90 derniers jours : pics, pics précoces, croissance de chaîne, requêtes de recherche et actualités, avec l’explication de leur calcul.
radar.lezenlecture seule
/api/v1/social-metingen
Par compte social propre et par jour, les abonnés et les chiffres fixes que la chaîne communique (120 derniers jours). Un chiffre manquant vaut null, jamais zéro.
social.lezenlecture seule

Proposer une modification

Avec le droit voorstellen.maken, vous proposez un nouvel enregistrement ou une modification. La réponse est un 202 : la proposition est prête, rien n’a encore changé. Indiquez dans waarom la raison, et l’évaluateur la verra à côté.

curl -X POST "https://jouw-werkplek.example/api/v1/taken" \
  -H "Authorization: Bearer $LAYER_SLEUTEL" \
  -H "Content-Type: application/json" \
  -d '{"titel": "Relancer le devis", "deadline": "2026-10-03", "waarom": "Convenu en réunion"}'
HTTP/1.1 202 Accepted

{
  "voorstel": { "id": "...", "actie": "taak.nieuw", "titel": "...", "status": "wacht", "link": "https://jouw-werkplek.example/app/ai/goedkeuringen?id=..." },
  "uitleg": "Dit is een voorstel. Er is nog niets veranderd: het wacht in Goedkeuringen tot iemand het goedkeurt."
}

Suivez l’état avec GET /api/v1/voorstellen ou GET /api/v1/voorstellen/{id} ; vous ne voyez que les propositions de votre propre clé. Vous préférez un webhook ? Abonnez-vous alors à voorstel.goedgekeurd. Les autres actions que l’IA connaît dans le Layer, vous les proposez avec POST /api/v1/voorstellen et {"actie": "...", "gegevens": { ... }}. Si une action n’est pas possible, ou s’il manque quelque chose, vous recevez un 422 avec la raison. La suppression n’est pas possible via l’API.

Erreurs

Une erreur est toujours en JSON : {"fout": {"code": "...", "melding": "..."}}, avec un message en langage clair.

CodeSignification
400La requête est incorrecte, par exemple une date invalide ou un champ manquant.
401Pas de clé, ou une clé expirée ou révoquée.
403Il manque un droit à la clé. L’en-tête WWW-Authenticate indique lequel.
404Cette adresse ou cet enregistrement n’existe pas, ou vous n’avez pas le droit de le voir.
405Cette méthode n’est pas possible ici. L’en-tête Allow indique ce qui l’est.
422La proposition a été refusée, avec la raison.
429Trop de requêtes. Attendez le nombre de secondes indiqué dans Retry-After.

4. Webhooks

Les personnes qui gèrent les connexions dans le Layer configurent les webhooks dans Paramètres, Développeurs, Webhooks : une adresse et les événements que vous voulez recevoir. Le secret pour vérifier la signature n’est visible qu’une fois.

ÉvénementQuand
factuur.verstuurdUne facture passe à envoyée.
factuur.betaaldUne facture passe à payée.
offerte.geaccepteerdUn client a accepté un devis.
ticket.nieuwUn ticket de support a été ajouté, y compris depuis un e-mail.
taak.afgerondQuelqu’un a terminé une tâche.
voorstel.goedgekeurdUne proposition dans Approbations a été approuvée.

Un message est volontairement léger : ce qui s’est passé et où le lire, sans montants ni données client. Vous récupérez le contenu avec une clé, via href. L’id reste identique si nous renvoyons un message, ce qui vous permet de reconnaître un doublon.

POST /jouw-webhook HTTP/1.1
Content-Type: application/json
TrompTech-Event: factuur.betaald
TrompTech-Delivery: ...
TrompTech-Signature: t=1790931600,v1=...

{
  "id": "evt_...",
  "type": "factuur.betaald",
  "aangemaakt": "2026-10-02T09:00:00.000Z",
  "data": { "object": "factuur", "id": "...", "nummer": "...", "href": "/api/v1/facturen/..." }
}

Vérifier la signature

L’en-tête TrompTech-Signature contient une heure t (en secondes) et v1 : un HMAC-SHA256 avec votre secret sur t, un point et le body tel qu’il est arrivé. Recalculez-le vous-même, comparez en temps constant et refusez les messages de plus de cinq minutes.

import { createHmac, timingSafeEqual } from "node:crypto";

// geheim : le secret complet du webhook, avec le préfixe whsec_.
// inhoud : le corps de la requête tel qu’il est arrivé, en texte (ne pas le lire d’abord en JSON).
export function handtekeningKlopt(geheim, kop, inhoud) {
  const delen = new Map((kop ?? "").split(",").map(d => d.trim().split("=", 2)));
  const t = Number(delen.get("t")), v1 = delen.get("v1") ?? "";
  // Plus de cinq minutes : refuser, pour que personne ne puisse rejouer un ancien message.
  if (!Number.isInteger(t) || Math.abs(Date.now() / 1000 - t) > 300 || !/^[0-9a-f]{64}$/.test(v1)) return false;
  const verwacht = createHmac("sha256", geheim).update(`${t}.${inhoud}`).digest();
  return timingSafeEqual(verwacht, Buffer.from(v1, "hex"));
}
import hashlib, hmac, re, time

def handtekening_klopt(geheim: str, kop: str, inhoud: bytes) -> bool:
    delen = dict(d.strip().split("=", 1) for d in (kop or "").split(",") if "=" in d)
    t, v1 = delen.get("t", ""), delen.get("v1", "")
    if not t.isdigit() or abs(time.time() - int(t)) > 300 or not re.fullmatch(r"[0-9a-f]{64}", v1):
        return False
    verwacht = hmac.new(geheim.encode(), t.encode() + b"." + inhoud, hashlib.sha256).hexdigest()
    return hmac.compare_digest(verwacht, v1)

Livraison et nouvelles tentatives

  • Répondez dans les 10 secondes avec un 2xx. Nous ne suivons pas les redirections (3xx).
  • En cas d’échec, nous réessayons après 1 minute, 5 minutes, 30 minutes, 2 heures, 6 heures et 24 heures. Ensuite, le message est considéré comme échoué ; vous pouvez le renvoyer dans le Layer.
  • Si dix messages échouent d’affilée, le webhook est désactivé. Vous le réactivez vous-même.
  • Uniquement https vers une adresse publique avec nom de domaine, sur le port standard. Une adresse qui pointe vers un réseau interne ne reçoit rien ; nous le vérifions à nouveau à chaque livraison.

5. Connecter une app d’IA via MCP

Le Layer est un serveur MCP à l’adresse https://jouw-werkplek.example/api/mcp (Streamable HTTP). La connexion se fait avec OAuth 2.1 et PKCE : l’app vous envoie vers le Layer, vous vous connectez comme d’habitude (avec votre second facteur si vous en avez un) et choisissez sur l’écran d’autorisation ce que l’app peut faire.

  • Claude : ouvrez Paramètres, Connecteurs, et ajoutez un connecteur personnalisé avec l’adresse de votre serveur MCP.
  • ChatGPT : ouvrez Paramètres, Apps et connecteurs. Sous Avancé, activez le mode développeur et créez un connecteur avec l’adresse, avec OAuth comme connexion.
  • Autres apps : tout client MCP avec OAuth fonctionne. Le Layer prend en charge l’enregistrement dynamique (RFC 7591) et les Client ID Metadata Documents, et publie ses informations sur /.well-known/oauth-authorization-server et /.well-known/oauth-protected-resource.

Les noms de menu dans Claude et ChatGPT varient parfois selon la version. L’app ne voit que les outils liés aux droits choisis. La lecture est directe. Versions de protocole prises en charge : 2026-07-28, 2025-11-25, 2025-06-18 et 2025-03-26.

D’abord un plan. L’app effectue immédiatement une modification isolée. Plusieurs modifications à la fois, ou quelque chose qui crée une structure comme un projet avec des tâches, elle les consigne d’abord dans un plan : exactement les actions avec leurs données. Vous voyez ce plan dans votre chat, et ce n’est qu’après votre oui explicite que le Layer exécute exactement ces actions, une seule fois. Les modifications internes (un lead, un contact, une note, une tâche, un rendez-vous sans invitation, un projet ou un document), le Layer les exécute alors immédiatement, si votre espace de travail le permet. Vous les retrouvez dans Approbations et pouvez les y annuler. Tout ce qui sort ou concerne de l’argent, comme un e-mail, une invitation, l’envoi d’un devis ou une facture, reste toujours une proposition que vous approuvez. Une session via MCP compte toujours comme texte externe.

Une app connectée continue de fonctionner jusqu’à ce que vous la révoquiez dans Paramètres, Appareils, ou jusqu’à ce qu’elle n’ait pas été utilisée pendant 30 jours.

6. Des questions ou un problème ?

Écrivez à info@tromptech.nl. Un problème de sécurité, signalez-le de préférence de manière confidentielle, comme décrit dans Signaler un problème de sécurité.

TrompTech

Des logiciels qui travaillent ensemble.
Un contact direct avec le développeur.

Baliëndijk 324
4816 GV Breda, Pays-Bas
+31 6 17720360info@tromptech.nl
NLENFRFrançaisDEES

Pour votre entreprise

TrompTech LayerSites web & boutiques en ligneSur mesureChatbot IA (Breda)NL (en néerlandais)ProduitsRessources & pratique

TrompTech

À propos de TrompTechNos réalisationsContactInformations sur l’entrepriseRéclamations & questionsStatut & incidents

Des règles claires

Déclaration de confidentialitéPolitique en matière de cookiesConditions généralesAbonnements & prélèvementTous les documents & accords →

© 2026 TrompTech · Jeremy Tromp · Entreprise individuelle (eenmanszaak)

KvK (registre du commerce) 96345381 · N° de TVA NL005203127B38

Demandez à TrompTech

Layer, sites web & sur mesure

TrompTech

Bonjour, comment puis-je vous aider ? Posez une question sur Layer, les sites web ou le sur mesure. Ou essayez ci-dessous une correspondance produit.

Réponses fixes, pas d’IA. Un message est transmis à Jeremy · Confidentialité

Cookies

Les cookies nécessaires font fonctionner le site. Si vous acceptez aussi le marketing, nous mesurons avec Google Analytics et Google Ads quelles pages et publicités génèrent des demandes, et nous retenons pendant 90 jours par quelle publicité ou quel lien vous êtes arrivé. Pour cela, des données sur votre visite sont transmises à Google. La publicité personnalisée est désactivée. En savoir plus

Les cookies nécessaires font fonctionner le site. Si vous acceptez aussi le marketing, nous mesurons avec Google Analytics et Ads quelles publicités génèrent des demandes, et des données sur votre visite sont transmises à Google. En savoir plus