Kaylee console

Lodgestory CRM › Kaylee console

Kaylee works. You approve. When the AI agent in a bot journey can't answer alone it asks your team, and when a change needs a human's OK it waits for one — the console is where your team sees, answers and approves, in one tap.

TL;DR

  • What it is — a floating orb on every CRM page, the console behind it (also its own page), and an escalation ladder that puts each request in front of the right person: a card and an alert for whoever's turn it is, then the next person, then a phone call on your own numbers when nobody is online.
  • Who it's for — every team the AI agent may ask — front desk, reservations, finance — answers here; Admins decide which teams are on call, their hours and whether the phone step is on.
  • Top outcome — the agent never guesses and never acts beyond its mandate, and a human answer or approval takes one tap, so the customer rarely notices the pause.

At a glance

Plan tiersAll paid tiers — part of the Bot Journeys AI Agent step.
Who can use itEvery team member sees the console. Admins and Account Owners, the person whose turn it is, and members of the team a request is for can act on it. Settings and Teams on call are for Admins.
ChannelsEvery channel a bot journey runs on — WhatsApp, Instagram, Messenger, Email and Web Chat. Requests from email conversations reach the team the same way.
IntegrationsLodgestory Voice for the phone step — calls go out on one of your own numbers. ai_request.created, ai_request.answered and ai_request.replied under Webhooks; a partner API and MCP tools to answer, approve and ask Kaylee back from your own systems or an AI assistant.
Top limitsOne open request per conversation and two per run of the journey by default (up to 2 and 5). A request expires after 4 hours (15 minutes to 24 hours). Turn length 1 to 60 minutes; up to 3 turns before the phone; up to 5 phone attempts; up to 50 people on a team's roster. Up to 3 ask-backs per request, one open at a time, 300 characters each.
APIYes — api/wp-crm/ai-requests to list, read, answer, approve, reject and ask Kaylee back, plus six MCP tools. See API.

How to find it

  • The orb floats over every CRM page on the web. Click it to open the console; drag it anywhere — the position is remembered in that browser.
  • The console page: https://lodgestory.com/crm/kaylee, and More → Kaylee on the left rail (pin it with Customise). Both can be switched off in Settings.
  • Settings: Settings → Kaylee — https://lodgestory.com/crm/settings/kaylee (Admins).
  • In a conversation: the request card in the conversation's timeline, where the agent asked.
  • In team chat: the card posted in the team's channel.
  • In the mobile app: a banner at the top of the chat while a request is open, and the card in team chat.

📸 [SCREENSHOT: kaylee-orb.png — the orb in the corner of the inbox, amber, with a badge]

What is the Kaylee console?

The problem it solves

An AI agent that answers everything is dangerous; one that hands over at the first hard question is useless. Real conversations sit in between: the guest wants an exception to the cancellation policy, a refund of ₹8,400, a date the agent isn't allowed to promise. Until now the agent could only guess, hand the whole conversation to a human, or fire off an alert and hope.

The Kaylee console gives the agent a third option — ask a person, keep chatting, come back with the answer — and gives your team a mandate switch: changes you mark Needs approval are proposed by the agent and made only once a teammate approves them. Requests find a person on their own: whoever's turn it is gets a card and an alert, the turn passes if they don't answer, and when nobody is online the team is phoned on your own number and can answer with a keypress or a few spoken words.

What you get

  • One place for everything the AI is waiting on. A live feed of requests, answers and calls, with the conversations the AI is handling and the ones it closed today.
  • Decisions by turn, not by broadcast. One person is on the hook at a time; the turn passes on its own; the first answer wins.
  • Nobody online → the team is phoned. On your own number, in roster order, with the question read out — press 1 to approve, or record an answer and hear it back before it is sent.
  • Approve, edit or reject in one tap. The agent proposes the change and its values; you approve it as is, change the values, or turn it down with a reason only the agent sees.
  • The customer never waits in silence. The agent says it is checking, keeps helping with everything else, never guesses, and never promises a time it wasn't given.
  • Every answer reaches the customer in the agent's voice — or exactly as you wrote it, when you say so.
  • Not sure what she's asking? Ask her back. From any open request, put a question to Kaylee — "Which dates?" — and she answers you in a line or two from the conversation, or checks with the customer first. The request stays open meanwhile, and the customer never sees the exchange.

