G2E 2026 · September 29 – October 1, 2026 · Strategy9 suite, The Venetian See us at G2E
Text and voice concierge

Code words and conversations

One phone number answers both texts and calls. Some messages are matched exactly and answered from a template in about forty milliseconds. Everything else goes to a model. The difference matters most when someone is standing in a hotel lobby and can’t get upstairs.

G2E 2026 · The Venetian, Las Vegas · Sept 29 to Oct 1

(725) 227-7222 Text it or call it. Same number, same knowledge of who you are.
The rule that shapes everything

Two tiers, and the guest never waits on the model

An AI that answers every message is a demo. It is also a system where the most urgent message on the property, I’m here, come get me, sits in a queue behind a language model having a think about it. So the messages that matter are not sent to a model at all.

How a message is routed

The decision happens before anything is generated

Twilio is answered immediately and empty. The reply goes out separately, so nothing a person waits for is ever queued behind a model.

Inbound text or callSignature verified, message written to the database
answered empty, ~40 ms
Is the whole message a known phrase?Exact match against the code word sets
then one of two ways
Yes: Tier 1Template plus a live value. Sent.
No: Tier 2Rate limits, then content guards, then Jack
every outbound passes through
Safety net and segment checkDraft can be rejected; text normalised so one message stays one message
and always
Logged, with a human alerted where it mattersEvery event readable; arrivals and refusals page a person
Tier 1

Code words

A code word is matched only when it is the entire message. “Where should I park?” is not a request for the suite number. That strictness is what makes a template answer safe to send without anyone reading it first. The words below are read from the running system, not typed into this page.

Printed on the mailer

Unique to one campaign, so every reply is attributable to it.

WordWhat happens
JOBFAIR JOB FAIR JOBFAIRS Tags the number as mailer-sourced, then offers both paths in a single message: a private suite hour, or the Wednesday reception. Nobody has to guess which word applies to them.
BOTH BOOK AND RSVP RSVP AND BOOK Joins the reception list and explains how to hold an hour.

The two real actions

Everything a campaign is actually asking for.

WordWhat happens
BOOK HOURS SCHEDULE TIMES Starts a booking by text or by voice. Reply with a day and a time and the hour is held. No form, no link, no app.
OPENHOUSE OPEN HOUSE RSVP Joins the reception list. Consent to be texted is asked for explicitly the first time and never assumed.

During the show

The words that carry an actual person somewhere.

WordWhat happens
HERE ARRIVED IM HERE I AM HERE LOBBY DOWNSTAIRS IN THE LOBBY WERE HERE WE ARE HERE IN LOBBY HERE NOW Highest priority path in the system. Replies with where to wait, and pages a human to come down. Also fires inside a short sentence: any of HERE ARRIVED LOBBY DOWNSTAIRS in a message of six words or fewer, so “hi, I’m here in the lobby” never reaches a model.
SUITE ROOM WHERE SUITE NUMBER ROOM NUMBER LOCATION The room number once it exists, with the escort instruction attached. Before then: an honest “we get it Monday”, and an offer to text it the moment we do.

Housekeeping

Compliance, and the words carriers treat as law.

WordWhat happens
STOP STOPALL UNSUBSCRIBE END QUIT A true opt-out. This is the carrier’s behaviour and the carrier’s word list, not ours: it is honoured before our system sees the message, and it is reversed only by the person themselves.
CANCEL CANCEL IT CANCEL THAT CANCEL THIS CANCEL HOLD CANCEL THE HOLD CANCEL BOOKING CANCEL MY BOOKING CANCEL THE BOOKING NEVER MIND NEVERMIND Abandons a booking in progress. Deliberately not an opt-out. See the findings below; this one cost us people before we caught it.
HELP INFO Who we are, where we are, and the three words worth knowing.
A code word is a tracking code as much as a command. BOOK also arrives from the website and from people who heard about the suite on the floor, so it says nothing about where someone came from. A word printed on one mailer and nowhere else does: every response to those packages is attributable to them, and no analytics product can reconstruct that after the fact.
What it looks like

Three real exchanges

Strategy9(725) 227-7222
JOBFAIR
That's our notebook. At G2E: a private suite hour Sep 29-Oct 1 or cocktails Wed 4-6. Reply BOOK, RSVP or BOTH.
Wednesday at 2
Holding Wed Sep 30, 2:00 PM PT for 10 minutes. What name should I put it under?

Tier 1 throughout. No model touched this conversation.

Strategy9(725) 227-7222
Does this work if our staff don't have company email?
That's most of who it's built for - hourly and frontline teams who've never had a corporate address. People are reached by phone, not by inbox. Want fifteen minutes in the suite to see it?

Tier 2. Not a keyword, so Jack answers, from a fixed facts block, not from memory.

Strategy9(725) 227-7222
Here
Hi Mary, welcome! Meet us at the Palazzo lobby bar. Someone is on the way down to bring you up.

Urgent priority. A person's phone rings at the same moment.

Tier 2

What happens when it isn’t a code word

