A Repull entrega cada mensagem do hóspede ao teu modelo, com a conversa e a reserva associadas, e envia a resposta pelo Airbnb, Booking.com ou Vrbo. Tu trazes a inteligência; nós tratamos dos canais.
O que o teu produto ganha
O teu modelo decide o que dizer. A Repull faz-lhe chegar a mensagem e leva a resposta ao hóspede.
Um webhook assinado para cada nova mensagem, com o id da conversa, o canal, a reserva e o texto.
O histórico da conversa, a reserva com datas, hóspedes e condições da estadia, e o anúncio: uma chamada para cada.
Quando um canal reescreve uma mensagem (o Airbnb remove links e números de telefone), a resposta diz-te exatamente o que o hóspede recebeu.
Como funciona
Subscreve as mensagens de hóspedes, obtém o contexto, deixa o teu modelo escrever a resposta e envia-a. Usa o id do evento como chave de idempotência para que um webhook repetido nunca envie duas vezes.
reservation.message.received chega assinado, com threadId e reservationId.
Obtém o histórico da conversa e a reserva. Junta a tua própria base de conhecimento.
Faz POST da resposta. A Repull entrega-a no canal do hóspede e regista-a na conversa.
// api(): fetch on api.repull.dev with your API key
// 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') return new Response(null)
const { threadId, reservationId, body } = event.data
// Context: the thread so far and the booking it belongs to
const history = await api(`/v1/conversations/${threadId}/messages?order=asc`)
const booking = reservationId ? await api(`/v1/reservations/${reservationId}`) : null
const reply = await yourModel.answer({ question: body, history, booking })
const sent = await api(`/v1/conversations/${threadId}/messages`, {
method: 'POST',
headers: { 'Idempotency-Key': event.eventId },
body: JSON.stringify({ message: reply }),
})
// Airbnb strips links and phone numbers — check what the guest actually got
if (sent.contentRewritten) log('delivered as', sent.deliveredContent)
return new Response(null)
}Cobertura por canal
A cobertura é verificada na API em produção. Cobertura completa de canais e PMS
Ao lado de qualquer PMS
No Airbnb e no Vrbo, a Repull liga-se com acesso apenas de mensagens. O PMS do anfitrião continua a gerir anúncios e calendários, e o teu produto nunca lhe disputa o controlo.
Em beta: reservas, mensagens e avaliações do Booking.com, sem o anfitrião ter de retirar o fornecedor de conectividade do seu PMS.
Os mesmos endpoints e os mesmos eventos de webhook, quer o hóspede tenha reservado no Airbnb, no Booking.com ou no Vrbo. Constróis uma vez.
A API por trás
reservation.message.receivedWebhook: uma nova mensagem de hóspede, com conversa, reserva e canal.
GET /v1/conversations/{id}/messagesA conversa até agora, como contexto.
GET /v1/reservations/{id}Datas, hóspedes, condições da estadia e estado.
POST /v1/conversations/{id}/messagesEnvia a resposta, de forma idempotente.
POST /v1/reviews/{id}/replyDeixa o mesmo assistente responder a avaliações, onde o canal permite respostas.
Servidor MCP e fornecedor para AI SDKDá a um agente a Repull como ferramentas, em vez de escreveres as chamadas tu mesmo.
Começa grátis. Configura um webhook e responde ao teu primeiro hóspede ainda hoje.