Pravar

2023–2024Systems Design & Information Architecture

Auto Attendant

Call routing a small business could actually set up. The power was already there. Owners needed the confidence to use it.

Live at LinkedPhone

The live Auto Attendant screen in its simplest state: a business, its hours, and one default rule for business hours and one for after hours.
Live today
6 → 1
Screens to add a menu option
2 → 1
Basic and advanced setup, merged into one system
Live
On iOS, Android and web, and the base Lisa was built on
8
Interface versions tested to get there

The 1-minute summary

Loved. Powerful. Underused.

The problem
Auto Attendant let a small business answer its phone like a much larger one, and some customers chose LinkedPhone for it. Yet most accounts never went past basic setup. Adding one menu option took six screens, on a phone, between customers.
What I did
Led the redesign over about 12 months, working with the founders: the audit, the competitive study, the information architecture, eight interface versions and the component set.
What changed
Basic and advanced setup became one screen at different depths. Every option sits on one list that reads like the call, and every option is edited the same way: when, during, do.
What happened
Live on iOS, Android and web. Its components went into the design system, and Lisa, the AI receptionist, was later built into it as a new action.

Live product · Same system, two depths

Two live Auto Attendant screens for BBQ Fried Chicken. Left, the simplest setup: business hours and after hours, each with one Default Handling rule. Right, labelled advanced setup and shown scrolled across two phones, the same screen grown into a full menu: a call menu message and five numbered options, each read as Press, action and who answers, then after hours.
The same screen at two depths. Basic: a business that has only set its hours. Advanced: the same screen with a five-option menu, shown scrolled across two phones. Nobody switches to an advanced mode to get from one to the other.

Situation

A feature people feared

Valuable, and barely used past its first screen.

Auto Attendant is LinkedPhone's call menu: “Press 1 for sales”, greetings, voicemail, and calls routed to the right person. It lets a one-person business sound like a team, and for some customers it was the reason they chose LinkedPhone.

When I started, two versions existed. Customers used the live product every day: a basic setup screen, with a separate advanced one behind Call Menu Options. Next to it, a redesign was in progress that cleaned up the cards and kept the structure underneath. Neither changed why people stopped.

Audit board · The live product and the redesign in progress
The live product and the redesign in progressLeft, two screens of the live app: basic setup with Business Hours, Main Greeting, Voicemail Greeting and Call Menu Options, and the advanced call-menu screen with Open, Close and Hours tabs. Right, the redesign already underway: an Auto Attendant settings screen with Open and Closed segments, and a Call Menu Options list of ten numbered slots, six of them Inactive, Not configured.LIVE PRODUCTTwo screens, two setupsREDESIGN IN PROGRESSCleaner, but still ten fixed slots
Redrawn from the audit board. Left: the live product. Right: the redesign already underway, with ten numbered slots, six of them Inactive, Not configured (outlined).

My role

Twelve months, with the founders.

I led the redesign, working with the founders: the audit, the competitive study, the information architecture, eight interface versions and the component set that went into the design system. It shipped on iOS, Android and web.

Problem

Six screens for one option

Owners set up routing on a phone, between customers. The setup was built for someone at a desk.

Select a digit. Choose a function. Type a label. Pick who receives the calls. Set up a voicemail greeting. Then return to a list that summarised all of it as Type: Route Call, Enabled Users: 3.

Each step was reasonable. Together they were a tunnel: by the fourth screen you were configuring something you could no longer see.

Before · Adding a menu option, 1 to 6 Six screens from the live app in order: Select Digit keypad, Choose Function list, Add Label field, Select Call Recipients, the Support Team voicemail greeting and recipients, and the updated Virtual Receptionist list.
Six screens, one option. The condition (open or closed hours) and earlier choices disappear as you go.

The audit

Six places the setup lost people.

I went through the live setup screen by screen and marked where it lost people.

