Use Case - Extending the Standard Power BI Report with IVR Choices

Collect IVR choices of callers and evaluate them in the Power BI reporting.

In this use case, we want to collect the IVR choices of callers and evaluate them in the Power BI reporting.

PRECONDITIONS

You require service owner rights.

  • A Nimbus service is set up and ready to receive calls.
  • The Nimbus Power BI report is opened and connected to data in Power BI desktop edition.
  • An Azure table storage or equal storage is set up. 💡 Some expertise in database queries and tables is helpful to better understand this Use Case.
 

Show Icon Legend

💡 = A hint to signal learnings, improvements or useful information in context. 🔍 = Info points out essential notes or related page in context.
☝ = Notifies you about fallacies and tricky parts that help avoid problems. 🤔 = Asks and answers common questions and troubleshooting points.
❌ = Warns you of actions with irreversible / data-destructive consequence. ✅ = Intructs you to perform a certain (prerequired) action to complete a related step.
 
 

Configuration in Nimbus

In Nimbus Configuration, create a custom Parameters "IVRChoice" and set the Default value to null.

Set-up the Workflow in Nimbus

In the service workflow add "Input Customer" and route all the outputs to "Set Parameter" before routing further in the workflow.

💡 In our use case we ask for the language and route accordingly.

Prepare your Azure Storage

  1. Log into your Azure Storage management.
  2. Create a table called "IVRChoices" with PartitionKey = bySessionId.
    🔍 If your service allows internal calls you would need to add another option for UPN's. You would also need to check on the caller origin (UPN or PSTN) in the power automate flow. We omit this here for simplicity.
  3. ✅ Remember to keep the URL to your Azure Storage ready for later.

Create the Power Automate flow

Here is an overview of the flow:

Flow Overview

 
 

We'll cover the details below.

Description
Settings
Element
To trigger the flow begin with "GetOnUpdatedTasks" from the Nimbus Connector.

GetOnUpdatedTasks:

  • Service Item = Your service
  • SesseionEvent Item = Parameter Updated

Add 3 "Initialize Variable" elements to the flow.

  1. We need to check on the UpdatedParameterName to make sure that we trigger the flow at the right moment.
  2. If you work with additional parameters in the workflow, we want to make sure that we do not interfere with other parameter's update triggers.
  3. CustomerInput should store the IVRChoice.

First "Initialize Variable":

  • Name = UpdatedParameterName
  • Type = String
  • Value = triggerOutputs()?['body/UpdatedParameterName']

Second "Initialize Variable":

  • Name = UpdatedParameterValue
  • Type = String
  • Value = triggerOutputs()?['body/UpdatedParameter Value']

Third "Initialize Variable":

  • Name = CustomerInput
  • Type = String
  • Value = triggerOutputs()?['body/customContextParameters/IVRChoice']

Add a "Condition" element to the flow.

You only want to go further in the flow if IVRChoice was updated.

Condition:

  • variables('UpdatedParameterName') is equal to IVRChoice 
  1. In the YES branch, Add a "Insert Entity" element to the flow.
  2. Select your azure table instance and update the fields.

entity

JSON
{
"PartitionKey": "bySessionId",
"RowKey": @{triggerOutputs()?['body/id']},
"ServiceId": @{triggerOutputs()?['body/teamId']},
"ServiceDisplayName": @{triggerOutputs()?['body/serviceDisplayName']},
"ServiceUPN": @{triggerOutputs()?['body/serviceUPN']},
"Created": @{triggerOutputs()?['body/created']},
"PhoneNumber": @{triggerOutputs()?['body/microsoftCallerId']},
"IVRChoice": @{variables('CustomerInput')}
}

Add the Azure Table to the Nimbus Power BI Report

Now you only need to add the Azure table as an additional dataset to your Power BI report file.

Description
Screenshot in Power BI
  1. Go to "Get Data" and select "more" > "Azure".
  2. Select "Azure Table Storage" and connect.
Enter your Azure Storage URL and select the table.

Once connected you can edit the query on your table to see the full content.

 
CODE
= Table.ExpandRecordColumn(
ivrchoices1, "Content",
{"ServiceId","ServiceUPN","Created", "PhoneNumber", "IVRChoice"},
{"ServiceSessionId","ServiceUPN","Created","PhoneNumber", "IVRChoice"}
)

Add a relationship between ServiceSessions and the IVR table.

🔍 RowKey holds the Session Id.

Now you can use the table in the BI report. 

💡 In this example we added the recorded choices to the ServiceOverview tab of the report.

BY THE WAY

If you are using Nimbus Assistant, Agents can see the choice parameter in the Info tab.

 

💡 Tip: Any other Parameters that have a changed default will also be shown there, so you can expand this use case with any other data you want to retrieve.

Table of Contents