The omnichannel inbox: a conversation list on the left and an open thread with Evelyn Bourque, an existing client, being helped by Meni AI to book a deep clean

One inbox for every client conversation

TLDR: Home service businesses talk to clients across texts, phone calls, voicemails, and a stack of marketplace inboxes. I designed an omnichannel mailbox that pulls every channel into one thread, attaching it to either a new lead or an existing client, with per-branch control over the lines, hours, and greetings behind it.

The Problem

One client texts on Monday, another calls on Tuesday, and another messages through Google on Wednesday.

Three, or more, separate systems not speaking to each other, and three separate systems to maintain just for client communications.

Skip straight to the shipped design
Research

Key insights about how these businesses actually communicate.

I sat with call center agents, office administrators, and owner-operators. The clearest finding was that there is no single operating model: the same feature has to work for a ten-seat call center and for a one person operator.

Who I Designed For

Three shapes of business, one feature. Each one changed a different part of the design.

Call Center Manager Multi-branch, 10+ seats

"I need the next conversation served to me, not to go hunting for it."

Office Administrator Single office, 1 to 3 admins

"We have multiple lines and multiple tools a client can message. I need it all to go into one place."

Owner-Operator Solo or small crew

"I need to know who's a hot lead or what's urgent, so I can follow up immediately."

The Solution

One mailbox. Every channel lands in it, and every message attaches to the client it came from. Plus, an AI Receptionist to help with volume and after-hours tasks.

Texts, inbound and outbound calls, voicemails, and third party tools share a single inbox.

01

Unify

Every endpoint writes into one mailbox, so there is a single place to look.

02

Resolve

Each message is matched to a client record, so scattered touchpoints collapse into one history.

03

Route

Ownership rules flex to the team, from an assigned queue down to a single owner's phone.

Systems Design

The hard part was never the inbox. It was making various different endpoints behave like one.

Each channel arrives in its own shape: a call is an event with a recording, a text is a message, a marketplace lead is a form with a message stapled to it. I normalized all of them into one message primitive, then resolved each one to a lead or a client.

A CALL from line dialled duration recording A TEXT from line dialled body media A MARKETPLACE LEAD name service needed zip · budget message One message record channel · direction · participant · body AI Receptionist after-hours · overflow Answered & logged Passed to a human Resolve the sender phone · email · marketplace lead id New lead Existing client One thread not configured if configured handled escalated no match match reply
The AI Receptionist answers first (if configured to do so), then every message resolves to a lead or a client. A reply routes back out the endpoint it arrived on, because a marketplace will only accept it inside its own thread.
Org hours · greeting · voicemail Branch A inherits org defaults Branch B sets its own Main line Truck-ad line Direct line
Lines belong to a branch, not to the business. A branch either takes the org's defaults (Branch A) or overrides them (Branch B), and the shaded lines carry that branch's own hours, greeting, and voicemail.
Shipped Design

The high fidelity surfaces: the mailbox, the thread, the dialler, the AI Receptionist, and the settings behind them.

The unified mailbox

Texts, calls, and voicemails in one list, each tagged with the channel it came in on, and filterable down to just one of them.

One thread per client

A missed call, a voicemail with its transcript, and a reply all sit in the same timeline, so anyone opening the thread sees the whole relationship. Quick actions turn it into a lead, an event, or an estimate without leaving the conversation.

A dialler built into the thread

Take and place calls without leaving the inbox. Mute, hold, forward, or transfer to whoever is free, with presence showing who is online, on a call, or out on a job. The keypad stays available for working through an IVR.

AI Receptionist

Let Meni help out with the volume. It answers messages, books appointments, creates leads, picks up the phone, and escalates to a real person when it needs to.

Snippets

Save an answer once instead of rewriting it every time. A snippet stays personal, or gets shared across the whole team.

Phone line settings

Set it once for the organization, or tailor it per branch: greeting, voicemail, ring queue, permissions and user rules, and what the AI Receptionist is allowed to handle and when it should hand off.