Power BI · Analytics

Your CDE governance dashboards. In Power BI, not in spreadsheets.

Foreman streams live access-request and document-QA data from your Autodesk Construction Cloud projects into Power BI through a tenant-scoped, read-only feed. The dashboards your Information Manager has been rebuilding by hand, kept in sync automatically — without a custom connector and without piping your data through another vendor.

7

Datasets · 2 domains

Live

Incremental refresh

No

Custom connector

Read-only

Tenant-pinned tokens

Where it hurts · Today

The same two questions, every month.

If you run a CDE on Autodesk Construction Cloud, your Information Manager is asked the same things every month. Today, the answers come from CSV exports and spreadsheets that go stale the moment they're shared.

!Pain · 01

Who has access to what?

Onboarding velocity by partner. Approval rate per project. Reviewer workload. The CSV exports take a Monday morning to assemble — and they're already wrong by Tuesday.

!Pain · 02

Are deliverables meeting the EIR?

Pass-rate trend by author, by project, by week. Top failing rules across the portfolio. Compiled by hand from screenshots and email threads, then promptly out of date.

!Pain · 03

Reports go stale the day they're shared.

By the time the deck reaches the Project Director, half the data is old. Manual reporting cycles can't keep up with the tempo of a live programme.

!Pain · 04

Manual rebuilds, every reporting period.

Same dashboard, same questions, same spreadsheet copy-paste. Hours per week the BIM lead could spend doing actual BIM work.

Live

Tenant-scoped feed

Standard

Web connector · Gateway

Hourly

Or any cadence you pick

~30 min

Setup · End to end

How Foreman · Handles it

The dashboards your team keeps being asked for.

Two domains, six things they unlock — without a custom connector, a marketplace listing, or a third-party data hop.

Access governance, live

Onboarding velocity by partner organisation. Approval rate per project. Auto-approval coverage. Reviewer workload over time. The dashboards Information Managers keep rebuilding — kept in sync.

Deliverable QA trends

Pass-rate by project, by week. Top failing rules across the portfolio. Author and company quality hot-list. Run duration and schedule drift — the operational health of QA itself.

No custom connector

Standard Power BI Web connector through the on-premises data gateway your team already runs. Bearer token in the auth header. No .mez files, no marketplace listing, no third-party middleware.

Tenant-pinned, read-only

Each token is bound to a single tenant at issue time. Cannot accidentally pull another customer's data — enforced server-side. Tokens have no write endpoints to call.

Incremental refresh

Power BI's incremental refresh is fully supported. Each dataset exposes a canonical updated-at timestamp; subsequent refreshes only pull what changed since last run.

Audit trail per token

Every API call logged with token name, endpoint, and timestamp. Visible from the admin page. Tokens kept in the audit log even after revocation, so historical usage stays joinable.

Datasets · At a glance

Seven datasets. Two domains.

Every dataset is flat, paginated, incrementally refreshable, and scoped to your tenant by the API token.

Domain · 01

Access governance

/access-requests

One row per request

Status, requester domain, approval timestamps, response time, auto-process flag

/access-request-activities

One row per state change

Event type, actor, timestamp

/access-request-forms

Form metadata (dimension)

Project, hub, form name, owner

Domain · 02

Deliverable QA

/qa-check-runs

One row per run

Pass/fail/total counts, duration, trigger source

/qa-check-results

One row per violation

Rule, severity, file, page, zone

/qa-rules

Rule metadata (dimension)

Rule type, severity, rule set

/qa-rule-sets

Rule set metadata

Name, system vs. tenant-owned

Setup · Three steps

About 30 minutes, end to end.

Use the gateway your BI team already runs. Paste a token. Pick a refresh cadence.

1Step · 01

Issue a read-only token

A tenant admin creates an analytics token from Foreman's Power BI Analytics page. Tokens are scoped to your tenant, expire on a schedule you choose (30 / 90 / 180 / 365 days), and can be revoked anytime.

2Step · 02

Point Power BI at the API

Use the standard on-premises data gateway with the Web connector — the same gateway your team already runs for SharePoint, SQL, and dozens of other internal sources. Paste the token in the auth header. Done.

3Step · 03

Refresh on a schedule

Hourly, daily, on-demand — your BI team picks the cadence. Power BI's incremental refresh is fully supported, so refreshes only pull what changed since the last run.

For your BI engineers · Power Query

Power Query? Already done.

Pagination is a single List.Generate call against the cursor. Drop the snippet below into a blank query, paste a token, and you have a working table.