Audit · The live setup, annotated
The live setup, annotatedThree screens of the live app with six numbered findings: the basic setup explains routing in a paragraph; advanced setup hides behind an optional Call Menu Options row and opens a different layout; the call menu splits Open, Close and Hours into tabs with no summary; rows describe settings such as Type: Route Call rather than what a caller hears; each option is built page by page; and business hours are seven rows of days set one at a time.Basic setupAdvanced call menuBusiness hours123456
Numbered where each problem happens. The findings below follow the same numbers.
  1. The flow is described, not shown. A paragraph explains routing; nothing visualises it.
  2. Advanced setup hides behind an optional row, then jumps to a layout that contradicts what users just learned.
  3. Tabs split the flow. Open, Close and Hours each hide the others.
  4. Rows describe settings, not calls. Type: Route Call says nothing about what a caller hears.
  5. Every option is built page by page, and the condition and earlier choices drop out of sight.
  6. Hours are seven rows of days, set one at a time.

The cost ran three ways. Owners got a fraction of the value they were paying for. A feature that sold LinkedPhone sat underused. And every future feature that touched calls would inherit a structure nobody understood.

What owners said

Nobody rejected a feature once they found it. They rejected seeing it too early.

In every session, the words routing, menu options and IVR came from us first, never from them. Every advanced setup we saw started from a basic one that already worked.

“I don't mind the advanced stuff being there. I just felt overwhelmed when I tried it the first time.”
“Once the basic setup worked, I went back in and explored the menu options later.”

Decision 1

Reveal complexity, don't remove it

Could have
Copied the market's node builder, or kept the step-by-step wizard and cut features to make it simpler.
Chose
One structure for every setup, where each option opens simple and expands in place when you reach for more.
Cost
Power users wait one tap longer for the settings they use.

Why not a node builder

Node builders looked powerful in reviews and broke in testing.

Where competitors offered call routing, it was a canvas of nodes and connectors. We built concepts that way. On a phone, people spent more time learning the interface than setting up their business.

Research · Node-based call-flow builders
Node-based call-flow buildersFour published product screenshots. Quo, formerly OpenPhone: a call-flow canvas where an incoming call runs a phone menu that branches into ring users, voicemail and go-to nodes, with a configuration panel. Twilio Studio: a trigger feeding gather input, split by key press and by voice, into connect-call widgets. Dialpad: an IVR workflow tree of branch, play and transfer nodes. Aircall Smartflows: a key-press branch splitting by schedule into team and message nodes.Quo (formerly OpenPhone)CALL FLOWS · PHONE MENUTwilio StudioIVR FLOWDialpadIVR WORKFLOWSAircallSMARTFLOWS
Published screenshots from Quo, Twilio, Dialpad and Aircall. Built for an administrator at a desk, not an owner on a phone.

The third direction

The corner that mattered was empty.

The wizard was easy to start and hard to live in. The node builder was powerful and hard to start. We looked outside telecom, at Notion, Apple Home and Google Home, for products that make sophisticated systems approachable.

What carried over: show what's possible without demanding it, use mental models people already hold, and let configuration grow with the business. One trigger and one action is a complete setup. Conditions, more options and fallbacks use the same blocks when an owner wants them.

Map · The third direction
Simplicity against power, with the chosen directionA map with simplicity across and power up. Wizard setup, what we already had, sits simple but low in power. The node builder, what the market had, sits powerful but hard. Progressive disclosure fills the top-right corner, simple and powerful.SIMPLE AND POWERFULSIMPLICITYPOWERNode builderWhat the market hadWizard setupWhat we already hadProgressive disclosureSimple first, the rest on demandPositions are illustrative, from the exploration process, not measured data.
Simple to start, powerful when needed. Complexity scales with the owner's confidence instead of arriving all at once.

Decision 2

One list that reads like the call

Could have
Kept setup as a sequence of screens and polished each one, as the redesign in progress was doing.
Chose
Every option on one list, grouped by open hours and after hours, with each row stating its path: Press 2 → Route call → 3 users. No answer → Voicemail.
Cost
One list shows far more at once than a step-by-step flow. Making it scannable took eight versions.

Parallel over serial

You can read the caller's experience without opening anything.

The old setup walked you through steps in order. The new one puts every part in one place, so a scan answers the only question that matters: what happens when someone calls?

Before → After · The setup screen
The setup screen, before and afterBefore: the live basic setup screen and its separate advanced call-menu screen with Open, Close and Hours tabs, where rows read Type: Route Call. After: the whole new screen, shown at the top and scrolled down: one list grouped under Business Hours and After Hours, where each row reads as its own path, such as Press 2, Route call, 3 users; No answer, Voicemail.BEFORETwo screens and a tab barAFTEROne list, read like the callBasic setupAdvanced call menuTop of the listScrolled down
Two screens and a tab bar, against one list where the menu's structure is visible in the rows themselves.

