Unified Inbox

Home — Unified Inbox

Work every customer conversation — WhatsApp, Email, bot handoffs, voice calls — in one pane, with the guest's full context right next to the message.

TL;DR

  • What it is — the primary CRM workspace. A three-pane inbox: a filterable chat list on the left, the active conversation in the middle, and the guest's full context on the right.
  • Who it's for — every day user. Agents, team leads, and admins spend most of their time here.
  • Top outcome — reply to every customer within seconds, with the right context on screen, without switching apps.

At a glance

Plan tierAll paid tiers.
Who can use itAccount Owners, Admins, and Users.
ChannelsWhatsApp (Official + Unofficial), Instagram Direct, Facebook Messenger, Email, Web Chat, plus voice-call event cards from Lodgestory Voice.
IntegrationsApproved WhatsApp templates, your telephony provider, Razorpay for chat-based payments, AI Assistant for reply drafting, Bot Journeys for automation.
Top limits20 messages per page in the thread · 100 MB per attachment · 500 MB total per message · 10 files per internal note · 50 MB per note file.
APIYes — partner API for listing chats, sending messages, and managing assignments.

How to find it

Sidebar → Home. This is the default page after sign-in.

Direct URL: https://app.lodgestory.com/crm/

When you first land on Home with no chat selected, the chat list is in focus and the middle pane shows an empty state. Clicking a chat adds a ?chatId= to the URL so you can share direct links to conversations with your team.

Keyboard shortcuts:

  • Ctrl/Cmd + K — open global search.
  • / — focus the chat-list search box.
  • @ inside the composer — trigger team-member mention autocomplete (in internal notes).
  • / inside the composer — open the canned-response picker.

📸 [SCREENSHOT: home-nav.png — sidebar with Home highlighted]

What is Home?

The problem it solves

If your customers can reach you on WhatsApp, email, Web Chat, and through a bot that sometimes needs a human — and every channel is its own app — the working pattern is five tabs open, three conventions for typing, four places to leave an internal note, and endless switching. Messages slip through the cracks. Customers feel like strangers because their last email is in one place and their last WhatsApp is in another.

Home collapses that into one pane. Every inbound message, from any channel, lands in the same list. Every outbound reply goes through the same composer. Every guest has one record on the right — with their channel history, linked tickets, call history, and notes all visible at once.

What you get

  • One list, all channels. WhatsApp Official, WhatsApp Unofficial, Instagram Direct, Facebook Messenger, Email, and Web Chat threads in the same queue — filterable by status, assignee, channel, priority, date range, labels, and free-text search.
  • Instant updates. The active chat updates in under a second. The chat list refreshes every few seconds. Outbound messages appear the moment you click Send, with a clock icon until the server confirms delivery.
  • Full guest context. The right panel surfaces the guest's contact record, channel, labels, linked tickets, notes, scheduled messages, call history, and bot-journey goals hit — all without leaving the screen.
  • AI Assistant for reply drafting. The guest-details panel drafts a reply based on the conversation so far. Review, edit, and paste into the composer.
  • Internal notes with teeth. Mention teammates with @, attach up to 10 files (50 MB each), and categorise notes as General, Important, or Follow-up.
  • Template-aware composer. When a WhatsApp conversation passes the 24-hour window, the composer suggests switching to an approved template so your reply still gets through.
  • State and workflow built in. Every chat carries a workflow state — New, In progress, Awaiting guest, Resolved, or whatever your team defines. Transitions are logged with the responsible user and a note.
  • Scheduled messages. Queue an outbound message for a future time. It appears in the guest panel's Scheduled list until it fires.
  • Click-to-call from every chat. A phone icon in the chat header dials the guest over your telephony provider, with recording and call-event cards posted back into the thread.

How it's different

  • Every channel is a first-class citizen, not a plug-in. Voice, email, WhatsApp, and Web Chat all live in the same list with the same composer and the same guest context.
  • Bots + AI + humans on one canvas. A conversation can start with a bot, escalate to an AI agent, and hand off to a human team member — all on the same thread, with no context lost.
  • Safety around rapid chat switching. Clicking between conversations quickly never leaks one chat's messages into another — the inbox checks and double-checks which chat you're looking at before it renders.
  • Optimistic UI. Outbound messages appear in the thread the moment you click Send. You never sit looking at a blank screen waiting for a network round-trip.

