Documentation technique.
Pour votre DSI et votre DPO : comment chaque intégration se connecte, ce qu'elle peut faire, et ce qu'elle ne fera jamais.
Principes communs
- Chaque intégration est activée par un super admin de l'organisation et peut être coupée à tout moment.
- Une intégration agit au nom d'une personne, avec ses droits et sur son périmètre : jamais plus que ce que cette personne voit dans Kolektiv.
- Aucune intégration ne supprime de données, n'invite d'utilisateur ni ne modifie les rôles.
- Chaque action est inscrite au journal d'audit de l'organisation.
- Les secrets (jetons d'accès, jeton Slack) sont chiffrés en base ; les jetons d'accès ne sont conservés que sous forme d'empreinte.
Claude et ChatGPT : connecteur MCP
Kolektiv expose un serveur Model Context Protocol. Claude et ChatGPT s'y connectent comme connecteur personnalisé ; ChatGPT nécessite le mode développeur.
Point d'accès
- Adresse
https://kolektiv.fr/mcp- Transport
- Streamable HTTP, requêtes
POSTJSON-RPC 2.0, réponses JSON, sans session ni flux SSE - Versions du protocole
2025-11-25,2025-06-18et2025-03-26- Limite
- 120 requêtes par minute et par accès
- Origine
- Requêtes de navigateur acceptées seulement depuis
https://claude.ai,https://claude.comethttps://chatgpt.com
Autorisation OAuth 2.1
- Ressource protégée
https://kolektiv.fr/.well-known/oauth-protected-resource/mcp(RFC 9728)- Serveur d'autorisation
https://kolektiv.fr/.well-known/oauth-authorization-server(RFC 8414)- Enregistrement
- Dynamique (RFC 7591) sur
https://kolektiv.fr/oauth/register, clients publics uniquement - Flux
- Code d'autorisation avec PKCE
S256obligatoire, indicateur de ressource (RFC 8707), émetteur renvoyé dans la réponse (RFC 9207) - Adresses de retour
- Seulement celles de Claude (
https://claude.ai/api/mcp/auth_callback,https://claude.com/api/mcp/auth_callback), de ChatGPT (https://chatgpt.com/connector_platform_oauth_redirect,https://chatgpt.com/connector/oauth/…) et d'un outil local (http://localhost/callback). Toute autre application est refusée à l'enregistrement. - Consentement
- Super admin connecté, double authentification comprise ; l'écran affiche le nom réel de l'assistant, jamais celui déclaré par le client
- Jetons
- Accès : 1 h. Renouvellement : 30 jours, à usage unique (rotation). Code d'autorisation : 5 min, à usage unique. Tous les accès d'une personne sont coupés si son mot de passe change, si son compte est désactivé ou si l'organisation désactive les assistants. Révocation :
https://kolektiv.fr/oauth/revoke(RFC 7009).
Autorisations
kolektiv:read: Lire l'organisation, les équipes, l'annuaire et les contrats (jamais les salaires ni les données personnelles)kolektiv:write: Ajouter des données : salariés, équipes, soldes de congés, contrats, offres d'emploi en brouillon, pages Kanbankolektiv:pilot: Piloter : point du jour, demandes à valider, et valider ou refuser une demande à la fois, après votre confirmation
Outils exposés
| Outil | Rôle | Type |
|---|---|---|
kolektiv_overview | Vue d'ensemble de l'organisation | Lecture |
list_employees | Annuaire des salariés | Lecture |
list_contracts | Contrats et abonnements | Lecture |
create_teams | Créer des pôles et des équipes | Ajout |
import_employees | Importer des salariés | Ajout |
set_leave_balances | Reprendre des soldes de congés | Ajout |
add_contract | Ajouter un contrat | Ajout |
create_job_opening | Préparer une offre d'emploi | Ajout |
create_kanban_page | Créer une page Kanban | Ajout |
pilot_daily_brief | Point du jour | Lecture |
pilot_pending_requests | Demandes à valider | Lecture |
pilot_decide_request | Valider ou refuser une demande | Décision, avec code |
Les imports passent d'abord en simulation (dry_run) : l'assistant montre le rapport, puis enregistre après votre accord. Au plus 200 salariés par appel, annulables pendant 7 jours depuis Kolektiv. Les rôles et les liens hiérarchiques ne sont jamais attribués par un assistant.
Pilotage depuis le téléphone
La page « À valider » s'installe sur l'écran d'accueil (application web, sans store) et peut recevoir des notifications.
- Notifications
- Web Push (RFC 8030) avec clés VAPID (RFC 8292) ; contenu chiffré de bout en bout (RFC 8291) jusqu'à l'appareil. Envoi uniquement vers les services d'Apple, Google, Mozilla et Microsoft.
- Contenu
- Ce que la personne voit déjà dans Kolektiv : jamais la nature d'un arrêt ni un salaire. Point du jour à 8 h : des nombres seulement.
- Hors ligne
- Aucune page ni donnée gardée sur l'appareil.
- Assistants
- Autorisation
kolektiv:pilot, cochée ou non sur l'écran de consentement. Une décision se fait une demande à la fois : l'assistant obtient un aperçu, Kolektiv envoie un code à la personne (notification et alertes), et la décision n'est appliquée qu'avec ce code, valable 10 à 20 minutes, lié à la demande et au sens de la décision. Cinq codes erronés bloquent l'accès 15 minutes.
Slack
Kolektiv envoie un document choisi par un utilisateur vers un canal ou une personne Slack, avec l'application Slack de votre propre espace. Aucun espace Slack n'est partagé entre clients.
- Type
- Application Slack interne à votre espace, jeton de bot (
xoxb-…) - Autorisations du bot
files:write,chat:write,channels:read,groups:read,users:read,im:write- Appels
files.getUploadURLExternaletfiles.completeUploadExternalpour le dépôt ;conversations.list,users.listetconversations.openpour trouver le destinataire- Destinataires
- Seulement ceux enregistrés par un administrateur (
#canalou@membre), jamais une adresse saisie au moment de l'envoi - Données
- Le fichier et son titre, avec un message facultatif. Kolektiv ne lit aucun message Slack.
Mise en place
- Sur api.slack.com/apps, créez une application dans votre espace et ajoutez les autorisations de bot ci-dessus.
- Installez-la dans l'espace, puis copiez le jeton « Bot User OAuth Token ».
- Dans Kolektiv, Administration › Organisation › Marque blanche : collez le jeton (il est chiffré).
- Invitez l'application dans chaque canal privé visé (
/invite @votre-app), puis enregistrez vos destinataires.
Google Workspace
Connexion avec Google
- Protocole
- OpenID Connect, code d'autorisation avec PKCE
S256,stateetnonce - Autorisations
openid,email,profile: nom et adresse e-mail vérifiée, rien d'autre- Contrôles
- Émetteur, audience, expiration, nonce, e-mail vérifié et domaine Google Workspace de l'organisation
- Modes
- Mot de passe et code à 6 chiffres, Compte professionnel ou mot de passe, Compte professionnel obligatoire
- Double authentification
- Celle de Google pour une connexion Google, celle de Kolektiv sinon
Agendas
Chaque personne peut obtenir un lien d'abonnement iCalendar privé (.ics) à ses rendez-vous, à ajouter dans Google Agenda (« À partir de l'URL »). Le lien peut être renouvelé à tout moment ; l'ancien cesse alors de fonctionner. Les invitations envoyées aux participants contiennent aussi un fichier .ics.
Microsoft 365
Connexion avec Microsoft (Entra ID)
- Protocole
- OpenID Connect sur le point de terminaison
organizations(comptes professionnels seulement), code d'autorisation avec PKCES256,stateetnonce - Autorisations
openid,profile,email: nom et identifiant professionnel, rien d'autre- Contrôles
- Émetteur propre au locataire, audience, expiration, nonce, comptes personnels refusés. L'adresse retenue est le nom d'utilisateur Entra (UPN), jamais la revendication
email. L'espace est lié au locataire de la première connexion réussie ; tout autre locataire est ensuite refusé, et chaque compte est lié à son identifiant Microsoft (oid). - Double authentification
- Celle de Microsoft (accès conditionnel Entra) pour une connexion Microsoft ; les comptes RH et paie gardent en plus le code de Kolektiv
Outlook
Le lien d'abonnement iCalendar privé de chaque personne s'ajoute dans Outlook (« Ajouter un calendrier › S'abonner à partir du web »).
Teams
Les annonces de la Gazette adressées à toute l'organisation sont publiées dans un canal par un flux Teams « Workflows » : titre, auteur et lien seulement, jamais le contenu. Seules les adresses *.logic.azure.com et *.environment.api.powerplatform.com sont acceptées ; l'adresse est stockée chiffrée.