klickbeesocialAide
Automatisation

Webhooks

Recevoir les événements de publication et de l'Inbox sur votre serveur, Zapier, Make ou n8n, et vérifier leur signature HMAC.

Un webhook envoie une requête POST JSON signée à l'URL de votre choix à chaque événement : post publié, échec, nouveau message… Les webhooks se gèrent dans Réglages › Webhooks (rubrique Développeurs), réservé aux Super admins. Jusqu'à 20 webhooks par espace.

Créer un webhook

Cliquez sur Ajouter un webhook.

Renseignez un Nom (« Zapier », « Slack », « CRM »…) et l'URL (https) de réception.

Cochez les Événements à recevoir et, si besoin, limitez à une Marque (sinon Toutes les marques).

Enregistrez, puis cliquez sur Envoyer un test : Klickbee envoie un exemple signé avec "test": true et affiche le code de réponse.

Les événements

ÉvénementLibelléQuand
post.publishedPost publiéUn post est en ligne.
post.failedÉchec de publicationUn post a définitivement échoué (après les nouvelles tentatives automatiques).
post.scheduledPost planifiéUn post est planifié, ou une nouvelle tentative est programmée.
post.removedPost supprimé du réseauUn post a été retiré du réseau depuis Klickbee.
message.receivedMessage privé reçu (Inbox)Un nouveau message privé arrive dans l'Inbox.
comment.receivedCommentaire reçu (Inbox)Un nouveau commentaire arrive dans l'Inbox.

post.published et post.failed sont cochés par défaut.

La requête envoyée

En-têtes :

Content-Type: application/json
User-Agent: Klickbee-Webhooks/1.0
X-Klickbee-Event: post.published
X-Klickbee-Signature: sha256=5d41402abc4b2a76b9719d911017c592…

Corps pour un événement de post :

{
  "event": "post.published",
  "timestamp": "2026-10-12T09:00:03.120Z",
  "post": {
    "id": "…",
    "platform": "LINKEDIN",
    "status": "PUBLISHED",
    "body": "Notre nouveau guide est en ligne.",
    "scheduledAt": "2026-10-12T09:00:00.000Z",
    "publishedAt": "2026-10-12T09:00:03.000Z",
    "permalink": "https://www.linkedin.com/feed/update/…",
    "errorMessage": null,
    "brandId": "…",
    "contentId": "…"
  }
}

message.received contient un objet message (conversation, réseau, compte, expéditeur, texte, pièces jointes, date) et comment.received un objet comment (auteur, texte, post concerné et son lien, commentaire parent éventuel).

Vérifier la signature

Chaque webhook a un secret de signature (whsec_…), visible avec Secret. L'en-tête X-Klickbee-Signature vaut sha256= suivi du HMAC-SHA256 du corps brut de la requête, en hexadécimal, calculé avec ce secret. Recalculez-le avant de faire confiance au contenu :

import crypto from 'node:crypto';

function isValid(rawBody, signatureHeader, secret) {
  const expected =
    'sha256=' + crypto.createHmac('sha256', secret).update(rawBody).digest('hex');
  const a = Buffer.from(expected);
  const b = Buffer.from(signatureHeader ?? '');
  return a.length === b.length && crypto.timingSafeEqual(a, b);
}

Calculez la signature sur le corps tel que reçu, avant JSON.parse. Gardez le secret côté serveur. Régénérer le secret invalide immédiatement l'ancien : mettez votre récepteur à jour aussitôt.

Règles de livraison

  • URL en https:// uniquement ; les adresses privées ou locales sont refusées.
  • Votre serveur doit répondre en moins de 5 secondes ; les redirections ne sont pas suivies.
  • Chaque événement est envoyé une seule fois, sans nouvel essai si votre serveur ne répond pas. La liste affiche le résultat du dernier envoi (HTTP 200 · …, Injoignable…).

Décochez Actif pour suspendre un webhook sans le supprimer.

Sur cette page