klickbeesocialAyuda
Automatización

Webhooks

Recibir los eventos de publicación y de la Inbox en tu servidor, Zapier, Make o n8n, y verificar su firma HMAC.

Un webhook envía una petición POST JSON firmada a la URL que elijas en cada evento: publicación publicada, fallo, nuevo mensaje… Los webhooks se gestionan en Réglages › Webhooks (Ajustes › Webhooks; sección Développeurs, Desarrolladores), reservado a los Super admins. Hasta 20 webhooks por espacio de trabajo.

Crear un webhook

Haz clic en Ajouter un webhook (Añadir un webhook).

Introduce un Nom (Nombre; « Zapier », « Slack », « CRM »…) y la URL (https) de recepción.

Marca los Événements (Eventos) que quieres recibir y, si hace falta, limita a una Marque (Marca) (si no, Toutes les marques, Todas las marcas).

Guarda y luego haz clic en Envoyer un test (Enviar una prueba): Klickbee envía un ejemplo firmado con "test": true y muestra el código de respuesta.

Los eventos

EventoEtiquetaCuándo
post.publishedPost publié (Publicación publicada)Una publicación está en línea.
post.failedÉchec de publication (Fallo de publicación)Una publicación ha fallado definitivamente (tras los reintentos automáticos).
post.scheduledPost planifié (Publicación planificada)Se planifica una publicación, o se programa un nuevo intento.
post.removedPost supprimé du réseau (Publicación eliminada de la red)Se ha retirado una publicación de la red desde Klickbee.
message.receivedMessage privé reçu (Inbox) (Mensaje privado recibido)Llega un nuevo mensaje privado a la Inbox.
comment.receivedCommentaire reçu (Inbox) (Comentario recibido)Llega un nuevo comentario a la Inbox.

post.published y post.failed están marcados por defecto.

La petición enviada

Cabeceras:

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

Cuerpo para un evento de publicación:

{
  "event": "post.published",
  "timestamp": "2026-10-12T09:00:03.120Z",
  "post": {
    "id": "…",
    "platform": "LINKEDIN",
    "status": "PUBLISHED",
    "body": "Nuestra nueva guía ya está disponible.",
    "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 contiene un objeto message (conversación, red, cuenta, remitente, texto, archivos adjuntos, fecha) y comment.received un objeto comment (autor, texto, publicación correspondiente y su enlace, comentario padre si lo hay).

Verificar la firma

Cada webhook tiene un secreto de firma (whsec_…), visible con Secret (Secreto). La cabecera X-Klickbee-Signature vale sha256= seguido del HMAC-SHA256 del cuerpo bruto de la petición, en hexadecimal, calculado con ese secreto. Recalcúlalo antes de confiar en el contenido:

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);
}

Calcula la firma sobre el cuerpo tal como se recibe, antes de JSON.parse. Guarda el secreto en el servidor. Régénérer le secret (Regenerar el secreto) invalida inmediatamente el anterior: actualiza tu receptor enseguida.

Reglas de entrega

  • Solo URL con https://; las direcciones privadas o locales se rechazan.
  • Tu servidor debe responder en menos de 5 segundos; las redirecciones no se siguen.
  • Cada evento se envía una sola vez, sin reintento si tu servidor no responde. La lista muestra el resultado del último envío (HTTP 200 · …, Injoignable (Inaccesible)…).

Desmarca Actif (Activo) para suspender un webhook sin eliminarlo.

En esta página