Do not ask things you already know. Motivation Imagine calling a company you have a contract- and are doing regular business with. From the beginning, their automated self-service platform knows anything related to your last transaction. There’s no need to say your name, customer number, or anything else more than once to verify your identity. It sounds like a dream, right? No, it’s just reality, if the company would combine Dynamics 365 Customer Service and Power Virtual Agents with the phone channel and use some 1st party extensions and variables in your voice bot. Prerequisites With and already installed, adding three extensions to Power Virtual Agent is all that's needed to enable the Voice Channel via Azure Communication Services: Dynamics 365 Customer Service Power Virtual Agents Power Virtual Agents telephony extension Omnichannel Power Virtual Agent extension Omnichannel Voice Power Virtual Agent extension Solution After installing the three extensions, you can use variables and actions to retrieve information about the caller stored in Dynamics 365. Use of variables With the Power Virtual Agents telephony extension**,** you can use the caller ID (the caller's phone number) to identify the user. Consider using a second factor (voice fingerprinting or a question to verify the customer number, etc.) for authentication if required. With the other extension, you will get variables with all information about the caller. You can find them in your PVA variables. bot.msdyn_ Example 1: Personalized greeting based on caller id Right after sending the first greeting, you can check to see if the is empty or not. If it's empty, the caller is not sending one, or we are not in the phone channel if you use the same bot for text and voice. bot.CustomerPhoneNumber If there is a phone number, and the caller is a returning contact (number in your database), you can use to greet the caller by name. bot.msdyn_CustomerName : Please consider handling exceptions like no caller ID, but we are in the phone channel, caller ID is present, but a new caller is calling, etc. Example 2: callback without asking for the phone number If you want to offer a callback, a phone number is stored in the variable , as the caller transmitted the caller id. Just ask for confirmation that the caller wants to have the callback on the number currently used for dialing in. bot.CustomerPhoneNumber Available variables You can use a whole list of variables, which are well-documented in Microsoft . If your agents filled the data in their customer CRM data, the preferred language (to create a language routing) and the survey consent (to avoid bothering the caller) are available. documentation Conclusion It is easy to provide personalized customer service with data you have already collected, making your customer feel more welcome without a tailored response. Also published here.