How to build a Power BI dashboard from KoboToolbox data
KoboToolbox collects the data and Power BI shows it, and the two connect through a link that Kobo gives you. The connection takes minutes. A dashboard that stays right as new submissions arrive takes more care, mostly in how the form is designed and how the tables are shaped. This guide walks through it in the order we do it.
The short answer
To build a Power BI dashboard from KoboToolbox data, create a synchronous export in your Kobo project, copy its link, and in Power BI choose Get Data, then Web, and paste the link. Sign in with your Kobo username and password or an API key, shape the tables Power BI loads, relate them if your form has repeat groups, and build the visuals. New submissions flow in when the report is refreshed. Design the form for analysis first, because that decides how much cleaning you do later.
What do you need before you start?
Three things: a KoboToolbox project with a deployed form, a Power BI account, and someone who owns the dashboard after it goes live. The last one is the one that gets forgotten. A dashboard is a small system. Questions get added, a partner changes a list, a refresh fails over a weekend, and someone has to notice.
It also helps to know what each tool is and is not. KoboToolbox is a free, open-source tool for collecting data on phones and in the browser, and its forms follow the XLSForm standard. Power BI is Microsoft’s business intelligence tool. It connects to many data sources and draws charts, maps and dashboards, but it does not collect data and it is not a results framework. If you are choosing between tools, our guide to monitoring and evaluation tools for NGOs sorts them by the job they do.
How should you design the form so the dashboard is easy to build?
Most dashboard problems start in the form, not in Power BI. Decide what the dashboard must show before you write the first question, then check that every figure on it can be calculated from one answer or a simple combination of answers.
- Use choice lists, not free text, wherever you will count or filter. A free-text field for the district name gives you “Tete”, “tete” and “Tete city” in one column.
- Keep question names short, stable and without spaces. Power BI reads the column headers from the export, and renaming a question later breaks any visual that uses it.
- Put a clear identifier in the form, such as a household or site code, and a date. Without them you cannot join tables or draw a trend.
- Use calculated fields for values you will use often, such as age groups or a score, so the logic lives in one place.
- Use repeat groups only where a record truly repeats, such as household members. They are useful, but each one becomes its own table downstream.
- Test the form with real answers, export them, and build a rough chart before you roll out to enumerators. Changing a deployed form mid-survey is where most mistakes enter.
Rule of thumb: if you cannot sketch the chart from the form on paper, Power BI will not rescue it.
How do you get the export link from KoboToolbox?
Kobo’s documentation describes a way to feed Power BI that avoids downloading files by hand: a synchronous export, available through Kobo’s API. In your project you open Data, then Downloads, then Advanced options, choose your settings and save the selection under a name. Kobo then gives you a link that returns your data as new submissions are received. The saved settings are listed at an address of the form https://[your server]/api/v2/assets/[project asset UID]/export-settings/, where the CSV and XLSX links of each named export appear. See Kobo’s page on synchronous exports.
Two details matter. First, Kobo’s page on synchronous exports gives the link in two forms, one for CSV and one for XLSX, and says repeat groups are exported as separate sheets in Excel files and are not included in CSV exports. If your form has repeat groups, use the XLSX link. Second, Kobo’s advanced export options let you export each response to a select-many question into its own column, with 1 where the option was chosen and 0 where it was not. Separate columns let you count answers without parsing text.
Treat the link as a credential. It points at your project’s data, so do not paste it into a shared chat or an open document.
How do you connect Power BI to KoboToolbox?
- In Power BI Desktop, choose Get Data, then Web.
- Paste the synchronous export link from Kobo.
- When Power BI asks how to sign in, choose Basic and enter your Kobo username and password. Kobo’s documentation also allows a token, called an API key, which you find in your account settings under the Security tab. See Kobo’s page on the API.
- Power BI shows a preview. Choose Transform Data, not Load, so you can shape the tables first.
Prefer an API key to your own password where you can. A password in a report is tied to a person, and it stops working the day that person changes it or leaves. Better still, use an account made for the purpose, with access only to the projects the dashboard needs.
How do you shape the data, and what about repeat groups?
The Power Query window, which opens when you choose Transform Data, is where the dashboard becomes reliable. A sound first pass looks like this.
- Remove the columns you will never use, especially personal details the dashboard does not need. Do this early. It makes the report faster and it keeps sensitive data out of it.
- Set each column’s type: dates as dates, numbers as numbers, codes as text. Power BI guesses types from a sample, and a wrong guess shows up later as a chart that will not sort by date.
- Rename columns to plain names the report’s readers will recognise.
- Give choice codes readable labels, or load a small lookup table for each list, so charts show “Female” rather than “2”.
Repeat groups need one more step. Kobo’s Power BI page notes that when a form has repeat groups you might need to set up table relationships in Power BI’s Model view. In practice you get a main table with one row per submission and a table per repeat group with one row per repeated record, tied back to the submission by an identifier. Relate them one to many, from the main table to the repeat table. Then a chart of “members by age group” can still be filtered by the district recorded on the household.
How do you build the model and the visuals?
Keep the model small and the visuals few. A dashboard with eight clear figures gets used. One with forty gets admired once.
- How many have we reached?
- Typical visual: A card with a count and a trend by week or month. What it needs from the data: A submission date and an identifier that does not repeat
- Where is it happening?
- Typical visual: A map or a bar chart by area. What it needs from the data: Area as a choice list, not free text
- Who is it reaching?
- Typical visual: Stacked bars by sex, age group or status. What it needs from the data: Choice lists or calculated groups in the form
- Are we on target?
- Typical visual: A bar against a target line. What it needs from the data: A small target table you maintain, related by area or period
- Is the data good?
- Typical visual: A table of submissions per enumerator and per day, and of missing answers. What it needs from the data: Enumerator and device or team identifiers in the form
Write your calculations as measures, not as columns, so they respond to the filters a reader applies. Add a data quality page that you use more than the readers do. Counts per enumerator, duplicate identifiers and empty required fields catch problems while the survey is still running and can still be corrected.
How do you publish it and keep it up to date?
A Kobo synchronous export returns your data as new submissions are received, but Power BI does not pull it on its own. Kobo’s Power BI page tells you to click Refresh to bring new data into your reports. A report published to the Power BI service needs a scheduled refresh to do the same without you.
Refresh is where reports quietly stop working. Microsoft’s page on troubleshooting refresh scenarios says that for some Web connector scripts, those using the Web.Page function, refresh works only through a gateway, and it lists what to check when a refresh fails. Read it before you rely on a schedule, test a scheduled refresh, and agree who receives the failure notice. A refresh that fails silently produces the worst kind of dashboard: one that looks current and is not. Show the last refresh date on the report page.
Plan for change too. When a question is added to the form, the export gains a column and the report must be checked. When a question is removed or renamed, visuals break. Keep a short log of form versions next to the report.
What about data protection?
A dashboard moves survey data from one system to another, so it is a data processing activity like any other. Ask four questions before publishing.
- Does the report need individual-level records, or would counts and averages do? Load only what the visuals use.
- Who can open the report, and can they see the underlying table? Check how your Power BI workspace is set up, because access to a report and access to the data behind it are not always the same thing.
- Where does the data sit, and does that match what you told participants and what your donor requires?
- Is the connection secured with an account made for the purpose, not with someone’s personal login?
For a large or sensitive survey, a data protection impact assessment is often the right step before the first interview. See our guide to DPIAs for NGOs.
What goes wrong most often?
- A chart shows several spellings of one place
- Likely cause: The form used free text for the place name. What to do: Use a choice list in the form. For data already collected, clean it in Power Query with a mapping table
- A visual breaks after a form change
- Likely cause: A question was renamed or removed. What to do: Keep question names stable, and check the report whenever the form changes
- Counts look too high
- Likely cause: A join between the main table and a repeat group table repeats rows. What to do: Count the identifier of the main table with a distinct count, not the rows
- The report is slow
- Likely cause: Too many columns loaded, or text columns that could be codes. What to do: Remove unused columns early in Power Query
- The dashboard looks current but is not
- Likely cause: A scheduled refresh stopped or the credentials changed. What to do: Show the last refresh time on the page and send failure notices to a named person
- Multiple-choice answers cannot be counted
- Likely cause: They arrived in a single text column. What to do: Split them into separate columns in the Kobo export settings
What does this look like in a real project?
In a malaria survey for Tropical Health across three provinces of Mozambique, we wrote the Kobo household questionnaire and the manuals, supported the training of the enumerators, and synced the data to a Power BI dashboard. You can read about it in the Tropical Health case study. For Reporters Without Borders, questionnaire results appear in Power BI as they come in, for a yearly world index: see the RSF World Press Freedom Index case study.
Our Information Management and MEAL service covers the whole chain: form design, collection, dashboards and reporting.
Questions and answers
Can KoboToolbox connect to Power BI?
Yes. KoboToolbox documents a connection through a synchronous export link. In Power BI you choose Get Data, then Web, paste the link and sign in with Basic authentication, using your Kobo username and password.
Is the Kobo and Power BI connection free?
KoboToolbox is free and open source. Power BI has its own licensing, and sharing reports in the Power BI service depends on the plan you use. Check Microsoft’s current licensing pages before you commit.
How often does the dashboard update?
Kobo’s synchronous export returns data as new submissions are received. A Power BI report shows it after a refresh, which Kobo’s Power BI page tells you to trigger by clicking Refresh, and which you can schedule in the Power BI service.
How do I handle repeat groups?
Kobo’s documentation says repeat groups are exported as separate sheets in Excel files and are not included in CSV exports, so use the XLSX link. Each repeat group then loads as its own table, which you relate to the main table in Power BI’s Model view, one to many, using the submission identifier.
Can I use an API key instead of my password?
Kobo’s documentation describes Basic authentication with your username and password or with a token, also called an API key, which you find in your account settings under the Security tab. A key acts like a password, so keep it as private as one.
Do I need a gateway for a scheduled refresh?
It depends on how the connection is built. Microsoft’s documentation says that a Web connector script using the Web.Page function needs a gateway for refresh to work. Read the page on refresh scenarios linked in this guide and test a scheduled refresh before you rely on it.
Talk to us about your survey and dashboard
We design the form, train the enumerators and build the dashboard, so that the figures you show are the figures you collected. Tell us what you are measuring.
Keep reading
- Information Management and MEAL services: Form design, data collection, dashboards and reporting.
- Monitoring and evaluation tools for NGOs: Where Kobo, Power BI and other tools fit.
- Case study: malaria survey in Mozambique: A Kobo questionnaire synced to Power BI.
- DPIAs for NGOs: When a survey needs a data protection impact assessment.
- KoboToolbox: connecting to Power BI: The official documentation this guide follows.
- KoboToolbox: synchronous exports: How to get the export link and its CSV and XLSX forms.
This guide is general information, not legal or technical advice. Reviewed on 11 November 2026 by the team at Relief Applications. KoboToolbox and Power BI are described from their own public documentation and may have changed.