cancel
Showing results for 
Search instead for 
Did you mean: 
ursruee

Use Challenge Response Questions to Identify a known Customer

Common B2C scenario to identify customer using challenge response questions across channelsCommon B2C scenario to identify customer using challenge response questions across channels

Business scenario

In a B2C scenario you want to unique identify your counterpart over phone, but even if the phone number is known, you still didn’t verify your counterpart identity. A common approach is to use at least three challenge response question like:

  • What is your name?
  • What is your birth date?
  • Where are you living?
  • What was the last order amount you purchased?
  • What was the last account balance amount?

Above questions let you verify your counterpart’s identity against data you’ve within your Dynamics 365 Customer Engagement. The challenge response question approach used over the phone channel can also being used on the chat channel too. Either within a chat with a Customer Agent or with a Virtual Agent.

 

In this article, learn how to use Power Virtual Agent and Power Automate to unique identify your counterpart by verifying his answers against data you’ve within your Dynamics 365 by following the step by step guide below.

 

Part 1 – Create Virtual Agent Dialog for «Check if contact is known»

  1. Create new topic called «Check if contact is known»
  2. Add Trigger phrases «Please verify my contact details», …
  3. Open «Go to authoring canvas»
     
  4. Add Message «You are already a customer or partner …» below your trigger phrases
  5. Add Question «What is your Name?», Identify=Person, Safe response as=fullName
  6. Add Question «What is your Email address?», Identify=Email, Safe response as=emailAddress
     
  7. Add Question «What your birth date?», Identify=Date and time, Safe response as=birthdate
  8. Add Message «Thanks {x}fullName for answering …» as the closing for the challenge response part. To make it more personalized you can add the fullName variable.
     
  9. Now add a «Call an action» and choose «Create a flow». This will create a Power Automate flow template interacting with your Power Virtual Agent dialog.
     

    For details please check the «Add actions to a bot using Power Automate» documentation on https://docs.microsoft.com/en-us/power-virtual-agents/advanced-flow
  10. Save the Power Virtual agent topic and switch to the Power Automate tab with the new created flow template.

Part 2 – Create Power Automate flow to «Check if contact is known»

  1. In the Power Automate flow template expand the «Power Virtual Agents» section
  2. Choose «Add an input» and add the three variables fullName, emailAddress and birthDate that you want to pass from your virtual agent dialog to the flow
     
  3. Add four «Initialize variable» steps below to initialize the variables we will use within our flow
    1. contactIsVerified equal false as boolean
    2. contactFullName equal fullName as string from parameter
    3. contactEmailAddress equal emailAddress as string from parameter
    4. contactBirthDate equal birthdate as string from parameter
  4. It should like below
     
  5. Add «List records» from Common Data Services and set:
     
    1. Entity Name = Contacts
    2. Filter Query = emailaddress1 eq ‘emailAddress’ from dynamics content
    3. Top Count = 1 as we just want to get the first contact record
  6. Add «Apply to each» control
  7. Add «Get record» from Common Data Services
    1. Entity Name=Contacts
    2. Item identifier=Contact from dynamics content containing the GUID of the contact record
  8. Add «Condition» action and name it «Check emailAddress»
     
  9. Set «Condition» action Email is equal to contactEmailAddress
  10. Add «Set variable» action to «If yes» condition and set contactIsVerified = true
  11. Add two additional «Set variable» action to map Contact detail to contactFullName and contactBirthDate
     
  12. Open «Return value(s) to Power Virtual Agents» action and add four return parameters
     
    1. contactEmailAddress = contactEmailAddress
    2. contactFullName = contactFullName
    3. contactBirthdate = contactBirthDate
    4. contactIsVerified = contactIsVerified
  13. Once we are happy with the Flow, make sure to give the Flow, triggers and actions meaningful names and leave comments where necessary!
  14. Save the flow and return to the Power Virtual Agent topic canvas

 

Part 3 – Catch response from Power Automate and response to the customer

 UseChallangeQuestionsToIdentifyKnownContact_PowerVirtualAgent_Dialog_Part3.PNG

  1. Map in the «Power Automate Action» the input and output parameters to the used variables
  2. Save the topic and use the «Topic checker» to verify it
     
  3. Add «Condition» for «contactIsVerified» variable to is equal to False.
  4. Add «Message» for positive response
  5. Add «Message» for negative response
  6. Add «End of conversation»
  7. Save the topic
  8. Before you can test it, you need to
    1. Create a solution and move the flow into this solution, see part 3
    2. Publish the topic