Customer scenarios

  • Front desk at a multi-property villa operator. Three agents staff WhatsApp and email across eight properties. Filters let them split the queue by property label; each one claims conversations and moves them through the workflow from New to Resolved. The guest-details panel surfaces the booking reference, so an agent knows which villa before typing a word.
  • Growth team running a campaign. A broadcast creates an inbound flood when thousands of recipients reply. Because every reply routes through the same inbox, one agent on duty handles the escalations while bot journeys field predictable replies.
  • Bot handoffs that keep context. A bot journey's hand-off step marks the chat as Agent transferred and the conversation surfaces to the assigned team — without the guest knowing a hand-off happened. The agent sees the entire bot exchange on the same thread.

How it fits with the rest of Lodgestory

Home is the centre of gravity. Bot Journeys feed it handoffs. Tickets escalate out of it. Calls show up as inline call-event cards. Campaigns generate the inbound surge the inbox absorbs. Contacts supply the guest record shown in the right panel.

📸 [SCREENSHOT: home-landing.png — three-pane layout with chat list, chat area, guest details]

Core concepts

TermWhat it means
ChatOne ongoing conversation with one customer on one channel (a WhatsApp number, an email address, a Web Chat visitor).
Conversation messageA single message inside a chat — inbound from the guest, outbound from your team, or a system event.
AssigneeA team member responsible for a chat. Chats can have multiple assignees and one designated primary.
Team assignmentA whole team assigned to a chat. Every current team member sees it in their inbox.
Workflow stateWhere the chat sits in your process — New, In progress, Awaiting guest, Resolved, and so on. Transitions are logged.
NoteAn internal, team-only message attached to a chat. Customers never see notes.
LabelA tag on the chat for filtering and segmentation (for example, VIP, Maintenance, Property A).
External itemThird-party data attached to the chat (booking reference, OTA ID, external CRM key).
Scheduled messageAn outbound message queued for a future time, visible in the guest panel until it fires.

Quick Start — work your first conversation in 5 minutes

Step 1 — Open Home

Sidebar → Home, or go direct to https://app.lodgestory.com/crm/.

📸 [SCREENSHOT: home-qs-1-empty.png — empty inbox]

Step 2 — Pick a chat

Click any chat in the left list. The URL updates with ?chatId=, the middle pane loads the conversation, and the right pane loads the guest's details.

📸 [SCREENSHOT: home-qs-2-selected.png — chat selected]

Step 3 — Claim the chat

Click the assignment pill in the chat header. Pick yourself from the team-member dropdown. Other agents see your name appear on the chat within seconds.

📸 [SCREENSHOT: home-qs-3-claim.png — claim assignment]

Step 4 — Reply

Type in the composer. Use @ to mention a teammate inside an internal note. Use / to insert a canned response. Click the paperclip to attach media. Press Send or Ctrl/Cmd+Enter.

📸 [SCREENSHOT: home-qs-4-reply.png — composer with text]

Step 5 — Move the state forward

Open the Status selector in the guest-details panel and move the chat to In progress or whichever state fits your workflow. The transition is logged automatically.

📸 [SCREENSHOT: home-qs-5-state.png — state change]

Step 6 — Leave a note for the next shift

Open the Notes dialog. Type @teammate-name, attach a file if it helps, pick the Follow-up category, and save. The mentioned teammate is notified immediately.

📸 [SCREENSHOT: home-qs-6-note.png — add note]

How it works

A new message on any connected channel flows through the same pipeline:

  1. Lodgestory receives the message from the channel.
  2. It's matched to an existing chat or a new chat is created.
  3. If a bot journey or AI agent is wired to that channel, it responds automatically.
  4. If the response needs a human — or the guest has been waiting too long — the conversation is assigned to a team or team member based on your rules.
  5. Replies from team members go out on the original channel; the composer picks the right channel automatically.
  6. The inbox of every team member with access updates within a second.

You never have to think about which channel a reply goes out on. It always matches the channel the message came in on.

Features in depth

Chat list — filtering, search, and refresh

The left pane is your queue. Each row is dense — it shows who the guest is, which channel the conversation is on, the most recent message, the primary assignee, a reply-state indicator, and an unread dot where applicable.

How the list stays fresh. The list refreshes every few seconds so new inbound messages move to the top. The currently-open conversation updates faster — messages push in live.

