- Store all project files, plans, specs and contracts, in one clear place.
- Notify clients when new documents are uploaded.
- Track views to see who accessed each document.
- Clients always find the latest version, no confusion.
Microsoft Power BI + Ziggu
Microsoft Power BI reads project data out of Ziggu through Ziggu's public REST API: projects and everything inside them, snag lists, decisions, instalments, documents and messages, refreshed on your own schedule. There is no native Power BI connector and no AppSource listing. You point Power BI's Web connector at api.ziggu.app/public with an integration token, and Ziggu stays the client portal your clients work in while Power BI becomes the place your team reads it.
Key takeaways
- Microsoft Power BI connects to Ziggu through Ziggu's public REST API at api.ziggu.app/public, not through a native connector or an AppSource app.
- The Ziggu API exposes 28 resources, so one dashboard covers a whole portfolio instead of one project at a time.
- The API is rate limited at 60 requests per minute across all endpoints, which is what shapes how a portfolio-wide refresh has to be built.
- Tasks and milestones have no public endpoint, so those two cannot be reported on in Power BI today.
- Reporting reads from Ziggu. Nothing you build in Power BI writes back.
How Ziggu structures a project, and why your model needs to know
Ziggu organises work as projects, and a project can hold one unit or hundreds. A unit is the smallest thing a single client has: one apartment in a development, one house, one fit-out, one order. Between project and unit sit optional levels, phases and lots and buildings, which large projects use and small ones never see.
An agency or a manufacturer running one job per client uses none of those levels: their project and their unit are the same record, and nobody in the app ever sees the middle. A property developer selling ninety apartments uses all of them.
Your Power BI model has to cope with both, because the structure is carried by foreign keys and every level except project and unit is optional. A phase holds project_id. A lot adds phase_id. A building adds lot_id. A unit carries all four, and can hang straight off a project with the middle three empty. Plan for joins that are often blank, and your model works for both kinds of customer.
What data you can pull into Power BI
Everything below is read out of Ziggu. Nothing is written back. The first column is the name your team knows from the app, the second is the endpoint your developer will actually call.
| What it is in Ziggu | Endpoint | Direction | Refresh |
|---|---|---|---|
| Projects, and the phases, lots, buildings and units inside them, down to individual spaces | /projects, /phases, /lots, /buildings, /units, /spaces | Ziggu to Power BI | Your Power BI schedule |
| Clients, partner companies and your own team members | /customers, /unit_customers, /companies, /partners, /employees | Ziggu to Power BI | Your Power BI schedule |
| Reports: snag lists and their points, with category and status | /issues, /issue_lists, /issue_categories, /issue_statuses, /tickets | Ziggu to Power BI | Your Power BI schedule |
| Decisions and approvals, with the options offered against them | /decisions, /decision_types, /proposals | Ziggu to Power BI | Your Power BI schedule |
| Instalments, and the share of each one allocated to a unit | /installments, /installments/groups, /fractions | Ziggu to Power BI | Your Power BI schedule |
| Documents and the categories they are filed under | /documents, /attachment_categories | Ziggu to Power BI | Your Power BI schedule |
| Conversations | /messages | Ziggu to Power BI | Your Power BI schedule |
The Ziggu API does accept writes on most of these. A reporting connection simply does not use them.
How do you connect Microsoft Power BI to Ziggu?
Before you start: an integration token from Ziggu, requested through your account contact, and Power BI Desktop.
- Request an integration token from Ziggu. Tokens are issued per organisation, not generated in the app.
- In Power BI Desktop, choose Get Data, then Web, then Advanced.
- Enter the endpoint you want under the base URL api.ziggu.app/public, for example /projects, and add the ziggu-integration-token request header. The exact header format is in the Ziggu API documentation.
- In Power Query, expand data, then attributes, into columns and set the data types. Responses follow the JSON:API specification, so a plain import gives you one column called data until you expand it.
- Repeat per endpoint, then join the tables on the id fields described above.
- Publish to the Power BI Service and set a refresh schedule. Read the limitations below first.
A first working model takes an afternoon for someone who has built a Power Query model before.
Where teams use it
Reporting on approval turnaround across every project
Decisions and the options offered against them sit in Ziggu per project. Pulled into Power BI, they become one number per project and one trend per quarter: how long a client takes to sign off, and where a project stalls. That is a view across the whole book of work that nobody gets from the app one project at a time. See Decisions and Approvals.
Measuring how much snagging is still open, and where
Snag lists carry the points, their category and their status. In Power BI that becomes a count per project, per phase and per partner, plus an ageing report on what is still open after delivery. See Reports.
Following what has been invoiced across the whole portfolio
Instalments give what has been invoiced, and where one project holds many units, the share allocated to each one. Combined with the project structure, that answers which parts of a development portfolio have been billed and which are lagging, without exporting anything.
What Microsoft Power BI and Ziggu do not do
- There is no native Power BI connector for Ziggu and no listing in Microsoft AppSource. You build the connection in Power Query against the REST API.
- Tasks and milestones have no public endpoint. You cannot report on task completion or the milestone timeline through the API today.
- The API is rate limited to 60 requests per minute across all endpoints. A portfolio-wide refresh has to be paced and built as an incremental load, not a full pull on every schedule.
- There are no webhooks. Power BI polls on a schedule, Ziggu does not push a change.
- Scheduled refresh in the Power BI Service against a Web source with a custom request header needs its credentials set in the dataset settings, and may need an on-premises data gateway depending on your tenant. Test the refresh before you rely on it.
- The connection reads. Nothing entered in Power BI reaches Ziggu.
Questions about the Power BI integration
Does Ziggu have a Power BI connector?
No. Ziggu exposes a public REST API at api.ziggu.app/public and Power BI reads it through the Web connector in Power Query. There is no certified connector and no AppSource listing.
What Ziggu data can I report on in Power BI?
Projects and everything inside them, clients and partners, snag lists, decisions, instalments, documents and messages. Tasks and milestones are not available.
We run one project per client, not projects with many units. Does this still apply?
Yes. Ziggu records a project and a unit for every client. If you never split a project, the two are the same record and the levels in between stay empty.
Do I need a specific Ziggu plan for API access?
No. Ziggu issues an integration token per organisation on request.
How often does the data refresh?
As often as you schedule it in Power BI, within the limit of 60 requests per minute. Ziggu does not push, Power BI pulls.
Can I combine Ziggu data with our CRM or ERP in one report?
Yes, and that is usually the point. Ziggu holds the client-facing side of the project that Dynamics 365, Exact Online or Salesforce do not.
Last verified: 28 August 2026, against the Ziggu public API specification.
