Connect your BI tool via API
Pull Ombea feedback data straight into your BI platform
- You need admin access to do this. About roles
Power BI, Tableau, Looker -- whatever you run, the Ombea API lets you pull raw feedback data straight into your stack. Combine it with operational metrics. Build dashboards your way. For the full endpoint reference, see the API documentation.
This guide covers the concepts -- what data is available, how to fetch it, and how to decode the IDs that come back. Every BI platform is different, so we skip the tool-specific clicks and focus on the API side.
Key Concepts
Before you start, it helps to understand how Ombea organizes its data:
- Touchpoint -- a specific point where feedback is collected: a place in a store, a page on a website, or a screen in an app.
- Organisation Node -- Touchpoints belong to either a Location or a Website, which can be grouped into Folders. In the API these are all called Organisation Nodes.
- Stream -- the central unit that defines which questions are asked, when, how, and from which Touchpoints.
- Block -- each question in a Stream is referred to as a Block in the API.
Fetch Responses
The main endpoint for retrieving feedback is:
POST /api/v2/streams/{streamId}/submissions/blockResponses
You can find the streamId in the URL when you view a Stream in Ombea at https://insights.ombea.com/admin/places.
Each response in the result contains these key fields:
| Field | What it means |
|---|---|
sId | Submission ID -- a unique identifier for the full submission |
bId | Block ID -- identifies which question (block) this answer belongs to |
tpId | Touchpoint ID -- identifies which Touchpoint collected this response |
dt | Timestamp -- this may reflect the experience time (when the respondent answered), not necessarily the time the data reached the server |
Fetch Only New Responses
Building a recurring data pull (for example, every hour)? You probably do not want to re-fetch everything each time. Two approaches:
Filter by timestamp to get only responses after a certain date. Simple, but unreliable for offline terminals (like ExpressPods) that sync data in batches -- responses may arrive with timestamps in the past.
Each response has a sequenceId that increments reliably. To fetch only new data:
- Note the highest
sequenceIdfrom your previous pull. - On the next pull, set
startSequenceIdto that value. - Set
startSequenceIdInclusivetofalseso you skip the one you already have. - Set
sorttosequenceId. - Paginate through the results until no more data is returned.
This method never misses data, regardless of when devices sync.
Map IDs to Human-Readable Names
Responses come back with IDs, not names. To make your BI reports readable, you need to map those IDs.
Call:
GET /api/v2/touchpoints
Pass your organisationNodeId as a parameter. If you do not know your Organisation Node ID, contact support@ombea.com.
This returns all Touchpoints with their names, so you can replace tpId values with meaningful location names in your reports.
Call:
GET /api/v2/streams/{streamId}
This returns the full Stream definition, including all Blocks (questions) with their IDs and text. Use this to replace bId values with the actual question wording.
Quick Reference
| What you want | Endpoint |
|---|---|
| Fetch responses from a Stream | POST /api/v2/streams/{streamId}/submissions/blockResponses |
| Get all Touchpoints | GET /api/v2/touchpoints (with organisationNodeId) |
| Get Stream metadata and questions | GET /api/v2/streams/{streamId} |
Need Help?
Every BI setup is different. If you get stuck or need help finding your IDs, reach out to support@ombea.com.
Was this helpful?