Un webhook envía información desde SmoothStay hacia otra herramienta de forma automática, en el instante en que algo cambia. Cuando se crea, actualiza o elimina un contacto o una reservación, SmoothStay envía el registro completo a donde tú elijas.
La mayoría de los anfitriones conectan una herramienta de automatización como Zapier, Make o Activepieces. También puedes enviarlo a tu propia aplicación si tienes una.
Qué puedes hacer con ellos
Si alguna vez copiaste a mano los datos de un huésped desde SmoothStay hacia otra herramienta, los webhooks son la solución para dejar de hacerlo. No necesitas programar: conectas una herramienta de automatización una sola vez y funciona en segundo plano desde ese momento.
Algunas cosas que configuran los anfitriones:
Haz crecer tu lista de correos automáticamente. Cuando un huésped se registra y acepta recibir marketing, agrégalo directo a Mailchimp, ConvertKit o la herramienta que uses. Tu lista para reservas directas se construye sola.
Mantén una hoja de cálculo actualizada con cada reserva. Las nuevas reservaciones se agregan a una hoja de Google Sheets, dándote tu propia copia para contabilidad, tu contador o tus propios reportes.
Recibe un mensaje cuando entre una reserva. Envía las nuevas reservaciones a Slack, WhatsApp o por mensaje de texto para enterarte sin tener que abrir el panel.
Envía por mensaje de texto el código de la puerta al huésped al momento del check-in. El payload de la reservación incluye los datos de acceso, para que tu automatización los envíe justo a tiempo sin que tengas que buscar nada.
Avisa a tu equipo de limpieza sobre una nueva estancia. Envía las fechas de check-in y check-out a lo que ya use tu equipo, sea un calendario compartido, Trello o un grupo de WhatsApp.
Mantén sincronizado tu propio CRM. Si usas HubSpot, Airtable o un sistema propio, los contactos y las reservaciones se integran a medida que se crean.
Tú creas estos flujos de trabajo en tu herramienta de automatización (Zapier, Make, etc.). El trabajo de SmoothStay es enviar la información en el momento exacto en que cambia; lo que pase después depende de ti. Los eventos disponibles hoy cubren contactos y reservaciones, y agregaremos más conforme la plataforma crezca.
Antes de empezar
Tu endpoint debe aceptar peticiones POST y funcionar bajo HTTPS.
Ten lista la URL del endpoint. En la mayoría de las herramientas de automatización, esta es la URL de catch hook o webhook trigger.
Cómo configurar webhooks
Ve a Configuración → Integraciones → Configurar webhooks.

Agrega la URL de tu endpoint, omitiendo el prefijo
https://. Nosotros lo agregamos por ti, así que pega solo la dirección en sí, por ejemplocloud.activepieces.com/api/v1/webhooks/abc123. Solo se admiten endpoints seguros con HTTPS.
Selecciona los eventos que SmoothStay enviará a tu endpoint. Se requiere al menos uno. Cada evento envía un POST con el registro completo. Selecciona solo los eventos con los que tu flujo trabaje, para que tu endpoint no reciba tráfico innecesario. Puedes cambiar esta selección cuando quieras.

SmoothStay envía un evento de prueba para confirmar que tu endpoint responda. Los webhooks permanecen desactivados hasta que un evento de prueba tenga éxito, evitando enviar eventos en vivo a un endpoint inaccesible. Si la prueba falla, soluciona el problema en tu endpoint y envía otra prueba desde la misma pantalla. Para diagnosticar un fallo, abre la pestaña Logs, busca la entrega y haz clic en el ícono de Debug. La vista de depuración muestra el estado devuelto por tu endpoint, la respuesta sin procesar recibida y el payload exacto enviado. Compara eso con la referencia de códigos de estado más abajo para identificar la causa.

Por defecto, SmoothStay crea un secreto de webhook que se envía en el encabezado X-SmoothStay-Secret con cada webhook. Compáralo de tu lado para confirmar que la petición provenga realmente de SmoothStay. Mantenlo en privado. Recomendamos ampliamente usarlo.

Cambia el secreto cuando lo necesites. La rotación surte efecto de inmediato. Tu secreto actual deja de funcionar al instante y cada webhook enviado a partir de entonces llevará el nuevo, por lo que la verificación fallará en tu endpoint hasta que lo actualices allí. No hay un periodo de transición. Copia el nuevo secreto y actualiza tu endpoint antes de continuar.
Para desconectar, ve a Configuración → Integraciones → Webhooks, haz clic en los tres puntos y selecciona Desconectar. SmoothStay dejará de enviar eventos de inmediato. Desconectar es permanente: se eliminarán la configuración de tu endpoint, tu secreto y todos los registros de entrega, y tendrás que configurar el webhook desde cero para reanudarlo. Si solo deseas pausar las entregas temporalmente, desmarca todos los eventos en vez de desconectar.

