- CategoryRentals
- AuthPAT or OAuth
Overview
Hospitable is a short-term rental PMS. The integration connects on /integrations in the dashboard: click the Hospitable card and the 'Connect Hospitable' modal opens. There are two paths through the same card. A Personal Access Token path (paste one Access Token issued inside Hospitable, used as the bearer for property catalog and guest messaging). A partner OAuth path (click Connect, approve MessageMind on Hospitable's consent screen, return to /hospitable-connect, then land back on /integrations?hospitable=connected). If a Hospitable messaging channel is already connected on the same account, the modal replaces its usual copy with 'Your Hospitable channel is already connected. Click Connect to enable the integration using that connection. No extra sign-in or token is needed.' and Connect reuses the channel through /integration/hospitable/from-channel without a sign-in or token.
What MessageMind can do with it
- Import your listed Hospitable properties into the AI's catalog, keyed by the Hospitable property id.
- Resolve the live property roster on demand so a new property added in Hospitable is visible without a manual re-import.
- Check real availability for a property and date window, and quote pricing for a specific stay.
- Issue a guest-facing booking link that lands on the correct Hospitable checkout.
- Look up a reservation, including its stay dates, check-in and check-out times.
- Signal and ingest guest messages so the AI can reply in-thread, with sends routed through a per-tenant and per-thread outbox that preserves message order.
- Receive reservation and property webhooks: a vendor-level POST /v1/hospitable-webhook (authenticated by the shared vendor signing secret) and a legacy per-connection POST /v1/hospitable-webhook/<connectionId> (authenticated by a per-integration token).
- Reuse an existing Hospitable messaging channel on the same account as the integration credential, so one grant covers both surfaces.
Requirements
- A Hospitable account that can either issue a Personal Access Token (under Apps, API access) or complete the partner OAuth consent on Hospitable's Portal.
- A MessageMind account registered as Short Term Rentals (the catalog import gate refuses other categories).
- For the OAuth path, the MessageMind server must have HOSPITABLE_CLIENT_ID configured. Without it the connect call returns 200 with no URL and the UI shows 'Hospitable sign-in isn't available right now. Please try again shortly.'
How to connect
- Open /integrations and click the Hospitable card. The 'Connect Hospitable' modal opens.
- If a Hospitable messaging channel is already connected, skip to Connect: the modal says 'Your Hospitable channel is already connected. Click Connect to enable the integration using that connection. No extra sign-in or token is needed.' and MessageMind POSTs /integration/hospitable/from-channel to adopt that credential.
- Otherwise, choose a path. For the token path: generate a Personal Access Token in Hospitable under Apps, API access, paste it into the Access Token field ('Paste your Hospitable Personal Access Token'), and click Connect. MessageMind runs a lightweight probe against Hospitable to validate the token.
- For the OAuth path: leave the Access Token empty and click Connect. MessageMind calls /hospitable/oauth/url?intent=integration and redirects you to Hospitable's consent screen. After approving, Hospitable sends you to /hospitable-connect, which hands you back to /integrations?hospitable=connected (or ?hospitable=error on failure, surfaced as a toast in IntegrationsV2).
- On success, the toast 'Hospitable integration connected.' is shown and the card flips to connected. On the first successful token connect, MessageMind mints a stable per-integration webhook token; the webhook URL carrying that token is the one you paste into my.hospitable.com, Apps, Webhooks for the legacy per-connection delivery path.
Authentication and permissions
- Mechanism
- Two mechanisms share the same credential slot. Personal Access Token (pasted into the Access Token field, used as the bearer on every call to the Hospitable public API). Partner OAuth2 against Hospitable's Portal (initiated at /hospitable/oauth/url?intent=integration, callback at /hospitable-connect, returning to /integrations?hospitable=connected|error).
- Credentials
- One Access Token or one OAuth grant stored on your MessageMind tenant. If a Hospitable messaging channel is already connected and reusable, that channel's credential is adopted through /integration/hospitable/from-channel instead.
Available data and actions
Reads
- Your Hospitable properties (ids, names, amenities and the facts the AI needs to describe each listing).
- Reservation details for an inbound signal or an AI reservation lookup.
- Guest messages on a reservation thread, including backfill reads where allowed by Hospitable's per-reservation read limits.
- Availability and pricing for a requested stay.
Writes
- Guest messages sent back into the reservation thread, routed through the outbox so order is preserved and the per-thread and per-account send limits are respected.
AI agent use cases
- Answer guest questions in a Hospitable thread with property-specific amenities, house rules and times, with the message appearing in Hospitable as if you had typed it.
- Quote availability and a price for a specific stay without opening the Hospitable dashboard.
- Hand a prefilled booking link to a guest in-thread so they can confirm themselves.
- Confirm an existing reservation's dates and check-in time when a guest asks mid-stay.
- Add Hospitable as the integration side of an account that already has Hospitable connected as a messaging channel, in one click, without a second sign-in.
Configuration
- A new Hospitable connection is subject to the one-PMS-per-account rule. Disconnect a different active PMS first; reconnecting an already-active Hospitable connection remains allowed.
- The per-integration webhook token is reused across reconnects, so you do not need to update the URL in Hospitable each time you reconnect.
- Hospitable rate limits apply: 2 message reads per minute per reservation, 2 sends per minute per thread, and roughly 50 sends per 5 minutes per Hospitable account. MessageMind enforces fair-share across tenants so one tenant's burst cannot starve another's replies.
- A guest reply older than a configurable staleness window is dropped from the send queue rather than delivered hours late.
- Vendor webhook deliveries at POST /v1/hospitable-webhook are refused when no vendor signing secret is configured on the server. The legacy per-connection path at POST /v1/hospitable-webhook/<connectionId> keeps working on the per-integration token.
- Available on the Starter, Professional and Enterprise plans.
Example workflows
Guest message answered in-thread
- Hospitable posts a webhook to either the vendor URL (authenticated by the shared signing secret) or the legacy per-connection URL (carrying the per-integration token).
- MessageMind verifies the signature (when a signing secret is configured) and resolves the tenant by Hospitable user UUID or property UUID for vendor deliveries, or by the per-connection token for legacy deliveries.
- The guest message is normalized, backfill reads fill in any history gaps the webhook did not carry, and the AI prepares a reply.
- The reply is queued in the outbox, which honours per-thread, per-tenant and per-account send budgets, and posted back to Hospitable.
Reuse an already-connected Hospitable channel
- You open the Hospitable integration card. The modal detects a reusable Hospitable channel on the account and replaces its copy with 'Your Hospitable channel is already connected. Click Connect to enable the integration using that connection. No extra sign-in or token is needed.'
- You click Connect. MessageMind POSTs /integration/hospitable/from-channel, which adopts the channel's credential as the integration's.
- The toast 'Hospitable integration connected.' is shown and the card flips to connected. No OAuth round trip, no pasted token.
Limitations
- The catalog import is only available to Short Term Rentals accounts.
- A Personal Access Token cannot be re-minted automatically. If Hospitable revokes it or you rotate it, you must paste the new one in the connection form.
- The partner OAuth path is only available when the server has HOSPITABLE_CLIENT_ID set; otherwise the Connect button surfaces 'Hospitable sign-in isn't available right now. Please try again shortly.'
- Message read ceilings are per reservation and send ceilings are per thread and per account, as set by Hospitable.
- Vendor-level webhook signature verification is only enforced when the vendor signing secret is configured on the server.
Troubleshooting
The toast says 'Could not start the Hospitable connection.'
The call to /hospitable/oauth/url failed before Hospitable could show the consent screen. Try again; if it persists, check that the server has HOSPITABLE_CLIENT_ID set.
The toast says 'Hospitable sign-in isn't available right now. Please try again shortly.'
The server returned 200 with no OAuth URL, which means HOSPITABLE_CLIENT_ID is not configured yet. Use the Personal Access Token path for now, or wait until the partner app is wired up.
You return to /integrations with ?hospitable=error after approving on Hospitable.
Hospitable rejected the grant or the callback at /hospitable-connect could not finalize it. Re-open the Hospitable card and click Connect to retry the OAuth round trip.
Token connect fails with a Hospitable rejection.
Hospitable refused the Access Token. Re-issue a Personal Access Token in Hospitable under Apps, API access and paste the new value.
Webhooks from Hospitable return 404.
For the legacy per-connection delivery, the URL in Hospitable must carry the per-integration webhook token exactly as issued at connect; re-copy it from the MessageMind integration page. For the vendor delivery, the server must have the vendor signing secret configured or the POST is refused.
Guest replies are delayed or marked failed.
Hospitable enforces 2 sends per minute per thread and about 50 per 5 minutes per account. The outbox parks replies instead of losing them, but a reply older than the staleness window is marked failed rather than delivered hours late.
Disconnect and reconnect
- Open Integrations and Hospitable in the dashboard and choose Disconnect. The stored token (or OAuth credential) is removed from your tenant and the AI stops using Hospitable.
- To reconnect, either paste a fresh Access Token or run the OAuth path again. The per-integration webhook token is preserved across reconnects, so the URL you pasted into Hospitable keeps working.
- If the credential was adopted from a connected Hospitable messaging channel, disconnecting the integration does not disconnect the channel; the channel keeps its own credential.