Load more. The list shows 25 chats per page. Click Load more to fetch the next batch.

Per-row menu. Every row has a three-dot menu with the most common per-chat actions:

  • Mark as Handled / Needs Reply — temporarily dismiss the awaiting-reply indicator until the guest replies again. Stored on your browser.
  • Mark Priority / Remove Priority — flag the chat with a red priority indicator.
  • Archive / Unarchive — move the chat out of the default view.
  • Enable Autopilot / Disable Autopilot — let the bot journey take the conversation without human intervention.

Chat-card visuals — what every pill, dot, and badge means

Each row carries several visual signals:

  • Avatar — initials with a colour derived from the guest's name, so the same guest always has the same colour.
  • Channel badge on the avatar — WhatsApp Official (green with a verified checkmark), WhatsApp Unofficial (green with phone icon), Instagram Direct (gradient badge), Facebook Messenger (blue), Email (amber with mail icon), Web Chat (indigo with globe icon).
  • Priority flag — a red flag badge when the chat is marked high priority.
  • Workflow state pill — a small outline badge showing the chat's current workflow state.
  • Amber dot — awaiting an agent reply, under an hour since the guest's last message.
  • Red pulsing dot — awaiting an agent reply for over an hour.
  • "Handled" pill — you've marked the chat as handled; resets when the guest replies again.
  • "Replied" pill — your team's message is the most recent on the chat.
  • Green unread dot — a new message you haven't opened yet.
  • Archive, Autopilot icons — shown next to the name when those are on.

Hover any dot or pill for a plain-English tooltip.

Filters

Click the filter icon to open the advanced filter panel. Filters are grouped into sections:

  • Chat properties — archived, high priority, unread.
  • Bot & sessions — bot handled, unanswered, agent transferred, session closed.
  • Assignment — assigned / unassigned, assigned to me, primary assignee only, assigned to specific users.
  • Workflow — has workflow, filter by workflow, filter by workflow states.
  • Contacts — has contacts linked.
  • Labels — has labels, filter by specific labels.
  • Channels — filter to specific channels.
  • Goal trackers — only shown when your organisation has goals configured. Compose AND rules against contact and custom fields that fired in the chat's bot session.
  • Sorting — sort by last updated, name, or created date; ascending or descending.

Filters reset on reload — they aren't persisted between sessions today.

Search

The search box above the filter panel matches across guest names, phone numbers, booking references, and other external identifiers linked to the chat.

Chat area — message thread + composer

The middle pane is the active conversation.

Message types rendered inline. Text, image, video, audio, document, location, interactive buttons, list messages, system events, and voice-call event cards all render with their native shapes. Location messages show a map link. Interactive and list messages keep their original buttons.

Pagination. Older messages load 20 at a time as you scroll up. Scroll position is preserved during load.

Composer.

  • Free text — plain text with basic formatting. Subject to the WhatsApp 24-hour window (see below).
  • Templates — open the template picker, pick a channel-approved template, fill parameters, preview, send. Templates are WhatsApp-only; email has no template flow here.
  • Canned responses — type / or use the picker to insert saved text. Canned responses are managed in Settings.
  • Media — drag-drop or pick files. 100 MB per file, 500 MB total. Multiple attachments send as separate messages.
  • Mentions in notes@ autocomplete against team members. Mentions fire a notification to the teammate.
  • Quoted replies — reply to a specific message; the original is shown as a quote card above your reply.
  • Scheduled messages — schedule a message for a future time. It appears in the guest panel's Scheduled list until it fires.

24-hour window — WhatsApp Official vs Unofficial

WhatsApp's messaging rules differ by channel type:

  • WhatsApp Official — if the last customer message was more than 24 hours ago, you need to reply with an approved template. The composer surfaces an advisory when the window has closed. If you attempt a free-text send outside the window, WhatsApp rejects it and the message lands as failed in the thread.
  • WhatsApp Unofficial — no 24-hour window. Free-text anywhere, any time. Templates are not supported on Unofficial channels.
  • Email — no window. Reply freely.
  • WhatsApp groups — supported on both channel types. Unofficial is the typical choice for group-heavy operations.

If the composer shows the 24-hour advisory on an Official chat, switch to a template. On an Unofficial chat you'll never see the advisory.

Guest details — the right panel

