Desarrolladores
Webhooks
PollsLive puede enviar eventos firmados por POST a tu endpoint cuando cambian las encuestas y las sesiones en vivo, para que tus sistemas reaccionen en tiempo real en lugar de hacer sondeos.
Configuración
Añade un endpoint en Studio → API para desarrolladores: introduce tu URL HTTPS y selecciona los eventos a los que suscribirte. PollsLive muestra un secreto de firma (whsec_…) una sola vez. Guárdalo para verificar las entregas.
Eventos
poll.published: A poll was published and is now live/shareable.poll.closed: Voting was closed on a poll.vote.created: A new vote was recorded on an async poll.session.started: A live presenter session was started.session.ended: A live presenter session ended.response.created: An async response was recorded. Live session answers do not emit this event.
Carga útil
Cada entrega es un cuerpo JSON con el nombre del evento, una marca de tiempo y los datos del evento:
{
"event": "poll.published",
"createdAt": "2026-06-18T12:00:00.000Z",
"data": {
"poll": { "id": "...", "slug": "...", "title": "...", "shareUrl": "..." }
}
}Cada solicitud también incluye estas cabeceras:
X-PollsLive-Event: el nombre del evento.X-PollsLive-Delivery: un id de entrega único.X-PollsLive-Signature:t=<unix>,v1=<hex>.
Verificar firmas
Calcula un HMAC-SHA256 de <t>.<rawBody> usando tu secreto de firma y compáralo con el valor v1 (en tiempo constante):
import crypto from "crypto";
function verify(rawBody, header, secret) {
const parts = Object.fromEntries(
header.split(",").map((kv) => kv.split("="))
);
const expected = crypto
.createHmac("sha256", secret)
.update(`${parts.t}.${rawBody}`)
.digest("hex");
return crypto.timingSafeEqual(
Buffer.from(expected),
Buffer.from(parts.v1)
);
}Responde con un estado 2xx para confirmar. Rechaza cualquier cosa que no supere la verificación.
Reintentos
Si tu endpoint es inaccesible o devuelve un estado distinto de 2xx, PollsLive reintenta con retroceso exponencial (aproximadamente 1m, 5m, 30m, 2h, 6h) hasta seis intentos. Haz que tu manejador sea idempotente usando el id X-PollsLive-Delivery .
¿Aún tienes preguntas?
Nuestro equipo estará encantado de ayudarte.