How it's different

  • It escalates like a good shift lead. Turn → next person → the phone → a fallback you chose — and it respects each team's on-call hours, so nobody is paged at 3 am unless you want them to be.
  • Approvals are policy, not the agent's mood. A change marked Needs approval can't run without a person — and when nobody answers in time it is rejected, not quietly made.
  • It lives where your team already is: the inbox, team chat, the mobile app, the phone, and your own tools through the API.

Customer scenarios

  • Finance approves a refund, Mumbai. A guest asks for a refund on WhatsApp. The agent proposes Issue refund — amount 8400 and tells the guest it has been sent for approval. Riya in Finance sees Needs your OK on the orb, changes the amount to 8,000 (the booking fee is non-refundable) and approves. The refund runs, and the agent tells the guest the amount that was approved — not the original.
  • The night desk is asleep, Goa. At 1 am a guest asks whether a late check-in at 4 am is possible. Nobody is online, so the agent's question is phoned to the on-call roster. Dev picks up, hears the question, records "Yes, the guard will let them in; ask for the room number", hears it back and presses 1. The agent relays it in its own words within the minute.
  • The team is off until nine, Jaipur. A guest asks for a group rate at 7 am. Reservations' on-call hours start at 9, so the agent tells the guest the team is back at 09:00 and will come back to them — and the request lands on the first person online at nine.
  • A question before the OK, Bengaluru. Reservations gets May I move the booking to 14 Dec? Priya isn't sure the guest means the same villa, so she asks Kaylee back: "Same villa, or any villa?" Kaylee reads the conversation — "The same one: the guest wrote 'keep the pool villa' twice" — and Priya approves. The guest sees only the confirmation.

How it fits with the rest of Lodgestory

Requests are raised by the AI Agent step's chat actions in a bot journey. They reach people through the Notifications Centre, push notifications, team chat and Lodgestory Voice, and your own systems through Webhooks and MCP.

📸 [SCREENSHOT: kaylee-console.png — the console with the stats strip and three cards: Needs your OK, Resolved, Called the team]

Core concepts

