Skip to content
The direct guest enquiry

The direct enquiry becomes a typed guest record before check-in.

Someone finds you at eleven at night and asks about a weekend in October. Through a booking site you would get a reservation and no email address. Here you get the dates, the party, the reason for the trip and a guest who is yours. Free to start, live in five minutes.

You add AI to a hotel by putting a conversational agent on every guest touchpoint you currently run as a form: the direct enquiry, pre-arrival requirements, in-stay problems and post-stay feedback. Each one types the guest’s own words into a structured record and posts it to your property system.

01 · They talk

Your GnosariAnswering
When are you thinking of coming, and who is travelling?
A weekend in October, just the two of us
Lovely. Is the trip for anything in particular?
It’s our anniversary, so somewhere quiet with a bath if you have one

02 · It becomes a record

dates
A weekend in October
adults
2
trip_purpose
Anniversary
room_priorities
Quiet, a bath

typed · validated · deduped

03 · Your stack acts

  • Reservations channel pinged
  • Zap into your PMS
  • Or the same via Make
  • Signed webhook at your endpoint
The process

The process this page is about

Not "AI for hospitality". One process, the one that decides whether you own your guests or rent them: the enquiry that comes to you directly, and everything you could learn from it if anyone were awake to ask.
  • Who starts it

    A guest on a phone, at night, comparing you against three other places and a booking site.

  • What it costs today

    A contact form with four boxes, an inbox nobody reads until morning, and a booking site that keeps the email address and charges you commission for it.

  • What it has to produce

    Dates, party, what the trip is for, what matters about the room, and an email address that belongs to you.

34%

of valid guest email addresses are all a hotel typically captures

Revinate

The schema

What it asks, and what it never asks

You name the fields your enquiry form already has, plus the two it does not: what the trip is for, and what actually matters about the room. It does the asking, in whatever order the conversation goes.
FieldTypeRequiredWhy it is there
guest_nametextYesIdentity on the enquiry
emailemailYesThe address a booking site would have kept
datestextYesA rough window is a real answer
adultsnumberYesWhich rooms can work at all
children_and_agestextAsked as a room question, never a personal one
trip_purposetextYesThe line an OTA never passes on
room_prioritiestextQuiet, a bath, ground floor, somewhere to work
needs_parkingbooleanDecides the arrival, and it is always asked too late
stayed_beforebooleanA returning guest handled like a stranger is the worst outcome

And what it will not do

  • It never quotes a rate, a total, a deposit, a supplement or a cancellation term, and never hints at one.
  • It never confirms, holds or promises a room, a date, an upgrade, an early check-in or a late check-out.
  • It never says whether we look full or free.
  • It never invents a room type, a facility, a capacity or a menu. Capacities in particular are never guessed at.
  • It never asks why someone needs an access arrangement, and never records a condition or a diagnosis if one is volunteered.
  • It never offers a refund, a discount or a gesture to fix a complaint. That is the duty manager’s call, and a cheap one made in a chat is worse than none.
The live run

Try the run yourself

Six moments in a guest journey, each running its own agent with its own fields. Pick one and answer it the way a real guest would, vaguely and mid-thought, and watch it ask the follow up instead of accepting the blank.
Open this one full screen
A weekend in OctoberConnecting
The live conversation is loading.
Where the records land

What reception opens in the morning

Every conversation that produced something useful arrives here as a row you can read in two seconds. Every value keeps the sentence it came from, and anything the agent itself said can never become your data.

Collected data

368 collected29 this week5 need attention

Export CSV
  • Helena Marsh Direct enquiryBooking Enquiry · 40m ago
  • Room 12 In staySomething Is Wrong · 2h ago
  • Bramwell party Wedding, 50Events and Groups · Yesterday
  • Joan Everett Pre arrivalBefore You Arrive · Yesterday
  • Anonymous guest Post stayThe Alder House · Sun

Helena Marsh

Captured 40m ago · Booking Enquiry · joina.chat

Captured data 7 of 8 fields

guest_nameHelena Marsh
emailh.marsh@example.com
datesA weekend in October
adults2
trip_purposeAnniversary
room_prioritiesQuiet, a bath
stayed_beforetrue
phoneNot captured

From the conversation

“A weekend in October, just the two of us, it’s our anniversary so somewhere quiet with a bath if you have one.”

Every value keeps the sentence it came from, and a value the visitor never said is never stored. A Gnosari cannot quote itself into your data.

From here a record can go straight on to Slack, a sheet, a Zap or your own API. The inbox is where you read them, not where they get stuck.

Where it goes next

Your property system gets the guest, not another inbox

The moment the enquiry is complete, Gnosari posts it to whatever address you give it. Signed, versioned and retried. From there it is a webhook, which reaches almost anything a hotel already runs.
POST https://hooks.zapier.com/hooks/catch/1234567/abcdef

Signed headers

webhook-id
msg_2f9a41c8
webhook-timestamp
1786518862
webhook-signature
v1,K7Qd…8xPm

Body