Eight versions

From a menu index to a list shaped like the call.

The same two screens, the list and one option, eight times. Watch the header go from Virtual Receptionist to IVR Setup to Auto Attendant, and the rows from Route Call · 3 users active to Press 1 → Route call → 3 users.

V1 · Bricks

V1: an Open Hours list headed by a call menu index with five numbered options, each with a one-line summary, and Closed Hours collapsed as Same options as Open Hours. The Route Call editor is a block listing three people with an Add More button beneath it.

V1Bricks

Open hours became one list of numbered options, each with a one-line summary. Closed hours collapsed to Same options as Open Hours. The Route Call editor was a block with Add More beneath it: the brick idea's first form.

What it taughtSummary rows worked. A menu index still hid the flow behind it.

V2 · Grouped

V2: Business Hours and Team Skills tiles above Open Hours and Closed Hours sections, each with an Add call menu link, a toggle for a separate closed-hours call flow and Draft Call Flows. The option editor uses accordions: waiting and queue, routing to, simultaneous routing and option conditions.

V2Grouped

Open and closed hours as sections, each with its own Add call menu, and a toggle for a separate closed-hours flow. The option editor turned into accordions: waiting and queue, routing, routing type, conditions.

What it taughtAccordions kept context. Conditions buried at the bottom didn't.

V3 · Essentials first

V3: a home with Timings, Call Groups and Options, Open Hours showing Main Menu with 2 options active and Closed Hours showing Company Voicemail, and Enable Call Menu Options as an opt-in. The main menu opens as a sheet with a play button beside Save, and a Sales Team sheet sets routing and routing type.

V3Essentials first

Home reduced to timings, call groups and options. Call menus became an opt-in, and the menu opened as a sheet with a play button to preview it, one of the audit's new opportunities.

What it taughtEssentials first felt calm, but advanced setup was a different place again.

V4 · One list, filtered

V4: a single list of menu message and options filtered by phone number, open hours and closed hours chips, each row showing its action and hours. The option editor has an Enabled toggle, a Condition block for Open Hours 9:00 to 21:00, and Routing To.

V4One list, filtered

Every option in a single list, filtered by number, open hours and closed hours. The condition moved into the option itself: Open Hours (9:00 to 21:00), with an enabled toggle.

What it taughtOne scan answered “what happens when someone calls”. Context stayed with the option.

V5 · The grammar shows

V5: IVR Setup, where each card reads as a chain such as Press 1, Route Call, 3 Users, During Open hours, including a No Input to Route Call card. The option editor is split into Starters, Conditions, Actions and Configuration.

V5The grammar shows

Every row became a sentence: Press 1 → Route Call → 3 Users, during Open hours. No Input appeared as a trigger. The editor split into Starters, Conditions, Actions and Configuration.

What it taughtTrigger, condition, action was learnable once visible. “Starters” was our word, not theirs.

V6 · Plain words

V6: the IVR Setup list with Welcome Message, Sales Team, Company Directory, Company Address and voicemail cards, each tagged with its hours. The editor reads When Keypad Press 1, During Business Open Hours, Route to two people, and More Settings collapsed.

V6Plain words

The same structure in the owner's language: When: Keypad Press 1. During: Business Open Hours. Route to. Route type, voicemail and missed-call options folded into one More Settings line.

What it taughtThe structure stayed the same; plain language made the rule easier to scan.

V7 · Hierarchy

V7: renamed Auto Attendant. Open hours and After hours are collapsible groups; the Welcome Message is the parent and the numbered options indent beneath it. The Edit Menu Option screen shows When Open Hours, Trigger Keypad Press 2, Route Call with Change, and a voicemail greeting.

V7Hierarchy

Renamed Auto Attendant. Open hours and after hours became collapsible groups, with the welcome message as the parent and options indented beneath it, so the list is shaped like the call.

What it taughtIndentation communicates a tree without a canvas.

V8 · Defaults

V8: a Business Hours card at the top, Open Hours as a rail of numbered nodes, and a Default Handling card described as the automatic flow when no menu exists or no option is selected, with Add at the end of each group. A New Menu Option screen carries Open Hours in its header.

V8Defaults

