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

Google Docs till Google Sheets: quizutkast snabbt

Rickard Andersson Partner, Nodenordic.se

Dina lektioner finns i Google Docs, men din frågebank finns … överallt. Ett dokument här, ett kalkylark där och en halvfärdig uppsättning frågor i någons anteckningar eftersom att formatera dem ”korrekt” är ett helt eget jobb.

Den här automatiseringen av frågebank slår hårdast mot instruktionsdesigners, om vi ska vara ärliga. Men utbildningsansvariga som behöver få ut onboarding snabbt och kurskreatörer som vill hålla konsekvensen känner samma tröghet. Målet är enkelt: gör om en Google Docs-lektion till granskningsklara öppna frågor och flervalsfrågor i Google Sheets, utan att skriva om och omformatera i timmar.

Nedan ser du vad arbetsflödet gör, varför det spelar roll och hur du anpassar det så att teamet kan godkänna frågor i stället för att bråka med kopiera-klistra in.

Så fungerar automatiseringen

Se hur detta löser problemet:

n8n Workflow Template: Google Docs till Google Sheets: quizutkast snabbt

Utmaningen: göra om lektioner till quiz utan onödigt merarbete

Att skriva bra bedömningsfrågor är redan svårt. Det som inte borde vara svårt är produktionslinan runt omkring: att plocka innehåll ur Google Docs, dela upp det till något användbart, skriva öppna frågor, skriva flervalsfrågor med trovärdiga distraktorer och sedan få in allt i ett strukturerat Google Sheet så att någon annan kan granska. I verkliga team stjäl den här ”produktionslinan” tiden du egentligen skulle lägga på kvalitet. Du får också inkonsekvens. En person skriver rena minnesfrågor, en annan skriver tillämpningsfrågor, och ingen kan se vad som faktiskt kommer från källmaterialet jämfört med någon persons minne.

Det bygger snabbt på. Här är var det brukar falla i praktiken.

  • Du slutar med att skriva om samma lektionsinnehåll till ”frågeform” eftersom källan inte är strukturerad för quizproduktion.
  • Flervalsfrågor tar evigheter eftersom det är långsamt att skriva trovärdiga felalternativ, och att kontrollera dem mot lektionen är ännu långsammare.
  • Folk kopierar in frågor i Sheets manuellt, vilket ger formateringsproblem, kolumner som inte matchar och saknade svar.
  • Utan förankring i originaldokumentet kan AI-utkast driva iväg, och granskare lägger tiden på att fånga hallucinationer i stället för att förbättra undervisningskvaliteten.

Lösningen: Google Doc till AI-utkastad frågebank i Sheets

Det här arbetsflödet gör om en Google Docs-lektion till två strukturerade flikar i Google Sheets: öppna frågor med utkast till svar och flervalsfrågor med svarsalternativ plus korrekt svar. Det börjar med att hämta lektionsinnehållet från Google Docs och konvertera det till ett mer strukturerat textformat (Markdown) så att AI:n kan arbeta med rubriker och struktur i stället för rörig formatering. Därefter delas lektionen upp i chunkar, embeddings skapas med OpenAI och lagras i Qdrant så att senare steg kan hämta exakt de delar av lektionen som behövs för att motivera ett svar. Sedan tar Google Gemini fram frågeset, och ett retrieval-steg validerar svaren mot det lagrade lektionssammanhanget. Till sist lägger n8n till resultaten i Google Sheets så att teamet kan granska, redigera och godkänna på platsen de redan använder.

Arbetsflödet startar med en manuell körning (eller så kan du byta till en Drive-trigger) och hämtar ett specifikt Google Doc. AI skapar öppna frågor och flervalsfrågor och använder sedan retrieval (RAG) via Qdrant för att hålla svaren kopplade till lektionen. Google Sheets tar emot allt i en konsekvent, granskningsvänlig struktur.

Vad som förändras: före vs. efter

Effekt i verkligheten

Säg att du publicerar 3 lektioner i veckan och behöver ett snabbt utkast med 20 frågor per lektion (10 öppna, 10 flervalsfrågor). Manuellt är en rimlig takt ungefär 2 timmar per lektion när du räknar in skrivande, kontroll och formatering i Sheet, så du tappar cirka 6 timmar varje vecka. Med det här arbetsflödet triggar du det på en minut, låter bearbetningen köra och lägger sedan cirka 20–30 minuter på granskning och finslipning. Det är ungefär 4–5 timmar tillbaka varje vecka, och din frågebank hålls organiserad i Google Sheets.