{
  "type": "data.collected",
  "event_id": "1b6f9c02-4d1a-4f7e-9b3c-2a5e8d0f1c44",
  "created_at": "2026-08-11T09:14:22Z",
  "payload_version": "v1",
  "data_kind": "Guest enquiry",
  "record_id": 1234,
  "attributes": {
    "guest_name": "Helena Marsh",
    "email": "h.marsh@example.com",
    "dates": "A weekend in October",
    "adults": "2",
    "trip_purpose": "Anniversary",
    "room_priorities": "Quiet, a bath"
  }
}
  • Two events

    data.collected fires the first time a Gnosari collects a new kind of data. data.updated fires when a guest corrects something.

  • Signed, so you can trust it

    Standard Webhooks HMAC-SHA256, with webhook-id, webhook-timestamp and webhook-signature on every request. Verify before it touches a reservation.

  • Quotes are opt-in

    The provenance block, the guest’s verbatim words, is absent unless you turn it on for that destination.

  • Zapier or Make

    Paste a Catch Hook URL into your Gnosari destination, then point the Zap at your property system.

    Free tier, no app to install, and it fires the moment the enquiry is complete.

    • Mailchimp
    • HubSpot
    • Salesforce
    • Stripe
  • Straight to reception

    Anything that accepts an incoming webhook takes the payload as it is.

    No middleman. The night manager sees the enquiry before the morning shift.

    • Slack
    • WhatsApp
    • Sheets
    • Twilio SMS
  • Your own endpoint

    Give us an https address, verify the signature, write it into the guest profile yourself.

    A few lines of code, and the delivery log tells you when something did not land.

    • Postgres
    • Supabase
    • Retool

And you can see every attempt

WhenEventOutcomeDetail
23:04:18data.collectedDelivered200 OK
23:04:15data.collectedFailed503, retrying in 30s
Yesterday 21:40data.updatedDelivered200 OK
Sun 10:12data.collectedDelivered200 OK

Every attempt is kept, newest first, with the reason when there is one. Failures retry on their own, and the signing secret lives in your dashboard so you can rotate it without calling anybody.

These are examples, not a partner list. Mews, Cloudbeds, Apaleo, Opera and Little Hotelier are all reachable the same way: through a Zap, or straight to an endpoint you control. If it takes an HTTP request, it takes the guest.

Two ways it can look

On your site, on a card in the room, or in a reply to a DM

Both are live right now. The widget is what a guest reaches for when the shower is cold at ten at night, which is the cheapest complaint you will ever fix. The link is what you send when somebody asks about October.
chat

The widget on your site

A button in the corner that opens into a conversation. Your logo, your colours, sitting on the pages you already have.

  • One line of HTML, anywhere on your site
  • Bubble, sidebar, sidebar-push or drawer
  • Opens over the page, closes again
conversation

A page of its own

No chat window and no widget. Your headline leads, the thread sits under it, and it reads like you asked rather than like software collecting.

  • Sent as a link, or scanned from a QR
  • Its own headline, caption and greeting
  • Every link counted separately
  • One responsive page: phone, tablet or desktop

Every screen on this page is a published Gnosari, embedded from the app. Type into any of them.

Put it on your site

One snippet, four ways to wear it

Paste one line of HTML anywhere on your site. How the widget sits on the page is a setting, not a rebuild, and you can change it after you ship.

Bubble

display_mode="bubble"

A floating button in the corner. Opens over your page and closes again. The default, and the one nobody has to be taught.

Four corners to choose from

Sidebar

display_mode="sidebar"

A fixed panel down one side, always open. For pages where the conversation is the point rather than an aside.

Left or right, any width

Sidebar push

display_mode="sidebar-push"

The same panel, but your content moves over to make room instead of being covered. Nothing on the page is ever hidden.

Left or right, any width

Drawer

display_mode="drawer"

Slides in over the page when it is called, then slides away. The middle ground between a bubble and a sidebar.

Left or right

Where else it lives

Not every conversation starts on a website

The same Gnosari, reached three other ways. A link, a code, or a piece of paper. All of them land in the same record.

01 · A link you send

joina.chat/l/your-slug

Put it in an email, a text, a booking confirmation or a signature. Each link carries its own opening line and headline, and counts its own visits, so you can tell which channel actually worked.

  • Its own greeting and headline
  • Optional expiry date
  • Counted separately

02 · A code they scan

The same link, printed

Every link comes with a QR. On a table card, a receipt, a delivery note, a door. Someone points a phone at it and the conversation starts, with no app and no typing.

  • PNG or SVG, print resolution
  • Points at the same slug
  • Old printed codes keep working

03 · A flyer you hand over

posters.gnosari.com

A builder for the printed thing itself. Pick a template, restyle it, edit the words on the page and export a print-ready poster or card with the QR already placed.

  • Posters, cards and flyers
  • Print or PNG export
  • No account needed
Whose brand it wears

Your brand, down to the font

