Problem Statement: Customers with Luma enabled public KIOSKs encounter multiple user logins in a given day with the kiosk being the same. So every time a new user comes to the KIOSK even if we clear the user context every time the widget gets closed, there seems to be no default way to verify the user first before we actually get into the typical user registration process. This is a problem when luma is implemented in public channels like a kiosk where no single user is registered to a channel.
Opportunity: Provide an additional verification(OTP/Email) method from the bot so the user could converse with the bot from the public KIOSKs.
Approach: Call the custom user registration skill that starts the verification process like OTP with mobile number, or email code verification, and then takes the user to the user registration skill.
Let's understand how to build a skill for Registering a user in Luma Virtual Agent.
The following are the steps to configure the skill:
Step 1: Define Attribute
Create an attribute OTP_Send to store a Random OTP number generated by the System.
On Skill Builder--> Attribute tab, click on Create Attribute.
Add attribute details such as Name and Data type
Click Save.
Follow the above steps and create the below attributes:
OTP_Check to store the OTP number entered by the user.
Step 2: Create an Integration
Define Integration to Burst SMS with the “Send SMS to a number” operation.
On the tenant menu, click on Integration.
Create an Application with the integration type as REST.
Add an instance to the SA Instance environment to send SMS messages.
Configure the ‘Send SMS to a number’ Operation.
Fetch the access token received as a response from the web service and save it in a local attribute Token.
Follow the above steps and create the following integrations:
‘Get user (for a specific user)’ to get the registered mobile number for the user from Azure AD. Fetch the mobile number received as a response from the web service and save it in a local attribute mobile phone.
‘Send SMS to a number’ to send OTP number to the user's registered mobile number.
Build a Skill
On Skill Builder--> Create Skill tab, enter Skill details such as Skill Name, Category, Description, and KPI Metrics
Under Invocation type, add User Phrases such as ‘Register in Luma,’ ‘Register user in Luma’
Under Conversation flow,
Add a Ruleset to authenticate the user by validating OTP. Configure the following rules.
If user.phone Not equal to NULL or user.phone is not empty continue with the next steps.
If user.phone equal to NULL or user. phone is empty, prompt the user that the mobile number is not available, and exit the skill.
Add Set attribute-->transform and use Transformation Function- Random to generate a Random OTP number and store it in the attribute OTP_Send
Show message OTP_Send
Add the Integration operation Send SMS to a number to send the random OTP number to the user's registered mobile number in the local attribute mobile phone.
Add attribute OTP_Check to collect the OTP received by the user on the registered mobile number.
Add a Ruleset to authenticate the user by validating OTP. Configure the following rules.
If OTP_Check Equal to OTP_Send, continue with the next steps.
If OTP Check Not equal to OTP Number, prompt the user that the OTP is incorrect and exit the skill.
Click Save to finish building the skill.
The next step is to add permission to the skill. Click on Permission and the Users or Groups who should be able to execute the Skill.
Run Build and Publish to make the skill available in Virtual Agent.
Once the skill is Published, Go to the Test Widget to test the skill. Click on Debug Logs and execute the skill to view the runtime Skill execution logs.
Your skill is now ready to use. Go to Conversation History to view the list of conversations where the end-user requested the skill.
Additional Resources
Visit the below Wiki Documentation for more information on:
Creating an Attribute on Create Global Attributes
Configure a 3rd party Web service integration on REST Integrations
Creating and Managing Skills is at Create Skills
Override an Attribute on Create Skills → Override Attribute
Using local attribute in skills on Use Variables in Skills
Publishing Skill on Build and Publish
Understanding Conversation logs on Conversation History.
Provide permissions to users or groups at Permission
Test your Skill on Test your Bot
Debugging skill on Debug Skills