Krav

  • n8n-instans (prova n8n Cloud gratis)
  • Alternativ för egen drift om du föredrar det (Hostinger fungerar bra)
  • Google Docs som källdokument för lektionen.
  • Google Sheets för att lagra frågebanksflikar för granskning.
  • OpenAI API-nyckel (hämta den i OpenAI API-dashboarden) för embeddings.
  • Google Gemini API-nyckel (hämta den i Google AI Studio) för frågegeneration.
  • Qdrant-URL + API-nyckel (hämta den från din Qdrant Cloud eller egen instans) för vector retrieval.

Kunskapsnivå: Medel. Du kopplar konton, lägger till API-nycklar och klistrar in ett Doc ID/Sheet ID i rätt noder.

Behöver du hjälp att implementera detta? Prata med en automationsexpert (gratis 15-minuters konsultation).

Arbetsflödet steg för steg

Inläsning av lektion från Google Docs. Arbetsflödet startar när du kör det (eller så kan du senare byta till en Google Drive-trigger). Det hämtar Google Doc:et du anger och konverterar innehållet till Markdown så att rubriker, listor och sektioner blir enklare att tolka.

Förankring med embeddings och Qdrant. Lektionen delas upp i chunkar, sedan genereras OpenAI-embeddings och lagras i Qdrant. Det lagringssteget är ”minnet” som senare gör att arbetsflödet kan hämta rätt passage när det behöver motivera ett svar.

Frågeutkast med Google Gemini plus retrieval-kontroller. Gemini genererar öppna frågor och flervalsfrågor. För öppna frågor hämtar ett retrieval QA-steg kontext från Qdrant för att skriva svar som stämmer med lektionen. För flervalsfrågor kontrollerar ett agentsteg att det korrekta alternativet faktiskt stöds av innehållet och att distraktorerna är fel men ändå trovärdiga.

Publicering till Google Sheets. Arbetsflödet lägger till rader i två flikar: en för öppna frågor (fråga + utkast till svar) och en för slutna frågor (fråga, alternativ, korrekt svar). Därifrån granskar teamet, justerar svårighetsgrad och godkänner.

Du kan enkelt ändra antal frågor eller riktlinjer för svårighetsgrad så att det matchar din kursplan. Se hela implementeringsguiden nedan för anpassningsalternativ.

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

Steg 1: Konfigurera den manuella triggern

Konfigurera den manuella triggern för att starta workflowet vid behov och initiera sekvensen för Qdrant-rensning och dokumenthämtning.

  1. Lägg till Manual Launch Trigger som startnod.
  2. Koppla Manual Launch Trigger till Purge Collection för att rensa vektordatabasen före varje körning.
  3. Bekräfta att körordningen följer: Manual Launch TriggerPurge CollectionRetrieve Document.

Steg 2: Anslut Google Docs

Hämta källinnehållet från Google Docs och konvertera det till strukturerad markdown för efterföljande frågegenerering.

  1. Öppna Retrieve Document och ställ in Operationget.
  2. Ställ in Document URL[YOUR_ID] (ersätt med ert Google Docs-ID eller er URL).
  3. Inloggning krävs: anslut era googleDocsOAuth2Api-uppgifter i Retrieve Document.
  4. I Markdown Conversion behåller ni den medföljande JavaScript-koden som skapar fältet markdown från dokumentets JSON.
  5. Verifiera flödet: Retrieve DocumentMarkdown Conversion.

Nodrouting: Markdown Conversion skickar utdata parallellt till Generate Closed Questions, Generate Open Questions och Convert to Text File.

Tips: om ert Google Doc innehåller rubriker eller formaterad text bevarar konverteraren fet/kursiv och rubriknivåer för bättre prompt-kontext.

Steg 3: Konfigurera initiering och inläsning till vektorlager

Initiera och rensa er Qdrant-kollektion, bädda sedan in och infoga markdown-innehållet i vektordatabasen för retrieval-augmented answers.

  1. I Initialize Collection ställer ni in URL till http://QDRANT_URL/collections/COLLECTIONS och Method till PUT.
  2. Behåll JSON Body enligt mallen för att definiera size, distance och shard-inställningar för embeddings.
  3. Inloggning krävs: anslut era httpHeaderAuth-uppgifter i Initialize Collection.
  4. I Purge Collection ställer ni in URL till http://QDRANT_URL/collections/COLLECTIONS/points/delete och Method till POST.
  5. Inloggning krävs: anslut era httpHeaderAuth-uppgifter i Purge Collection.
  6. I Convert to Text File ställer ni in Operation till toText och Source Property till markdown.
  7. Säkerställ att Qdrant Insert Store har Mode satt till insert och att en giltig kollektion är vald.
  8. Inloggning krävs: anslut era qdrantApi-uppgifter i Qdrant Insert Store.
  9. Inloggning krävs: anslut era openAiApi-uppgifter i OpenAI Embedding Builder (används av Qdrant Insert Store).
