Connecting Hub to Power BI
Connect Formbricks Hub to Microsoft Power BI and build reports on your feedback data - no ETL, just point Power BI at Hub's database.
Hub stores all data in a single PostgreSQL database. You can report on it with Microsoft Power BI by connecting Power BI to Hub’s database and building reports from the feedback_records table.
Summary
Section titled “Summary”| Step | Action |
|---|---|
| 1 | Run Hub + Postgres (Quick Start) |
| 2 | Install Power BI Desktop (free); optionally sign in to Power BI Service for sharing |
| 3 | In Power BI Desktop: Get Data -> PostgreSQL database -> enter Hub’s server, database, and credentials (see Step 1 table) |
| 4 | In the Navigator: select feedback_records -> Load (or Transform data to shape in Power Query) |
| 5 | Build reports using the same dimensions and metrics as in the Quick reference below |
Why Hub + Power BI?
Section titled “Why Hub + Power BI?”- Direct access - Power BI connects to Hub’s Postgres database; no data copying or sync required (or use Import for a local snapshot).
- Microsoft ecosystem - Power BI is the de facto standard for many organizations; Desktop is free for authoring.
- Same data model - Hub’s Data Model uses one row per response in a single table; easy to aggregate and visualize.
Quick test
Section titled “Quick test”- Download Power BI Desktop (free) and install it.
- Run Hub and Postgres locally (Quick Start).
- In Power BI Desktop: Get Data -> PostgreSQL database -> use the same host, database, and credentials as Hub (for example, Server
localhost, Databasehub, and your Postgres user/password). - Select the feedback_records table -> Load, then build a chart (for example, bar chart with Axis
source_type, Values Count ofid).
Step 1: Get Hub running
Section titled “Step 1: Get Hub running”If Formbricks Hub is not running yet, follow the Quick Start Guide to start Hub and Postgres (for example, docker compose up -d).
Note the database connection details you use for Hub (host, port, database name, user, password). You will need them for Power BI. If you use the compose file from the docs, that is typically:
| Setting | Example value |
|---|---|
| Host | localhost (if Hub and Postgres run on the same machine as Power BI Desktop) |
| Port | 5432 |
| Database name | hub |
| Username | formbricks |
| Password | Your Postgres password (in the Quick Start compose setup this is POSTGRES_PASSWORD in .env; default is formbricks_dev) |
Step 2: Get Power BI
Section titled “Step 2: Get Power BI”- Power BI Desktop - Free Windows app for authoring reports. Download Power BI Desktop.
- Power BI Service (optional) - For sharing reports and dashboards, scheduled refresh, and collaboration. Sign in at powerbi.microsoft.com. For scheduled refresh when the database is not publicly reachable, you may need an on-premises data gateway.
Step 3: Add Hub’s database in Power BI
Section titled “Step 3: Add Hub’s database in Power BI”- Open Power BI Desktop.
- Click Get data (or Home -> Get data) and choose PostgreSQL database.
- Enter:
- Server - The host and port of Hub’s Postgres (for example,
localhostorlocalhost,5432; if port is 5432 you can often omit it). - Database - The database name from the Step 1 table (for example,
hub).
- Server - The host and port of Hub’s Postgres (for example,
- Choose Data connectivity mode: Import (copy data into the report) or DirectQuery (query live). Import is simpler for small to medium datasets.
- Under Authentication, select Database and enter the Username and Password from the Step 1 table.
- Click OK. If Power BI prompts to test the connection, confirm it succeeds.
Step 4: Select the feedback_records table
Section titled “Step 4: Select the feedback_records table”- In the Navigator dialog, expand the database and select feedback_records.
- Optionally click Transform data to open Power Query and remove columns or add filters before loading; otherwise click Load.
- Once loaded,
feedback_recordsappears in the Data pane on the right. You can now use it to build report visuals.
For the full table schema - column names, types, and field semantics (for example, field_type, value_number, value_text) - see the Data Model doc.
Step 5: Build reports
Section titled “Step 5: Build reports”Use the Visualizations pane to add charts and the Data pane to drag fields into Axis, Values, and Filters.
Example: NPS over time (line or area chart)
Section titled “Example: NPS over time (line or area chart)”- Add a Line chart or Area chart.
- Axis - Drag
collected_at; in the field’s dropdown set the date hierarchy to Date and change to Week or Month if needed. - Values - Drag
value_numberand set the aggregation to Average (or add a measure). - Filters - Add a filter on field_type and set it to
npsso only NPS questions are included. - Optionally add Count of rows or a custom NPS measure; the same logic as in the Data Model can be implemented in Power Query or DAX if needed.
Example: Count by source (bar or pie chart)
Section titled “Example: Count by source (bar or pie chart)”- Add a Clustered bar chart or Pie chart.
- Axis (or Legend) - Drag
source_type. - Values - Use Count of any column (for example, Count of
id) or add a measure that counts rows. - Save the report.
Example: Score by question (bar chart)
Section titled “Example: Score by question (bar chart)”- Add a Clustered bar chart.
- Axis - Drag
field_idorfield_label. - Values - Drag
value_numberwith Average. - Filters - Filter field_type to
nps,csat, orratingas needed. - Save the report.
Once Power BI has access to Hub’s database and the feedback_records table, your feedback data is ready for reporting with no extra integration work.
Quick reference: dimensions and metrics
Section titled “Quick reference: dimensions and metrics”For the complete list of columns and field types, see the Data Model.
| Use case | Dimension / filter | Metric |
|---|---|---|
| NPS/CSAT over time | collected_at; filter field_type = nps | AVG(value_number) or custom NPS |
| Count by source | source_type | COUNT(*) |
| Score by question | field_id or field_label | AVG(value_number) |
| Categorical breakdown | value_text (for example, device, segment) | COUNT(*) |
| Multi-tenant | Filter tenant_id | any |
References
Section titled “References”Hub
- Quick Start - Run Hub and Postgres
- Data Model - Table schema, columns, and field types for
feedback_records - Connecting Hub to Superset - Same data, with Apache Superset
Power BI
- Power Query PostgreSQL connector - Official connector docs
- Get data in Power BI Desktop
- Create a report in Power BI Desktop