Per le aziende software

Ogni conversazione con gli ospiti,
dentro il tuo prodotto.

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

Un'inbox completa, non un flusso di notifiche.

Thread, cronologia, risposte e allegati da ogni canale, normalizzati in un'unica struttura.

Un'unica lista di thread

Conversazioni da tutti i canali collegati in un'unica lista paginata, filtrabile per canale e account.

Risposte che partono dal canale giusto

Invia una volta. Il messaggio viene recapitato sul canale da cui ha scritto l'ospite e registrato nel thread.

Consegna in tempo reale

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

Un'inbox in tre chiamate e un webhook.

Elenca i thread, leggine uno, rispondi. Iscriviti agli eventi dei messaggi così i nuovi compaiono appena arrivano.

  1. 1

    Collega l'host

    L'host collega Airbnb, Booking.com o Vrbo tramite Repull Connect. Il suo PMS resta collegato com'è.

  2. 2

    Carica i thread

    GET /v1/conversations restituisce tutti i thread; l'endpoint dei messaggi ne restituisce la cronologia.

  3. 3

    Rispondi e ascolta

    Fai POST di un messaggio per rispondere e gestisci reservation.message.received per tenere l'inbox aggiornata.

inbox.ts · ts
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.' }),
})
webhook.ts · ts
// 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

Cosa funziona dove

AirbnbThread, invio, modifica e annullamento dell'invio, segna come letto. Pre-approvazioni e offerte speciali richiedono l'accesso completo, che Airbnb non consente accanto a un altro PMS.
Booking.comConversazioni, invio, allegati.
VrboConversazioni, invio di testo. Pre-approvazione delle richieste e modifica del preventivo.
PMS dell'hostMessaggi degli ospiti da tutti i canali gestiti dal PMS, prenotazioni dirette incluse, per i PMS a cui ci colleghiamo. Le risposte tornano attraverso il PMS dove la sua API lo consente.

La copertura è verificata sull'API in produzione. Copertura completa di canali e PMS

Accanto a qualsiasi PMS

I tuoi clienti tengono gli strumenti che già usano.

Il PMS resta responsabile dell'annuncio

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.

Booking.com con l'accesso extranet dell'host

In beta: prenotazioni, messaggi e recensioni da Booking.com, senza che l'host debba togliere il suo provider di connettività al PMS.

Una sola integrazione, ogni canale

Gli stessi endpoint e gli stessi eventi webhook, che l'ospite abbia prenotato su Airbnb, Booking.com o Vrbo. Lo costruisci una volta.

Come funziona Repull accanto a un PMS→

L'API dietro

Endpoint ed eventi

GET /v1/conversations

Tutti i thread di tutti i canali, paginati a cursore.

GET /v1/conversations/{id}/messages

La cronologia di un thread, dal più recente o dal più vecchio.

POST /v1/conversations/{id}/messages

Rispondi all'ospite sul suo canale, con chiavi di idempotenza.

POST /v1/conversations/{id}/pre-approval

Pre-approva una richiesta: Vrbo, oppure Airbnb con accesso completo.

reservation.message.received

Webhook: un ospite ha inviato un messaggio.

reservation.message.sent

Webhook: l'host ha risposto, anche dall'app del canale.

Lancia l'inbox che i tuoi clienti continuano a chiedere.

Inizia gratis. Collega un account di prova e ricevi messaggi già oggi.