Referencia técnica
Todo lo siguiente describe con exactitud lo que envía SmoothStay y cómo funciona la entrega. Si vas a conectar una herramienta de automatización como Zapier o Make, probablemente no lo necesites, ya que la herramienta se encarga de esto. Está disponible para quien construya directamente sobre los datos.
Eventos
Cada evento ejecuta un POST con el registro completo correspondiente.
Evento | Se activa cuando |
|---|---|
| Se crea un contacto, ya sea mediante el widget de registro de huéspedes, una entrada manual o una sincronización de PMS |
| Cambian los datos de un contacto existente |
| Se elimina un contacto |
| Se crea o importa una reservación |
| Cambian los datos de una reservación existente |
| Se elimina una reservación |
Las actualizaciones pueden ejecutarse con más frecuencia de la esperada, sobre todo en reservaciones sincronizadas desde un PMS conectado. Diseña tu flujo para que recibir el mismo registro más de una vez no cause problemas.
Payload
El cuerpo es un objeto JSON con el registro y sus datos vinculados. No hay ningún envoltorio ni envelope, así que lee los campos directamente desde el nivel superior del cuerpo en lugar de buscar una clave data anidada. El nombre del evento llega en el encabezado X-SmoothStay-Event, no en el cuerpo.
Cuatro detalles a tener en cuenta sobre cómo se representan los valores:
Los registros vinculados se anidan como objetos completos, no como IDs. El payload de una reservación contiene los objetos completos
unitycontactintegrados, para que no necesites una segunda consulta para obtener la dirección de la propiedad o el teléfono del huésped. El campoorganizationes la excepción y llega como una cadena de ID.Los enlaces de acceso se anidan bajo
access. Una reservación incluye su propio objetoaccessespecífico para ella, y el objetounitanidado lleva un objetoaccessindependiente para el enlace general de la propiedad. Ambos contienen untokeny unlinkcompleto.Los campos vacíos llegan como la cadena
"null" o " ", no como elnullde JSON. Considera"null"como vacío al mapear campos en tu herramienta de automatización.Las fechas son cadenas ISO 8601 en UTC, por ejemplo
2026-07-12T17:15:15.604Z.
Ejemplo de cuerpo para contact.created:
Es posible que se agreguen campos a los payloads con el tiempo a medida que SmoothStay evolucione. Agregar un campo no se considera un cambio disruptivo, por lo que tu endpoint debe ignorar los campos que no reconozca en lugar de fallar por su presencia.
Encabezados
Cada petición incluye estos encabezados:
Encabezado | Propósito |
|---|---|
| El secreto compartido de tu endpoint. Compáralo para confirmar que la petición provenga de SmoothStay |
| El nombre del evento, por ejemplo |
| Un ID único para esta entrega. Úsalo para detectar duplicados |
| Cuándo se generó el evento |
Content-Type es application/json.
Entrega, reintentos y desactivación
Qué se considera un éxito. Cualquier código de estado 2xx. Una respuesta vacía sin código de estado también se toma como exitosa, ya que muchos endpoints confirman la recepción sin devolver un cuerpo. Responde apenas recibas la petición y realiza tu procesamiento después, ya que una respuesta lenta puede registrarse como tiempo de espera agotado (timeout) incluso si tu flujo termina con éxito.
Reintentos. SmoothStay intenta cada entrega hasta 3 veces en total, incluyendo el envío inicial.
Reintentamos fallos que puedan resolverse por sí solos: tiempos de espera agotados, límites de peticiones (429) y errores de servidor (la familia 5xx, incluyendo el rango 520 a 524 de Cloudflare).
No reintentamos fallos definitivos, ya que repetir la petición daría el mismo resultado. Estos son: una URL que ya no existe (404), una petición que tu endpoint rechaza (401, 403, 405) y un payload que tu endpoint no acepta (400, 413, 415, 422).
La columna Retries en la pestaña Logs muestra cuántos intentos tomó una entrega. Un valor de 1 significa que tuvo éxito en el primer intento.
Desactivación. Si un endpoint sigue fallando tras agotar los reintentos, SmoothStay desactiva el webhook y deja de enviar eventos. Le enviamos un correo al administrador de tu organización para avisarle y evitar que un endpoint roto pase desapercibido. Para reanudarlo, soluciona el problema en tu endpoint y envía un evento de prueba exitoso desde la pestaña Endpoint. Los eventos ocurridos mientras el webhook estuvo desactivado no se envían de forma retroactiva.
Garantías de entrega. La entrega es al menos una vez (at-least-once), no exactamente una vez, y no mantiene un orden estricto. Un evento reintentado puede llegar después de uno más nuevo, y el mismo evento puede recibirse dos veces. Dos buenas prácticas evitan problemas:
Evita duplicados con
X-SmoothStay-Delivery. Descarta cualquier ID de entrega que ya hayas procesado.Usa
X-SmoothStay-Timestamppara resolver el orden. Cuando dos actualizaciones del mismo registro lleguen muy seguidas, la marca de tiempo más reciente representa el estado actual.
Seguridad
Cada webhook incluye un encabezado X-SmoothStay-Secret con un secreto compartido exclusivo para tu endpoint. Compáralo con tu secreto guardado mediante una comparación de texto directa y rechaza cualquier elemento que no coincida. Junto con HTTPS, que encripta la petición durante el trayecto, esto confirma que la petición provino de SmoothStay.
Se trata de un secreto compartido y no de una firma calculada, lo que significa que puedes verificarlo en cualquier herramienta de automatización con un simple paso de comparación.
Trata el secreto como cualquier otra credencial:
Mantenlo en privado y guárdalo de forma segura.
Sirve tu endpoint sobre HTTPS para no exponer el secreto en tránsito.
Cámbialo si sospechas que quedó expuesto.
Qué incluye el payload. Los payloads de reservaciones contienen detalles operativos de la estancia, como los datos de wifi de la propiedad, instrucciones para abrir la puerta, el código de la cerradura inteligente, notas internas y enlaces de acceso a la guía digital. Esto es intencional: es lo que permite automatizaciones como enviar por texto al huésped su código de puerta al momento del check-in sin tener que hacer una segunda búsqueda.
Dado que casi todas las herramientas de automatización guardan el cuerpo completo de la petición en su historial de ejecuciones, conviene saber a dónde van a parar esos datos:
Revisa qué conserva tu herramienta de destino y quién en tu cuenta tiene acceso para verlo.
Descarta desde temprano en el flujo los campos que tu proceso no utilice.
Ten cuidado al reenviar payloads sin procesar hacia destinos compartidos, como canales de chat de tu equipo o formatos de hojas de cálculo abiertas.
Resolución de problemas
Abre la pestaña Logs y haz clic en el ícono de Debug en una entrega para ver el estado devuelto por tu endpoint, su respuesta sin procesar y el payload exacto que enviamos. Aquí tienes algunos ejemplos comunes:
Lo que ves | Causa probable | Qué hacer |
|---|---|---|
| La URL del endpoint es incorrecta o se eliminó el flujo asociado | Verifica la URL y confirma que el flujo de destino aún exista y esté publicado |
| Tu endpoint está rechazando la petición | Comprueba si la herramienta de destino requiere autenticación propia |
| El endpoint no admite peticiones POST | Confirma que la URL corresponda a un trigger de webhook o catch hook, y no a una URL de página web |
| Tu endpoint nos está aplicando un límite de peticiones | Suele resolverse con los reintentos. Revisa los límites de tu plan en la herramienta de destino |
| Tu endpoint o el servicio detrás de él están fallando o no están disponibles | Suele ser temporal. Confirma que el servicio de destino esté operativo |
| El endpoint está detrás de Cloudflare y el servidor de origen está caído o responde muy lento | Revisa el servidor detrás de Cloudflare, no Cloudflare directamente |
Vacío o sin estado | No pudimos contactar a tu endpoint o este no respondió a tiempo | Revisa que la URL sea correcta y accesible, que el DNS resuelva y que el certificado HTTPS sea válido |
No llega ningún evento | Los webhooks podrían estar desactivados o no hay eventos seleccionados | Revisa la pestaña Endpoint en busca del aviso de desactivación y confirma tener al menos un evento seleccionado |
Registros duplicados de tu lado | Normal. La entrega se garantiza al menos una vez (at-least-once) | Filtra duplicados usando el encabezado |
Si una entrega aparece como exitosa de nuestro lado pero no ocurre nada en tu herramienta, asegúrate de que el flujo de destino esté publicado y activado. Muchas herramientas de automatización aceptan peticiones en flujos en borrador sin llegar a ejecutarlos.
¿Necesitas ayuda?
Escríbenos a hello@smoothstay.io con el ID de entrega de la pestaña Logs y lo revisaremos de nuestro lado.