How does the AI know which house a guest is asking about?
October 14, 2026 · hosting · trust
From evidence in the message itself, never from a guess: the listing id when the message carries one, a conversation thread it has already matched once, a confirmation code it has seen alongside a routed message, or an exact match on a verified listing title. Nothing else routes. If the evidence is missing, the AI answers nobody and a human is told. If the evidence points at two houses, same. We run this on a live co-host inbox where one email address can hear about more than one listing, and the design came from asking one question: what is the worst reply this system could send? It is not a wrong fact about the right house. It is the right fact about the wrong house.
The problem starts at the second listing
With one listing there is no routing problem — every message is about the house. The moment one inbox hears about two, every inbound message carries a hidden first question that must be answered before any fact is looked up: which house is this about? Get it wrong and everything downstream is wrong faithfully. Replies are grounded in a fact sheet, so a misrouted message grounds in the wrong sheet — and the guest at the beach house gets the cabin's parking rules in a confident, well-written draft. Co-hosts and small operators hit this on day one of listing number two.
Four kinds of evidence route a message. Nothing else does.
In order: a listing id in the message, a thread the system has matched before, a confirmation code it has seen alongside a routed message, and an exact title match against a verified listing. Note what is not on the list: the sender's name, the message sounding like it is about the beach house, a model's judgment of which property is more likely. A language model is good at plausible. Routing runs on certain, so the matching is ordinary lookups against things the platform itself put in the message — no AI in the loop at the point where being almost right is the failure mode.
Conflicting evidence holds the message — even when one match looks fine
If the pieces of evidence disagree — the listing id says one house, the remembered thread says another — the message is held, even though either piece alone would have matched. An unknown listing id arriving next to a known one is also enough to hold. That sounds overly cautious until you price the two mistakes: a held message costs a human a few minutes; a wrong-house answer costs a guest standing at the wrong door with the wrong code, and costs you the review that follows. The asymmetry is the whole policy.
It only learns from messages it was certain about
Follow-ups are the hard case: the second message in a thread often names nothing — no id, no code, just "thanks, and is early check-in possible?" So when a message does route on hard evidence, the system remembers the thread and any confirmation code that arrived with it, and later messages in that thread route on the memory. The rule underneath: it only remembers from a positively routed message, never from a guess. A guess that got remembered would compound — one wrong match quietly teaching the system to misroute an entire conversation. Certainty is allowed to accumulate; doubt is not.
When nothing matches, a person hears about it
A message with no usable evidence is not answered, and it is not silently dropped either. The operator gets a short write-up: who it was from, the subject, why it could not be placed, and the first lines of the message — so a new client's first guest, or a host inquiring about co-hosting, surfaces within minutes instead of being discovered in next week's audit. Two things are dropped on purpose: platform housekeeping like payout and promo mail, and anything about a listing registered as off-limits — an operator's own home stays excluded no matter which address the mail arrived on. This is the same posture the reply engine takes when it lacks an answer: escalate, don't improvise.
Together with knowing where the facts come from, this is the unglamorous half of accuracy: the right sheet, then the right facts from it. The demo at /try is deliberately the one-house version — paste a listing and watch the fact sheet it builds. The routing above is what has to exist before house number two, and it is already running.