access-requests.m · Power Query
let
    BaseUrl = "https://your-foreman-host/api/analytics/v1/access-requests",
    Token   = "tmac_REPLACE_ME",
    Headers = [ #"Authorization" = "Bearer " & Token ],

    // Pull one page; surface rows + nextCursor
    GetPage = (cursor as nullable text) as record =>
        let
            qs = if cursor = null then [pageSize="2000"] else [pageSize="2000", cursor=cursor],
            resp = Json.Document(Web.Contents(BaseUrl, [Headers=Headers, Query=qs])),
            rows = if Record.HasFields(resp, "rows") then resp[rows] else {},
            next = if Record.HasFields(resp, "nextCursor") then resp[nextCursor] else null
        in [ rows = rows, nextCursor = next ],

    Pages    = List.Generate(() => GetPage(null), each _[rows] <> null,
                each if _[nextCursor] = null then [rows=null, nextCursor=null] else GetPage(_[nextCursor])),
    AllRows  = List.Combine(List.Transform(Pages, each _[rows])),
    AsTable  = Table.FromList(AllRows, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    Expanded = Table.ExpandRecordColumn(AsTable, "Column1", Record.FieldNames(AllRows{0}))
in
    Expanded
Full M paginator, incremental refresh recipe, and gateway setup in the Power BI integration docs →

Security · IT review

Cleared by your security team in one meeting.

Each control neutralises one objection. Information governance is itself a security topic — the irony of needing access controls to report on access controls isn't lost on us.

Tenant-pinned tokens

Each token is bound to a single tenant at issue time. Cannot accidentally pull another customer's data — enforced server-side, regardless of who issued the token.

Read-only by design

Tokens cannot create, modify, or delete records. The analytics API has no write endpoints to call.

Time-boxed by default

Tokens expire after 30, 90, 180, or 365 days. Recommended: rotate annually.

Revocable in one click

Tokens stay in the audit log even after revocation, so historical usage remains joinable across reports.

PII masking on by default

Requester emails are replaced with a tenant-scoped HMAC-SHA256 hash. Domain is preserved for analytics. Raw emails only flow if you explicitly opt in.

Full audit trail

Every API call is logged with token name, endpoint, and timestamp — visible from the admin page.

No third-party data hop

The API is served directly from Foreman. No middleware, no marketplace listing, no data leaves your gateway.

Per-token rate limit

600 requests per 15-minute window per token. Enough for hourly refreshes across multiple workspaces; issue more tokens for higher throughput.

Use cases · Built for the role

Dashboards, by the role doing the asking.

Same data feed. Different report, depending on who's at the meeting.

1Role · 01

Information Managers.

CDE governance you can actually report on, against the EIR your contracts require.

  • Approval workflow health across every project in the programme
  • Pass-rate by author and rule set — evidence for ISO 19650 reviews
  • Onboarding velocity by partner organisation, week-on-week

2Role · 02

Document Controllers.

Stop assembling reports from CSV exports the night before the meeting.

  • Live access-request log without the manual export-to-spreadsheet step
  • Per-domain approval rate to flag rubber-stamp projects (or stalls)
  • Auto-approval coverage trend — has the rule set drifted out of date?

3Role · 03

QA Managers.

See the trend, not just yesterday's checks. Spot which suppliers need help, this week.

  • Pass-rate trend by project, by week — drift since the last EIR review
  • Top failing rules across the portfolio — naming, metadata, title block
  • Author / company quality hot-list — who consistently misses the mark

4Role · 04

BIM Managers.

Programme-wide standards visibility without clicking through a hundred ACC folders.

  • Per-rule-set pass rates across every active project
  • Run duration and schedule drift — operational health of the QA process
  • Reviewer workload across the portfolio — who carries the load

FAQ · Questions from the field

Frequently asked questions.

Q · 01

Do we need a Microsoft custom connector or .mez file?

No. The standard Power BI Web connector through the on-premises data gateway is all you need. Customers who want a branded custom connector can talk to us — that's a separate project on our roadmap.

Q · 02

Does this work with Power BI Service or only Desktop?

Both. Desktop for development; Service via the on-premises data gateway for scheduled refresh.

Q · 03

How often can we refresh?

Per-token rate limit is 600 requests per 15 minutes. That's enough for hourly refreshes of every dataset across multiple workspaces. If you need higher throughput, issue additional tokens — there's no per-token fee within your plan.

Q · 04

Does this work for ISO 19650 reporting?

Yes. The QA datasets capture rule, severity, file, and timestamp at a granularity that supports EIR / MIDP compliance reporting. Filter by author, by project, by week, or by rule set to build the views your information delivery plan calls for.

Q · 05

What about historical data?

You get the full history at any time. The first refresh pulls everything; subsequent refreshes use Power BI's incremental refresh to only pull what changed since the last run.

Q · 06

What if our existing reporting runs in Tableau, spreadsheets, or Power Automate?

Parallel use is fine — pulls happen via the gateway and don't disturb anything else your team has built. The API is plain JSON over HTTPS with bearer-token auth, so any tool that supports REST will work. Power BI is the first-class path; Tableau, Looker, and Sigma are best-effort.

Q · 07

What if our CDE isn't on Autodesk Construction Cloud?

The Power BI feed only covers Autodesk Forma projects today. SharePoint document workflows aren't in the analytics feed yet, but Foreman's QA and file push do work on them — your team can run the same rule sets against SharePoint and push approved files between the two clouds. If your CDE is Aconex, Asite, or a legacy BIM 360 hub without migration, the Power BI integration won't help you today.

Q · 08

Which plan includes Power BI Analytics?

Power BI Analytics is included on the Business plan and above. No add-on fee. No per-seat surcharge for BI consumers — the gateway connection is one connection, not one-per-viewer.

Free resource · Reporting

MIDP Register Template

A clean Master Information Delivery Plan register, ready to fill in or wire up to a live extract. Pairs with the Power BI feed once you connect it — same fields, same vocabulary.

No spam. Unsubscribe with one click.

Business plan & above 14-day trial No card on file See pricing

POWERBI · 001 / Your move

Put your CDE governance and QA in front of leadership.

Twenty minutes is enough to see a live dashboard built on real Foreman data, talk through which views matter for your projects, and hand the URL off to your BI team.

14-day trial · Full access · No card on file

Not ready? № 01

MIDP register template

A ready-to-fill register that pairs with the Power BI feed once you connect it.

No spam. Unsubscribe with one click.

You're offline — some actions may not work.

Connection lost

Attempting to reconnect to Foreman...

Connection lost

Retrying in --s Attempt - of -

Connection interrupted

Retrying in --s Attempt - of -