What it does
The Teams IVR front door. An auto attendant answers a call, plays a greeting, and sends the caller somewhere based on time of day, holiday schedule, a DTMF or spoken menu choice, or a directory lookup by name or extension.
Key facts
- Menu keys are 0–9,
*and#. Mappings don't have to be contiguous — you can use 1, 2 and 9 and skip the rest. - Greetings are either an uploaded audio file (WAV, MP3 or WMA, 5 MB max) or text-to-speech typed into the portal (1,000 characters max). TTS doesn't translate — you type the prompt in the language the AA is set to.
- 54 languages/locales for TTS, but only 14 support speech recognition (English UK/US/AU/CA/IN, French, Italian, Japanese, Portuguese (Brazil), Spanish, Chinese Simplified). Pick a language without speech recognition and voice input is disabled and dial-by-name becomes keypad-only.
- Default business hours are 09:00–17:00 every day. You can add multiple time ranges per day for lunch closures; anything outside them is after-hours. One after-hours call flow per AA.
- Holidays: up to 20 holiday sets per AA, 50 holidays per set, each with its own call flow. Holidays are built separately under Voice > Holidays and then attached.
- One directory search mode per AA — dial by name or dial by extension, not both. Default dial scope is all online users; you can include/exclude using Microsoft 365 groups, distribution lists or security groups. Exclude wins if a user is in both.
- New users can take up to 36 hours to appear in the directory, and anyone hidden from the Exchange GAL is excluded.
- Destinations: person in the organisation (voice-enabled), voice app (AA or CQ directly), resource account, external number, shared voicemail (Microsoft 365 group), or an announcement that returns to the menu.
New-CsAutoAttendant -UserNameExtensionappends office or department to dial-by-name results — PowerShell only.- Up to 15 authorized users per AA; they need both the authorized-user assignment and a Teams voice applications policy to change anything.
- The AA diagnostic at aka.ms/TeamsAADiag checks whether an AA can receive calls.
When to use / skip
Use one for any published number that needs out-of-hours handling, a holiday closure or a simple "press 1 for sales" split. The holiday and business-hours logic is the bit people underestimate — even a single-department number usually wants an AA in front of the queue so you can close it on bank holidays without touching the queue.
Skip deep menu trees. Three levels of IVR on Teams native is technically possible through nesting but painful to maintain, has no visual designer, and reporting across nested AAs is thin. If the brief includes data dips, caller identification against CRM, or conditional routing on anything other than time and keypress, you're into certified contact centre or Teams Phone extensibility territory. Microsoft's newer Teams Phone Agent (AI-driven, Frontier preview at time of writing) is worth watching for conversational self-service, but don't design a production service around preview features.
Configuration decisions
- Time zone per AA. Every AA has its own; for a UK client with an Irish or EMEA site, build per-site AAs rather than one AA with odd hours.
- Holiday sets: one shared "England & Wales bank holidays" set reused across AAs, plus site-specific sets for Scotland/Northern Ireland and ad hoc closures. Agree who updates them every year.
- Dial by name vs menu: Microsoft's own advice is to set directory search to None on an AA with menu keys (keys are matched first and callers get transferred before finishing a name) and put directory search on a separate AA reached via a key.
- Operator: decide who it is and map it to 0. If the operator key isn't mapped, the "Operator" voice command doesn't work either.
- Audio vs TTS: recorded prompts from a voice artist sound better; TTS is easier for clients to change themselves. Many clients go TTS for holiday messages and recorded for the main greeting.
- Delegated admin: whether reception/team leads become authorized users, and which voice applications policy they get.
Gotchas
- Dial scope changes and new starters aren't instant — up to 36 hours. Expect a "the new MD isn't in dial-by-name" ticket on go-live day.
- Users hidden from the GAL vanish from dial-by-name. Shared mailboxes and leavers aside, this occasionally catches executives whose PAs hid them on purpose.
- Speech recognition isn't available for Welsh, German, Dutch or Polish among others. Bilingual Welsh/English AAs are menu-and-keypad only.
- Shared voicemail to a Microsoft 365 group needs "Let people outside the organization email this team" enabled in the Microsoft 365 admin center, or messages silently go nowhere.
- External-number transfers from an AA are an outbound PSTN call on behalf of the resource account. Since 1 November 2025 Calling Plan numbers need pay-as-you-go or Communications Credits on that resource account for this to work.
- Don't use special characters in voicemail greeting text — Microsoft lists it as a known issue.
- A holiday set edit changes every AA it's attached to. Good for bank holidays, bad when one site wants an extra closure day.
Consultant notes
- Build a call-flow diagram per published number before you touch the portal. AAs, holiday sets and queue exception paths become a web quickly, and nobody can read it back from the admin center.
- Name things predictably —
AA-UK-Main,CQ-UK-Sales— and match the resource account display name, because that's what agents see on toast. - Hand clients a short runbook for holiday updates, including the Christmas closure. It's the change they'll forget.
- Test after-hours and holiday flows by temporarily shifting hours rather than waiting for 17:01.
- For numbers ported from a legacy PBX, replicate the existing menu first, then rationalise. Changing the IVR and the platform on the same weekend gives you no baseline when callers complain.
Worth revisiting when Teams Phone Agent leaves preview — it may change where native IVR stops and a contact centre starts