The Microsoft Teams auto attendant has lots of great features: customized greetings, after-hours and holiday call handling, and a menu system to direct calls to different departments (think Press 1 to speak with Sales).
Another great feature is the directory search. This allows the caller to search your directory by name or extension to connect with that person. This eliminates the need for someone to answer the call and perform the transfer manually. However, configuring this option is not completely intuitive. Let's jump into the auto attendant and view its configuration.
Configuring voice input ^
The first setting we are going to examine is in the General info section of the auto attendant. Here, we can configure the language and voice inputs. This enables speech recognition in the selected language so the caller can make menu selections using their voice. Enabling this setting also allows callers to search the directory by saying a person's name.
If this setting is not enabled, then callers need to select menu choices using their keypad. To search the directory, callers will need to type in the person's first or last name using the keypad. For example, to search for "Jeff" on the keypad, the caller would type "5333."
Call flow settings ^
The next section in the auto attendant is for Call flow settings. This is where you can design the menu system for callers to traverse. When users select an option through a dial key or voice input, the options for redirection include:
- Operator (defined on the General info page)
- A person in the organization
- Voice app, like an auto attendant or a call queue
- External phone number
The star key (*) is reserved for repeating the message, and the pound key (#) is reserved for going back to the previous menu. Be sure to include these as options in the greeting if they are applicable.
After the menu options, we can configure the directory search. We can disable it or configure dial-by-name or dial-by-extension. If dial-by-name is selected and voice inputs are enabled, then the caller can either say the name or enter it on the keypad. If voice inputs are disabled, then the caller can only enter the name using the keypad. The last option is to dial the person by their defined extension using only the keypad.
If you're like me, at this point you might be wondering how we let the caller know about the directory search option. There's no redirect option for a dial key, and no additional settings after enabling directory search. Microsoft's documentation only states that the caller can say the person's name or enter their extension.
While it's obvious now, the solution wasn't when I first encountered this. The solution is to modify the text-to-speech to include instructions that the caller can search the directory by name (by voice or keypad) or enter the extension (if a recorded greeting is used, the instructions are included there). Looking back at the previous screenshot, the text only includes the menu system options. Let's modify it to include instructions for searching the directory.
The instructions should match the options we have configured. If we don't have voice inputs enabled, then only mention the dial-by-keypad functionality. The same is true for dialing by extension.
One caveat: if searching by entering the name on the keypad, only enter the first OR last name, not both. If there are multiple matches for the name, the system will list the matching users. If the caller wants to exit the directory search, they can press the pound key (#).
Dialing by extension ^
Dialing by extension requires some additional configuration. If you have previous experience with Lync or Skype for Business Server, administrators configured extensions in the account LineURI in the format "+<phonenumber>;ext=<extension>."
This is not supported in Microsoft Teams. Instead, we configure properties directly on the Active Directory user account (whether synced from on-premises or Azure Active Directory). The extension is specified as part of these phone attributes:
If you are using the Microsoft Online PowerShell module (MSOnline), the user attributes are "PhoneNumber" and "MobilePhone." If you are using the Azure Active Directory PowerShell module (AzureAD), the attributes are "TelephoneNumber" and "Mobile."
We configure the extension in one of the following formats:
Here are a couple of PowerShell samples using commands from both the MSOnline and Azure AD PowerShell modules:
# Full phone number with extension Set-MsolUser -UserPrincipalName
-PhoneNumber "+15551234567x567" Set-AzureADUser -ObjectId -TelephoneNumber "+1555 1234567x567" # Just the extension Set-AzureADUser -ObjectId -TelephoneNumber "x567" Set-MsolUser -UserPrincipalName -PhoneNumber "x567"
It can take up to twelve hours for the changes to the Azure Active Directory properties "PhoneNumber" and "MobilePhone" to be available for dialing. You can also set these values on the user properties page in the Microsoft 365 admin center:
One final thing to note on these extensions: they do not configure extension dialing for users inside the organization. This is strictly for dialing by extension inside an auto attendant. If you want to configure extension dialing for users inside the organization, you will need to configure dial plans with normalization rules. To read more about this, check out this article, What are dial plans?, from Microsoft Docs.
Combining directory search and extension dialing ^
We can enable both directory search and extension dialing using multiple auto attendants. One auto attendant's directory search is configured with dial-by-name while another is configured with dial-by-extension. In the primary auto attendant, we would add two dial key menu options for each search option and select the auto attendant as the key's destination.
Limiting directory search ^
Finally, we can also limit the directory search to specific people in the organization by setting the dial scope. You may not want executives or other specific individuals to be reachable through a public telephone number. The dial scope only applies if the dial by name directory search option is configured. It does not apply if dial by extension is enabled, as all users with an extension configured will be available for targeting.
In the dial scope section, there is an Include and Exclude section. You could enable all online users as targets for directory search, then exclude specific people or groups by entering the relevant user or group names. Alternatively, you can limit the directory search by specifying the relevant users or groups.
For additional reading on auto attendants, check out these resources: