Skip to content
  • There are no suggestions because the search field is empty.

How to Connect Power BI to Hello Customer via API

This article explains with an example how to connect HelloCustomer survey answers to Power BI using the HelloCustomer v4 API. You will learn how to retrieve your API key, build the query, and expand the API response into a structured table for reporting and analysis.

IMPORTANT

This is a technical article intended for users familiar with API calls and related concepts. If you are not acquainted with API integrations, we recommend consulting a developer or your technical team before proceeding.


 

IN THIS ARTICLE

1. Prerequisites 

2. Getting an API Key 

3. API Endpoint

4. Power BI Query (M Code)

5. How It Works

6. Next Steps

1. Prerequisites

Before starting, make sure you have:

  • A Hello Customer account 

  • Tenant ID and Touchpoint ID (these identify your data source within Hello Customer)

  • Power BI

For details on retrieving your API credentials, see API connectors and API calls.


2. Getting Your API Key

  1. Log in to the Hello Customer platform.

  2. Navigate to Settings > Integrations > API connectors > create API connector.

  3. Create a new API connector, which will provide you with a SecretId and a ClientId

  4. You can get an new API bearer token as explained here.


3. API Endpoint

The API endpoint used in this example retrieves survey answers from a specific touchpoint:

https://api-v4.hellocustomer.com/tenant/{tenantId}/answer/touchpoint/{touchpointId}/getanswers
 
Replace {tenantId} and {touchpointId} with your actual values.
 
 

4. Power BI Query (M Code)

1. Create a new Query on PowerBi

2. Go to the Advance Editor of the query

3. Delete the code already on the editor paste the following code (Power Query):

// Parameters you can later turn into real Query Parameters
BaseUrl = "https://api-v4.hellocustomer.com/tenant/tenantId/answer/touchpoint/touchpointId/getanswers",
ApiKey = "API_KEY",

// Convert record into JSON text
Body = Text.ToBinary("{""StartDate"":""2024-01-01 00:00:00"",""EndDate"":""2025-08-19 00:00:00"",""LanguageCode"":""en""}"),

Response = Web.Contents(
BaseUrl,
[
Headers = [
#"Content-Type" = "application/json",
Authorization = "Bearer " & ApiKey
],
Content = Body,
ManualStatusHandling={400,404,500} // optional: lets PQ not crash immediately
]
),

// Parse JSON
Json = Json.Document(Response),
Source = Table.FromList(Json, Splitter.SplitByNothing(), null, null, ExtraValues.Error),

// Expand root record
Expanded = Table.ExpandRecordColumn(
Source,
"Column1",
{"participantInfo", "touchpointUniqueId", "dateAnswered", "dateSurveyed", "metadata", "status", "tags", "summary", "surveyAnswerUniqueId", "veraPrediction", "predictions"}
),

// Expand participant info
ExpandedParticipant = Table.ExpandRecordColumn(
Expanded,
"participantInfo",
{ "uniqueId", "languageCode", "firstName", "lastName", "emailAddress", "phoneNumber", "customerId" },
{ "uniqueId", "participantLanguageCode", "firstName", "lastName", "emailAddress", "phoneNumber", "customerId" }
),

// Expand metadata
ExpandedMeta = Table.ExpandRecordColumn(
ExpandedParticipant,
"metadata",
{"language", "location"}
),

// Expand predictions (list → rows)
ExpandedPredictions = Table.ExpandListColumn(ExpandedMeta, "predictions"),

ExpandedPredictionsRecord = Table.ExpandRecordColumn(
ExpandedPredictions,
"predictions",
{"path", "isPositive", "isNegative", "isNeutral", "metric", "text", "languageCode", "sentiment"},
{"path", "isPositive", "isNegative", "isNeutral", "metric", "predictionText", "predictionLanguageCode", "sentiment"}
)
in
ExpandedPredictionsRecord

NOTE

The TouchpointID, TenantID and API_KEY are variables that you have to change on your code in order to retrieve data from your environment. 


5. How It Works

  • Authentication: The query adds your API key as a Bearer token in the request headers.

  • Body Payload: Filters data by StartDate, EndDate, and LanguageCode. Adjust these values as needed.

  • Response Parsing:

    • participantInfo expands customer details like ID, email, and phone number.

    • metadata expands contextual fields like language and location.

    • predictions expands sentiment analysis outputs into rows (path, metric, sentiment, etc.).


6. Next Steps

  • You can turn BaseUrl, ApiKey, StartDate, and EndDate into Power Query parameters for easier reusability.

  • Load the data into your Power BI model and build dashboards around customer sentiment, survey responses, and touchpoint insights.

... back to top