Hours moved to a card at the top. Default Handling arrived: the automatic flow when no menu exists or no option is selected. A new option now carries its context in its header.

What it taughtThe simplest setup is just the defaults. That is how basic and advanced became one system.

Scroll to step through all eight

1 / 8

Skip

Decision 3

One grammar for every option

Could have
A separate setup screen for each option type, as the live app had for route call, greetings and voicemail.
Chose
One editor for every option, read as a sentence: when, during, do. Learn one and you've learned them all.
Cost
Route call's rarely used inputs moved one tap deeper, into More settings.

Where the grammar came from

Laid side by side, every option had the same shape.

I broke each option type into its inputs. Route call, greeting, voicemail and repeat message looked different in the app. Underneath, each had a trigger, a condition and actions, and only the actions changed.

Diagram · The option inputs pattern
The option inputs patternTop: route call before the pattern. The first pass listed routing to, routing type, option label, no response option and after call or missed call at one level; the second pass added condition or timings and a waiting message to the same flat list. Bottom: the pattern. Every option type, route call, greeting, voicemail and repeat message, shares an option label, a trigger (option number or phrase) and a condition (timings). Only the actions differ: routing to and routing type; greeting type and message; voicemail greeting and alerts; repeat number. Route call alone has more settings, no response option, after call or missed call and waiting message, and they fold away.ROUTE CALL, BEFORE THE PATTERNFIRST PASSRouting toRouting typeOption labelNo response optionAfter call / missed callSECOND PASSRouting toRouting typeCondition / timingsaddedOption labelNo response optionAfter call / missed callWaiting message setupaddedEvery input at one level.Each pass made the list longer,not clearer. Timings, the input thatdecides when an option runs at all,landed in the middle of it.THE PATTERN · ONE SKELETON, EVERY OPTION TYPERoute callGreetingVoicemailRepeat messageSAME FOR EVERY OPTIONLABELOption labelOption labelOption labelOption labelTRIGGEROption number / phraseOption number / phraseOption number / phraseOption number / phraseCONDITIONCondition / timingsCondition / timingsCondition / timingsCondition / timingsACTIONSRouting toRouting typeGreeting typeGreeting messageVoicemail greetingVoicemail alertsRepeat numberONLY THIS ROW CHANGESMORESETTINGSNo response optionAfter call / missed callWaiting message setupOnly route call has these.Most owners never need them, so they fold behind More settings.
Redrawn from the exploration board. Top: route call's first two passes, every input at one level. Bottom: the skeleton they became, identical for every option type.

The editor

The rule reads as a sentence, and opens a layer at a time.

The condition sits in the header, then the trigger, the action and the fallback. The greeting expands in place to text to speech, a voice and a player. More settings expands to ring order, a no-answer menu and a missed-call auto-reply, each marked active or disabled so its state is visible.

Live product · The option editor, read as a sentence
The option editor, read as when, during, doThe final option editor for Sales Team. Its header carries the condition, Business Hours. When: Keypad Press 2. Do: Route Call to two members, changeable in place. If nobody answers: a voicemail greeting. More settings, ring order, missed-call text back and a no-answer menu, stay folded until needed.DURINGBusiness hoursThe condition rides in the header,so context never gets lost.WHENKeypad press 2The trigger. “No input” is one too.DORoute call · 2 membersThe action, changed in place:route, play, voicemail, directory.IF NOBODY ANSWERSVoicemail greetingWhat happens next, on the same screen.MOREFolded until neededRing order, missed-call text back,no-answer menu.
When, during, do: the grammar made visible.

Outcome

What shipped

Live on iOS, Android and web.

Screens per option
6 → 1Every option edited on one screen
Setup modes
2 → 1Basic and advanced, one screen at two depths
Platforms
3iOS, Android and web
Built on it next
LisaAdded as one more action

In testing, owners came back to Auto Attendant after their first setup instead of leaving it, built rules with more conditions and branches, and opened advanced options without being prompted.

1 · The call menu

The simplest setup is just the defaults.

A business that only sets its hours already has a working setup: one default rule for business hours, one for after hours. A business with a five-option menu uses the same screen and the same blocks, and the default rule still catches every call nothing else matched.