Part 3 – Create solution

Important to know: A flow can only be called from a topic located in the same Common Data Service environment as your bot. Flows must also be in a solution in Power Automate. You can move flows into solutions, so they are listed in the authoring canvas.

For details please check the «Move a flow to the Solutions tab on the Power Automate portal» documentation on https://docs.microsoft.com/en-us/power-virtual-agents/advanced-flow#move-a-flow-to-the-solutions-tab...

  1. Create a new solution «Power Virtual Agent – [environment]». Check docs above for the details.
  2. Choose «Add existing» and select your flow «Power Virtual Agent - Check if contact is known»
  3. Choose «Publish all customization»
  4. Now you’re ready to test your virtual agent bot

 

Part 4 – Publish and Test your «Check if contact is known» bot

Simplest way is to test it within the Power Virtual Agent by enabling the topic tracker to check each step. Otherwise publish it to the “Demo Website” channel and test it from there.

 

 

Wrapping up

This is a very simple example how to use Challenge Response Questions to Identify a known Customer pattern. Using the same pattern over the phone and chat channel now we can extend it to the fully automated Virtual Agent channel too with Power Virtual Agent and Power Automate.

 

In a real scenario you’ll extend the pattern by additional capabilities like

  • Define a larger set of standard identification questions with random selection.
  • Use the standard identification questions on all customer interaction channels.
  • Logging all verification as activity for auditing.
  • Log failed verification as cases to trigger an Agent to follow up later if needed.
  • Checking last order or account statement amount for a customer using Dynamics 365 Customer Insights (Customer Data Platform), where you have unified your customer data from various sources like Dynamics, Salesforce or SAP using a the «Dynamics 365 Customer Insights» Connector. See more details on https://docs.microsoft.com/en-us/connectors/customerinsights/
  • Transferring a failed verification to Agent using «Dynamics 365 Omnichannel for Customer Service» See more details on https://docs.microsoft.com/en-us/power-virtual-agents/configuration-hand-off-omnichannel
     

With Microsoft Power Platform, we can build upon this to meet much more complex business needs with useful automation bringing all the building blocks together.

About the Author
  • Experienced Consultant with a demonstrated history of working in the information technology and services industry. Skilled in Office 365, Azure, SharePoint Online, PowerShell, Nintex, K2, SharePoint Designer workflow automation, PowerApps, Microsoft Flow, PowerShell, Active Directory, Operating Systems, Networking, and JavaScript. Strong consulting professional with a Bachelor of Engineering (B.E.) focused in Information Technology from Mumbai University.
  • I am a Microsoft Business Applications MVP and a Senior Manager at EY. I am a technology enthusiast and problem solver. I work/speak/blog/Vlog on Microsoft technology, including Office 365, Power Apps, Power Automate, SharePoint, and Teams Etc. I am helping global clients on Power Platform adoption and empowering them with Power Platform possibilities, capabilities, and easiness. I am a leader of the Houston Power Platform User Group and Power Automate community superuser. I love traveling , exploring new places, and meeting people from different cultures.
  • Read more about me and my achievements at: https://ganeshsanapblogs.wordpress.com/about MCT | SharePoint, Microsoft 365 and Power Platform Consultant | Contributor on SharePoint StackExchange, MSFT Techcommunity
  • Encodian Owner / Founder - Ex Microsoft Consulting Services - Architect / Developer - 20 years in SharePoint - PowerPlatform Fan
  • Founder of SKILLFUL SARDINE, a company focused on productivity and the Power Platform. You can find me on LinkedIn: https://linkedin.com/in/manueltgomes and twitter http://twitter.com/manueltgomes. I also write at https://www.manueltgomes.com, so if you want some Power Automate, SharePoint or Power Apps content I'm your guy 🙂
  • I am the Owner/Principal Architect at Don't Pa..Panic Consulting. I've been working in the information technology industry for over 30 years, and have played key roles in several enterprise SharePoint architectural design review, Intranet deployment, application development, and migration projects. I've been a Microsoft Most Valuable Professional (MVP) 15 consecutive years and am also a Microsoft Certified SharePoint Masters (MCSM) since 2013.
  • Big fan of Power Platform technologies and implemented many solutions.
  • Passionate #Programmer #SharePoint #SPFx #M365 #Power Platform| Microsoft MVP | SharePoint StackOverflow, Github, PnP contributor
  • Web site – https://kamdaryash.wordpress.com Youtube channel - https://www.youtube.com/channel/UCM149rFkLNgerSvgDVeYTZQ/