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
3. API Endpoint
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
-
Log in to the Hello Customer platform.
-
Navigate to Settings > Integrations > API connectors > create API connector.
-
Create a new API connector, which will provide you with a SecretId and a ClientId
-
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
{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
, andLanguageCode
. 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
, andEndDate
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.