Les automatisations

Envoyer ce qui se passe dans votre espace vers Slack, Discord, Zapier, Make ou n8n.

Les connexions font entrer l'information dans OIO. Les automatisations font l'inverse : quand quelque chose se passe dans votre espace, un message part vers l'outil de votre choix.

Ce qu'OIO sait annoncer

Événement Quand il part
Nouveau commentaire Quelqu'un commente une page
Mention d'une personne Quelqu'un est cité dans un bloc
Sondage clos Un sondage se ferme et ses résultats sont lisibles
Échéance proche Une ligne de base de données arrive à échéance
Page publiée Une page passe en public

Où cela peut partir

Slack et Discord ont leur format natif : le message s'affiche mis en forme, avec son titre, son résumé et un lien de retour.

Générique couvre tout le reste, et c'est le plus utile : Zapier, Make, n8n, les flux Power Automate par lesquels Teams reçoit désormais ses messages, ou votre propre serveur. Le message est alors un JSON plat, facile à brancher sur n'importe quel scénario.

Créer un envoi

Paramètres de l'espace › Automatisations. Il vous faut :

  1. un nom que vous reconnaîtrez dans six mois (« Canal #produit ») ;
  2. une destination ;
  3. l'adresse fournie par l'outil (chez Slack : Incoming Webhooks, une adresse en https://hooks.slack.com/services/…) ;
  4. les événements à envoyer.

Seuls le propriétaire et les administrateurs de l'espace peuvent créer, suspendre ou supprimer un envoi.

Le bouton Tester envoie un message d'essai immédiat, par le même chemin qu'un vrai.

Ce qui sort — et ce qui ne sort pas

C'est le point à connaître avant de créer un envoi.

Ce qui part : le nom de la personne, le titre de la page, un lien vers OIO, la date, et au plus 200 caractères de résumé pour un commentaire.

Ce qui ne part jamais : le contenu d'une page. Pas un bloc, pas un tableau, pas une pièce jointe.

La raison est simple : un message sorti d'OIO n'emporte pas les droits qui le protégeaient ici. Qui peut lire le canal de destination lira tout ce qui y arrive. Le lien, lui, ramène dans OIO — où les droits s'appliquent de nouveau.

Pour la même raison, les mentions n'indiquent pas qui a été cité : cela regarde la personne concernée, pas tout un canal.

Vérifier qu'un message vient bien d'OIO

Chaque envoi est signé. Le message porte un en-tête :

X-Oio-Signature: t=1757683200,v1=<64 caractères hexadécimaux>

La signature est un HMAC-SHA256 de horodatage.corps, calculé avec la clé de signature affichée une seule fois à la création de l'envoi. Côté récepteur :

$attendu = hash_hmac('sha256', $horodatage.'.'.$corps, $cle);
$valide  = hash_equals($attendu, $signature) && abs(time() - $horodatage) < 300;

L'horodatage fait partie de ce qui est signé, et c'est important : sans lui, un message capté une fois pourrait être rejoué indéfiniment avec une signature toujours valide. Une fenêtre de cinq minutes suffit.

Slack, Discord et la plupart des plateformes ignorent simplement cet en-tête — il ne gêne rien, et sert à ceux qui écrivent leur propre récepteur.

Quand ça ne marche plus

L'état du dernier envoi s'affiche sous chaque ligne : « Réponse 200 », « Service injoignable »…

Un envoi qui échoue 20 fois d'affilée se suspend tout seul — un canal supprimé répondrait sinon en erreur à chaque commentaire, indéfiniment. Réparez l'adresse, puis Réactiver : le compteur repart à zéro.

Les adresses internes (127.0.0.1, 192.168.*, les points de métadonnées des hébergeurs) sont refusées dès la saisie, et le http:// non chiffré aussi.

Confirmation