Behöver ert företag hjälp med att implementera AI? Kontakta oss och få prisoffert här →
AI Skolan
januari 22, 2026

OpenAI + Google Sheets: strukturera mötesdetaljer snabbt

Rickard Andersson Partner, Nodenordic.se

Mötesdetaljer kommer i de sämsta formaten. Ett Telegram-meddelande med halva datumet, ett ”i morgon klockan 3”, en Zoom-länk nedgrävd i mitten och två personer som ”kanske” kommer. Och sedan måste någon göra om det till felfria fält du kan lita på.

Den här OpenAI Sheets-automationen träffar ops-chefer och projektledare först, eftersom de lever i kalendrar och överlämningar. Utvecklare som bygger AI-workflows känner det också, ärligt talat, eftersom ”nästan rätt” AI-output är så produktionsincidenter börjar. Målet här är enkelt: strukturerade mötesdetaljer som du kan stoppa in i ett workflow utan att behöva ifrågasätta varje fält.

Du får se hur denna n8n-subworkflow extraherar mötesinfo, validerar den med ett schema och till och med kan poängsätta sig själv mot testfall i Google Sheets så att du vet att den beter sig som den ska innan du går live.

Så fungerar automatiseringen

Hela n8n-workflowen, från trigger till slutlig output:

n8n Workflow Template: OpenAI + Google Sheets: strukturera mötesdetaljer snabbt

Problemet: mötesdetaljer är alltid ”nästan” rätt

Om du någon gång har försökt göra om naturligt språk till kalenderklara fält så känner du igen smärtan: meddelandet låter tydligt för en människa, men är fullt av dold tvetydighet. ”Nästa fredag” beror på tidszon och referensdatum. ”På HQ” kan betyda en gatuadress, ett byggnadsnamn eller ingenting alls. Och när AI är inblandat ändras risken. Det handlar inte bara om saknad data. Det handlar om självsäkert felaktig data som slinker in i nästa system och i det tysta skapar fel i din överlämning.

Det blir snabbt mycket. Här är var det vanligtvis faller isär i verkliga workflows.

  • Folk kopierar och klistrar in mötesmeddelanden i dokument eller Sheets, vilket tar några minuter varje gång och ändå ger inkonsekventa fält.
  • Relativa tider som ”i morgon förmiddag” skapar fel när workflowen körs i fel tidszon eller körs om senare.
  • AI-output kan se korrekt ut men vara fel formaterad JSON, så nedströms automationer fallerar av fåniga skäl.
  • De flesta team testar aldrig extraktionskvalitet, så du märker problemen först efter ett missat möte eller en mejltråd med kund.

Lösningen: extrahera, validera och poängsätt mötesdetaljer automatiskt

Det här workflowet är en återanvändbar n8n-subworkflow som gör om röriga mötesmeddelanden till strukturerade fält som titel, datum, tid, plats, länkar och deltagare. Den börjar med att standardisera det som triggat körningen (en webhook, en parent-workflow eller en testharness). Sedan läser en AI-agent som drivs av OpenAI meddelandet och tar fram strukturerad output. Direkt efteråt validerar workflowet den outputen mot ett strikt JSON-schema så att fel formaterade eller saknade fält fångas tidigt, inte efter att datan redan har skrivits någon annanstans.

Det finns också ett andra läge: utvärdering. I stället för att processa ett riktigt meddelande kan workflowet hämta testrader från Google Sheets, köra extraktion på varje rad och poängsätta resultatet mot förväntade outputs. Du får spårbara, repeterbara kontroller av typen ”funkar agenten faktiskt?”, vilket är det de flesta AI-automationer hoppar över.

Det du får: automation vs. resultat

Exempel: så här ser det ut

Säg att ditt team hanterar 20 ”kan vi ses?”-meddelanden per vecka via Telegram och webbformulär. Att manuellt städa upp varje meddelande till sex fält (titel, datum, tid, plats, länk, deltagare) kan ta cirka 6 minuter styck, alltså ungefär 2 timmar i veckan. Med det här workflowet blir den mänskliga insatsen en snabb inklistring i triggern (cirka 30 sekunder), sedan kör agenten och returnerar strukturerade fält plus validering. Tiden flyttas från rutinjobb till snabb granskning, och felen minskar eftersom schemat fångar det udda.