⚠️ Vanlig fallgrop: kollektionsnamnet i Qdrant Insert Store måste matcha kollektionen som skapats i Initialize Collection, annars misslyckas infogningar.

Steg 4: Konfigurera ai-generering för öppna och slutna frågor

Konfigurera LLM-kedjorna och parsern för att generera öppna frågor och flervalsfrågor från markdown-innehållet.

  1. I Generate Open Questions ställer ni in Text till =Article: ''' {{ $json.markdown }} ''' och behåller Prompt Type som define.
  2. Anslut Gemini Chat Model Alpha som språkmodell för Generate Open Questions och behåll Model Name som models/gemini-2.0-flash-exp.
  3. Inloggning krävs: anslut era googlePalmApi-uppgifter i Gemini Chat Model Alpha.
  4. Koppla Item List Parser Alpha till Generate Open Questions för att parsa en lista med frågor.
  5. I Generate Closed Questions ställer ni in Text till =Article: ''' {{ $json.markdown }} ''' och behåller Prompt Type som define.
  6. Anslut Gemini Chat Model Gamma som språkmodell för Generate Closed Questions och behåll Model Name som models/gemini-2.0-flash-exp.
  7. Inloggning krävs: anslut era googlePalmApi-uppgifter i Gemini Chat Model Gamma.
  8. Koppla Item List Parser Beta till Generate Closed Questions för parsning av MCQ-lista.

Eftersom detta workflow använder flera Gemini-noder, säkerställ att Gemini Chat Model Alpha, Gemini Chat Model Beta, Gemini Chat Model Gamma, Gemini Chat Model Delta och Gemini Chat Model Epsilon alla har googlePalmApi-uppgifter konfigurerade.

Tips: om ert prompt-utdataformat ändras, justera inställningarna i Item List Parser Alpha och Item List Parser Beta så att de matchar antalet items.

Steg 5: Konfigurera hämtning, svar och parsning

Använd Qdrant-hämtning med embeddings och strukturerad parsning för att generera svar och flervalsalternativ.

  1. I Qdrant Retrieval Store väljer ni samma kollektion som används för infogningar och kopplar den till Vector Store Fetcher.
  2. Inloggning krävs: anslut era qdrantApi-uppgifter i Qdrant Retrieval Store.
  3. Inloggning krävs: anslut era openAiApi-uppgifter i OpenAI Embedding Beta (används av Qdrant Retrieval Store).
  4. I Answer Open Queries ställer ni in Text till ={{ $json.text }} och behåller Prompt Type som define.
  5. Anslut Gemini Chat Model Beta som språkmodell för Answer Open Queries.
  6. I Qdrant QA Store väljer ni samma kollektion för RAG och kopplar den till Vector RAG Tool.
  7. Inloggning krävs: anslut era qdrantApi-uppgifter i Qdrant QA Store.
  8. Inloggning krävs: anslut era openAiApi-uppgifter i OpenAI Embedding Delta (används av Qdrant QA Store).
  9. I Answer MCQ Builder ställer ni in Text till ={{ $json.text }}, behåller Prompt Type som define, och säkerställer att Has Output Parser är aktiverat.
  10. Koppla Structured Parser till Answer MCQ Builder med schemat som inkluderar arrayerna correct och answers.
⚠️ Vanlig fallgrop: ai-verktygsundernoder som Vector Store Fetcher, Structured Parser och Vector RAG Tool tar inte in uppgifter direkt – lägg till uppgifter på deras överordnade noder (Qdrant Retrieval Store, Answer MCQ Builder, Qdrant QA Store).

Steg 6: Konfigurera utdata till Google Sheets

Lägg till resultat för öppna och slutna frågor i separata ark med korrekta fältmappningar.

  1. I Append Open Results ställer ni in Operation till append och väljer ert Document ID och Sheet Name.
  2. Mappa QUESTION till ={{ $('Iterate Records Alpha').item.json.text }} och ANSWER till ={{ $json.response }}.
  3. Inloggning krävs: anslut era googleSheetsOAuth2Api-uppgifter i Append Open Results.
  4. I Append Closed Results ställer ni in Operation till append och väljer målarket för slutna frågor.
  5. Mappa QUESTION till ={{ $('Generate Closed Questions').item.json.text }} och svaren till ={{ $json.output.answers[0] }} till ={{ $json.output.answers[3] }}, med CORRECT som ={{ $json.output.correct }}.
  6. Inloggning krävs: anslut era googleSheetsOAuth2Api-uppgifter i Append Closed Results.

Körningsloopning: Generate Open Questions går vidare till Iterate Records Alpha och Generate Closed Questions går vidare till Iterate Records Beta, där båda batchar poster innan de besvaras och läggs till.

Steg 7: Testa och aktivera ert workflow

