Vi trenger mer dokumentasjon på fradraget for reisekostnader.4
Dialog Anatomy
The inbox list item and the details page are both built in as components from @altinn/altinn-components, and Arbeidsflate maps data from Dialogporten data into their props. This page shows which part of each component is filled by which field, for designers and for developers new to the codebase.
The figures are simplified drawings of the real components. Hover a number to see what it points at, and switch to Fields to replace the content with the field that fills it.
From API to screen
Section titled “From API to screen”Both views take the same route: a GraphQL query through the BFF, a mapper that turns the response into a small view model, and a props builder that feeds the component. They do not share a data shape. The list asks for a light SearchDialog per dialog, and the details page asks for one full Dialog.
flowchart TB
subgraph details["Details"]
direction TB
q2["dialogById (DialogByIdFields)"] --> m2["mapDialogToInboxItem()"] --> v2["DialogByIdDetails"] --> p2["DialogDetailsPage › DialogDetails"] --> c2["DialogLayout › DialogHeader, DialogBody, Timeline"]
end
subgraph list["List"]
direction TB
q1["searchDialogs (SearchDialogFields)"] --> m1["mapDialogToInboxItems()"] --> v1["InboxItemInput"] --> p1["useGroupedDialogs › formatDialogItem()"] --> c1["DialogList › DialogListItem"]
end
lookups["organizations · parties · i18n"] -.-> m1
lookups -.-> m2
The mappers look up three things the dialog does not carry itself:
organizationsgives the service owner’s name, logo and contact details, keyed byorg. The BFF builds it fromaltinn-orgs.jsonand caches it.partiesgives the recipient’s name and type, keyed byparty. These are the parties the user can act for.- i18n picks the language version of each text field and formats dates.
The details page also makes calls of its own:
content.mainContentReference, transmissioncontentReferences and non-GETguiActionsgo straight from the browser to the service owner, authorised bydialogToken. They do not pass through the BFF. See Embeddable content.notificationLogsandlabelAssignmentLogfeed the activity log. See The Activity Log and Its Sources.- The
dialogEventssubscription (SSE) reports changes to the dialog, and the page refetches it. The dialog is also refetched every nine minutes and when the tab regains focus.
The list item
Section titled “The list item”DialogListItem, one per dialog in Innboks, Utkast, Sendt, Arkiv, Papirkurv and search results. The whole card links to /inbox/{id}/, except the menu. Its colour follows the recipient: green for a person, blue for an organisation.
Regnskapet er kontrollert og offentliggjort.
Top: unread, a person as recipient. Bottom: read, an organisation as recipient, completed.
- 1Title
content.title. Bold while unread, two lines at most. Search terms are highlighted. - 2Unread badge
Ulest when
isContentSeenis false. Otherwise Ulest innhold whenhasUnopenedContentis true, for example a new transmission nobody has opened. - 3Sender and recipient
The sender is
content.senderName, falling back to the name of the service owner inorg. The logo comes fromorganizationsand is only shown when the service owner is the sender. The recipient is the name ofparty, looked up inparties. Sub-units get an outlined avatar.When the user has several parties selected, both the recipient's and the sender's avatar are shown.
- 4Summary
content.summary, two lines at most. - 5Metadata
Status, extended status, last updated, attachments, sent and received, due date and folder. The rules are in the table below.
- 6Seen by
Everyone who has opened the dialog since it last changed:
seenSinceLastContentUpdate. The user appears as deg. - 7Menu
Built in the frontend. In bulk mode it is replaced by a checkbox.
- Velg flere …
- Marker som ulest, Flytt til arkivet, Flytt til papirkurven, Angre: from
endUserContext.systemLabelsandisContentSeen - Sett av …:
seenSinceLastContentUpdate - Om fullmakt og tjeneste
- GGroup
The month of
contentUpdatedAtwhen every dialog is from this year, otherwise the year. Bankruptcy-estate dialogs (serviceResourceisapp_brg_konkursbehandling) always come first. Search results are one group.
Metadata
Section titled “Metadata”| Element | Prop | Field | Rule |
|---|---|---|---|
| Status | status | status | Hidden for NOT_APPLICABLE. DRAFT is dotted, REQUIRES_ATTENTION is filled, every other status is outlined. |
| Extended status | extendedStatusLabel | content.extendedStatus | Free text from the service owner, outlined. |
| Last updated | updatedAt, updatedAtLabel | contentUpdatedAt | 9. oktober 2026 kl. 14.03. Also the sort key and the group key. |
| Attachments | attachmentsCount | guiAttachmentCount | Shown when above 0. |
| Sent | sentCount | fromPartyTransmissionsCount | Transmissions from the user. Shown when above 0. |
| Received | receivedCount | fromServiceOwnerTransmissionsCount | Transmissions from the service owner. Shown when above 0. |
| Due date | dueAt | dueAt, status | Yellow with 14 days or more left. Red with less than 14 days left, or past the date (Frist utgått: …). Neutral outline when the status is COMPLETED or AWAITING. |
| Archive or bin | archivedAtLabel, trashedAtLabel | endUserContext.systemLabels | Shown when the dialog is in the archive or the bin, for example in a search across folders. |
The details page
Section titled “The details page”DialogDetails inside DialogLayout, at /inbox/{id}/. The header repeats most of the list item. Below it come the content, attachments, actions and transmissions.
Vi trenger mer dokumentasjon på fradraget for reisekostnader. Last opp innen fristen.4
- Last opp kvitteringer for reiser over 50 km.
- Dokumentasjonen må gjelde inntektsåret 2025.
Har du spørsmål om fradrag, kan du lese mer på skatteetaten.no.
- ATop bar and menu
Tilbake returns to the list the user came from and scrolls to the dialog. The page colour follows the recipient's type. The menu holds:
- Del og gi fullmakt: when the service supports delegation, built from
partyandorg - Videresend på e-post: only when
serviceResourceTypeis CorrespondenceService, behind a feature flag - Marker som ulest, Flytt til arkivet, Flytt til papirkurven, Angre:
endUserContext.systemLabels - Sett av …, Aktivitetslogg, Om fullmakt og tjeneste
- Del og gi fullmakt: when the service supports delegation, built from
- 1Title
content.title. Gets an Arkiv or Papirkurv badge when the dialog is in that folder. - 2Metadata
Same rules as the list, with one exception: the attachment count is the number of attachment links actually shown (from
attachments), notguiAttachmentCount. - 3Sender and recipient
Same rules as the list. The recipient avatar changes when the party is deleted or has sub-units.
- 4Summary
content.summaryas plain text. - 5Main content
content.mainContentReferenceis a URL. The browser fetches it from the service owner withdialogTokenand renders it as markdown or HTML. Other media types are ignored. - 6Attachments
One link per URL in
attachments[].urlswhoseconsumerTypeis GUI. The label comes fromdisplayName, the icon and file type frommediaType, and the expiry badge fromexpiresAt. The link is disabled when the attachment has expired or the user has no access to it. - 7Actions
From
guiActions:- Label from
title, style frompriority httpMethodGET with nopromptis a plain link. Any other method is sent as a request withdialogTokenpromptasks the user to confirm firstisAuthorizedfalse disables the buttonisDeleteDialogActionis only shown while the dialog is in the bin
- Label from
- 8Footer
Sett av from
seenSinceLastContentUpdate, plus buttons that open the activity log and the delegation and service information. - 9Transmissions
transmissionsas a timeline. The three newest segments are shown beforeVis mer. See the table below. - 10More information
content.additionalInfoas plain text, markdown or HTML. Hidden when empty. - 11Help
A fixed link to the help pages. No data from the dialog.
Attachments
Section titled “Attachments”Each attachment with a GUI URL is a row in an AttachmentList.
| State | When | Shown as |
|---|---|---|
| Available | Otherwise | A link with the media type icon. Utløper om … in yellow when expiresAt is set. |
| Expired | expiresAt is in the past | Disabled, with a crossed-out file icon and a neutral Utløpt badge. |
| No access | The URL is urn:dialogporten:unauthorized | Disabled, with a padlock and a neutral Ikke tilgang badge. Wins over expired. |
Transmissions
Section titled “Transmissions”A transmission is a message inside the dialog, from the service owner or from the user. Each one is a row in a TransmissionList inside a TimelineSegment.
| Part | Field | Rule |
|---|---|---|
| Grouping | relatedTransmissionId | Related transmissions share a segment. Newest segment first, and newest transmission first within it. |
| Type badge | type | Informasjon, Forespørsel, Innsending, Rettelse, Godkjent, Avvist, Varsel, Avgjørelse. |
| Title and summary | content.title, content.summary | Same language rules as the dialog. |
| Byline | sender, createdAt | Skatteetaten, 9. oktober 2026 kl. 14.03. See Sender Name and Service Owner Logo. |
| Unread | activities | Unread until a TransmissionOpened activity exists for it. The user’s own SUBMISSION and CORRECTION are never unread. |
| Content | content.contentReference | Fetched from the service owner when the transmission is expanded. See Embeddable content for no access and errors. |
| Attachments | attachments | Same rules as the dialog’s attachments. |
| Visibility | isAuthorized, content | Hidden, disabled or shown with an empty state. See the visibility table. |
Field map
Section titled “Field map”Every field we ask Dialogporten for, and where it ends up. ● means the view uses it.
| Field | List | Details | Becomes |
|---|---|---|---|
id | ● | ● | Link to the details page, key for every action |
content.title | ● | ● | Title, and the browser tab title |
content.summary | ● | ● | Summary |
content.senderName | ● | ● | Sender name. Overrides the service owner’s name, and hides the logo when the two differ |
content.extendedStatus | ● | ● | Extended status badge |
content.mainContentReference | – | ● | Embedded main content |
content.additionalInfo | – | ● | Mer informasjon |
org | ● | ● | Service owner name, logo and contact details from organizations. Also used for the delegation link |
party | ● | ● | Recipient name and type from parties. Decides the colour |
status | ● | ● | Status badge and due date colour. DRAFT also puts the dialog in Utkast |
dueAt | ● | ● | Due date badge |
contentUpdatedAt | ● | ● | Sist oppdatert, sorting and month groups |
isContentSeen | ● | ● | Unread badge and bold title. Decides whether the menu offers Marker som ulest |
hasUnopenedContent | ● | – | Ulest innhold badge |
endUserContext.systemLabels | ● | ● | Folder, folder badge and the move actions in the menu |
seenSinceLastContentUpdate | ● | ● | Sett av avatars and dialog |
fromPartyTransmissionsCount | ● | ● | Sent count |
fromServiceOwnerTransmissionsCount | ● | ● | Received count |
guiAttachmentCount | ● | – | Attachment count in the list |
attachments | – | ● | Attachment list, and the attachment count on the details page |
guiActions | – | ● | Action buttons |
transmissions | – | ● | Transmissions and the activity log |
activities | – | ● | Activity log, and unread state of transmissions |
dialogToken | – | ● | Authorises main content, transmission content, actions and live updates |
serviceResource | ● | – | Bankruptcy-estate group at the top of the list |
serviceResourceType | – | ● | Decides whether Videresend på e-post is offered |
progress | – | – | Fetched, not shown |
createdAt | – | – | Fetched, not shown |
guiActions[].action, guiActions[].authorizationAttribute | – | – | Fetched, not used |
organizations also carries the service owner’s website, email and phone number. mapDialogToInboxItem turns them into contact buttons, but nothing renders them yet.
Rules that apply to both views
Section titled “Rules that apply to both views”- Language. Text fields are lists with one value per language. We use the user’s language, then
nb, then the first value. SeegetPreferredPropertyByLocale. - Dates. Day, month, year and time in the user’s language: 9. oktober 2026 kl. 14.03.
- Sender, logo and actors. See Sender Name and Service Owner Logo.
- Folders.
ARCHIVEputs a dialog in Arkiv andBINin Papirkurv, otherwise it is in Innboks. These three exclude each other. ADRAFTstatus also puts it in Utkast, and aSENTlabel in Sendt. See How Dialogs Are Organized. - Unread. A dialog is unread when
isContentSeenis false. The list also flagshasUnopenedContent. A transmission is unread until it has aTransmissionOpenedactivity. - Colour. Green for a person, blue for an organisation. It follows the recipient (
party), not the sender.
Note: The example dialogs in the figures are made up. The drawings follow altinn-components but are simplified and not pixel-accurate.