Det här behöver du

  • n8n-instans (testa n8n Cloud gratis)
  • Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
  • OpenAI för att extrahera och reparera strukturerad mötesdata
  • Google Sheets för att lagra utvärderingsinput och förväntade outputs
  • OpenAI API-nyckel (hämta den i OpenAI-dashboarden)

Svårighetsgrad: Medel. Du kopplar in credentials, uppdaterar Sheet-ID:n i ett par noder och kör testexekveringar för att bekräfta output.

Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).

Så fungerar det

En parent-workflow triggar subworkflowen. Den startar med en aktiveringstrigger (eller utvärderingstrigger) så att du kan anropa denna extractor från Slack, Telegram, e-post eller vilken webhook-baserad källa som helst.

Inkommande text standardiseras. n8n normaliserar input till en konsekvent form, vilket innebär att agenten inte behöver hantera tio olika fältnamn och format.

OpenAI-agenten härleder mötesdetaljer. Agenten läser meddelandet, löser relativa tider med tidszonskontext och outputtar mötesdetaljer i ett strukturerat format som nedströms system kan konsumera.

Validering och routing avgör vad som händer härnäst. En parser för strukturerad output tvingar fram JSON-schemat, en ”output repair”-modell kan fixa formatering, och en If-nod returnerar antingen felfri data eller lyfter ett processfel med spårbarhet för exekveringen.

Du kan enkelt modifiera mötesfälten så att de matchar din interna mall, eller byta utvärderingskriterier så att de matchar vad ”korrekt” betyder för din verksamhet. Se hela implementationsguiden nedan för anpassningsalternativ.

Steg-för-steg-guide för implementering

Steg 1: Konfigurera Execute Workflow-triggern

Konfigurera subworkflow-triggern så att den här automatiseringen kan ta emot meddelandetext och tidszon från ett överordnat arbetsflöde.

  1. Lägg till Subflow Activation Trigger och definiera workflowInputs med name-värdena message_text och timezone.
  2. I Standardize Trigger Data, mappa message_text till {{ $('Subflow Activation Trigger').first().json.message_text }}.
  3. Ställ in now till {{ new Date().toISOString() }} och timezone till {{ $('Subflow Activation Trigger').first().json.timezone }}.
  4. Koppla Subflow Activation TriggerStandardize Trigger DataCombine Incoming Data.

Steg 2: Anslut Google Sheets

Koppla in källan för utvärderingsdatasetet och loggning av resultat i Google Sheets.

  1. Öppna Retrieve Evaluation Rows och ställ in documentId till [YOUR_ID] och sheetName till meeting_extractor (gid=0).
  2. Aktivera limitRows i Retrieve Evaluation Rows.
  3. Autentiseringsuppgifter krävs: Anslut era googleSheetsOAuth2Api-autentiseringsuppgifter i Retrieve Evaluation Rows.
  4. Öppna Log Evaluation Results och ställ in documentId till [YOUR_ID] och sheetName till meeting_extractor (gid=0).
  5. Autentiseringsuppgifter krävs: Anslut era googleSheetsOAuth2Api-autentiseringsuppgifter i Log Evaluation Results.

⚠️ Vanlig fallgrop: Om [YOUR_ID] inte ersätts med ett riktigt Google Sheet-ID kommer utvärderings- och loggningsnoderna att misslyckas.

Steg 3: Sätt upp AI-pipelinen för extraktion