The right pane is everything about the guest and the conversation. It collapses to an icon on narrow screens and opens as a modal on mobile.

  • Status manager — pick the chat's current workflow state. Only valid transitions are shown.
  • AI Assistant — pick an AI agent and generate a drafted reply based on the conversation so far. Edit and copy into the composer.
  • Contact info — the guest's standard fields plus every custom field from the channel's contact template.
  • Labels manager — add or remove labels on the chat.
  • Scheduled messages list — outbound messages queued but not yet sent.
  • Call history — calls linked to this chat with duration, direction, and recording link.
  • External items — read-only third-party data attached to the chat (booking references, OTA metadata).
  • Bot journey goals — milestone events that fired in this chat's bot sessions.
  • Tickets section — tickets attached to this chat; create a new one inline; update status; assign.
  • Notes dialog — full notes UI with @mentions, media attachments, and category selector.

Call a guest from the chat

The phone icon on the right of the chat header opens a call popover. The exact controls depend on your telephony setup:

  • Provider selector appears when your organisation has more than one telephony account configured.
  • Call-mode toggle — when Lodgestory Voice is available and the softphone is registered, you can choose Browser (WebRTC in this tab) or Phone (your phone rings first, then the guest is bridged).
  • Caller-ID selector — pick which phone number the guest sees.
  • Call button — labelled Call via Browser for browser mode, Call otherwise.

In the simplest setup — one provider, one caller-ID — the popover is skipped and clicking dials directly.

The Call button is disabled in three specific cases, each with a distinct tooltip:

TooltipWhat's missing
Calling not configuredNo telephony account, or your account has no mapping for this user. An admin needs to set it up in Settings → Calling.
No phone number availableThe chat doesn't have a dialable number (for example, a Web Chat visitor whose phone hasn't been captured yet).
No caller-ID numbers assignedYour user has no caller-ID numbers allocated on this telephony account.

Once the call completes, a call-event card appears inline in the thread. See Calls for the full dialer walkthrough.

Payment-status modal

Auto-opens when your organisation is on a free plan, has an overdue bill, is suspended, or has a bill due soon. States include the free-plan upsell, pay-now prompt, suspended contact-support prompt, and a due-in-X-days warning. Backed by the Razorpay integration in Settings.

Assignment, transfer, and primary assignee

A chat can have:

  • No assignees — visible only to admins by default; shown as Unassigned.
  • Multiple assignees — any team member you pick; one can be designated primary.
  • A team — when you assign a team, every current team member is added as an assignee so they each see the chat in their inbox.

The primary assignee is shown with a crown icon in the chat header and list. The primary is the default "owner" displayed everywhere a single name is shown, and the anchor for some team rotations. All assignees — primary or not — get the same notifications.

Warm transfer — a bot journey's hand-off step transfers the chat automatically; the thread shows a handoff banner and the agent sees the entire bot exchange on the same thread.

Cold transfer — an agent picks a different assignee in the chat header; no banner, just a new owner.

De-assignment. Removing an individual assignee deletes that link. Removing a team removes every member who isn't also covered by another team assignment on the chat. Zero assignees + zero teams = Unassigned.

"Available for chats" switch

A toggle at the top-right of the inbox toolbar controls one specific thing: whether the auto-assigner will pick you as the primary assignee on newly routed chats.

  • On (green) — you're in the pool for auto-assignment.
  • Off (grey) — new chats won't auto-route to you. You still see your existing chats. Admins can still manually assign to you; you'll appear with an (unavailable) label.

The switch does not control your calling availability, your chat visibility, or whether admins can manually assign to you. Shift handover, focus time, and lunch breaks are the typical use cases.

Role-scoped visibility

This is the single most important rule about who sees what:

RoleChats visible
Account OwnerAll chats in the organisation.
AdminAll chats in the organisation.
UserOnly chats where they are assigned (primary or otherwise), or where they are a member of an assigned team.

Two consequences worth knowing:

  1. Team membership grants visibility at the time of team assignment. Adding a user to a team after the team was assigned to a chat does not retroactively give them visibility on that chat. Only chats assigned to the team after they joined will appear in their inbox.
  2. Unassigned chats are only visible to Admins and Owners. A User who applies an "Unassigned" filter sees an empty list even if unassigned chats exist.

Notes with mentions

