La IoT API de Repull permitirá que tu código reaccione a eventos físicos igual que reacciona hoy a una actualización de reserva. Rota un código de puerta al check-out. Climatiza una unidad antes de la llegada. Recibe un webhook cuando un termostato lleva seis horas a 30 grados.
Lo que vas a construir
Al crear la reserva, generas un código. A la hora del check-out, lo expiras y emites el del siguiente huésped. Se acabó el "¿cambió el código la limpiadora?" — la cerradura y la reserva son el mismo objeto.
A T-2 horas, ajustas la unidad a una temperatura cómoda. Tras el check-out, la dejas en modo de mantenimiento. Multiplícalo por todo el portfolio y el ahorro energético paga la factura del IoT por sí solo.
Puerta abierta una hora durante la rotación. Termostato a 30°C sin nadie dentro. Sensor de fuga de agua disparado. Salta el webhook, la cola de operativa coge la tarea, suena el móvil de alguien.
Cómo se va a ver la API
La IoT API trata cada dispositivo conectado — cerradura, termostato, sensor — como un hijo del anuncio. Reservas y dispositivos comparten la misma auth, los mismos webhooks y el mismo workspace, así que construyes flujos transversales en un único sitio.
La mayoría de fabricantes usa OAuth o un emparejamiento a nivel de cuenta. El picker de Repull Connect se ocupa de eso igual que se ocupa de las conexiones de PMS — un único flujo consistente.
La misma superficie de webhooks que todo lo demás. door.opened, lock.code.created, climate.target_changed, sensor.alert. Firma verificada, reintentos en 5xx, un único log de eventos para grepear.
Disparas en reservation.confirmed para emitir un código. Disparas en reservation.checkout para expirarlo. Las mismas primitivas que ya usas para mensajería y pricing.
// Repull IoT API — pronto. La forma a la que estamos convergiendo:
import { Repull } from '@repull/sdk'
const repull = new Repull({ apiKey: ..., workspaceId: ... })
// En reservation.confirmed
repull.webhooks.on('reservation.confirmed', async (e) => {
const lock = await repull.devices.get(e.listingId, { kind: 'lock' })
await repull.devices.lock.codes.create(lock.id, {
label: e.guestName,
code: '4271', // u omite para auto-generar
activeFrom: e.checkIn,
activeUntil: e.checkOut,
})
})
// En reservation.checkout, el código se auto-expira.
// En una alerta de sensor, enrutar a tu cola de ops:
repull.webhooks.on('sensor.alert', async (e) => {
if (e.kind === 'water_leak') await ops.create({
listingId: e.listingId,
severity: 'critical',
title: `Fuga de agua detectada · ${e.location}`,
})
})Las formas de arriba son cómo lo estamos pensando — los nombres finales de los métodos llegarán con el lanzamiento público. Fabricantes de cerraduras objetivo para la v1: Yale, Schlage, August. Climatización: Nest, ecobee, Honeywell.
Próximamente
Si tienes un portfolio con cerraduras y climatización ya desplegadas, o estás construyendo un producto que necesita hablar con dispositivos físicos, escríbenos. Los primeros design partners moldean la superficie de la API.
Cerraduras
Yale Linus / Assure, Schlage Encode, August, igloohome.
Climatización
Nest, ecobee, Honeywell Lyric, Sensibo.
Sensores
Ruido (Minut, NoiseAware), fugas de agua, ocupación.
Sin fecha fija de lanzamiento. Lanzaremos cuando las tres primeras integraciones funcionen de extremo a extremo con datos reales en producción.
Cuéntanos qué dispositivos tienes desplegados y qué construirías con esto. El equipo lee cada email.
Llega directo al equipo. Sin lista, sin drip.
EnviarEl IoT viene en camino. Reservas, canales, pricing y agentes IA no — eso ya está vivo.