/
How to set up x-hoppers integration with Power BI

How to set up x-hoppers integration with Power BI

This guide provides step-by-step instructions for configuring x-hoppers integration with Power BI and importing call adoption and performance metrics.

Created: October 2024

Permalink: https://x-hoppers.atlassian.net/wiki/x/IwABB

Introduction

x-hoppers integration with Power BI (PBI) enables you to download x-hoppers analytical data and import it to Power BI for advanced reporting and visualization. The following data types are available for import:

  1. Adoption: information about who joined a broadcast, when and for how long (import via a script)

  2. Performance metrics: Agents and Stores stats, including wait and talk time, headsets battery status and more; Help points stats, such as QR code scans and tablet help points usage (import via CSV/ XLSX)

Requirements

  • x-hoppers system on WMS 6

  • Power BI

  • Node.js (required for specific scenarios)

  • x-hoppers SuperHopper+AI license to download performance metrics

Note: Steps describe in this Guide are also applicable to other platform for data analysis, such as Looker, Tableau, Excel and Google Sheets.

Setup

Adoption data

You can import adoption data into Power BI using one the following method.

Method 1. PowerBI direct import

This method involves uploading a DAX (Microsoft’s formula expression language) script to Power BI:

  1. Open Power Query Editor in Power BI, select New Source and choose Blank Query

x-hoppers Power BI-Blank Query.png
  1. Open Advanced Editor for the blank query and paste the following script:

let pbxUri = "https://{pbxDomain}.wildixin.com/", user = "admin", pass = "{pass}", aud = "cds-ca", scope = "get", dateFrom = "2024-08-26", dateTo = "2024-08-30", baseAuth = "Basic " & Binary.ToText(Text.ToBinary(user & ":" & pass), BinaryEncoding.Base64), personalTokenResponse = Web.Contents(pbxUri & "api/v1/personal/token/?service=auth.wildix.com", [ Headers = [ Authorization=baseAuth, #"User-Agent"="WildixAuthUtils/1" ] ] ), personalTokenJson = Json.Document(personalTokenResponse), personalToken = personalTokenJson[result][token], authAccessTokenResponse = Web.Contents("https://auth.wildix.com/api/v2/Token/", [Headers=[Authorization="Bearer "& personalToken]]), authAccessUserTokenJson = Json.Document(authAccessTokenResponse), authAccessUserToken = authAccessUserTokenJson[result][accessToken], authOpenIdTokenResponse = Web.Contents("https://auth.wildix.com/api/v2/OpenId/service/", [Content = Json.FromValue([aud = "cds-ca", scope = "scope"]), Headers = [ Authorization = "Bearer " & authAccessUserToken, #"User-Agent"="WildixAuthUtils/1", #"Content-Type"="application/json" ] ] ), authOpenIdTokenJson = Json.Document(authOpenIdTokenResponse), openIdToken = authOpenIdTokenJson[result][id_token], targetServiceResponse = Web.Contents("https://cds-ca.wildix.com/v1/calls", [ Headers = [ Accept = "application/json", Authorization = "Bearer " & openIdToken ], Query = [ dateFrom = dateFrom, dateTo = dateTo