Most inbound messages are sentences, not commands, and on a phone call almost all of them are. Those go to Jack, who introduces himself as what he is: Strategy9’s AI attendant. Nobody is told they are talking to a person.

He is given facts, not a personality

Every reply is generated against a block of current, literal facts: the show dates, the suite location, which hours are still open, whether this number already has a booking, and what the reception is. Availability is written in a form that cannot be misread, 6 slots OPEN, 1 booked, 7 total, because an earlier version said “6 of 7 hours open” and the model read it as six consumed.

The failure mode is invented limits, not invented features

This is the finding worth carrying into any deployment. A model that doesn’t know something rarely promises the impossible. It invents a restriction: plausible, confident, and expensive. Ours once told a caller that Tuesday was our opening day so we weren’t taking visitors then. That was not true, and it cost a booking. There is now an explicit rule against asserting any limit not present in the facts block.

Questions he refuses to answer

The audience is HR directors and the product is a hiring system, so the employment-law questions are not hypothetical: background checks, ban-the-box, I-9, ADA accommodation, wage and hour. Every one varies by state, and on tribal land by sovereign jurisdiction as well.

RefusedWhy
Employment law, gaming regulatory and compliance, legal or tax adviceA wrong answer in writing from a vendor outlives the show, and “the AI said it” is not a defence.
Prices, discounts, contract terms, or any claim about a named competitorAndrew’s job, in person.
Anything about a specific person’s employment or recordNever, on any channel.

And a safety net after the fact

A draft is checked before it is sent, not after. Profanity, sexual content, a claim about a competitor, an apology admitting fault, any price: the draft is rejected, a person is paged, and the guest gets a short honest handoff instead of silence. The rejection is logged together with the message that caused it, which is how you find out someone is probing.

The constraint that shaped the build

A guest cannot reach the suite floor alone

The Venetian’s suite floors need an escort. A room number in a text message does not get anybody upstairs. That single physical fact reorganised the whole system: the hard problem was never information, it was arrival.

So HERE is the highest-priority path in the system. Every reply that mentions visiting must also say how to get up. A booking confirmation is worthless without it, and the day-before reminder, not the confirmation weeks earlier, is where those instructions belong, because that is when they are read.

Every property has a constraint like this. A high-limit room with its own entrance. A host who has to meet someone at the door. A player who can’t be named over the radio. Find it first; it is the specification.

Honest engineering

What testing actually turned up

Every one of these looked fine in code review and failed in use. They are listed because a system like this is only credible if the failures are named.

CANCEL opted people out

Twilio’s default keyword list treats CANCEL as an opt-out, applied before our system ever sees the message. A guest mid-booking typing “cancel” to drop a hold was silently unsubscribing from everything. Fixed at the carrier, not in code.

carrier default
The model learned to parrot itself

Fallback messages were being written into conversation history labelled as Jack, so the model learned that “Andrew will text you right back” was a normal thing for it to say, and started saying it unprompted. System output is now excluded from history, and every line is labelled by who actually wrote it.

thread poisoning
Voice replies were cut, not slow

A time budget meant to bound the wait for a first word was being applied to the entire response stream, so long answers were truncated mid-sentence rather than delayed. Bounding it to the first token and re-arming took time-to-first-word from 5.6 seconds to about 0.6.

six-second budget
“Open house” was a bookable day

The phrase had been added as an alias for Wednesday so “come by on the open house day” would book. It also meant that “tell me about the open house” returned a list of available appointment times. Two layers had a claim on the same words and the parser ran first.

parser collision
A curly apostrophe doubles the bill

One character outside the GSM-7 alphabet, an em dash, a smart quote, an ellipsis, drops a text message from 153 characters per segment to 67. Every outbound message is now normalised and measured at the point of sending, and its segment count is logged.

message encoding
The pattern across all of them: building the diagnostic beat guessing at the bug, every single time. An event log ended a multi-day mystery in one query. A “send test email” button ended another in one click. Budget for the instrumentation, not just the feature.
Beyond a trade show

The same shape, pointed at your property

A trade show suite is a small, honest test of a much more ordinary problem: a guest with a phone, a question, and no patience for a menu tree.

VIP and host desk

The caller is recognised by number before they say a word: tier, host, last visit, tonight’s reservation. The routine questions never reach a person; the ones that should, ring the right host in seconds.

Arrival and escort

Any guest who has to be met, high-limit, hotel VIP, a bus group, texts one word and the right person is paged with a name and a location. Every arrival is timestamped.

Events and promotions

One code word per campaign, per property, per mail drop. Opt-in captured properly, response attributable to the piece that produced it.

After hours

The line that currently rings out, or reaches a voicemail box nobody empties, answers instead, with the facts it actually has and an honest handoff for anything else.

What carries over is the architecture, not the copy. Two tiers with the urgent path off the model; consent handled explicitly; refusals that alert rather than deflect; and an event log good enough to answer “what happened at 4:12pm” without a developer. Everything above it is your property’s vocabulary.

Try it before you believe any of this

Text JOBFAIR and see what comes back, or call the same number and ask it something awkward.

(725) 227-7222 Talk to Strategy9