Konfigurera agenten, språkmodellerna och den strukturerade parsern som extraherar mötesdetaljer från inkommande meddelanden.

  1. Öppna OpenAI Chat Engine och välj modellen gpt-4.1-mini med temperature satt till 0 och responseFormat satt till json_object.
  2. Autentiseringsuppgifter krävs: Anslut era openAiApi-autentiseringsuppgifter i OpenAI Chat Engine.
  3. Öppna Derive Meeting Details och ställ in text till =Inputs: - message_text: {{ $('Combine Incoming Data').first().json.message_text }} - reference_datetime_utc: {{ $('Combine Incoming Data').first().json.now }} - timezone: {{ $('Combine Incoming Data').first().json.timezone }}.
  4. Behåll promptType inställt på define och lämna systeminstruktionerna som de är i Derive Meeting Details.
  5. Öppna Structured Result Parser och behåll schemaType inställt på manual, ha autoFix aktiverat och använd det angivna JSON-schemat i inputSchema.
  6. Koppla OpenAI Chat Engine till Derive Meeting Details som språkmodell och Structured Result Parser till Derive Meeting Details som output-parser.
  7. Öppna Output Repair Model och välj modellen gpt-5-mini.
  8. Autentiseringsuppgifter krävs: Anslut era openAiApi-autentiseringsuppgifter i Output Repair Model.

Obs: Structured Result Parser är en AI-subnod—lägg till OpenAI-autentiseringsuppgifter i OpenAI Chat Engine och Output Repair Model, inte i själva parsern.

Steg 4: Konfigurera utvärdering och loggning av output

Förbered utvärderingsinmatningar, poängsätt AI-output och logga tillbaka resultaten till Google Sheets.

  1. I Prepare Evaluation Inputs, ställ in message_text till {{ $('Retrieve Evaluation Rows').item.json.input }} och is_evaluating till true.
  2. Ställ in =now till {{ new Date('2026-01-06T15:30:00Z').toISOString() }} och timezone till America/Argentina/Buenos_Aires.
  3. I Score Output Match, behåll prompt som angivet och ställ in actualAnswer till {{ JSON.stringify($('Normalize Agent Result').first().json.meeting) }}.
  4. Ställ in expectedAnswer till {{ JSON.stringify($('Retrieve Evaluation Rows').item.json.expected_output) }} och behåll operation som setMetrics.
  5. Öppna Evaluation Chat Engine och välj modellen gpt-5-mini.
  6. Autentiseringsuppgifter krävs: Anslut era openAiApi-autentiseringsuppgifter i Evaluation Chat Engine.
  7. I Log Evaluation Results, mappa actual_output till {{ JSON.stringify($('Normalize Agent Result').first().json.meeting) }}, metadata till {{ JSON.stringify($('Normalize Agent Result').first().json.reasoning) }} och match till {{ $('Score Output Match').first().json.match }}.
  8. Bekräfta flödet Retrieve Evaluation RowsPrepare Evaluation InputsCombine Incoming DataDerive Meeting DetailsVerify Agent OutputNormalize Agent ResultRoute Evaluation ModeScore Output MatchLog Evaluation Results.

Steg 5: Lägg till felhantering

Hantera fall där AI-output inte går att parsa eller normalisera korrekt.

  1. I Verify Agent Output, behåll villkoret som kontrollerar {{ $('Derive Meeting Details').first().json.output }} med operatorn notEmpty.
  2. Säkerställ att false-grenen från Verify Agent Output routas till Raise Processing Error.
  3. I Raise Processing Error, behåll errorType som errorObject och errorObject satt till {{ JSON.stringify({ error: { message: 'AI agent failed to normalize event strings', execution: $execution, workflow: $workflow }, timestamp: new Date().toISOString() }) }}.

⚠️ Vanlig fallgrop: Om Derive Meeting Details returnerar ogiltig JSON kan output-parsern misslyckas—behåll Structured Result Parser auto-fix aktiverat och verifiera systemprompten.

Steg 6: Testa och aktivera ert arbetsflöde

Validera att subflödet tar emot input, extraherar mötesdata och loggar utvärderingsresultat utan problem.

  1. Kör Subflow Activation Trigger manuellt med exempelvärden för message_text och timezone.
  2. Bekräfta att Normalize Agent Result returnerar ett meeting-objekt och en reasoning-sträng.
  3. Om ni kör utvärdering, kontrollera att Score Output Match genererar ett match-värde och att Log Evaluation Results skriver till Google Sheets.
  4. När testerna passerar, aktivera arbetsflödet så att subflödet är tillgängligt i produktion.
