Leggi e rispondi ai messaggi degli ospiti da Airbnb, Booking.com e Vrbo con un'unica API. I tuoi clienti tengono il loro PMS; il tuo prodotto ottiene l'inbox.
Cosa ottiene il tuo prodotto
Thread, cronologia, risposte e allegati da ogni canale, normalizzati in un'unica struttura.
Conversazioni da tutti i canali collegati in un'unica lista paginata, filtrabile per canale e account.
Invia una volta. Il messaggio viene recapitato sul canale da cui ha scritto l'ospite e registrato nel thread.
I webhook scattano a ogni nuovo messaggio di un ospite e alle risposte che l'host invia dall'app del canale, così la tua inbox non resta mai indietro.
Come funziona
Elenca i thread, leggine uno, rispondi. Iscriviti agli eventi dei messaggi così i nuovi compaiono appena arrivano.
L'host collega Airbnb, Booking.com o Vrbo tramite Repull Connect. Il suo PMS resta collegato com'è.
GET /v1/conversations restituisce tutti i thread; l'endpoint dei messaggi ne restituisce la cronologia.
Fai POST di un messaggio per rispondere e gestisci reservation.message.received per tenere l'inbox aggiornata.
const api = (path: string, init?: RequestInit) =>
fetch(`https://api.repull.dev${path}`, {
...init,
headers: {
Authorization: `Bearer ${process.env.REPULL_API_KEY}`,
'Content-Type': 'application/json',
},
}).then(r => r.json())
// Every thread, from every channel, in one list
const { data: threads } = await api('/v1/conversations?limit=50')
// One thread's history, oldest first
const { data: messages } = await api(`/v1/conversations/${threads[0].id}/messages?order=asc`)
// Reply — it goes out on the channel the guest wrote from
await api(`/v1/conversations/${threads[0].id}/messages`, {
method: 'POST',
body: JSON.stringify({ message: 'Hi Alex, check-in is from 4pm.' }),
})// POST /webhooks/repull — subscribed to reservation.message.received
export async function POST(req: Request) {
const event = await req.json() // verify X-Repull-Signature first
if (event.event === 'reservation.message.received') {
const { threadId, channel, senderName, body } = event.data
await inbox.push({ threadId, channel, from: senderName, body })
}
return new Response(null, { status: 200 })
}Copertura per canale
La copertura è verificata sull'API in produzione. Copertura completa di canali e PMS
Accanto a qualsiasi PMS
Su Airbnb e Vrbo, Repull si collega con un accesso di sola messaggistica. Il PMS dell'host continua a gestire annunci e calendari, e il tuo prodotto non gli contende mai il controllo.
In beta: prenotazioni, messaggi e recensioni da Booking.com, senza che l'host debba togliere il suo provider di connettività al PMS.
Gli stessi endpoint e gli stessi eventi webhook, che l'ospite abbia prenotato su Airbnb, Booking.com o Vrbo. Lo costruisci una volta.
L'API dietro
GET /v1/conversationsTutti i thread di tutti i canali, paginati a cursore.
GET /v1/conversations/{id}/messagesLa cronologia di un thread, dal più recente o dal più vecchio.
POST /v1/conversations/{id}/messagesRispondi all'ospite sul suo canale, con chiavi di idempotenza.
POST /v1/conversations/{id}/pre-approvalPre-approva una richiesta: Vrbo, oppure Airbnb con accesso completo.
reservation.message.receivedWebhook: un ospite ha inviato un messaggio.
reservation.message.sentWebhook: l'host ha risposto, anche dall'app del canale.
Inizia gratis. Collega un account di prova e ricevi messaggi già oggi.