Guide
Architecture d'intégration IA : le schéma type d'une PME
Sources, couche d'intégration, modèle, canaux : le schéma d'une intégration IA décrit en texte, avec les choix à faire à chaque étage.
Mis à jour le
Une intégration d'IA dans une PME tient presque toujours en quatre étages : les sources (vos logiciels), une couche d'intégration qui vous appartient, le modèle d'IA, et les canaux où les gens posent leurs questions. La couche d'intégration est la pièce que l'on oublie le plus souvent, et c'est elle qui porte les droits, les secrets, la file d'attente et le journal. Voici le schéma, décrit en texte, puis les choix à faire à chaque étage.
Le schéma, étage par étage
[Canaux] Site web · Teams · Slack · Messagerie · Interface interne
│ (question de l'utilisateur, identité)
▼
[Intégration] Service à vous : authentification · droits · secrets
· file d'attente · journal · règles métier
│ ▲
(outils, contexte) │ (événements : webhooks)
▼ │
[Modèle] API du modèle ou plateforme d'assistant
│
▼
[Sources] CRM · ERP · Messagerie · Documents · Base de données
Lisez-le ainsi : un canal transmet la question et l'identité de la personne ; la couche d'intégration décide quelles données le modèle a le droit de voir, va les chercher dans les sources (ou dans un index), appelle le modèle, et renvoie la réponse. Dans l'autre sens, les sources préviennent la couche d'intégration quand quelque chose change.
Étage 1 : les sources
Pour chaque logiciel, posez quatre questions.
| Question | Exemple de réponse documentée |
|---|---|
| Par quelle porte ? | Odoo 19 : l'API JSON-2, à l'adresse /json/2/<modèle>/<méthode> |
| Avec quel compte ? | Odoo recommande des « utilisateurs robots » dédiés aux intégrations |
| À quel rythme ? | HubSpot : 100 requêtes par 10 secondes pour une application privée en Free ou Starter, 190 en Professional et Enterprise |
| Peut-il prévenir ? | Microsoft Graph envoie des notifications de changement sur les messages Outlook |
Les détails par logiciel sont sur les pages CRM, ERP et messagerie.
Étage 2 : indexer ou lire en direct
C'est le choix d'architecture le plus structurant. Microsoft l'illustre bien avec les connecteurs de Microsoft 365 Copilot :
| Indexation (connecteurs « synchronisés ») | Lecture en direct (connecteurs « fédérés ») | |
|---|---|---|
| Où sont les données | Copiées dans un index, mises à jour périodiquement | Restent dans la source, lues à chaque question |
| Usage indiqué par Microsoft | Indexation large | Données sensibles, changeantes ou en direct |
| Droits | Repris de la source, par une liste de contrôle d'accès | Ceux de l'utilisateur authentifié |
La même logique s'applique hors de Microsoft. Les documents stables (procédures, conditions de vente) supportent bien l'indexation, qui est le principe du RAG (génération augmentée par la recherche, voir Cercle IA Tech · RAG). Les données qui changent dans l'heure (un stock, le statut d'une commande) se lisent en direct.
Étage 3 : la couche d'intégration
C'est un petit service, à vous, qui fait cinq choses :
- Vérifier qui demande. L'identité vient du canal (session du site, compte Teams, compte Slack) et, idéalement, de votre annuaire par l'authentification unique (SSO).
- Appliquer les droits. L'IA ne doit pas voir plus que la personne. Microsoft l'écrit pour Copilot dans Business Central : il hérite des droits de l'utilisateur et ne peut pas lire plus de données que lui.
- Garder les secrets. Clés d'API et jetons restent ici, jamais dans le navigateur ni dans le code du site (voir la partie serveur d'un chatbot).
- Absorber les pics. Une file d'attente entre les événements reçus et les appels au modèle. Microsoft Graph recommande de valider la notification, de la mettre en file et de répondre
202 Accepteddans les 3 secondes. GitHub donne 10 secondes et conseille aussi une file. - Tout journaliser. Qui a demandé quoi, quelles données ont été lues, quelle réponse est partie. Sans journal, on ne peut ni corriger ni prouver.
Étage 4 : les canaux
Chaque canal a ses contraintes : un widget de site parle à des inconnus, une application Teams passe par la politique d'applications de l'administrateur, une application Slack par l'installation dans l'espace de travail. Voir Teams et Slack.
Un exemple pour fixer les idées
Prenons, à titre d'illustration, une entreprise de négoce de cinq personnes sous Odoo et Microsoft 365. Elle veut qu'un assistant, dans Teams, réponde à « où en est la commande du client X ? ».
- Canal : une application Teams, déployée par l'administrateur.
- Intégration : un service qui reçoit la question, retrouve le compte Microsoft de la personne, vérifie qu'elle a le droit de voir les ventes.
- Source : Odoo, lu en direct par l'API JSON-2 avec un utilisateur robot en lecture seule. Rappel de la documentation Odoo : l'API externe n'est disponible que sur les formules « Custom » d'Odoo Online.
- Modèle : appelé avec la question et la fiche commande, rien de plus.
- Journal : la question, l'identifiant de la commande lue, la réponse.
Aucune donnée n'est copiée ailleurs que dans le journal, et retirer l'accès revient à supprimer la clé de l'utilisateur robot.
Erreurs d'architecture fréquentes
- Donner au modèle un compte administrateur « pour que ça marche ».
- Appeler le modèle directement dans la réponse au webhook, au risque de dépasser le délai et de perdre des événements.
- Indexer des données sensibles qui auraient pu être lues en direct.
- Oublier les échéances : jetons qui expirent, abonnements aux notifications à renouveler (voir mise en production).
Questions fréquentes
Faut-il copier les données des logiciels dans l'outil d'IA ?
Pas toujours. Deux modèles coexistent : l'indexation, qui copie et tient à jour un index, et la lecture en direct à chaque question. Microsoft les propose tous les deux pour Copilot, sous les noms de connecteurs synchronisés et de connecteurs fédérés.
Où placer la file d'attente dans une intégration IA ?
Entre la réception des événements et l'appel au modèle. Le serveur accuse réception tout de suite, puis traite en arrière-plan : Microsoft Graph demande une réponse en moins de 3 secondes, GitHub en moins de 10 secondes.
Sources
Pages consultées pour écrire cet article :
- https://learn.microsoft.com/en-us/microsoft-365/copilot/connectors/overview
- https://learn.microsoft.com/en-us/graph/change-notifications-delivery-webhooks
- https://docs.github.com/en/webhooks/using-webhooks/best-practices-for-using-webhooks
- https://developers.hubspot.com/docs/developer-tooling/platform/usage-guidelines
- https://www.odoo.com/documentation/19.0/developer/reference/external_api.html
- https://learn.microsoft.com/en-us/dynamics365/business-central/copilot-overview