🔒

Lås upp fullständig steg-för-steg-guide

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • Google Sheets-credentials kan löpa ut eller kräva specifika behörigheter. Om det strular, kontrollera först n8n:s credential-koppling och Sheetens delningsinställningar.
  • Om du använder utvärderingskörningar som loopar över rader varierar processtiderna. Om nedströms noder fallerar vid tomma svar, sakta ner eller minska batchstorleken.
  • Standardprompter i AI-noder är generiska. Lägg in dina tidszonsregler och vägledning för ”vad som räknas som ett giltigt möte” tidigt, annars kommer du att redigera output för alltid.

Vanliga frågor

Hur lång tid tar det att sätta upp den här OpenAI Sheets-automationen?

Cirka en timme om du redan har din OpenAI-nyckel och åtkomst till Google Sheets klart.

Behöver jag kodkunskaper för att automatisera städning av mötesdetaljer?

Nej. Du kopplar främst konton och klistrar in rätt Sheet-ID:n. ”Logiken” finns redan inbyggd i workflowet.

Är n8n gratis att använda för den här OpenAI Sheets-automations-workflowen?

Ja. n8n har ett gratis alternativ för self-hosting och en gratis provperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volym. Du behöver också räkna in OpenAI API-kostnader (oftast några cent per batch av meddelanden, beroende på modell och längd).

Var kan jag hosta n8n för att köra den här automationen?

Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärd och hanterar n8n bra. Self-hosting ger dig obegränsade exekveringar men kräver grundläggande serveradministration.

Kan jag anpassa den här OpenAI Sheets-automations-workflowen för att extrahera andra fält?

Ja, och det är hela poängen. Du uppdaterar schemat i Structured Result Parser så att det matchar dina fält och justerar sedan agentinstruktionerna i noden Derive Meeting Details. Vanliga justeringar är att lägga till mötestyp, tvinga fram ett specifikt platsformat och kräva en bekräftad deltagarlista innan ett ”giltigt” resultat returneras.

Varför misslyckas min OpenAI-anslutning i det här workflowet?

Oftast är det en ogiltig eller utgången API-nyckel, eller att credentialn inte är kopplad till noderna för OpenAI Chat Model. Det kan också vara problem med modellåtkomst på ditt OpenAI-konto, särskilt om du bytte till en modell som ditt konto inte stödjer. Om felen bara händer under utvärderingskörningar, kontrollera rate limits och sakta ner workflowet lite. Bekräfta till sist att felet inte egentligen kommer från schemavalidering, eftersom det kan se ut som ”AI:n misslyckades” när det verkliga problemet är formatering.

Hur många mötesmeddelanden kan den här OpenAI Sheets-automationen hantera?

Många. På n8n Cloud Starter begränsas du av månatliga exekveringar; vid self-hosting beror det mest på din server och OpenAI:s rate limits. I praktiken kör team detta utan problem för tiotals till hundratals mötesmeddelanden per dag och skalar sedan genom att batcha utvärdering och hålla promptar korta.

Är den här OpenAI Sheets-automationen bättre än att använda Zapier eller Make?

Ofta, ja, eftersom workflowet lutar sig mot strikt schemavalidering, branching och ett utvärderingsläge som är enklare att underhålla i n8n. Zapier eller Make kan fortfarande fungera om du bara extraherar ett par fält och inte bryr dig om testning. Men om du behöver driftsäkerhet, spårbara fel och repeterbar poängsättning mot ett Google Sheet med testfall är n8n ett bättre val. Detta är också designat som en subworkflow, så du kan återanvända den i flera parent-automationer utan att duplicera logik. Om du tvekar, prata med en automationsexpert och få en rak rekommendation.

När detta väl är på plats slutar mötesmeddelanden att vara ett ständigt städprojekt. Du får strukturerade detaljer du kan lita på, plus ett sätt att bevisa att agenten är pålitlig innan den rör verklig drift.

Kontakta oss

Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.

×

Använd mall

Få direkt tillgång till denna n8n-arbetsflödes JSON-fil

Launch login modal Launch register modal