Webhooks

Que sont les webhooks ?
Les webhooks permettent à Hedy d’envoyer des données à d’autres applications et services en temps réel. Lorsqu’un événement se produit — comme la fin d’une session ou la création d’un point important — Hedy envoie les données à une URL que vous spécifiez. Cela vous permet de créer des automatisations puissantes sans aucun code.
Par exemple, vous pourriez automatiquement :
-
Sauvegarder les transcriptions de réunion dans Google Docs ou Notion
-
Publier les récapitulatifs de session dans un canal Slack
-
Créer des tâches dans Asana ou Todoist à partir des actions à mener
-
Enregistrer les données de session dans un tableur
Prérequis
-
Abonnement Hedy Pro — Les webhooks sont une fonctionnalité Pro
-
Cloud Sync activé — Nécessaire pour que Hedy puisse traiter les événements webhook via le cloud
Vous pouvez consulter vos webhooks sans Cloud Sync, mais vous devez l’activer pour les créer, les modifier ou les déclencher.
Configurer un webhook
-
Ouvrez Hedy et accédez à Settings
-
Faites défiler jusqu’à la section API Access
-
Appuyez sur Manage Webhooks
-
Appuyez sur le bouton + pour ajouter un nouveau webhook
-
Saisissez un nom (optionnel) — un libellé pour vous rappeler l’utilité de ce webhook (par ex. « Zapier — Meeting Notes »)
-
Collez l’URL du webhook provenant de votre service externe — il doit s’agir d’une URL HTTPS
-
Sélectionnez les événements auxquels vous souhaitez vous abonner (voir ci-dessous)
-
Appuyez sur Create
-
Hedy affiche la clé de signature immédiatement après la création. C’est la seule fois où elle est affichée — copiez-la et conservez-la en lieu sûr avant de fermer la boîte de dialogue.
Vous pouvez créer jusqu’à 10 webhooks.
Événements disponibles
Choisissez les événements qui déclenchent votre webhook :
Session Created — Se déclenche lorsque vous démarrez un nouvel enregistrement. Envoie le titre de la session et l’heure de début.
Session Ended — Se déclenche lorsqu’un enregistrement se termine. Envoie les données complètes de la session, y compris la transcription, le récapitulatif, le compte rendu de réunion, les points importants et les informations du sujet. C’est l’événement le plus complet.
Session Exported — Se déclenche lorsque vous exportez manuellement une session vers vos webhooks. Envoie des données similaires à Session Ended (transcription, récapitulatif, points importants, etc.).
Highlight Created — Se déclenche chaque fois qu’un point important est capturé pendant une session. Envoie le texte du point important, l’analyse IA et l’horodatage.
Todo Exported — Se déclenche lorsque vous exportez une action à mener. Envoie le texte de la tâche, la date d’échéance et la session associée.
Exporter manuellement une session
En plus des événements automatiques, vous pouvez envoyer manuellement n’importe quelle session à vos webhooks :
-
Ouvrez une session terminée
-
Appuyez sur Export to Webhook
-
Si vous avez plusieurs webhooks abonnés à l’événement Session Exported, sélectionnez ceux auxquels envoyer
-
Confirmez l’export
Tester votre webhook
Avant de compter sur un webhook, vous pouvez vérifier qu’il fonctionne :
-
Rendez-vous dans Settings > API Access > Manage Webhooks
-
Appuyez sur le bouton test sur n’importe quel webhook
-
Hedy envoie un payload de test à votre URL et indique si l’envoi a réussi, avec le code de statut de la réponse
Si le test échoue, vérifiez que l’URL est correcte et que votre service externe est prêt à recevoir des requêtes.
Inspecter le payload avec webhook.site
Si vous souhaitez voir exactement ce que Hedy envoie — chaque header, le corps JSON complet, la signature — avant de connecter Zapier, Make ou votre propre serveur, webhook.site est la méthode la plus rapide :
-
Ouvrez webhook.site — une URL unique est générée instantanément, sans inscription requise
-
Copiez l’URL et collez-la dans votre webhook Hedy
-
Appuyez sur test dans Hedy (ou déclenchez un vrai événement)
-
Revenez sur webhook.site — chaque requête apparaît en temps réel, avec les headers complets, la chaîne de requête et le corps
Utilisez ceci pour découvrir les noms de champs exacts et la structure des payloads de Hedy, puis construisez votre vraie automatisation selon cette structure. Le niveau gratuit accepte jusqu’à 100 requêtes par URL, ce qui est largement suffisant pour le débogage.
Quelles données sont envoyées ?
Chaque requête webhook est un HTTP POST avec un corps JSON. Les données dépendent du type d’événement, mais un événement Session Ended inclut :
-
Détails de la session — Titre, heure de début, heure de fin, durée
-
Transcription — Le texte intégral de votre session
-
Conversations — Dialogue structuré intervenant par intervenant
-
Compte rendu de réunion — Points de discussion clés
-
Récapitulatif — Résumé généré par l’IA
-
Points importants — Chaque point important avec son analyse IA, sa citation et son horodatage
-
Sujet — Le nom du sujet et les analyses, si la session est attribuée à un sujet
Sécurité et vérification
Chaque requête webhook inclut une signature pour que vous puissiez vérifier qu’elle provient bien de Hedy :
-
En-tête X-Hedy-Signature — Un hash HMAC-SHA256 brut, encodé en hexadécimal, du corps de la requête, signé avec la clé de signature unique de votre webhook (sans préfixe
sha256=). La clé n’est affichée qu’une seule fois, lors de la création du webhook. -
En-tête X-Hedy-Event — Le type d’événement (par ex. session.ended)
Toutes les URL de webhook doivent utiliser HTTPS pour garantir que vos données sont chiffrées en transit. Hedy n’enverra pas de données vers des endpoints HTTP.
Vérifier la signature
Si vous créez votre propre endpoint, vérifiez chaque requête avant de lui faire confiance. Calculez le HMAC-SHA256 des octets bruts du corps de la requête avec votre clé de signature et comparez-le au header X-Hedy-Signature en utilisant une comparaison en temps constant (un simple == est vulnérable aux attaques par timing).
Node.js :
const crypto = require('crypto');
function verifyHedy(rawBody, signature, secret) {
const expected = crypto.createHmac('sha256', secret).update(rawBody).digest('hex');
const a = Buffer.from(expected, 'hex');
const b = Buffer.from(signature, 'hex');
return a.length === b.length && crypto.timingSafeEqual(a, b);
}
Python :
import hmac, hashlib
def verify_hedy(raw_body: bytes, signature: str, secret: str) -> bool:
expected = hmac.new(secret.encode(), raw_body, hashlib.sha256).hexdigest()
return hmac.compare_digest(expected, signature)
Important : Utilisez les octets bruts du corps de la requête, exactement tels que reçus. Re-sérialiser le JSON analysé modifiera les espaces ou l’ordre des clés et la signature ne correspondra pas.
Utiliser les webhooks avec les plateformes populaires
Zapier — Créez un Zap avec « Webhooks by Zapier » comme déclencheur. Choisissez « Catch Hook », copiez l’URL du webhook et collez-la dans Hedy.
Make (anciennement Integromat) — Ajoutez un module « Custom Webhook » comme déclencheur de votre scénario. Copiez l’URL générée et collez-la dans Hedy.
n8n — Ajoutez un noeud déclencheur « Webhook » à votre workflow. Copiez l’URL de production et collez-la dans Hedy.
Livraison et tentatives de renvoi
Hedy réessaie automatiquement les livraisons échouées :
-
Erreurs serveur (5xx) — Jusqu’à 2 tentatives de renvoi avec des délais croissants
-
Limitation de débit (429) — Une tentative de renvoi, en respectant le délai de retry du service
-
Erreurs client (4xx) — Pas de renvoi, car elles indiquent généralement un problème de configuration
Ce que votre endpoint doit retourner : Répondez avec n’importe quel statut 2xx (200 OK convient) dans les 30 secondes. Le corps de la réponse est ignoré. Si vous avez un traitement lourd à effectuer — enregistrement dans une base de données, appel à une autre API, génération d’un document — retournez 200 immédiatement et traitez le payload de façon asynchrone, sinon Hedy expirera et marquera la livraison comme échouée.
Dépannage
Problèmes côté Hedy
Message « Webhooks require Pro » — Passez à Hedy Pro dans Settings > Subscription pour accéder aux webhooks.
Message « Cloud Sync required » — Activez Cloud Sync dans Settings > Cloud Sync, ou appuyez sur le bouton Enable sur la bannière d’avertissement affichée en haut de l’écran Webhooks.
Événements non reçus — Vérifiez que Cloud Sync est activé, que le webhook est abonné au bon événement et que votre abonnement Pro est actif.
Problèmes de livraison
Lorsque le test échoue ou que les événements n’arrivent pas, la façon la plus rapide d’isoler le problème est de pointer le webhook vers webhook.site et de retester. Si la requête s’y affiche, Hedy envoie correctement et le problème se situe du côté récepteur.
Le test échoue avec un timeout — Votre endpoint doit répondre dans les 30 secondes. Si vous effectuez un traitement lourd (enregistrement dans une base de données, appel à une autre API, génération de PDFs) avant de répondre, retournez 200 OK immédiatement et traitez le payload de façon asynchrone.
Erreur SSL ou de certificat — Le certificat HTTPS de votre endpoint est expiré, auto-signé ou il manque des certificats intermédiaires. Testez avec SSL Labs et renouvelez ou corrigez la chaîne.
Connexion refusée ou 404 — L’URL est incorrecte, le chemin n’existe pas ou le serveur ne fonctionne pas. Confirmez l’URL exacte en déclenchant d’abord un test vers webhook.site, puis en comparant.
Zap ou scénario Make « 404 not found » — Le workflow est en pause, en mode brouillon ou pointe vers une URL de test au lieu de l’URL de production. Dans Zapier, le Zap doit être activé. Dans Make, le scénario doit être actif. Dans n8n, utilisez l’URL de Production, pas l’URL de Test.
Les requêtes sont silencieusement perdues — Un pare-feu, WAF ou plugin de sécurité (Wordfence, Sucuri, la protection bot de Cloudflare) bloque les POST entrants. Vérifiez les logs d’accès de votre serveur — si la requête de Hedy n’y apparaît pas, autorisez Hedy ou le User-Agent qu’il envoie.
La signature ne correspond pas — Vous vérifiez contre du JSON analysé/re-sérialisé au lieu des octets bruts du corps de la requête, ou vous avez préfixé la comparaison avec sha256= (Hedy n’inclut pas ce préfixe). Consultez « Vérifier la signature » ci-dessus.
Astuce Pro : Commencez par vous abonner à l’événement Session Ended — il inclut les données les plus complètes et est le plus utile pour construire des automatisations autour de vos notes de réunion.