Leverantörsgranskning låter enkelt tills du jagar integritetspolicyer, trust-sidor och säkerhetsuttalanden i fem flikar. Sedan kopierar du anteckningar till ett kalkylark, tvivlar på vad du missat och försöker förklara resultatet för någon som behöver ett “godkänn / avslå”-svar.
Det är här automatisering av leverantörsrisk ger effekt. GRC-ansvariga märker det under onboardingtoppar, men inköpsteam och startup-operatörer känner av det också. Du får en konsekvent leverantörsriskbedömning som hamnar i Google Sheets med en strukturerad riskscore och länkar du kan hänvisa till i efterhand.
Nedan ser du hur arbetsflödet körs, vad det producerar och vad du behöver för att sätta upp det utan att göra din vecka till ett maraton av säkerhetsfrågeformulär.
Så fungerar den här automatiseringen
Hela n8n-flödet, från trigger till slutresultat:
n8n Workflow Template: Google Sheets + Gemini: enklare leverantörsrisk
flowchart LR
subgraph sg0["Intake form Flow"]
direction LR
n0@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser", pos: "b", h: 48 }
n1["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Answer risk questions"]
n2["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/form.svg' width='40' height='40' /></div><br/>Intake form"]
n3@{ icon: "mdi:cog", form: "rounded", label: "Delay1: 1 second", pos: "b", h: 48 }
n4@{ icon: "mdi:cog", form: "rounded", label: "Delay2: 1 second", pos: "b", h: 48 }
n5@{ icon: "mdi:swap-vertical", form: "rounded", label: "Build Research Prompts", pos: "b", h: 48 }
n6["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Research Company Background"]
n7@{ icon: "mdi:brain", form: "rounded", label: "Gemini - Risk Assessment", pos: "b", h: 48 }
n8@{ icon: "mdi:brain", form: "rounded", label: "Gemini - Link Summarizer", pos: "b", h: 48 }
n9["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Extract Reference URLs"]
n10["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/jinaAi.dark.svg' width='40' height='40' /></div><br/>Fetch Web Content"]
n11@{ icon: "mdi:robot", form: "rounded", label: "Summarize Web Content", pos: "b", h: 48 }
n12@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Validate URL Extraction", pos: "b", h: 48 }
n13["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Determine Vendor Classificat.."]
n14@{ icon: "mdi:robot", form: "rounded", label: "Calculate Risk Score", pos: "b", h: 48 }
n15@{ icon: "mdi:swap-vertical", form: "rounded", label: "Handle No URLs Found", pos: "b", h: 48 }
n16@{ icon: "mdi:cog", form: "rounded", label: "Merge Content Data", pos: "b", h: 48 }
n17["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Sanatize URL Data"]
n18["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Format Assessment Results"]
n19@{ icon: "mdi:database", form: "rounded", label: "Export to Google Sheet", pos: "b", h: 48 }
n20["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/form.svg' width='40' height='40' /></div><br/>Display Assessment Summary"]
n2 --> n5
n3 --> n13
n4 --> n1
n10 --> n11
n17 --> n14
n16 --> n17
n14 --> n18
n15 --> n16
n1 --> n9
n11 --> n16
n5 --> n6
n19 --> n20
n9 --> n12
n12 --> n10
n12 --> n15
n8 -.-> n11
n7 -.-> n14
n0 -.-> n11
n18 --> n19
n6 --> n3
n13 --> n4
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n2 trigger
class n0,n11,n14 ai
class n7,n8 aiModel
class n12 decision
class n19 database
class n1,n6,n13 api
class n9,n17,n18 code
classDef customIcon fill:none,stroke:none
class n1,n2,n6,n9,n10,n13,n17,n18,n20 customIcon
Problemet: leverantörsgranskning är repetitiv (och riskfylld)
De flesta leverantörsriskgranskningar fallerar på tråkiga sätt. Inte för att teamet inte bryr sig, utan för att processen bygger på manuella steg: hitta leverantörens policys, läsa dem, sammanfatta det viktiga och sedan översätta det till något som är konsekvent nog att jämföra mellan leverantörer. En granskning kan lätt sluka några timmar, särskilt när leverantörens webbplats är rörig eller deras säkerhetsinformation är utspridd över marknadssidor. Och när det är dags för en revision eller ett internt “varför godkände vi det här?”-läge, blir du fast i att återskapa vad du såg och när du såg det.
Friktionen växer. Här är var det brukar fallera.
- Policylänkar är lätta att missa, så granskningen blir ofullständig även när du försöker vara noggrann.
- Olika granskare skriver olika sammanfattningar, vilket gör jämförelser mellan leverantörer på samma grunder i princip omöjliga.
- Manuell copy-paste till Sheets skapar små fel som leder till stora diskussioner senare.
- Det slutliga godkännandespåret är utspritt över mejl, dokument och webbläsarhistorik i stället för en enda tydlig logg.
Lösningen: Gemini hämtar policys, sammanfattar och riskpoängsätter till Sheets
Det här n8n-flödet gör leverantörsgranskning till en repeterbar loop för inmatning och resultat. Det börjar med ett enkelt intagsformulär där du fångar leverantörens namn, ditt användningsfall och vilken typ av data de kommer i kontakt med. Därifrån gör flödet research på bolagsprofilen, skapar riktade riskfrågor och hittar offentliga URL:er som integritetspolicy, användarvillkor, säkerhetssidor och trust centers. Sedan hämtar det innehållet från de sidorna, sammanfattar det som är relevant för risk och kör en strukturerad analys i Gemini som ger en tier-klassificering plus en riskscore du faktiskt kan jämföra mellan leverantörer. Till sist formaterar det allt och lägger till en enda, konsekvent rad i Google Sheets, med referenser som gör granskningen revisionsredo.
Arbetsflödet startar vid intaget och pausar sedan kort för att låta varje researchsteg bli klart utan att skapa fel. Därefter validerar och hämtar det policy-URL:er, sammanfattar sidorna och beräknar en strukturerad riskscore. Sista steget skriver den slutliga bedömningen till Google Sheets och visar en sammanfattning tillbaka i formuläret.
Det här får du: automatisering vs. resultat
| Vad det här arbetsflödet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut i praktiken
Säg att du granskar 5 leverantörer under en vecka. Manuellt innebär en grundläggande genomgång ofta cirka 30 minuter för att hitta rätt sidor, ytterligare en timme för att skumma och sammanfatta och sedan 20 minuter för att formatera underlaget i Sheets. Det blir ungefär 2 timmar per leverantör, alltså runt 10 timmar i veckan. Med det här flödet lägger du cirka 5 minuter på intaget per leverantör och väntar sedan på att research och sammanfattning körs medan du gör annat. De flesta team landar i en slutlig granskning på 10–15 minuter och trycker på godkänn, vilket frigör större delen av veckan.
Det här behöver du
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
- Google Sheets för att lagra leverantörsriskloggen.
- Google Drive om du också lagrar PDF:er eller bevisfiler.
- Gemini API-åtkomst (hämta via Google AI Studio / Google Cloud-inloggningsuppgifter).
Svårighetsnivå: Medel. Du kopplar mest konton och API-nycklar och justerar sedan prompts och kolumner i arket så att de matchar din granskningsmodell.
Vill du inte sätta upp det här själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
Leverantörsintaget startar allt. Du skickar in ett formulär med leverantörens namn, vad ni använder dem till och vilken datakategori som berörs. Kontexten är viktig eftersom risken för ett “marknadsföringsverktyg” är en annan än för en “behandlare av kunddata”.
Research och länkidentifiering körs därefter. Flödet undersöker bolagsprofilen, genererar riskfrågor och hämtar referenslänkar som det bedömer relevanta (integritetspolicy, villkor, säkerhetssidor). En “if”-kontroll verifierar extraheringen så att du inte får skräp-URL:er som sätter igen loggen.
Innehåll hämtas och sammanfattas. Med Jina AI för hämtning av webbinnehåll och Gemini för analys samlar flödet in sidtext och sammanfattar den till strukturerade fält. Det är här konsekvensen kommer ifrån, eftersom varje leverantör bedöms mot samma typ av frågor.
Riskscore och output genereras. Det beräknar en leverantörsnivå, räknar fram en riskscore, formaterar den slutliga posten och lägger till den i Google Sheets. Du får också en bedömningssammanfattning tillbaka i formuläret så att du kan agera direkt.
Du kan enkelt ändra riskfrågorna så att de matchar ert interna ramverk utifrån era behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementation
Steg 1: Konfigurera formulärtriggern
Konfigurera intagsformuläret som startar processen för leverantörsriskgranskning.
- Lägg till en Vendor Intake Trigger-nod och behåll Form Title inställt på
Vendor Intake Form. - Ställ in Form Description till
Please fill in the vendor details and the business use case as accurately as possible to determine the risk level. - Konfigurera formulärfälten exakt enligt etiketter:
What is the vendor's company name?,In which domain does the vendor operate?,What service will the vendor provide for your organization?, ochWhat type of data will the vendor process or store? - Bekräfta att texten för lyckat svar under Respond With Options är
The vendor assessment will be added to the vendor's sheet once completed. - Anslut Vendor Intake Trigger till Compose Research Prompts.
Steg 2: Anslut Google Gemini- och Jina AI-tjänster
Koppla in autentiseringsuppgifter för alla AI- och externa datainsamlingssteg innan ni konfigurerar prompter och poängsättning.
- Öppna Resolve Risk Queries och välj Credential Required: anslut era
googlePalmApi-uppgifter. - Öppna Investigate Company Profile och välj Credential Required: anslut era
googlePalmApi-uppgifter. - Öppna Classify Vendor Tier och välj Credential Required: anslut era
googlePalmApi-uppgifter. - Öppna Gemini Risk Analyzer och välj Credential Required: anslut era
googlePalmApi-uppgifter. - Öppna Gemini Link Briefing och välj Credential Required: anslut era
googlePalmApi-uppgifter. Den här noden är språkmodellen för Summarize Web Pages. - Öppna Retrieve Web Content och välj Credential Required: anslut era
jinaAiApi-uppgifter.
Steg 3: Sätt upp konstruktion av forskningsprompter
Generera strukturerade prompter och kör inledande företagsresearch och klassificering i följd.
- I Compose Research Prompts, behåll Include Other Fields aktiverat och lägg till promptfälten som fylls via uttryck som
{{ $json["What is the vendor's company name?"] }}och{{ $json["What type of data will the vendor process or store?"] }}. - Anslut Compose Research Prompts till Investigate Company Profile, och ställ in URL till
https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent. - I Investigate Company Profile, ställ in JSON Body till det angivna uttrycket och säkerställ att systeminstruktionen använder
{{ $json.system_prompt.toJsonString() }}och att bakgrundsfrågan använder{{ $json.background_q.toJsonString() }}. - Efter Investigate Company Profile, behåll Pause Step One Amount inställt på
1, och anslut sedan till Classify Vendor Tier. - I Classify Vendor Tier, säkerställ att JSON body refererar till
{{ $('Compose Research Prompts').item.json.risk_classifier.toJsonString() }}och{{ $('Investigate Company Profile').item.json.candidates[0].content.parts[0].text.toJsonString() }}. - Efter Classify Vendor Tier, behåll Pause Step Two Amount inställt på
1, och anslut sedan till Resolve Risk Queries. - I Resolve Risk Queries, ställ in JSON Body så att det använder uttrycken för systemprompt och frågelista:
{{ $('Compose Research Prompts').item.json.system_prompt.toJsonString() }}och{{ $('Compose Research Prompts').item.json.all_q.toJsonString() }}.
Steg 4: Extrahera och sammanfatta referenslänkar
Hämta URL:er från research, hämta källinnehåll och sammanfatta relevanta sidor till strukturerade poster.
- Anslut Resolve Risk Queries till Pull Reference Links, som använder Python för att extrahera URL:er från Gemini-svaret.
- Konfigurera Verify Link Extraction så att villkoret utvärderar
{{ $json.url && $json.url.length > 0 }}. - Verify Link Extraction ger utdata parallellt till både Retrieve Web Content och Handle Missing Links baserat på villkorsresultatet.
- I Retrieve Web Content, ställ in URL till
{{ $json.url }}för att hämta webbinnehåll för varje extraherad länk. - I Summarize Web Pages, behåll Prompt Type inställt på
defineoch säkerställ att prompten använder uttryck som{{ $json.title }},{{ $json.description }},{{ $json.url }}, och{{ $json.content }}. - Koppla Structured Results Parser som utdata-parser för Summarize Web Pages och behåll JSON-schemaexemplet som angivet.
- Sammanställ sammanfattade resultat med Combine Content Records där Aggregate är inställt på
aggregateAllItemData, och rensa sedan ogiltiga sammanfattningar i Clean URL Records.
url: no urls och summary: invalid data för att undvika tomma indata längre fram i flödet.Steg 5: Sätt upp AI-baserad riskpoängsättning och formatering av utdata
Poängsätt leverantörsrisk per kategori och formatera den slutliga payloaden för lagring och presentation.
- Anslut Clean URL Records till Compute Risk Score och säkerställ att textprompten innehåller indatauttrycken, såsom
{{ $('Investigate Company Profile').item.json.candidates[0].content.parts[0].text }}och{{ $json.data.toJsonString() }}. - Bekräfta att Compute Risk Score använder språkmodellkopplingen Gemini Risk Analyzer för poängsättningsutdata.
- Behåll Compute Risk Score inställt på Schema Type
manualmed det fullständiga JSON-schemat som tillhandahålls för alla riskkategorier. - Anslut Compute Risk Score till Format Risk Output för att platta till JSON:en till ark-vänliga fält som
overall_risk.risk_rationaleochoverall_risk.recommendations.
Steg 6: Konfigurera utdata och användaravslut
Skicka den färdiga riskbedömningen till Google Sheets och visa en sammanfattning för användaren.
- Öppna Append to Google Sheet och välj Credential Required: anslut era
googleSheetsOAuth2Api-uppgifter. - Ställ in Operation till
appendoch välj mål-Document ID och Sheet Name från er Google Sheets-fil. - Anslut Format Risk Output till Append to Google Sheet, och anslut sedan till Show Assessment Summary.
- I Show Assessment Summary, behåll Completion Title inställt på
The resultsoch använd meddelandeuttrycketVendor name: {{ $json.company_name }}ochRisk rationale: {{ $json['overall_risk.risk_rationale'] }}enligt angivet.
Steg 7: Testa och aktivera ert arbetsflöde
Validera flödet från början till slut och slå på arbetsflödet för produktionsanvändning.
- Klicka på Execute Workflow och skicka in ett testexempel via Vendor Intake Trigger.
- Bekräfta att Resolve Risk Queries, Pull Reference Links, Retrieve Web Content och Summarize Web Pages körs utan fel och genererar länksammanfattningar.
- Verifiera att Compute Risk Score ger ut ett strukturerat JSON-objekt och att Format Risk Output plattar till det korrekt.
- Kontrollera att en ny rad visas i ert ark efter Append to Google Sheet och att Show Assessment Summary visar den formaterade sammanfattningen.
- Växla arbetsflödet till Active för produktionsanvändning.
Vanliga fallgropar
- Google Sheets-inloggningar kan löpa ut eller kräva specifika behörigheter. Om något skapar fel, kontrollera Google-anslutningen i n8n:s Credentials och bekräfta först att målkalkylarket är åtkomligt.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om noder längre fram misslyckas på grund av tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in er tonalitet och er faktiska riskmatris tidigt, annars kommer du redigera outputs i all evighet.
Vanliga frågor
Cirka en timme om du redan har dina nycklar och målarket i Google Sheets redo.
Nej. Du kopplar konton, klistrar in API-nycklar och justerar några prompts och fält i arket.
Ja. n8n har ett gratis self-hosted-alternativ och en gratis provperiod på n8n Cloud. Cloud-planer startar på 20 USD/månad för högre volymer. Du behöver också räkna med kostnader för Gemini/Jina-användning, som beror på hur många leverantörer och sidor du bearbetar.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärt och kör n8n stabilt. Self-hosting ger dig obegränsat antal körningar men kräver grundläggande serverhantering.
Ja, och det bör du troligen. Byt ut riskfrågorna i delarna för prompt-byggande och Gemini-analys (stegen “Compose Research Prompts” och Gemini analyzer) så att flödet speglar era kontroller och era varningsflaggor. Vanliga justeringar är andra risknivåer, separat poängsättning för datakänslighet och extra frågor om underbiträden eller internationella dataöverföringar. Du kan också justera logiken i “Format Risk Output” så att kolumnerna i arket matchar er godkännandeprocess.
Oftast handlar det om behörigheter. Anslut Google Sheets igen i n8n och bekräfta sedan att kalkylarket finns, att rätt arbetsblad/flik är valt och att ditt Google-konto kan redigera det. Om du skriver till en delad drive kan det lägga till ytterligare ett lager av åtkomstproblem. Kontrollera också om arket har skyddade intervall som blockerar tillägg av rader.
Många – i praktiken beror det på din n8n-plan och hur många webbsidor varje leverantör kräver.
Ofta ja, eftersom det här flödet inte är en enkel “skicka data från A till B”. Du har förgreningslogik, pauser, valideringskontroller, innehållshämtning och strukturerad AI-tolkning, och de delarna blir dyra eller klumpiga i Zapier och Make. n8n ger dig också self-hosted-alternativet, vilket är praktiskt när du vill ha mer kontroll över känsliga flöden. Med det sagt: om din process bara är “formulärinskick → lägg till en rad” så fungerar Zapier helt okej. Om du är osäker, prata med en automationsexpert så får du en rak rekommendation.
När det här väl rullar blir varje leverantörsgranskning en konsekvent post som du kan filtrera, godkänna och återkomma till senare utan detektivarbete. Sätt upp det en gång och lägg sedan tiden på besluten som faktiskt kräver en människa.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.