Kör ett fullständigt manuellt test för att verifiera dokumenthämtning, frågegenerering, vektorinfogningar och tillägg i ark innan ni slår på det.

  1. Klicka på Execute Workflow från Manual Launch Trigger för att köra hela pipelinen.
  2. Bekräfta att Retrieve Document returnerar data och att Markdown Conversion skapar ett markdown-fält.
  3. Verifiera Qdrant-operationerna: Purge Collection slutförs, Convert to Text File körs och Qdrant Insert Store infogar vektorer.
  4. Kontrollera att öppna och slutna frågor läggs till i respektive ark av Append Open Results och Append Closed Results.
  5. När ni är nöjda, växla workflowet till Active för användning i produktion.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

Saker att se upp med

  • OAuth-behörigheter för Google Docs / Google Sheets kan vara petiga. Om tillägg plötsligt misslyckas, kontrollera det anslutna Google-kontot i n8n-credentials och bekräfta att det fortfarande har åtkomst till det dokumentet och det arket.
  • Om du rensar och återskapar Qdrant-collection vid varje körning kan du råka radera embeddings medan någon testar. I Qdrant: verifiera collection-namnet som används i arbetsflödet innan du kör det i en delad miljö.
  • Gemini-prompts som är för generiska ger slätstrukna frågor. Lägg in dina standarder tidigt (svårighetsgrad, Blooms nivå, stil, ton), annars kommer du att redigera varje batch i efterhand.

Vanliga frågor

Hur snabbt kan jag implementera den här automatiseringen av frågebank?

Cirka en timme om du redan har dina API-nycklar och ett Google Sheet som mål.

Kan icke-tekniska team implementera den här automatiseringen av frågebank?

Ja, men du vill göra en noggrann installationsrunda. När credentials och ID:n är på plats är det bara att klicka på kör (eller låta triggern köra).

Är n8n gratis att använda för det här arbetsflödet för automatisering av frågebank?

Ja. n8n har ett gratis alternativ för egen drift 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 kostnader för OpenAI-embeddings och användning av Google Gemini API.

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

Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen drift på en VPS. För egen drift är Hostinger VPS prisvärd och hanterar n8n bra. Egen drift ger obegränsat antal körningar men kräver grundläggande serveradministration.

Hur anpassar jag den här lösningen för automatisering av frågebank till mina specifika utmaningar?

Börja med promptarna i stegen ”Generate Open Questions” och ”Generate Closed Questions”, eftersom det är där svårighetsgrad, stil och frågetyper bestäms. Om ditt innehåll är långt eller tätt, justera inställningarna i ”Token Chunk Divider” så att retrieval hämtar mer sammanhängande kontext. Du kan också byta den manuella triggern mot en Google Drive-trigger för att automatisera nya lektioner och sedan ändra Google Sheets append-noderna så att de skriver till flikar per kurs.

Varför misslyckas min Google Sheets-anslutning i det här arbetsflödet?

Oftast beror det på utgångna Google OAuth-credentials eller att det anslutna kontot har tappat åtkomst till arket. Återanslut Google Sheets-credential i n8n och kontrollera sedan att Sheet ID är korrekt och att målfliken finns. Om du lägger till många rader snabbt kan Googles API:er också rate-limita, så det hjälper att lägga in en liten batchstorlek i loopen.

Vilken kapacitet har den här lösningen för automatisering av frågebank?

Om du kör egen drift finns ingen körningsgräns (det beror främst på din server och API-kvoter). Kapaciteten i n8n Cloud beror på din plans månatliga körningar, och det här arbetsflödet använder vanligtvis flera körningar per run eftersom det loopar igenom genererade frågeobjekt.

Är den här automatiseringen av frågebank bättre än att använda Zapier eller Make?

För den här typen av arbetsflöde är n8n oftast det praktiska valet eftersom du gör AI-generering i flera steg, loopar och retrieval-kontroller, inte bara flyttar data från A till B. Zapier och Make kan fungera, men så fort du behöver chunkning, grenlogik och ett anrop mot en vektordatabas blir det klumpigt och dyrt. n8n ger också möjligheten till egen drift, vilket spelar roll när du genererar många frågor. Om din process bara är ”Doc in, en prompt ut” kan enklare verktyg räcka. Prata med en automationsexpert om du vill ha en snabb rekommendation baserat på volym och granskningsflöde.

När detta väl rullar växer din frågebank utan det vanliga friktionen. Arbetsflödet tar hand om de repetitiva delarna så att granskare kan lägga fokus på lärandemål och tydlighet.

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

Få prisoffert redan idag!
Få prisoffert redan idag!

Berätta vad ni behöver hjälp med så hör vi av oss inom en arbetsdag!

Få prisoffert redan idag!
Få prisoffert redan idag!

Berätta vad ni behöver hjälp med så hör vi av oss inom en arbetsdag!

Launch login modal Launch register modal