Nobody should be able to tell it is us. Start from a curated look, mix your own colour and pattern, or set every design token yourself: every surface follows, from the widget to the conversation page to the link someone opens on their phone.

01 · Start from a preset

Twelve curated looks, each a colour and a background pattern chosen to go together. Pick one and you are done.

  • plainsky · noneCorporate or formal, or let the content lead
  • clean-dotssky · fine-dotsSaaS, B2B, dashboards
  • ocean-wavesocean · wavesWellness, travel, spa
  • forest-topoforest · topographyOutdoors, sustainability, eco
  • blueprintblue · blueprintEngineering, dev tools, architecture
  • graph-paperindigo · graph-paperEducation, finance, analytical
  • circuitteal · circuitTech, hardware, AI, electronics
  • soft-bubblesrose · bubblesFriendly, lifestyle, community, care
  • sunset-glowsunset · blobsCreative, marketing, bold consumer
  • emerald-gridemerald · gridHealth, growth, productivity
  • confettifuchsia · confettiEvents, kids, playful brands
  • mono-noiseviolet · noiseMedia, publishing, premium and minimal

02 · Or mix your own

22 colour themes and 44 background patterns, each drawn in code at four intensities. That is 3,872 combinations before you touch a single token.

22 colour themes

  • purple
  • blue
  • green
  • orange
  • pink
  • indigo
  • cyan
  • rose
  • amber
  • teal
  • fuchsia
  • sky
  • emerald
  • violet
  • sunset
  • ocean
  • forest
  • neon
  • gold
  • coral
  • lavender
  • mint

44 background patterns

  • dots
  • grid
  • diagonal-lines
  • zigzag
  • hexagons
  • triangles
  • diamonds
  • squares-rotated
  • cross-dots
  • plus-signs
  • waves
  • bubbles
  • clouds
  • topography
  • organic-blobs
  • flowing-curves
  • subtle-grid
  • circuit
  • blueprint
  • isometric
  • graph-paper
  • fine-dots
  • confetti
  • stars
  • hearts
  • sparkles
  • paper-texture
  • noise
  • chat-bubbles
  • speech-marks
  • conversation
  • messages
  • emoji-smileys
  • emoji-hearts
  • emoji-stars
  • emoji-thumbsup
  • social-likes
  • social-reactions
  • paint-splatter
  • brush-strokes
  • doodles
  • squiggles
  • party
  • flowers

Every pattern, four intensities

  • subtle
  • light
  • medium
  • strong

03 · Or set every design token

Exact hex values, fourteen fonts, bubble shape per side, corner radius, density, header and input. Explicit tokens always win over the preset. Two chats can share every line of markup and still wear two different brands: only the tokens differ.

A boutique hotel

fontFamily
Playfair Display
colorPrimary
#A16207
colorSurface
#FAF7F2
bubbles.user.radius
xl
radius
lg
Maison AurelOnline
Is late checkout possible on Sundays?
Until 2pm, and there will be coffee waiting downstairs.

A developer tool

fontFamily
JetBrains Mono
colorPrimary
#34D399
colorSurfaceDark
#0D1117
bubbles.user.radius
sm
radius
sm
relaydbOnline
Does the API rate limit per key?
600 requests a minute per key, with bursts to 1,000 for 30 seconds.

fontFamily accepts fourteen faces

  • Inter
  • system-ui
  • Roboto
  • Open Sans
  • Lato
  • Montserrat
  • Poppins
  • Source Sans 3
  • Nunito
  • DM Sans
  • Lora
  • Playfair Display
  • JetBrains Mono
  • Space Grotesk
  • radius: none · sm · md · lg · xl
  • density: compact · comfortable · spacious
  • intensity: subtle · light · medium · strong

Set with one call, or one click in the designer. Changing it later takes the same one call, and every published surface updates at once.

The alternative

Instead of what you do now

The comparison that matters is not against another chatbot. It is against the contact form and the booking site.
What changesContact formBooking siteGnosari
At eleven at nightSits in an inboxBooks instantlyAnswered, typed, delivered
Whose guest is itYoursTheirsYours
The email addressIf they typed itMasked or withheldAsked for, and kept
Why they are comingA free-text box nobody fillsNever capturedAsked, and the answer is the record
CommissionNoneEvery bookingNone
When something goes wrongYou find out in a reviewYou find out in a reviewYou find out while they are still in the room
Common Questions

Frequently Asked Questions

Everything you need to know about getting started. Can't find the answer you're looking for? Reach out to our team.

Still have questions?

Our team is here to help you get started.

Gnosari replaces the enquiry forms a hotel runs today with a conversation: the direct booking enquiry, pre-arrival requirements, an in-stay problem, a group request, a change and post-stay feedback. It asks in your voice, one question at a time, records the guest's own words as a typed record and posts it to your property system. Reservations answers a complete enquiry, and the guest's email address belongs to you, not to a booking site.

Five minutes from now the next enquiry could be yours.

Build the agent, put it on your site and in a reply to the next DM, and watch the first complete enquiry arrive. Free to start, no card.