Dla firm tworzących oprogramowanie

Każda rozmowa z gościem,
w twoim produkcie.

Czytaj wiadomości od gości z Airbnb, Booking.com i Vrbo i odpowiadaj na nie przez jedno API. Twoi klienci zostają przy swoim PMS, a twój produkt dostaje skrzynkę.

Co dostaje twój produkt

Pełna skrzynka, a nie strumień powiadomień.

Wątki, historia, odpowiedzi i załączniki z każdego kanału, ujednolicone w jednym formacie.

Jedna lista wątków

Rozmowy ze wszystkich podłączonych kanałów na jednej stronicowanej liście, z filtrem po kanale i koncie.

Odpowiedzi wysyłane właściwym kanałem

Wyślij raz. Wiadomość trafia kanałem, z którego napisał gość, i zostaje zapisana w wątku.

Dostarczanie w czasie rzeczywistym

Webhooki uruchamiają się przy każdej nowej wiadomości od gościa i przy odpowiedziach wysłanych przez gospodarza z aplikacji kanału, więc skrzynka zawsze jest aktualna.

Jak to działa

Skrzynka w trzech wywołaniach i jednym webhooku.

Pobierz listę wątków, otwórz jeden, odpowiedz. Zasubskrybuj zdarzenia wiadomości, aby nowe pojawiały się od razu.

  1. 1

    Podłącz gospodarza

    Gospodarz podłącza Airbnb, Booking.com lub Vrbo przez Repull Connect. Jego PMS zostaje podłączony tak jak dotąd.

  2. 2

    Załaduj wątki

    GET /v1/conversations zwraca wszystkie wątki; endpoint wiadomości zwraca ich historię.

  3. 3

    Odpowiadaj i nasłuchuj

    Wyślij wiadomość przez POST i obsługuj reservation.message.received, aby skrzynka była na bieżąco.

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 })
}

Zakres kanałów

Co działa gdzie

AirbnbWątki, wysyłanie, edycja i cofanie wysłania, oznaczanie jako przeczytane. Wstępne zatwierdzenia i oferty specjalne wymagają pełnego dostępu, którego Airbnb nie daje obok innego PMS.
Booking.comRozmowy, wysyłanie, załączniki.
VrboRozmowy, wysyłanie tekstu. Wstępne zatwierdzanie zapytań i edycja wyceny.
PMS gospodarzaWiadomości od gości ze wszystkich kanałów obsługiwanych przez PMS, w tym z rezerwacji bezpośrednich – dla PMS, z którymi się łączymy. Odpowiedzi wracają przez PMS tam, gdzie pozwala na to jego API.

Zakres jest sprawdzany na produkcyjnym API. Pełny zakres kanałów i PMS

Obok dowolnego PMS

Twoi klienci zostają przy narzędziach, których już używają.

PMS dalej zarządza ofertą

Na Airbnb i Vrbo Repull łączy się z dostępem tylko do wiadomości. PMS gospodarza dalej zarządza ofertami i kalendarzami, a twój produkt nigdy nie konkuruje z nim o kontrolę.

Booking.com przez logowanie do extranetu gospodarza

W wersji beta: rezerwacje, wiadomości i opinie z Booking.com, bez odłączania dostawcy łączności od PMS gospodarza.

Jedna integracja, każdy kanał

Te same endpointy i te same zdarzenia webhooków, niezależnie od tego, czy gość zarezerwował przez Airbnb, Booking.com czy Vrbo. Budujesz to raz.

Jak Repull działa obok PMS→

API, które za tym stoi

Endpointy i zdarzenia

GET /v1/conversations

Wszystkie wątki ze wszystkich kanałów, ze stronicowaniem kursorem.

GET /v1/conversations/{id}/messages

Historia wątku, od najnowszych lub najstarszych.

POST /v1/conversations/{id}/messages

Odpowiedz gościowi na jego kanale, z kluczami idempotencji.

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

Wstępnie zatwierdź zapytanie – Vrbo lub Airbnb z pełnym dostępem.

reservation.message.received

Webhook: gość wysłał wiadomość.

reservation.message.sent

Webhook: gospodarz odpowiedział, także z aplikacji kanału.

Wypuść skrzynkę, o którą ciągle proszą twoi klienci.

Zacznij za darmo. Podłącz konto testowe i odbieraj wiadomości jeszcze dziś.