1AYMBook 30 minutes

Self-serve finance answers, without breaking permissions

Client withheld

A CFO wanted the wider business to get answers about client and financial performance without queuing for a member of the finance team. I built a connector between the company's AI workspace and its existing Looker setup that inherited Looker's permission model exactly — people with privileged access kept it, everyone else saw only what they were already entitled to see. Questions that previously took around two hours to come back from finance now resolve in the meeting where the question is asked. Connecting the data took an afternoon; the week that followed was spent building the semantic layer that made the answers trustworthy.

Time to a governed finance answer
~2 hrs → in the meetingTime to a governed finance answer
To connect the data
1 afternoonTo connect the data
To make the numbers trustworthy
1 weekTo make the numbers trustworthy
Existing permission model
UnchangedExisting permission model
FIG. 01PERMISSION INHERITANCEUSERAI WORKSPACEENTITLEMENTSTHE USER'S OWNSEMANTIC MODELWAREHOUSEOUTSIDE ENTITLEMENT → NEVER RETURNED

The problem

Financial information sat behind the finance team. Anyone elsewhere in the business who needed a figure — for a client conversation, a meeting, a decision — raised a request and waited, typically a couple of hours. The finance team spent a meaningful share of its week answering questions that were, in principle, already answered by data the company held.

The obvious fix, letting people query the data directly, ran straight into the reason the gate existed: financial data is not uniformly shareable. Some of it is open to the business, some of it is privileged, and any solution that flattened that distinction was worse than the queue.

What was built

A connector between the company's AI workspace and its existing Looker setup, so questions asked in natural language resolved against the same governed model the business already used for reporting.

Permission inheritance
The connector carries the user's own Looker entitlements. Someone with privileged access keeps it; someone without sees only what was already open to them. No parallel permission model was created, because a second model is a second thing to get wrong.
Grounded in the existing model
Answers resolve against the company's canonical metrics rather than against raw tables, so the figures match the ones finance would have given.
Semantic layer
The definitions that make an answer correct — what counts as a client, a period, a booked figure — expressed once so every question inherits them.

The hard part was not the integration

Connecting the data took a single afternoon. That speed was itself the problem: it confirmed a belief held across the business that this kind of work is plug-and-play.

It is not. A connector that returns a number is trivial. A connector that returns the *same* number the finance director would have given you is a week of work, and that week is the entire value. I spent it with the finance director, rapidly iterating the semantic layer and checking the agent's answers against his, until the two agreed on definitions the business actually uses.

Had the project stopped after the afternoon, it would have shipped something that looked finished and quietly disagreed with finance — which is worse than the queue it replaced, because the queue was at least right.

Outcome

People pull the figures they need in the meeting where the question comes up, rather than preparing a request and waiting on someone else's queue. The finance team stopped being a lookup service for questions the data could answer on its own.

The wider result was a corrected assumption. The engagement demonstrated to leadership that the gap between a working connection and a trustworthy one is where the actual engineering lives — which changed how subsequent AI work at the business was scoped.

Looker · Semantic layer · AI workspace connector · Permission inheritance

Related

Written at a public-safe level: client names, internal project names and proprietary business logic are held back by agreement.
Last reviewed