Her er en ferdig oppsett- og konteksttekst. Du kan kopiere hele blokken under og lime den rett inn i en ny chat neste gang du vil fortsette arbeidet, så vet KI-en nøyaktig hvor vi slapp og hvordan alt er satt opp!
📝 KONTEKSTFIL: Automatisering av Møteoppsummeringer (Teams Copilot → Microsoft Lists) Mål: Automatisk hente ut Intelligent Recap-data (møtenotater og oppfølgingsoppgaver) fra faste avdelingsmøter i Fremtind, formatere det via AI Builder (GPT), og lagre det i en privat Microsoft List (Recordings_liste) på eget OneDrive-område for å omgå strenge DLP-sperrer.
🛠 Nåværende arkitektur og status i Power Automate: Trigger: SharePoint – Når en fil opprettes (kun egenskaper)
Sti: Pekt mot din personlige OneDrive /Recordings-mappe (Bibliotek: Documents).
Betingelse (valgfri): Sjekker at filnavnet inneholder "Meeting Recording".
Hent min profil (V2) (Office 365 Users)
Henter din unike Entra-ID (id) helt dynamisk.
Hent hendelser (V4) (Office 365 Outlook)
Søker opp det korresponderende kalendermøtet. For å gjøre den robust mot manuelle filkopieringer og endringer i møtetid, bruker vi et Møtenavn + Samme dag-filter (OData):
Plaintext contains(subject, '@{first(split(triggerOutputs()?['body/{Name}'], '-20'))}') and start/dateTime ge '@{formatDateTime(triggerOutputs()?['body/Created'], 'yyyy-MM-ddT00:00:00')}' and end/dateTime le '@{formatDateTime(triggerOutputs()?['body/Created'], 'yyyy-MM-ddT23:59:59')}' Avansert innstilling: Sortert etter end/dateTime desc, Top Count = 1, og Tidssone satt til Amsterdam, Berlin, Bern, Roma, Stockholm, Wien.
ThreadId (Komponer / Compose)
Isolerer Teams tråd-ID fra kalenderens joinUrl med uttrykket:
Plaintext decodeUriComponent(first(split(last(split(first(body('Hent_hendelser')?['value'])?['onlineMeeting']?['joinUrl'], 'meetup-join/')), '/'))) MoeteId (Komponer / Compose)
Genererer den offisielle Graph-møte-ID-en i Base64-format:
Plaintext base64(concat('1*', outputs('Hent_min_profil')?['body/id'], '0*', outputs('ThreadId'))) Hent Mote ID (Teams – ListAiInsights) og Hent moteoppsummering (Teams – GetAiInsight)
Henter de strukturerte rådataene (meetingNotes og actionItems) fra Microsoft Copilot basert på MoeteId.
Formater Sammendrag og Formater oppfølgingsoppgaver (AI Builder – Kjør en spørring / Run a prompt)
Bruker GPT-4.1 mini til å transformere rå JSON-data til ren HTML-struktur (med henholdsvis
,
og
- ), uten backticks (```html) eller forklarende tekst.
Berike liste (SharePoint – Opprett element)
Skriver dataene til Recordings_liste (lagret under "Mine lister" på ditt personlige område for maksimalt personvern).
Kolonnene Sammendrag og Oppfølgingsoppgaver er satt til Flere linjer med tekst + Utvidet rik tekst PÅ.
🎯 Hvor vi slapp / Neste skritt: Vi har akkurat endret OData-filteret i Hent hendelser (V4) til å matche på Møtenavn + Hele døgnet for å gjøre flyten mindre tidssensitiv og hindre at ThreadId feiler med en Null-verdi under manuelle tester.
Her er din komplette master-cheat-sheet for hele den universelle og automatiserte flyten. Dette dokumentet oppsummerer arkitekturen, alle stegene og de nøyaktige kodene (uttrykkene) du trenger for å sette opp eller gjenskape flyten.
Overordnet arkitektur
Flyten lytter på din personlige
/Recordings-mappe, bruker filnavnet til å matche mot dagens kalenderhendelser, dekoder Teams-møte-ID-en, henter Copilots KI-innsikter, og formaterer alt til ren HTML ved hjelp av AI Builder før det lagres i din private Microsoft List.
Steg-for-steg konfigurasjon og koder
1. Trigger: Når en fil er lagt til eller endret (kun egenskaper)
- Konnektor: SharePoint
- Områdeadresse (Site Address): Angi egendefinert verdi ->
https://fremtind-my.sharepoint.com/personal/erling_braathen_fremtind_no/ - Biblioteksnavn (Library Name): Angi egendefinert verdi ->
Documents - Mappe (Folder):
/Recordings
2. Handling: Hent min profil
- Konnektor: Office 365-brukere -> Hent min profil (V2)
- Navn i flyten:
Hent min profil - Inndata: Ingen (la stå tom).
3. Handling: Hent hendelser
- Konnektor: Office 365 Outlook -> Hent hendelser (V4)
- Navn i flyten:
Hent hendelser - Kalender-ID:
Kalender - Filtreringsspørring (Filter Query): (Lim inn som uttrykk/Expression)
contains(subject, '@{first(split(triggerOutputs()?['body/{Name}'], '-20'))}') and start/dateTime ge '@{formatDateTime(triggerOutputs()?['body/Created'], 'yyyy-MM-ddT00:00:00')}' and end/dateTime le '@{formatDateTime(triggerOutputs()?['body/Created'], 'yyyy-MM-ddT23:59:59')}'- Antall øverste (Top Count):
1 - Sorter etter (Order By):
end/dateTime desc - Tidssone (Time zone): Velg
Amsterdam, Berlin, Bern, Roma, Stockholm, Wienunder avanserte parametere.
4. Handling: ThreadId
- Konnektor: Dataperasjon -> Komponer (Compose)
- Navn i flyten:
ThreadId - Inndata (Inputs): (Lim inn som uttrykk)
decodeUriComponent(first(split(last(split(first(body('Hent_hendelser')?['value'])?['onlineMeeting']?['joinUrl'], 'meetup-join/')), '/')))5. Handling: MoeteId
- Konnektor: Dataoperasjon -> Komponer (Compose)
- Navn i flyten:
MoeteId - Inndata (Inputs): (Lim inn som uttrykk)
base64(concat('1*', outputs('Hent_min_profil')?['body/id'], '*0**', outputs('ThreadId')))6. Handling: Hent Mote ID
- Konnektor: Microsoft Teams -> ListAiInsights (versjon med kun ett ID-felt)
- Navn i flyten:
Hent Mote ID - Online meeting ID: Velg dynamisk innhold: Outputs fra
MoeteId.
7. Handling: Hent moteoppsummering
- Konnektor: Microsoft Teams -> GetAiInsight (versjon med to ID-felter)
- Navn i flyten:
Hent moteoppsummering - Online meeting ID: Velg dynamisk innhold: Outputs fra
MoeteId. - AI Insight ID: (Lim inn som uttrykk)
first(body('Hent_Mote_ID')?['value'])?['id']8. Handling: Formater Sammendrag
- Konnektor: AI Builder -> Kjør en spørring (Run a prompt)
- Navn i flyten:
Formater Sammendrag - Variabel (Møtenotater): (Lim inn som uttrykk)
string(body('Hent_moteoppsummering')?['meetingNotes']) - Prompt/Instruksjon:
Du er en assistent som formaterer møtenotater til pen HTML for visning i en SharePoint-liste. Du får et JSON-array med møtenotater. Hvert hovedpunkt har en title (tittel) og en text (tekst), samt valgfrie subpoints (underpunkter med egen title og text). Output skal være ren HTML uten ekstra forklaring, uten backticks, og uten "```html"-prefiks. Bruk
<h3>for hovedtitler, `` for hovedtekster, og `
- ` for underpunkter (med `` på underpunkt-tittelen). Ikke legg til kommentarer. Bare formater det som er der. Her er møtenotatene: [Moetenotater]
9. Handling: Formater oppfølging
- Konnektor: AI Builder -> Kjør en spørring (Run a prompt)
- Navn i flyten:
Formater oppfølging - Variabel (Oppgaver): (Lim inn som uttrykk)
string(body('Hent_moteoppsummering')?['actionItems']) - Prompt/Instruksjon:
Du er en assistent som formaterer oppfølgingsoppgaver fra et møte til en pen HTML-liste. Du får et JSON-array med oppgaver. Hver oppgave har title (tittel), text (beskrivelse) og ownerDisplayName (eier). Output skal være ren HTML uten ekstra forklaring, uten backticks, og uten "```html"-prefiks. Bruk dette formatet:
<ul><li><strong>Tittel</strong> (Eier: navn)<br/>beskrivelse</li></ul>. Hvis ownerDisplayName mangler, skriv "ikke tildelt". Bare formater det som er der. Her er oppgavene: [Oppgaver]10. Handling: Berike liste
- Konnektor: SharePoint -> Opprett element (Create item)
- Navn i flyten:
Berike liste - Områdeadresse:
https://fremtind-my.sharepoint.com/personal/erling_braathen_fremtind_no/ - Listenavn:
Recordings_liste
Felt-mapping i Berike liste:
Feltnavn i SharePoint Slik fyller du det ut (Bruk fX for uttrykk) Title Uttrykk: concat(first(body('Hent_hendelser')?['value'])?['subject'], ' – ', formatDateTime(first(body('Hent_hendelser')?['value'])?['start']?['dateTime'], 'dd.MM.yyyy'))Møtedato Uttrykk: formatDateTime(first(body('Hent_hendelser')?['value'])?['start']?['dateTime'], 'dd.MM.yyyy HH:mm')Sammendrag Dynamisk innhold: Velg Tekst fra seksjonen Formater Sammendrag.Oppfølgingsoppgaver Dynamisk innhold: Velg Tekst fra seksjonen Formater oppfølging.Antall oppgaver Uttrykk: string(length(body('Hent_moteoppsummering')?['actionItems']))Lenke til opptak Uttrykk: concat('https://teams.microsoft.com/_#/l/meetingrecap?threadId=', encodeUriComponent(outputs('ThreadId')))Insight-ID Uttrykk: body('Hent_moteoppsummering')?['id']Møte-ID Dynamisk innhold: Velg Outputs (Utdata) fra seksjonen MoeteId.Innholdstype Id La stå helt tom.
💡 Siste viktige påminnelse for SharePoint
For at tekstene skal vises med kulepunkter og fete typer i stedet for rå koder, må du huske sjekken i Recordings_liste:
- Gå til kolonneinnstillingene for både Sammendrag og Oppfølgingsoppgaver.
- Sørg for at de er av typen Flere linjer med tekst og at Bruk utvidet rik tekst (forbedret format) er slått PÅ.
Neste oppgave: Kjøre en ny test (enten et ekte kort Teams-møte med opptak, eller ved å kopiere en fil som matcher et møtenavn fra samme dag) for å verifisere at kalenderoppslaget går igjennom og at HTML-en rendres vakkert i SharePoint-listen nå som rik tekst er aktivert.