TermWhat it means
RequestOne thing the AI agent could not decide alone, numbered within its conversation (#1, #2…). It stays open until a person answers it, a teammate takes the conversation, or it expires.
QuestionThe agent needs an answer in words — a fact that isn't in its instructions or knowledge, a policy exception, a price or date it may not promise.
ChoiceThe agent offers 2 to 5 options and a person picks one.
ApprovalA change the agent may only make with a teammate's OK — a hand-over, a resolve, a stage move, a ticket, a lead, contact details, or one of your API tools marked Needs approval. The change runs only after approval.
TurnThe window one person has to answer before the request passes to the next — 5 minutes by default.
Team on callA team that takes requests, with optional on-call hours, a roster order and whether it may be phoned.
RosterThe order in which a team's members are asked and phoned, with an optional phone number per person.
FallbackWhat happens when nobody answers in time — set on the AI Agent step: hand over and file a ticket, tell the customer, or continue.
Ask backA question a teammate puts to Kaylee on an open request — "Which dates did they ask for?" — answered privately, from the conversation and her instructions, or after she has checked with the customer. One open at a time, up to three per request; the request stays open meanwhile.

Quick Start — your first approval in 5 minutes

Step 1 — Switch Kaylee on for the workspace

Settings → Kaylee. Leave Requests on, pick a Default team (where approvals go when a step doesn't name one), and keep the orb and the console page on.

📸 [SCREENSHOT: kaylee-qs-1-settings.png]

Step 2 — Put a team on call

In Teams on call, switch your team on. Leave Hours empty to be on call around the clock, or set the hours and time zone. Drag the members into the order they should be asked.

📸 [SCREENSHOT: kaylee-qs-2-on-call.png]

Step 3 — Optional: let Kaylee phone the team

Switch on Phone the team, pick one of your Lodgestory Voice numbers as the caller ID and a voice. Add a phone number next to anyone on the roster who should be rung on a different number.

📸 [SCREENSHOT: kaylee-qs-3-phone.png]

Step 4 — Tell the AI agent what to ask and what needs an OK

Open a bot journey, select the AI Agent step, switch on Chat actions, then Ask the team (who to ask, what happens when nobody answers) and, under Approvals, set Needs approval on the actions that need a person — a hand-over, a refund API tool. See Bot Journeys → Chat actions.

📸 [SCREENSHOT: kaylee-qs-4-builder.png]

Step 5 — Test, then watch the orb

In the builder's test chat, ask something only a person would know. The agent says it is checking; the Team requests panel shows the request — ask Kaylee back if you like, then answer it as the teammate and the agent continues. Deploy, and the orb turns amber the first time a live conversation needs you.

You should now see: the orb with a badge, and the request as a Needs your OK or question card in the console.

How it works

flowchart LR
    A[AI agent asks,<br>or a change needs approval] --> B[Request #1<br>card in the console and the conversation]
    B --> C[Turn 1: whoever is first on the roster and online<br>alert + phone notification]
    C -->|no answer in 5 min| D[Turn 2: the next person]
    C -->|nobody online| E
    D -->|no answer| E[Phone the roster<br>on your own number]
    E -->|nobody answers| F[Fallback: hand over + ticket,<br>tell the customer, or continue]
    C & D & E -->|first answer wins| G[The agent continues<br>own words, exactly as written, or the approved change runs]
    B -.->|Ask back: Kaylee answers you,<br>or checks with the customer first| B
  1. A request is raised when the agent can't answer from its instructions and knowledge and a person would know, or when it wants to make a change you marked Needs approval. It is numbered within the conversation, posted as a card in the console, in the conversation and in the team's team chat, and the agent tells the customer it is checking (or that the change has been sent for approval).
  2. Someone's turn. The first person on the team's roster who is online gets the turn: an in-app alert and a phone notification — "Kaylee has a question for you" or "Kaylee needs your OK" — and the orb turns red for them. The turn lasts the turn length (5 minutes by default); then it passes to the next online person, up to the number of turns you set.
  3. Nobody online, or the turns are used up: the team is phoned — straight away when nobody is online, otherwise after the step's phone after delay (10 minutes by default). People are rung one after another in roster order; if the attempt ends without an answer, Kaylee tries again two minutes later, up to the number of call attempts.
  4. Off hours. If the team has on-call hours and is off, nobody is paged or phoned until it is back; the agent tells the customer when the team returns. A request still expires on time.
  5. Need more before you answer? Ask Kaylee back. From the card or the detail, ask her a question of your own — up to 300 characters. She answers you in a line or two from the conversation and her instructions, saying plainly what she doesn't know, and never names or quotes you to the customer. If only the customer can tell her, she asks them one short question first — you see Kaylee asked the customer: … — and answers you once they reply. Asking claims the request for you; it stays open, and its turn, phone step and expiry keep running. One open question at a time, up to three per request.
  6. First answer wins — from the console, the conversation, team chat, the mobile app, the phone, the API or an AI assistant. A request somebody already handled says so to everyone else.
  7. The agent continues in the same conversation: it uses a question's answer in its own words (or sends it exactly as written), runs an approved change and tells the customer, or explains that a rejected change can't be done and offers alternatives.
  8. Nobody answers in time — every turn, the phone and the expiry are exhausted: a question expires and an approval is rejected (the change is not made). The agent applies the step's fallback: hand over to the team and file a ticket while telling the customer a teammate will follow up, tell the customer only, or continue without the answer.

Along the way, a teammate who simply replies in the conversation closes the request as handled directly and the agent stops, as with any take-over; a conversation that is resolved cancels its open requests.

Features in depth

The orb

Where to find it: every CRM page on the web, bottom corner by default.

The orb is Kaylee's presence on screen. Its colour is the one glance your team needs:

ColourMeaning
Calm tealKaylee is working — conversations are being handled and nothing is waiting on your team. The busier the AI, the livelier it moves.
AmberYour teams have requests waiting (the badge is how many), or the team is being phoned right now.
RedIt's your turn — a request is waiting on you — or a request is overdue (open for more than 15 minutes with nobody on it).
  • Drag it anywhere. It snaps to the nearest edge and stays where you left it in that browser. It is hidden on small screens — use the console page or the mobile app there.
  • Click to open the console as a panel over the page you are on; close it and you are back where you were.
  • Reduced motion in your system settings turns the animation off; the colours and badge stay.
  • Admins can switch the orb off for the whole workspace under Settings → Kaylee.

📸 [SCREENSHOT: kaylee-orb-states.png — the three colours side by side]

The console

Where to find it: click the orb, or open More → Kaylee / crm/kaylee.

The stats strip across the top:

TileWhat it counts
Live right nowConversations a bot journey is handling at this moment.
Resolved todayConversations the AI agent closed itself today.
Teams on callThe teams taking requests, each with how many members are online.
Waiting on youRequests where it is your turn, or that you claimed.

The feed below it. Open requests come first — yours first, then the oldest — followed by what happened: requests raised, answers and approvals, calls placed, conversations the AI resolved or handed over. The feed keeps 30 days.

Every request is a card:

  • Needs your OK — an approval: the proposed change in plain words with its values, and Approve · Edit · Reject · Take over.
  • A question or choice — the question, the customer's words, and Answer (or the options to tap).
  • Called the team — the phone step is running or has run, with the outcome: ☎ Finance desk · Riya, 38 s: "Yes, send the invoice again."
  • Resolved — what was answered or approved, by whom and from where, and that the agent continued.

A card for a request on someone's turn reads Riya's turn · one tap, so everyone can see who is on the hook — and anyone allowed can still answer first. A request someone has asked Kaylee back on carries the latest line of that exchange under the question — Kaylee is answering…, Kaylee asked the customer: …, or her reply.

Filters: Waiting on you · My teams · Calling · Resolved · All, and a team filter to look at one team's requests.

📸 [SCREENSHOT: kaylee-console-feed.png — the feed with a Needs your OK card showing Riya's turn]

Answering a request

Where to find it: on the card, or in the request's detail.

ActionWhat it does
AnswerType the answer to a question. The agent relays it to the customer in its own words and never names you. Switch on Send exactly as written and the agent sends your text as it is (translated only if the customer writes in another language). Up to 4,000 characters.
Pick an optionFor a choice: tap one of the agent's options.
ApproveThe held change runs as proposed, with you recorded as the person behind it — a note or system line reads "Riya (approved the AI agent's action)" — and the agent tells the customer it's done.
Edit and approveChange the values first — the amount, the team, the ticket priority — then approve. The change runs with your values, and the agent tells the customer what was approved rather than what it first proposed.
RejectNothing runs. Your reason is for the agent, never quoted to the customer; the agent says it can't be done and offers alternatives.
Ask backAsk Kaylee a question of your own before you decide — "Which dates did they ask for?", "Has this guest paid?" — up to 300 characters. She answers you on the same card in a line or two, from the conversation and her instructions, and says plainly what she doesn't know; if only the customer can tell her, she asks them one short question first and answers you once they reply. Works on questions, choices and approvals. One open question at a time, up to three per request.
Take overThe conversation is assigned to you as its owner and the request closes; the agent stops as soon as you reply, exactly as when you step into any bot conversation.
SnoozeYou're on it but need time: pushes the next step of the ladder out by 5 to 240 minutes (15 by default), so the turn doesn't pass and the phone doesn't ring meanwhile.
ReassignHand the turn to a colleague; the ladder continues from them.
ClaimMark the request as yours without answering yet — it shows under Waiting on you.
  • First answer wins. However many people see a request, the first answer, approval or rejection stands; everyone else is told it was already handled.
  • Approvals can't be withdrawn by the agent once raised; a question the customer no longer needs can be, and the card then shows it was withdrawn.
  • Ask back keeps the request open. Asking claims the request for you, but nothing pauses — the turn still passes, the phone step still runs and the request still expires on time, so snooze it if you need the time. Kaylee's reply comes to you (a bell and a phone notification), never to the customer, and she never names or quotes you to them. A question she hasn't answered when the request is resolved — by anyone, from anywhere — is closed with it.
  • Where else you can answer: the card in the conversation's timeline, the card in the team's team chat, the banner in the mobile app, the phone call, api/wp-crm/ai-requests and the MCP tools — all with the same rules. Ask back from any of them except the phone call, where you record one answer.

The request detail

Where to find it: click a card.

  • The question as the agent asked it, and for an approval the proposed change with every value, editable before you approve.
  • The customer's words that led to it — shown as what the customer wrote, to be read as information, not as instructions. The customer appears as a masked label — Sofia L., or +44 20•• ••81 — never a full number.
  • The last messages of the conversation around the time it was raised, and why the agent asked, in its own words.
  • The ask-back thread — every question put to Kaylee about this request and what came back: Kaylee is answering… while she works, Kaylee asked the customer: … when she went to them first, her reply, or closed before Kaylee replied when the request was settled meanwhile. Ask another from here. The thread stays readable once the request is resolved.
  • The delivery timeline: when the turn was assigned and to whom, when it passed, who was notified, the team chat post, each phone attempt — ringing 3 people (attempt 1), answered / no answer / declined / voicemail / unclear — each ask-back and Kaylee's reply, the answer, and when the change ran.
  • Open the conversation from the detail at any time.

📸 [SCREENSHOT: kaylee-request-detail.png — a request with the customer quote, the proposed change and the delivery timeline]

Workspace settings

Where to find it: Settings → Kaylee (Admins).

SettingWhat it meansDefault
RequestsThe workspace switch. Off, the AI agent is not offered Ask the team, and a change marked Needs approval is refused rather than made — the agent carries on without it and never pretends it was done.On
OrbShow the orb on CRM pages.On
Console pageShow the dedicated page and its rail entry.On
Default teamWhere approvals go when the AI Agent step doesn't name a team under Ask the team, and where a request goes when the conversation has no team of its own.—
Turn lengthHow long one person has before the turn passes. 1 to 60 minutes. A step can override it.5 minutes
Turns before the phoneHow many people are asked in turn before the phone step. 0 means phone straight away (when the phone is on). 0 to 3. A step can override it.2
Phone the teamSwitch the phone step on for the workspace. Each team can still opt out, and each step can switch it off.Off
Caller IDThe number the calls come from — one of your Lodgestory Voice numbers.—
VoiceThe voice that reads the question out.Your workspace's default voice
Ring secondsHow long each person's phone rings before Kaylee moves to the next. 15 to 45.25
Call attemptsHow many times the roster is rung through, two minutes apart, before the fallback. 1 to 5.2

Teams on call

Where to find it: Settings → Kaylee → Teams on call (Admins).

Every team in your workspace is listed. A team you haven't configured still receives requests — it is treated as on call around the clock, asked in the team's own order, and phoned if the phone is on. Configure a team to shape that:

SettingWhat it meansDefault
On callThe team takes requests under these settings.Off (unconfigured teams behave as always on call)
PhoneKaylee may phone this team. Turn it off for a team that should only be paged on screen.On
HoursA weekly schedule with a time zone. Empty means always on call. Off hours, nobody on the team is paged or phoned until the next slot; the agent tells the customer when the team is back — "the team is back at 09:00 Kolkata on Monday".Always
Roster orderDrag the members into the order they should be asked and phoned. Only members of the team can be on it; up to 50.The team's own order
Phone overridePer person: a number to ring instead of their usual softphone or follow-me number.—

Who gets the turn. People named on the step come first, then the roster in order, then the rest of the team (whoever has gone longest without receiving a chat first), then the team's manager — skipping anyone who isn't online (Lodgestory open in a tab or the app in the foreground, and not marked unavailable for chats). Each person gets the turn once per request.

Who is phoned. The roster in order, using any phone override, then the rest of the team. A person needs a Lodgestory Voice agent with an extension or a number to be rung; up to 10 people are rung per attempt.

📸 [SCREENSHOT: kaylee-teams-on-call.png — a team with hours, a drag-ordered roster and a phone override]

The phone call, step by step

What a teammate hears when nobody online has answered and the phone step runs:

  1. Your phone rings from your workspace's own number — the caller ID set in Settings — on your softphone, your follow-me number or the override on the roster.
  2. "This is Kaylee from Villa Amara. I have a question from a customer conversation. Press 1 to hear it." (For an approval: "An action in a customer conversation needs your approval. Press 1 to hear it.") Press 1. Nothing is read out until someone presses 1, so a voicemail never hears the question — Kaylee simply moves to the next person.
  3. The question: "In a conversation with Sofia L. on WhatsApp: The customer wrote: 'Can I check in at 4 am?'. My question for you: Can we allow a 4 am check-in on Saturday?"
  4. Then, depending on the request:
    • Approval — "Press 1 to approve, 2 to reject, or 3 to hear it again."
    • Choice — "Press 1 for Yes with a surcharge. Press 2 for No. Press 9 to hear it again."
    • Question — "After the beep, say your answer for the customer, then press the pound key." Speak (up to 90 seconds), press #. "Here is what I heard." Your recording plays back. "Press 1 to send this answer, or 2 to record it again."
  5. "Thank you. I will get back to the customer now. Goodbye."

Your spoken answer is turned into text and becomes the request's answer; the card shows who answered and how long it took — Finance desk · Riya, 38 s — and the agent continues with the customer within moments. If nothing usable was heard, the attempt counts as unclear and Kaylee rings again later. Declining, not answering or reaching voicemail moves Kaylee to the next person; when the whole roster has been tried, the next attempt comes two minutes later, up to the Call attempts setting, and then the step's fallback applies.

These calls are Kaylee's, not a customer's: they don't appear in your Calls history and don't fire call webhooks. Test runs in the builder never phone anyone.

Roles & permissions

ActionAccount OwnerAdminUser
See the orb and the consoleYesYesYes
Answer, approve, edit, reject, ask back, take over, snooze, reassignYesYesWhen it's their turn, they claimed it, they were named, or they are on the team it's for
Answer a phone call from KayleeYesYesYes (when on the roster)
Change Settings → Kaylee and Teams on callYesYesNo
Answer through the API or an AI assistantYesYesNo

A request for another team says so when a User who isn't on it tries to act; Admins and Account Owners can act on any request.

Connections — Workflows, Integrations & Events

End-to-end workflows

A refund that needs Finance

A guest on WhatsApp asks for a refund. The AI Agent step has your Issue refund API tool set to Needs approval. The agent proposes the refund with the amount, tells the guest it has been sent for approval, and the request lands on Finance: a card in the console, an alert for whoever's turn it is, a card in Finance's team chat. Riya edits the amount and approves; the refund runs with her as the approver, the agent tells the guest, and your accounting system learns about it through ai_request.answered.

Modules: Bot Journeys → Kaylee console → Team chat → Webhooks.

Nobody online, so the team is phoned

At night a guest asks something only the duty manager knows. Nobody has Lodgestory open, so the request goes straight to the phone: the on-call roster is rung on your own number, the manager presses 1, records an answer, hears it back and sends it. The agent relays the answer in its own words. Had nobody picked up after the attempts, the step's fallback would have handed the conversation to the team with a ticket and told the guest a teammate will follow up in the morning.

Modules: Bot Journeys → Kaylee console → Lodgestory Voice → Tickets.

Upstream & downstream connections

Kaylee consumesKaylee emits
Requests from the AI Agent step's chat actions (Ask the team, Approvals)Cards in the console, the conversation and team chat; in-app and phone notifications
Team membership, on-call hours and who's online from Teams and Team Chat & PresencePhone calls through Lodgestory Voice on your own numbers
Answers — and ask-backs — from the console, the conversation, team chat, the mobile app, the phone, the API and MCPai_request.created, ai_request.answered and ai_request.replied webhooks; the agent's next turn in the conversation

Event reference

EventWhen it firesPayload summarySubscribe from
ai_request.createdThe agent raised a question, a choice or an approval.The request: number, kind, question, the customer's words, the proposed change, the team it's for, expiry.Webhooks
ai_request.answeredThe request was answered, approved or rejected by a person, or expired, was auto-rejected, cancelled, handled directly or taken over.The request with its status, answer or decision, who and from where, and whether the change ran.Webhooks
ai_request.repliedKaylee replied to a teammate's ask-back — answered them, or asked the customer about it first. The request is still open.The request with its ask_backs thread; the last entry is the one that changed.Webhooks

Payload fields: Webhooks API reference → ai_request.

Limits a user will run into

LimitValue
Open requests per conversation1 by default, up to 2 (set on the step)
Requests per run of the journey2 by default, up to 5 (set on the step)
Request expiry4 hours by default, 15 minutes to 24 hours (set on the step)
Turn length5 minutes by default, 1 to 60 minutes (workspace default, step override)
Turns before the phone2 by default, 0 to 3 (workspace default, step override)
Phone after (turns used up)10 minutes by default, 0 to 2 hours (set on the step)
Ring seconds per person25 by default, 15 to 45
Call attempts2 by default, 1 to 5, two minutes apart
People rung per attemptUp to 10
Roster sizeUp to 50 per team
Named people on a stepUp to 20
Question length500 characters; a spoken question is cut at about 780 characters
Answer length4,000 characters typed; 90 seconds spoken
Ask-backs3 per request, one open at a time; 300 characters each. Kaylee's reply is a line or two, up to 600 characters
Snooze5 to 240 minutes
Feed history30 days
OverdueA request open for more than 15 minutes with no move

Errors & FAQ

The orb isn't showing.
Check Settings → Kaylee → Orb is on, and that the window is wide enough — the orb is hidden on small screens. The console page and the mobile app still work.

I answered but it says the request was already handled.
Someone else — a teammate, the phone, an automation through the API — got there first. First answer wins; the card shows who.

The agent didn't use the answer.
Open the conversation's notes. If the conversation had moved on when the answer arrived — a teammate took over, it was resolved, the journey left the step — the answer is left there as an internal note, "AI agent's request #1 … — Answer: … Not acted on by the agent because …", and the conversation's owner is alerted. An approved change is not made in that case. If the customer's messaging window had closed (WhatsApp, Instagram and Messenger: 24 hours after their last message), the agent keeps the answer and uses it on the customer's next message; the note says so.

Kaylee said she couldn't answer my question.
She answers an ask-back only from the conversation and her instructions — never a guess — so when the answer isn't there she says so. If the customer is the only one who can tell her, she asks them one short question first (Kaylee asked the customer: …) and answers you once they reply; until then your question shows as open. "Kaylee can't answer this right now" means the conversation had moved on before she could — a teammate is handling it, it was resolved, or the journey left the step — and the request itself is untouched: answer it, take over, or let it run its course. "Kaylee couldn't get to this one — the conversation was busy" means the step was busy with the customer for a couple of minutes and gave up — ask again. Up to three questions per request, one at a time.

Nobody was phoned.
Phone the team needs: Phone the team on under Settings → Kaylee with a caller ID; Phone on for the team under Teams on call; Phone the team on for the step; the team on call at the time; and at least one person on the roster (or in the team) with a Lodgestory Voice agent and a number or extension. Requests from test runs never phone.

Why wasn't anyone's turn assigned?
Nobody on the team was online — Lodgestory open and not marked unavailable for chats — or the team was off hours. Off hours, the first turn is assigned when the team is back; otherwise the phone step runs (or, with the phone off, the request waits in the console and then falls back).

A request expired although I saw it.
A request expires after the step's expires after (4 hours by default) whatever stage it is at. Snooze a request you are working on so the ladder knows.

Can the customer see the request or the teammate's name?
No. The customer sees only the agent's replies; the agent never names teammates or quotes them as people, and a rejection's reason stays with the agent. The console shows the customer as a masked label.

Can I answer from my phone without the app?
Yes — when Kaylee phones you. Otherwise use the mobile app's banner in the chat, or the card in team chat. The call records one answer; to ask Kaylee back, use the app, the console or team chat.

API

All endpoints live under api/wp-crm/ai-requests/{organisationId} and need a bearer token for an Admin, Account Owner, or bot user (how to get one). Interactive reference: https://api.lodgestory.com/api/docs/public → WP CRM — AI Requests. Subscribe to ai_request.created under Webhooks to learn about new requests the moment they are raised, then answer them here.

EndpointWhat it does
GET /List requests, newest first — the pending ones by default. status filters (PENDING, ANSWERED, APPROVED, REJECTED, EXPIRED, CANCELLED, HANDLED_DIRECTLY, TAKEN_OVER, or ALL); since keeps only requests raised after that time; limit (default 50, up to 200) and offset page through. Returns requests, total, limit and offset.
GET /{requestId}One request with its current status and outcome.
POST /{requestId}/answerAnswer a question or a choice: text (up to 4,000 characters; for a choice, an option's label picks that option) and optional verbatim — true means the agent sends your text to the customer exactly as written. Questions and choices only.
POST /{requestId}/approveApprove a held change — as proposed, or with editedArgs (the values to run with, same keys as the request's action.args). The change runs and the agent tells the customer. Approvals only.
POST /{requestId}/rejectReject a held change: nothing runs. Optional reason, for the agent — never quoted to the customer. Approvals only.
POST /{requestId}/ask-backAsk Kaylee a question about the request before you decide: text (up to 300 characters). Questions, choices and approvals. Returns the request record with the new entry in askBacks; Kaylee's reply lands on the record within moments — or once the customer answers, when only they could tell her — so read the request again, or subscribe to ai_request.replied. One open question at a time, up to three per request.
  • First answer wins. A request somebody already handled returns 409. Answering an approval, or approving a question, returns 400.
  • Ask back returns 409 when the request is already handled, when Kaylee is still answering the previous question, or at the three-question limit — the message says which — and 400 for empty text.
  • What you get back is the request record — the same facts as the ai_request webhook object in camelCase: aiRequestId, seq, kind, status, stage, question, customerQuote, options, action, answer, decision, editedArgs, answerVerbatim, chat, target, turn, resolvedVia, resolvedByUserId, resolvedAt, executionStatus, expiresAt, createdAt, updatedAt, and askBacks — the ask-back thread, oldest first, each with n, question, askedByUserId, askedVia, askedAt, status (OPEN, ASKED_CUSTOMER, ANSWERED or CLOSED), answer, answeredAt and answeredBy (KAYLEE, SYSTEM or null).
  • After an approval the change runs inside the conversation right after your call returns; read the request again for executionStatus DONE or FAILED.
  • Rate limits: 60 calls a minute per endpoint (120 for reading one request).

AI assistants (MCP): the same six actions are available to Claude, ChatGPT or any MCP assistant connected to your workspace — ai_requests_list, ai_request_get, ai_request_answer, ai_request_approve, ai_request_reject, ai_request_ask_back. See AI assistants (MCP).

Changelog

  • Oct 2026 — Ask back: on any open request a teammate can ask Kaylee a question of their own — up to 300 characters, one at a time, three per request — from the console, the request card in the conversation, team chat, the mobile app, POST …/ask-back on the API and the new ai_request_ask_back MCP tool. She answers privately from the conversation and her instructions, or checks with the customer first; the thread shows wherever the request does, the asker gets a bell and a phone notification, and ai_request.replied delivers her replies to your systems. The AI Agent step also gained Facts to collect first and remembers the team's answers within a step — see Bot Journeys → Chat actions.
  • Oct 2026 — Kaylee console launched: the AI Agent step can ask your team and hold changes for approval; requests escalate by turn, then phone the on-call roster on your own numbers when nobody is online; the orb, the console (panel and page), cards in the conversation and team chat, a banner in the mobile app, Teams on call with hours and rosters, ai_request.created / ai_request.answered webhooks, the api/wp-crm/ai-requests API and five MCP tools.

Related modules & next steps


Did this page help you?