Webhooks: avisa a otras herramientas de lo que pasó
Un webhook envía un mensaje breve a otra herramienta en el momento en que algo ocurre en tu proyecto: una publicación, una entrada de formulario, un registro modificado. Esta página explica cómo añadir uno, cómo es el mensaje, cómo puede comprobar el otro extremo que es auténtico y qué ocurre cuando ese extremo no responde.
Qué es un webhook
Piensa en ello como tu proyecto llamando a otro servicio para contarle lo que acaba de pasar. Le das a Briks una dirección (una URL que te dio la otra herramienta), eliges los eventos que debe comunicar y, cada vez que ocurre uno, Briks envía un mensaje allí. Muchas herramientas de automatización, de listas de clientes y complementos de hojas de cálculo pueden darte una dirección así.
Técnicamente, cada mensaje es una solicitud POST: una llamada que lleva un cuerpo, escrito aquí en JSON, un formato de texto plano que leen los programas. La herramienta receptora lee el cuerpo y hace lo que hayas configurado.
| Evento, tal como lo muestra el estudio | Código | Se envía cuando |
|---|---|---|
| Published | site.published | Salió a producción una nueva versión del sitio. |
| Form received | form.received | Un visitante envió un mensaje a través de uno de los formularios del sitio. |
| Record changed | record.changed | Se añadió, cambió o eliminó un registro en la base de datos del proyecto. |
record.changed sigue los cambios hechos en el estudio: un registro añadido, editado o eliminado en la pestaña Database, una colección vaciada o la base de datos restaurada. Los registros que el sitio publicado guarda por sí mismo, como una solicitud de reserva que envía un visitante, no lo activan.
form.received se envía tanto para los envíos desde la vista previa como desde producción. Cada mensaje indica de cuál se trata, para que la otra herramienta pueda omitir los envíos de la vista previa.
Límites de cada plan
| Plan | Webhooks por proyecto | Llamadas al día por proyecto |
|---|---|---|
| Free | 1 | 2,000 |
| Starter | 5 | 5,000 |
| Pro | 10 | 10,000 |
| Studio | 25 | 50.000 |
| Agency | 50 | 100.000 |
Cuando se agotan las llamadas del día, un envío no se manda y se marca como Failed con este mensaje: Today's calls for this project are used up, so this delivery was not sent. Send it again tomorrow.
Cuando un proyecto tiene tantos webhooks como permite su plan, Add webhook aparece en gris y un enlace Get more junto al contador abre la ventana de mejora, que indica el plan más pequeño con sitio para otro.
Añadir un webhook
Pulsa Add webhook
Dónde: Settings, Webhooks
La página muestra cuántos tienes frente al límite de tu plan, por ejemplo 1 de 5 en tu plan. Los Editor, Admin y Owner pueden añadir webhooks.
Introduce la dirección
Dónde: Add a webhook
Pega en Address la dirección que te dio la otra herramienta. Debe ser una dirección https pública, con el nombre escrito en lugar de un número.
Añadir una nota
Dónde: Add a webhook
Note es opcional, de hasta 120 caracteres, y te ayuda a distinguir los webhooks más adelante:
Enquiries sheet, por ejemplo.Elige los eventos
Dónde: Add a webhook
Marca los eventos de los que debe enterarse. Published y Form received vienen marcados; cámbialos a tu gusto.
Guarda y copia el secreto
Dónde: Your signing secret
Pulsa Add webhook. Un cuadro de diálogo muestra el secreto de firma, que empieza por
whsec_. Pulsa Copy y guárdalo: se muestra una sola vez. Luego pulsa Done.Enviar una prueba
Dónde: Settings, Webhooks
Abre los tres puntos del webhook y elige Send a test event. Verás: A test event is on its way. See how it went under Deliveries.
Cada webhook de la lista muestra su dirección, su nota y sus eventos, con qué secreto está firmado (los primeros caracteres) y cómo fue la última entrega. Su interruptor lo pone en On o Off, y sus tres puntos contienen Send a test event (hasta diez por hora, solo mientras está activado), Change, New signing secret y Delete.
Cómo es una entrega
Cada envío tiene las mismas tres partes: type (el código del evento), timestamp (cuándo ocurrió, en UTC) y data (los detalles). Aquí tienes una entrada de formulario:
{"type":"form.received","timestamp":"2026-10-08T09:41:07.000Z","data":{"form":{"id":"…","subject":"Consulta de boda","page":"/contact","fields":[{"label":"Nombre","value":"Ellie Marsh"},{"label":"Fecha de la boda","value":"14 de junio de 2027"}],"replyTo":"ellie@example.com"},"production":true}}
| Evento | Qué contiene data |
|---|---|
form.received | form: su id, subject, la page desde la que se envió, fields (cada uno con un label y un value, en el orden del formulario) y replyTo, el email del visitante cuando el formulario lo pide. Después production: true para el sitio en vivo, false para la vista previa. |
site.published | url: la dirección en la que se publicó. production: si el sitio está en producción. abTest: si hay una prueba A/B en marcha. served: si Briks vio la nueva versión respondiendo en esa dirección cuando envió el mensaje. |
record.changed | action: created, updated, deleted, cleared o restored. collection: qué colección. record: el id del registro. Los valores del registro no se incluyen. |
test | Un message y el project, con su id y su name. Se envía solo cuando pulsas Send a test event. |
Cada envío incluye además tres cabeceras: webhook-id (el id del mensaje), webhook-timestamp (cuándo se envió, en segundos) y webhook-signature. Siguen el formato abierto Standard Webhooks, así que las herramientas que lo entienden pueden comprobar los envíos por ti.
Comprueba que un envío es genuino
Cualquiera puede enviar un mensaje a una dirección, así que quien lo recibe debe comprobar la firma antes de fiarse. La firma se hace con el secreto de firma que solo tienen tú y Briks. Cuando un proyecto tiene un webhook, la página Webhooks muestra un breve ejemplo de código bajo Checking a delivery is genuine. En palabras, la comprobación es así:
- Toma el cuerpo exactamente como llegó, como texto, antes de leerlo como JSON.
- Une el
webhook-id, elwebhook-timestampy el cuerpo con puntos entre ellos. - Toma tu secreto, quita el
whsec_del principio y decodifica el resto desde base64. Esa es la clave. - Firma el texto unido con HMAC SHA-256 y esa clave, escribe el resultado en base64 y antepón
v1,. - La entrega es auténtica si coincide con uno de los valores separados por espacios de
webhook-signaturey la marca de tiempo está dentro de los cinco minutos previos o posteriores al momento actual.
Una entrega que se reintenta conserva su webhook-id, así que el receptor puede guardar los ids que ya procesó y omitir las repeticiones.
Entregas y reintentos
Deliveries muestra todos los envíos de los últimos treinta días, del más reciente al más antiguo. Acótalos con Status y pulsa Show. Haz clic en uno para ver el mensaje completo, cualquier error y lo que respondió la dirección.
| Estado | Significado |
|---|---|
| Sending | Esperando su primer intento. |
| Retrying | Un intento falló y viene otro. La línea muestra cuándo, tras el siguiente intento. |
| Delivered | La dirección respondió con un estado 2xx, el código de la web para indicar éxito. |
| Failed | Todos los intentos fallaron, o el envío no pudo realizarse en absoluto. |
Cada intento espera hasta 15 segundos una respuesta. Si la respuesta no es un 2xx, Briks vuelve a intentarlo: cinco intentos en total, el primero de inmediato y los siguientes tras unos 30 segundos, 2 minutos, 8 minutos y 32 minutos, es decir, unos 45 minutos del primero al último. Una respuesta 410 (gone) detiene los reintentos al instante. Las redirecciones no se siguen, así que indica la dirección final.
Cuando una entrega está en Failed o Delivered, Send again envía el mismo mensaje con el mismo id, firmado de nuevo. El webhook tiene que estar activado.
Información y ajustes
Insights resume los últimos treinta días: Deliveries, el porcentaje Delivered, Failed after every try (con el número de reintentos que hizo falta) y el tiempo de Average answer. Más abajo, By event y By address muestran dónde se concentran los fallos.
Settings tiene Download JSON en Download the webhooks, con la dirección, los eventos y la nota de cada webhook. Los secretos de firma nunca se incluyen. Su zona de peligro contiene Clear log, que elimina el registro de envíos y detiene cualquier reintento, y Delete all, que quita todos los webhooks después de escribir el nombre del proyecto. Ambos son para Owners y Admins.
Ejemplo práctico: enviar las entradas de un formulario a otra herramienta
Las entradas de los formularios no se pueden exportar desde el estudio, así que un webhook es la forma de guardarlas en otra herramienta según llegan. El estudio también las conserva: las últimas 100 aparecen en Settings, Forms.
Una fotógrafa de bodas de York envía consultas a su lista de clientes
Consigue una dirección de la otra herramienta
Dónde: Her client list tool
Allí crea un webhook entrante y copia la dirección que le dan.
Añade el webhook
Dónde: Settings, Webhooks
Pega la dirección, escribe la nota
Client list, desmarca Published y deja marcado solo Form received.Dale el secreto a la herramienta
Dónde: Her client list tool
Su herramienta comprueba las firmas, así que pega el secreto de firma en sus ajustes antes de cerrar el cuadro de diálogo.
Pruébalo
Dónde: Settings, Webhooks, Deliveries
Envía un evento de prueba y lo ve como Delivered en Deliveries.
Haz coincidir los campos
Dónde: Her client list tool
Ella asocia las etiquetas de
fieldsName, Wedding date y Venue con las columnas de su herramienta, y le indica que ignore los mensajes dondeproductionseafalse.
Una pareja rellena el formulario de contacto en su sitio en vivo.
La consulta llega a su bandeja de entrada, porque el sitio está en producción, y aparece en su lista de clientes un momento después.