tenants.connectStatus
Tenants: connect status. Read-only query. See the input schema for argument details.
Input parameters
Returns object.
Output fields
| Field | Type | Required | Notes |
|---|---|---|---|
connected | boolean | yes | |
onboarded | boolean | yes | |
accountId | string · nullable | yes | |
onboardedAt | string · nullable | yes | |
hospitableRateSyncEnabled | boolean | yes | |
bookingComRateSyncEnabled | boolean | yes |
tenants.getArrivalGuideSettings
Tenants: get arrival guide settings. Read-only query. See the input schema for argument details.
Input parameters
Returns object.
Output fields
| Field | Type | Required | Notes |
|---|---|---|---|
enabled | boolean | no | |
address | string | no | |
entranceCodeName | string | no | |
helpPhone | string | no | |
keyboxCodePattern | string | no | |
wifi | object | no | |
wifi.ssid | string | no | |
wifi.password | string | no | |
steps | object | no | |
steps.location | object | no | |
steps.entrance | object | no | |
steps.room | object | no | |
steps.keybox | object | no | |
steps.enter | object | no | |
steps.rules | object | no | |
steps.wifi | object | no |
tenants.getBrandVoice
Tenants: get brand voice. Read-only query. See the input schema for argument details.
Input parameters
Returns object.
Output fields
The whole object may be null.
| Field | Type | Required | Notes |
|---|---|---|---|
description | string | yes | |
tone | enum | yes | One of: warm, professional, casual |
voiceTrainingEnabled | boolean | no |
tenants.getCalendarRoomSort
Tenants: get calendar room sort. Read-only query. See the input schema for argument details.
Input parameters
Returns object.
Output fields
| Field | Type | Required | Notes |
|---|---|---|---|
sort | enum | yes | One of: floor_number, number, type |
tenants.getPortalLayoutVersion
Tenants: get portal layout version. Read-only query. See the input schema for argument details.
Input parameters
Returns object.
Output fields
| Field | Type | Required | Notes |
|---|---|---|---|
version | enum | yes | One of: v1, v2 |
tenants.getReviewLinks
Tenants: get review links. Read-only query. See the input schema for argument details.
Input parameters
Returns object.
Output fields
The whole object may be null.
| Field | Type | Required | Notes |
|---|---|---|---|
googleMapsUrl | string | no | |
bookingComUrl | string | no | |
tripadvisorUrl | string | no | |
customUrl | string | no | |
customLabel | string | no |
tenants.getReviewRequestSettings
Tenants: get review request settings. Read-only query. See the input schema for argument details.
Input parameters
Returns object.
Output fields
| Field | Type | Required | Notes |
|---|---|---|---|
enabled | boolean | no | |
delayHours | literal | no |
tenants.get_brand_voice_stats
Returns brand-voice training readiness stats for the tenant: number of manual outbound messages eligible as style anchors (length ≥ 30 chars, within 90-day lookback), last anchor timestamp, per-channel breakdown (whatsapp / email / hospitable), and the voiceTrainingEnabled flag. Read-only — no side effects.
Input parameters
Returns object.
Output fields
| Field | Type | Required | Notes |
|---|---|---|---|
anchorCount | number | yes | |
lastAnchorAt | string · nullable | yes | |
channelBreakdown | object | yes | |
channelBreakdown.whatsapp | number | yes | |
channelBreakdown.email | number | yes | |
channelBreakdown.hospitable | number | yes | |
voiceTrainingEnabled | boolean | yes |
tenants.get_channel_import_meta
Read the current Hospitable (and future channel) import status for the tenant. Returns status ('idle' | 'running' | 'done' | 'error'), lastRunAt, importedCount, and errorMessage if the last run failed. Use this to check import progress before triggering a new import.
Input parameters
Returns object.
Output fields
| Field | Type | Required | Notes |
|---|---|---|---|
hospitable | object | no | |
hospitable.status | enum | yes | One of: idle, running, done, error |
hospitable.lastRunAt | string · nullable | yes | |
hospitable.importedCount | number | yes | |
hospitable.errorMessage | string | no |
tenants.get_email_import_meta
Read the current email (Postmark inbound) import status for the tenant. Returns status ('idle' | 'running' | 'done' | 'error'), lastRunAt, importedCount, and errorMessage if the last run failed. Use this to check email import progress before triggering a new import via triggerEmailImport.
Input parameters
Returns object.
Output fields
| Field | Type | Required | Notes |
|---|---|---|---|
status | enum | yes | One of: idle, running, done, error |
lastRunAt | string · nullable | yes | |
importedCount | number | yes | |
errorMessage | string | no |
tenants.get_faq_detection_mode
Read the tenant's FAQ detection mode: 'lexical' (trigger-phrase matching, default), 'openai', or 'voyage' (semantic embeddings). Read-only.
Input parameters
Returns object.
Output fields
| Field | Type | Required | Notes |
|---|---|---|---|
mode | string | yes |
tenants.healHospitableMessages
Tenants: heal hospitable messages. Mutation — changes data. See the input schema for argument details.
Input parameters
| Field | Type | Required | Notes |
|---|---|---|---|
lookbackDays | integer | no | Default: 60 |
dryRun | boolean | no | Default: false |
Output fields
One of 2 shapes, depending on the outcome:
Shape 1
| Field | Type | Required | Notes |
|---|---|---|---|
ok | literal | yes | One of: true |
reservationsScanned | integer | yes | |
drifted | integer | yes | |
messagesRecovered | integer | yes | |
sample | array of object | yes | |
sample.reservationUuid | string | yes | |
sample.hospitableLastMessageAt | string | yes | |
sample.foyerLastMessageAt | string · nullable | yes | |
sample.recovered | integer | yes | |
dryRun | boolean | yes |
Shape 2
| Field | Type | Required | Notes |
|---|---|---|---|
ok | literal | yes | One of: false |
reason | enum | yes | One of: no_api_key, auth_failed, api_error, internal |
message | string | yes |
tenants.importHospitableHistory
Tenants: import hospitable history. Mutation — changes data. See the input schema for argument details.
Input parameters
| Field | Type | Required | Notes |
|---|---|---|---|
lookbackDays | integer | no | Default: 90 |
Output fields
One of 2 shapes, depending on the outcome:
Shape 1
| Field | Type | Required | Notes |
|---|---|---|---|
ok | literal | yes | One of: true |
conversationsScanned | integer | yes | |
messagesInserted | integer | yes | |
messagesSkipped | integer | yes | |
errorCount | integer | yes | |
durationMs | number | yes |
Shape 2
| Field | Type | Required | Notes |
|---|---|---|---|
ok | literal | yes | One of: false |
reason | enum | yes | One of: no_api_key, auth_failed, api_error, internal |
message | string | yes |
tenants.previewHospitableImport
Tenants: preview hospitable import. Mutation — changes data. See the input schema for argument details.
Input parameters
| Field | Type | Required | Notes |
|---|---|---|---|
lookbackDays | integer | no | Default: 90 |
Output fields
One of 2 shapes, depending on the outcome:
Shape 1
| Field | Type | Required | Notes |
|---|---|---|---|
ok | literal | yes | One of: true |
conversationsScanned | integer | yes | |
messagesInserted | integer | yes | |
messagesSkipped | integer | yes | |
errorCount | integer | yes | |
durationMs | number | yes |
Shape 2
| Field | Type | Required | Notes |
|---|---|---|---|
ok | literal | yes | One of: false |
reason | enum | yes | One of: no_api_key, auth_failed, api_error, internal |
message | string | yes |
tenants.setCalendarRoomSort
Tenants: set calendar room sort. Mutation — changes data. See the input schema for argument details.
Input parameters
| Field | Type | Required | Notes |
|---|---|---|---|
sort | enum | yes | One of: floor_number, number, type |
Output fields
| Field | Type | Required | Notes |
|---|---|---|---|
sort | enum | yes | One of: floor_number, number, type |
tenants.setReviewRequestSettings
Tenants: set review request settings. Mutation — changes data. See the input schema for argument details.
Input parameters
| Field | Type | Required | Notes |
|---|---|---|---|
enabled | boolean | yes | |
delayHours | literal | no | Default: 1 |
Output fields
| Field | Type | Required | Notes |
|---|---|---|---|
ok | boolean | yes |
tenants.setVoiceTrainingEnabled
Tenants: set voice training enabled. Mutation — changes data. See the input schema for argument details.
Input parameters
| Field | Type | Required | Notes |
|---|---|---|---|
enabled | boolean | yes |
Output fields
| Field | Type | Required | Notes |
|---|---|---|---|
ok | boolean | yes | |
enabled | boolean | yes |
tenants.set_faq_detection_mode
Set the tenant's FAQ detection mode ('lexical' | 'openai' | 'voyage'). Semantic modes need the provider's API key in the server env and embeddings computed via ai_questions.regenerate_embeddings. Owner-only, mutating.
Input parameters
| Field | Type | Required | Notes |
|---|---|---|---|
mode | enum | yes | One of: lexical, openai, voyage |
Output fields
| Field | Type | Required | Notes |
|---|---|---|---|
ok | literal | yes | One of: true |
mode | string | yes |
tenants.toggleHospitableRateSync
Tenants: toggle hospitable rate sync. Mutation — changes data. See the input schema for argument details.
Input parameters
| Field | Type | Required | Notes |
|---|---|---|---|
enabled | boolean | yes |
Output fields
| Field | Type | Required | Notes |
|---|---|---|---|
ok | boolean | yes | |
enabled | boolean | yes |
tenants.triggerEmailImport
Tenants: trigger email import. Mutation — changes data. See the input schema for argument details.
Input parameters
| Field | Type | Required | Notes |
|---|---|---|---|
lookbackDays | integer | no | Default: 90 |
Output fields
| Field | Type | Required | Notes |
|---|---|---|---|
ok | boolean | yes | |
reason | literal | no | One of: already_running |
tenants.triggerHospitableImport
Tenants: trigger hospitable import. Mutation — changes data. See the input schema for argument details.
Input parameters
| Field | Type | Required | Notes |
|---|---|---|---|
lookbackDays | integer | no | Default: 90 |
Output fields
| Field | Type | Required | Notes |
|---|---|---|---|
ok | boolean | yes | |
reason | literal | no | One of: already_running |
tenants.triggerHospitableReservationImport
Tenants: trigger hospitable reservation import. Mutation — changes data. See the input schema for argument details.
Input parameters
| Field | Type | Required | Notes |
|---|---|---|---|
lookbackDays | integer | no | Default: 365 |
dryRun | boolean | no | Default: false |
Output fields
One of 2 shapes, depending on the outcome:
Shape 1
| Field | Type | Required | Notes |
|---|---|---|---|
ok | literal | yes | One of: true |
propertiesQueried | integer | yes | |
reservationsFetched | integer | yes | |
staysCreated | integer | yes | |
staysUpdated | integer | yes | |
guestsCreated | integer | yes | |
skipped | array of object | yes | |
skipped.code | string | yes | |
skipped.reason | string | yes | |
sample | array of object | yes | |
sample.code | string | yes | |
sample.room | string | yes | |
sample.action | enum | yes | One of: create, update |
sample.status | string | yes | |
dryRun | boolean | yes |
Shape 2
| Field | Type | Required | Notes |
|---|---|---|---|
ok | literal | yes | One of: false |
reason | enum | yes | One of: no_api_key, auth_failed, api_error, internal |
message | string | yes |
tenants.update-arrival-guide-settings
Replace the tenant's arrival-guide settings wholesale (address, entrance/keybox code names, wifi ssid/password, and per-step enabled/bodyTranslations/helpTranslations/photoKey/videoUrl for the 7 guide steps). videoUrl must be http(s). Owner-only, mutating — replaces the whole JSONB (read-modify-write happens caller-side).
Input parameters
| Field | Type | Required | Notes |
|---|---|---|---|
enabled | boolean | no | |
address | string | no | |
entranceCodeName | string | no | |
helpPhone | string | no | |
keyboxCodePattern | string | no | |
wifi | object | no | |
wifi.ssid | string | no | |
wifi.password | string | no | |
steps | object | no | |
steps.location | object | no | |
steps.entrance | object | no | |
steps.room | object | no | |
steps.keybox | object | no | |
steps.enter | object | no | |
steps.rules | object | no | |
steps.wifi | object | no |
Output fields
| Field | Type | Required | Notes |
|---|---|---|---|
ok | literal | yes | One of: true |
tenants.updateBrandVoice
Tenants: update brand voice. Mutation — changes data. See the input schema for argument details.
Input parameters
| Field | Type | Required | Notes |
|---|---|---|---|
description | string | yes | |
tone | enum | yes | One of: warm, professional, casual |
Output fields
| Field | Type | Required | Notes |
|---|---|---|---|
ok | boolean | yes |
tenants.updatePortalLayoutVersion
Tenants: update portal layout version. Mutation — changes data. See the input schema for argument details.
Input parameters
| Field | Type | Required | Notes |
|---|---|---|---|
version | enum | yes | One of: v1, v2 |
Output fields
| Field | Type | Required | Notes |
|---|---|---|---|
ok | boolean | yes | |
version | enum | yes | One of: v1, v2 |
tenants.updateReviewLinks
Tenants: update review links. Mutation — changes data. See the input schema for argument details.
Input parameters
| Field | Type | Required | Notes |
|---|---|---|---|
googleMapsUrl | string | literal | no | |
bookingComUrl | string | literal | no | |
tripadvisorUrl | string | literal | no | |
customUrl | string | literal | no | |
customLabel | string | literal | no |
Output fields
| Field | Type | Required | Notes |
|---|---|---|---|
ok | boolean | yes |
tenants.update_rooms
Update the tenant's room count. Sockel is 30€/mo for ≤2 rooms; each additional room is 10€/mo. The matching Stripe extra-room line item is synced best-effort; the next webhook reconciliation catches any drift. Mutating action — requires _confirm: true.
Input parameters
| Field | Type | Required | Notes |
|---|---|---|---|
rooms | integer | yes |
Output fields
| Field | Type | Required | Notes |
|---|---|---|---|
ok | literal | yes | One of: true |
stripeSync | any | yes | Raw Stripe sync result, passed through verbatim — shape is Stripe's, not ours. |