Intégrations

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 POST JSON-RPC 2.0, réponses JSON, sans session ni flux SSE
Versions du protocole
2025-11-25, 2025-06-18 et 2025-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.com et https://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 S256 obligatoire, 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 Kanban
  • kolektiv:pilot : Piloter : point du jour, demandes à valider, et valider ou refuser une demande à la fois, après votre confirmation

Outils exposés

OutilRôleType
kolektiv_overviewVue d'ensemble de l'organisationLecture
list_employeesAnnuaire des salariésLecture
list_contractsContrats et abonnementsLecture
create_teamsCréer des pôles et des équipesAjout
import_employeesImporter des salariésAjout
set_leave_balancesReprendre des soldes de congésAjout
add_contractAjouter un contratAjout
create_job_openingPréparer une offre d'emploiAjout
create_kanban_pageCréer une page KanbanAjout
pilot_daily_briefPoint du jourLecture
pilot_pending_requestsDemandes à validerLecture
pilot_decide_requestValider ou refuser une demandeDé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.getUploadURLExternal et files.completeUploadExternal pour le dépôt ; conversations.list, users.list et conversations.open pour trouver le destinataire
Destinataires
Seulement ceux enregistrés par un administrateur (#canal ou @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

  1. Sur api.slack.com/apps, créez une application dans votre espace et ajoutez les autorisations de bot ci-dessus.
  2. Installez-la dans l'espace, puis copiez le jeton « Bot User OAuth Token ».
  3. Dans Kolektiv, Administration › Organisation › Marque blanche : collez le jeton (il est chiffré).
  4. 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, state et nonce
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 PKCE S256, state et nonce
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.