Notes support @mentions, up to 10 attached files (50 MB each), and a category (General, Important, Follow-up). Notes are for your team only — customers never see them. Mentioned teammates get an immediate notification.

Scheduled messages

Queue a message for the future from the composer's schedule menu. It shows up in the guest panel's Scheduled list until it fires. If the WhatsApp 24-hour window has closed by send time, free-text scheduled messages won't go through — use a template instead.

Search across chats

The chat-list search covers guest name, phone number, booking reference, and last-message text. Fast enough for organisations with tens of thousands of chats.

Roles and permissions

ActionAccount OwnerAdminUser
View the inbox
See every chat in the organisation✗ (assigned chats only)
See unassigned chats
Send a message
Assign or reassign a chat✓ (on chats they can see)
Change a chat's workflow state
Add, edit, and delete notes
Create and update tickets
Send a WhatsApp template
Trigger payment-status actions

Cross-module workflows

After-hours enquiry → bot → human pickup in the morning

Overnight, a guest messages WhatsApp. The assigned bot journey qualifies the enquiry, checks availability, and sends a quote. On ambiguous intent, the journey hands off. The chat appears in Home with a handoff banner. Morning staff filter by Assigned to my team + unread and work down the list.

Modules involved: Bot Journeys → Home → (optionally) Tickets.

Campaign reply flood

A broadcast sends tens of thousands of templated messages. Replies come back over the next hour. Each reply enters the inbox; the list re-orders within a few seconds. A bot journey assigned to the channel auto-classifies replies — interested vs not interested — and moves not interested to resolved. Interested chats stay in the queue for an agent to claim.

Modules involved: Campaigns → Home → Bot Journeys → Tickets.

Escalation with full context

An agent reading a chat spots a complaint. From the guest-details panel they click Create ticket, pick a category, and assign it. The ticket carries the chat link; the chat stays in Home; the ticket lives as structured metadata around it.

Modules involved: Home → Tickets.

Limits a user will run into

LimitValue
Messages per page in the thread20 (older load on scroll)
Max media size per message100 MB
Total attachment size per send500 MB
Files per note10
Max size per note attachment50 MB
Chat-list page size25 per page, with Load more
WhatsApp 24-hour window24 hours since the customer's last message (Official channels only)
Sign-in session10 days before re-authentication

Channel count and chat-per-organisation caps are governed by your plan tier.

Errors & FAQ

You seeLikely reasonWhat to do
"Failed to load conversations"Network hiccup or expired sessionReload; sign in again if the session is stale
"Failed to load more chats"Same as above, on a page fetchClick Load more again
"Failed to sync conversations"Temporary backend issueRetry in a minute
Banner — "24-hour messaging window closed" (WhatsApp Official only)Meta's 24-hour rule appliesSend an approved template instead of free text
Message marked Failed with "Template messages are only supported for WhatsApp Official channels"You tried to send a template on an Unofficial chatSend as free text on Unofficial, or pick an Official channel
"Failed to send message"Validation (media too big, empty text, channel disconnected)Check the composer; reconnect the channel in Settings if needed
"Template not approved"Template is pending review or rejectedResubmit or pick an approved template
"Failed to upload media"File too large, unsupported formatCompress, re-encode, try again (100 MB max per file)

Frequently asked

Why do I see "No conversations" when my colleague sees plenty?
Check the active filters in the chat list. Clear filters or pick All.

Why do some messages show a clock icon?
The clock means the message is sent from your browser but not yet confirmed by the server. It resolves to a delivery tick (sent / delivered / read) within a second or two.

Why can't I type free text on an old WhatsApp chat?
The 24-hour window has closed. Use an approved template to reopen the conversation — or wait for the customer to message first.

The chat I clicked opened and showed messages from a different chat, briefly. Why?
A fast-switch race between two chats. The inbox intercepts the stale response, but the very first paint sometimes flashes. If messages don't correct themselves, reload.

Messages aren't appearing live — I have to scroll or reload.
The live connection is likely down. Messages still arrive within a few seconds via the background sync. Reload if it persists.

Media uploads fail silently.
Check file size (100 MB per file, 500 MB total). Some browsers cancel large uploads on tab switch — keep the tab focused while uploading.

Why don't I see the internal notes I just added?
Notes only appear inside the guest-details Notes dialog and as inline note cards in the thread. Reopen the Notes dialog.

Related modules & next steps