Live product · Two businesses, one screen
The simplest setup and a full menu, on the same screenLeft, the simplest setup: business hours and after hours, each with only Default Handling. Right, the same screen with a full menu. Rules are grouped by when they apply. Each option reads as when and do, such as Press 2, Route call, 3 users, and carries its own otherwise, No answer, Voicemail plus Auto Text. Default Handling, the only rule in the simple setup, is still there, catching every call no option matched. After hours uses the same grammar with a different condition.SIMPLEJust the defaultsFULLSame blocks, more of themDURINGGrouped by when rules applyBusiness hours, then after hours.WHEN → DOPress 2 → Route call → 3 usersEvery row states its own path.OTHERWISENo answer → Voicemail + Auto TextThe fallback sits on the row it belongs to.DEFAULT HANDLINGCatches every unmatched callIn the simple setup it is the only rule.Here it is still there, underneath.AFTER HOURSSame grammar, different condition
Every label points at a real row. The dashed line joins the one block both setups share: Default Handling.

2 · One option

Every option opens a layer at a time.

An option reads when, during, do. The greeting opens in place to text to speech, a voice and a player. More Settings opens to ring order, a no-answer menu and a missed-call auto-reply, each marked active or disabled.

Live product · One option, three depths Three states of the Sales Team option: collapsed with When, Route Call, voicemail greeting and More Settings; the voicemail greeting expanded with text to speech, voice Alex, greeting text and a player; and More Settings expanded with ring order, a disabled no-answer menu and an active missed-call auto-reply.
Collapsed, greeting opened, settings opened. Nothing moves off screen to make room.

3 · Hours and ring order

Hours as time slots. Ring order in one tap.

Hours became time slots, days plus a range, instead of seven rows. Ring order opens over the option it belongs to: one by one, everyone at once, or in rotation.

Live product · Hours and ring order A New Open Hours Slot screen with day chips and from and to times, and the Ring Order sheet, open over the Sales Team option, with sequential, simultaneous and round robin routing.
A new open-hours slot, weekdays 10 am to 9 pm; and the Sales Team option with its ring order open.

4 · Missed calls

When nobody picks up, the caller still gets a reply.

Any option can send a missed-call auto-reply. Auto-replies live in one place, set for business hours and after hours, for missed messages and missed calls, and each customer gets at most one an hour.

Product · Missed-call auto-replies Three screens: an Auto Attendant option whose More Settings shows an active Auto-Reply: Missed Calls; the Auto-Replies settings for missed messages and missed calls during business hours and after hours; and the after-hours missed-call message with Send Auto-Replies switched on.
From the option, to every auto-reply in one place, to the message itself.

5 · The design system

Every block has a one-line summary and an editing state.

Auto Attendant was one of the hardest tests the emerging design system faced. It fed list structures, accordions, contextual actions and state patterns back into it, and progressive disclosure became the default answer to complexity across the product.

Components · Every block an option can hold Component cards: a When keypad selector, Route Call expanded and collapsed, Play Audio as upload, text to speech and recording, Voicemail Greeting, and More Settings with ring order, a no-answer menu and an active missed-call auto-reply.
Audio alone comes three ways: upload, text to speech, or record.

What it made possible

Lisa moved in

When LinkedPhone built Lisa, its AI receptionist, she didn't need a routing system of her own. Every option already ended in an action and a fallback, so Lisa only had to be a new action.

No answer → Voicemail became No answer → Lisa on any option, and Default Handling could hand unmatched calls to her with the owner's own instructions. Later, Lisa's own project flipped the relationship so she answers first and Auto Attendant is the fallback, and both moved into one tab, Setup. Every existing setup kept working through both changes.

Live product · Auto Attendant, with Lisa switched on Four screens: the Auto Attendant list with a Lisa handles all missed calls banner and Lisa in place of voicemail on each option; the Default Handling editor with a voicemail greeting; the same editor with Lisa handles this missed call and an empty custom instructions field; and the same with the instruction Collect preferred budget range of the customer.
The grammar didn't change; only the destination did. Read how Lisa was built.

Reflection

What I learned

What I learned

You don't have to remove power to remove fear.

Simplifying would have meant cutting features some customers chose LinkedPhone for. Revealing the same power later kept it for them and let everyone else start. That idea outlived the feature: it shaped the design system, the desktop app's structure and, eventually, Lisa.

Closing

Same system. Different depth. Owners grow inside the one they know.