Most “personalised” home pages are a fixed layout with the user's id pasted into a dozen queries. That works until the cards need to say something — which accounts are running hot, what to do at renewal, what the news says about the company — and each one has to be written, checked and kept current for hundreds of people. We built home pages out of the parts InsightCompose already had: data APIs that find a person and their book, insights that say something verified about each, and collections that group them.

One call, every section

The host application's backend makes one request per page load and names the person it is for:

POST /api/v1/home
Authorization: Bearer <API key>
X-On-Behalf-Of: j.smith@client.com

{ "persona": "underwriter", "focus": { "lob": "DO" } }      // focus is optional

The answer is the whole page: the person, then each section with its cards. A card is an insight result — headline, summary, tiles, the claims behind each sentence and the actions it recommends — so the host application draws it with its own components, and every figure on it can still be traced, drilled into or asked about through the rest of /api/v1. If any card is still being computed the call answers 202 and the application polls the same call.

Personas are configuration

A persona says how to find the person (a data API that turns a login or a warehouse id into their row) and which sections their home shows. A section is either a collection at a scope the person owns — “my book” is a collection at underwriter = <their id> — or a book: a data API that lists their accounts or brokers, with a collection run for each row, five accounts renewing soonest or largest, two brokers placing most.

Build › Home pages
The Home pages screen: a Nightly warm-up card with a Run now button; a Personas list with Underwriter (3 sections) and Underwriting manager, D&O desk (3 sections); and the Underwriter persona open on its Preview tab, described as a book, a brief on each account renewing soonest or largest, and on the brokers who place most with them, with a person and line-of-business field and a Show home button. A note explains that a host application calls POST /api/v1/home.
Two personas from the sample pack. Preview shows a person's home exactly as the API returns it.
UnderwriterEach card
My bookActive book by line, renewals in the next 90 days, accounts running hot, what to do
My accountsPer account: policies and pricing, claims, cited news on the company, what to do at renewal
My brokersPer broker: production by line, submissions and hit ratio, cited news on the firm

None of this is in the product's code. It is installed as a pack — a JSON file of data APIs, insights, collections and personas — and every piece of it is then an ordinary object you can open and change in the UI. The sample pack targets a P&C warehouse; for another warehouse or another industry you copy it and change the SQL. Re-installing a pack keeps the edits you made.

Ready before the morning

A card that reads the warehouse and writes a verified story takes a couple of minutes cold; a home page cannot. So homes are computed ahead. The nightly warm-up lists the people each persona names, plans their homes, de-duplicates the cards they share — two underwriters with the same broker share that broker's card — and computes them a few at a time, bounded so the warehouse is never flooded. In the morning the call is a cache read.

Each card is cached on the insight's version, its scope and the data version of its source, so a card stays current until the data it read changes. A card with a web part — news about a company, with citations — is marked stale after a day and recomputed by the next warm-up; the page shows the previous one meanwhile and never waits for it.

The key's grant decides what comes back

The person is named by the backend that holds the API key, never by the browser. What comes back is still bounded by that key's grant: a collection it may not read, or a scope outside its limits, comes back as a section marked forbidden rather than an error for the whole page. One key per 360 deployment trusts that backend to name the right person; a key per desk, confined to that desk's team, trusts it less. A signed-in InsightCompose user gets only their own home unless they administer the deployment.

The principle

A home page is a set of questions a role asks every morning. Write each question once as a verified insight, let configuration decide who sees which, and compute the answers before anyone asks.

Read next

Embedding insight in the apps people already use — how a host application draws what it receives. An insight that shows its work — what is inside each card.