Two-factor authentication (2FA) is a security process in which users provide two different authentication factors to verify themselves. Two-factor authentication provides a higher level of security than authentication methods that depend on single-factor authentication, in which the user provides only one factor, typically a password or passcode. Two-factor authentication methods rely on a user providing a password, as well as a second factor, in this case a PIN code delivered via SMS.
PRECONDITIONS
In this use case, we assume that you've already created a Nimbus service.
Enterprise Routing Your service needs to have a Enterprise Routing service license assigned to be able to use the advanced Nimbus Features such as Parameters and the Nimbus Power Automate Connector.
Additionally, ensure to read and follow the Nimbus Power Automate Connector preconditions, as this Use Case will make use of Nimbus Trigger Events and Flow Actions.
Create an Azure Communication Services Instance for Sending SMS
- Create an Azure Communication Services resource as described here.
- Under SMS concepts in Azure Communication Services - An Azure Communication Services concept document | Microsoft Learn you can read about supported sender types. With the help of the information on that page, decide on which sender type you would like to use. Once decided, enable the selected sender type to be able to start sending SMS messages.
Create Parameters
In Nimbus, create the following parameters:
Name |
ID |
Default Value |
---|---|---|
CustomerIdentifier | CustomerIdentifier | NULL |
CustomerRecognized | CustomerRecognized | NULL |
PIN | PIN | NULL |
SMSSent | SMSSent | NULL |
StartValidation | StartValidation | NULL |
ValidationCheck | ValidationCheck | NULL |
Create the Workflow
Overview of the workflow…
Description |
Screenshot |
---|---|
Next we are waiting for the Power Automate flow triggered by the previous step to update the CustomerRecognized parameter. | |
After the CustomerRecognized parameter was updated, we check it's value. In case the customer provided a valid customer identifier, the Power Automate flow will set the value of the parameter to Yes. | |
Next we save something to the StartValidation parameter. The value you save in this parameter can be anything as the purpose of this step is only to trigger the Power Automate flow (Flow 2), that will send out the SMS to the customer's registered mobile phone. | |
After triggering the Power Automate flow sending the SMS, we wait for the flow to set the SMSSent parameter. | |
After the SMS was sent out, we ask the customer to enter the received four digit PIN. The PIN the customer entered will be stored in the PIN parameter. Saving the entered PIN to the PIN parameter will trigger the third Power Automate Flow (Flow 3), that will verify if the the PIN sent via SMS and the PIN entered by the customer are the same. | |
Next we are waiting for the Power Automate flow triggered by the previous step to update the ValidationCheck parameter. | |
After the ValidationCheck parameter was updated, we check it's value. In case the PIN entered by the customer was the same as the PIN sent to the mobile phone, the Power Automate flow will set the value of the parameter to OK.
|
|
If the validation was successful, we inform the customer about the successful validation and we send the call to the queue to distribute it to an available agent. |
Create the Power Automate Flows
Flow 1: Flow verifying the Customer Identifier
Once the workflow saves the customer identifier provided by the customer into the CustomerIdentifier parameter, we trigger the Power Automate flow checking if the provided customer identifier is valid.
Overview of the Power Automate flow
- Visit the Flow landing page: https://make.powerautomate.com/
- Head to "My Flows"
- Click on "+ New Flow" and create a blank "Automated Cloud Flow"
- Give your new flow a speaking name, e.g. "Check Customer Identifier"
- In the text box underneath, search for “Nimbus” and choose the "When a task changes state" trigger
- Click the "Create" button.
- Configure the trigger as follows:
Field | Fill in / 🌟 = Nimbus dynamic content | |
---|---|---|
Service Item | ||
Task Events | ||
Trigger conditions |
Next you need to add a step that checks if the customer provided a valid customer identifier. The exact action to use at this point depends on the system storing your customers' data. If the system either has a Power Automate connector or provides APIs to retrieve data, then you can retrieve the necessary information via Power Automate. In this Use Case the data will be retrieved from a simple SharePoint list.
- Add a SharePoint "Get Items" action to your flow.
- Configure the action as follows:
Field | Fill in / 🌟 = Nimbus dynamic content | |
---|---|---|
Site Address | ||
List Name | ||
Filter query | ||
All other fields |
Next with a condition we need to check, how many results were returned in the previous step.
- Add a Control "Condition" action to your flow.
- Configure the action as follows:
Field | Fill in / 🌟 = Nimbus dynamic content | |
---|---|---|
Condition expression |
In the False branch
- Add a Luware Nimbus "Update task" action to your flow.
- Configure the action as follows:
Field | Fill in / 🌟 = Nimbus dynamic content | |
---|---|---|
Task ID | ||
Custom Context Parameters | ||
All other fields |
In the False branch
- Add a Luware Nimbus "Update task" action to your flow.
- Configure the action as follows:
Field | Fill in / 🌟 = Nimbus dynamic content | |
---|---|---|
Task ID | ||
Custom Context Parameters | ||
All other fields |
Flow 2: Flow sending the SMS message
Once the Nimbus workflow saves something into the StartValidation parameter, it will trigger the Power Automate flow sending the SMS message to the customer's registered mobile number.
Overview of the Power Automate flow
- Visit the Flow landing page: https://make.powerautomate.com/
- Head to "My Flows"
- Click on "+ New Flow" and create a blank "Automated Cloud Flow"
- Give your new flow a speaking name, e.g. "Send SMS"
- In the text box underneath, search for “Nimbus” and choose the "When a task changes state" trigger
- Click the "Create" button.
- Configure the trigger as follows:
Field | Fill in / 🌟 = Nimbus dynamic content | |
---|---|---|
Service Item | ||
Task Events | ||
Trigger conditions |
Next we will generate a 4-digit PIN and store it in a variable.
- Add a Variable "Initialize variable" action to your flow.
- Configure the action as follows:
Field | Fill in / 🌟 = Nimbus dynamic content | |
---|---|---|
Name | ||
Type | ||
Value |
Next we will retrieve the customer' E.164 formatted mobile number, which was stored by the previous Power Automate flow into the SMSNumber Custom Context Parameter.
- Add a Data Operation "Filter array" action to your flow.
- Configure the action as follows:
Field | Fill in / 🌟 = Nimbus dynamic content | |
---|---|---|
From | ||
Filter Query |
|
Next we will send out the 4-digit PIN to the registered mobile number of the caller via SMS.
- Add a Azure Communication Services SMS "Send SMS" action to your flow (If you do not have a connection created yet, Power Automate will ask you to create one by providing the name and the connection string of your ACS instance).
- Configure the action as follows:
Field | Fill in / 🌟 = Nimbus dynamic content | |
---|---|---|
From Phone Number | ||
Recipients |
Click on and add
|
|
Message | Your PIN code is: @{variables('PIN')} | |
DeliveryReport | No |
Finally we need to tell Nimbus that the SMS was sent and we will also save the generated PIN in the GeneratedPIN Custom Context Parameter.
- Add a Luware Nimbus "Update task" action to your flow.
- Configure the action as follows:
Field | Fill in / 🌟 = Nimbus dynamic content | |
---|---|---|
Task ID | ||
Custom Context Parameters | ||
All other fields |
Flow 3: Flow verifying the PIN entered
Once the customer enters the PIN received via SMS, we need to verify if the generated PIN and the PIN entered by the customer are matching.
Overview of the Power Automate flow
- Visit the Flow landing page: https://make.powerautomate.com/
- Head to "My Flows"
- Click on "+ New Flow" and create a blank "Automated Cloud Flow"
- Give your new flow a speaking name, e.g. "Verify PIN"
- In the text box underneath, search for “Nimbus” and choose the "When a task changes state" trigger
- Click the "Create" button.
- Configure the trigger as follows:
Field | Fill in / 🌟 = Nimbus dynamic content | |
---|---|---|
Service Item | ||
Task Events | ||
Trigger conditions |
Next we will retrieve the generated PIN, which was stored by the previous Power Automate flow into the GeneratedPIN Custom Context Parameter.
- Add a Data Operation "Filter array" action to your flow.
- Configure the action as follows:
Field | Fill in / 🌟 = Nimbus dynamic content | |
---|---|---|
From | ||
Filter Query |
|
Next with a condition we need to check, if the generated PIN and the PIN provided by the customer match.
- Add a Control "Condition" action to your flow.
- Configure the action as follows:
Field | Fill in / 🌟 = Nimbus dynamic content | |
---|---|---|
Condition expression |
In the True branch
- Add a Luware Nimbus "Update task" action to your flow.
- Configure the action as follows:
Field | Fill in / 🌟 = Nimbus dynamic content | |
---|---|---|
Task ID | ||
Custom Context Parameters | ||
All other fields |
In the False branch
- Add a Luware Nimbus "Update task" action to your flow.
- Configure the action as follows:
Field | Fill in / 🌟 = Nimbus dynamic content | |
---|---|---|
Task ID | ||
Custom Context Parameters | ||
All other fields |