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

Google Sheets + Slack: missa aldrig en förnyelse

Rickard Andersson Partner, Nodenordic.se

Dina leverantörsavtal är förmodligen “spårade” någonstans. Ett kalkylark, en mapp, en inkorgstråd. Sedan smyger ett förnyelsedatum upp, en uppsägningstid missas och plötsligt förhandlar du under press (eller betalar för ännu ett år du inte ville ha).

Det här drabbar ekonomichefer hårdast, men inköpsansvariga känner också av det, och driftteam dras in när tjänster löper ut. Den här automatiseringen för förnyelsepåminnelser för avtal gör ditt kalkylark till ett dagligt skyddsnät, med Slack-påminnelser och godkännanden som inte försvinner.

Du sätter upp ett arbetsflöde som kontrollerar Google Sheets varje morgon, flaggar det som är på väg att löpa ut, skickar manuella förnyelser för godkännande i Slack och mejlar sedan leverantörer med ett korrekt formaterat förnyelsemejl när det har godkänts.

Så fungerar den här automatiseringen

Här är hela arbetsflödet som du kommer att sätta upp:

n8n Workflow Template: Google Sheets + Slack: missa aldrig en förnyelse

Därför spelar det roll: förnyelsedatum är lätta att missa

Avtalsförnyelser är inte svåra för att du inte vet vad en förnyelse är. De är svåra för att arbetet är utspritt. Datum ligger i ett ark. Avtals-PDF:en ligger i Drive. Någon måste komma ihåg uppsägningstiden. Sedan ska du skriva påminnelsen, jaga rätt person i Slack och till sist mejla leverantören på ett sätt som låter tryggt, inte stressat. Gör det för 20 leverantörer så lägger du en märkligt stor del av hjärnkapaciteten på något som borde vara tråkigt. När det går fel är det aldrig ett litet problem. Det är en oönskad automatisk förnyelse, en oväntad prishöjning eller en tjänst som slutar fungera mitt i kvartalet.

Det bygger snabbt på. Så här brukar det falla isär i riktiga team.

  • Du ser slutdatumet först när någon frågar, vilket betyder att du redan är sen att förhandla.
  • Uppsägningstider gömmer sig i finstilt text, så avtal förnyas automatiskt utan att någon äger misstaget.
  • Godkännanden sker i sidokonversationer, och senare kan ingen hitta vem som sa “ja”.
  • Kontakt med leverantörer blir försenad eftersom det tar längre tid än det borde att skriva ett bra mejl.

Det du bygger: dagliga förnyelsepåminnelser med Slack-godkännande + leverantörsmejl

Det här arbetsflödet körs dagligen (06:00) och skannar din leverantörsavtalslista i Google Sheets. Det räknar ut vilka avtal som närmar sig slutdatum baserat på den uppsägningstid du redan har definierat per leverantör. Därifrån delas det upp i två spår. Avtal med automatisk förnyelse får en tydlig Slack-sammanfattning skickad till rätt kontakt på ekonomi, så att du kan dubbelkolla kostnader innan det rullar över. Manuella förnyelser tar en mer noggrann väg: en OpenAI-driven agent skriver ett bättre Slack-meddelande, skickar det till ekonomiansvarig och väntar på ett godkännande i samma tråd. När godkännandet kommer bygger arbetsflödet ett välskrivet HTML-mejl och skickar det till leverantören för att starta förnyelsedialogen. Allt sker utan att du behöver sitta och vaka över det.

Arbetsflödet utgår från ditt kalkylark som sanningskälla. Sedan blir Slack beslutsbanan, inte ännu ett ställe att “också kolla”. Till sist blir mejl en kontrollerad utleverans som skickas efter godkännande, inte ett panikmejl i sista minuten.

Det du bygger

Förväntade resultat

Säg att du hanterar 25 aktiva leverantörer och gör en snabb förnyelsekoll varje vardag. Manuellt är det kanske 2 minuter per leverantör att kontrollera datum och uppsägningstider (plus kontextbyten), alltså cirka 50 minuter per dag, och sedan ytterligare 10–20 minuter när du skriver påminnelser och jagar godkännanden. Med det här arbetsflödet sker den dagliga kontrollen automatiskt kl. 06:00, Slack-meddelanden dyker upp där beslut redan tas och leverantörsmejlet skickas direkt efter godkännande. De flesta team får tillbaka nästan en timme de dagar förnyelser är aktuella, och de undviker de dyra “vi glömde”-tillfällena.

Innan du börjar

  • n8n-instans (testa n8n Cloud gratis)
  • Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
  • Google Sheets för din leverantörsavtalslista.
  • Slack för att skicka aviseringar och samla in godkännanden.
  • OpenAI API-nyckel (hämta den i OpenAI API-dashboarden).
  • E-postkonto (SMTP eller Gmail) för att skicka förnyelsemejl till leverantörer.

Svårighetsgrad: Medel. Du kopplar ihop konton, mappar några fält i arket och testar Slack-godkännanden hela vägen.

Vill du att någon bygger det här åt dig? Prata med en automationsexpert (kostnadsfri 15-minuters konsultation).

Steg för steg

En schemalagd daglig körning kontrollerar din lista. Kl. 06:00 triggar n8n och läser dina leverantörsavtal från Google Sheets, med de kolumner du underhåller (leverantörsnamn, slutdatum, uppsägningstid, förnyelsetyp, ekonomiansvarig och så vidare).

Avtal inom uppsägningsfönstret identifieras. Ett litet logiksteg räknar ut vilka rader som “löper ut snart” genom att jämföra dagens datum med avtalslutdatum och uppsägningstid (dagar). Allt som inte är brådskande ignoreras för dagen.

Automatförnyelse och manuell förnyelse tar olika vägar. Automatförnyelser skapar en enkel Slack-avisering så att ekonomi kan bekräfta kostnad och timing. Manuella förnyelser går via en AI-agent som drivs av en OpenAI-chatmodell för att formulera ett tydligare meddelande, sedan skickar Slack en begäran om godkännande och väntar på svar.

Godkända förnyelser skickar ett leverantörsmejl. När Slack-godkännandet kommer bygger ett kodsteg ett formellt HTML-mejl (med leverantörens namn och kontext från arket) och noden Send Email skickar det till leverantörskontakten.

Du kan enkelt justera logiken för uppsägningsfönstret så att den matchar er avtalspolicy, och du kan ändra tidsgränsen för Slack-godkännande om ditt team svarar snabbare (eller långsammare). Se den fullständiga implementeringsguiden nedan för anpassningsalternativ.

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

Steg 1: Konfigurera den schemalagda triggern

Ställ in arbetsflödet så att det körs automatiskt varje dag med hjälp av den schemalagda triggern.

  1. Lägg till och öppna Scheduled Daily Trigger.
  2. Ställ in den dagliga schemaregeln så att den triggar vid Hour 6.
  3. Koppla Scheduled Daily Trigger till Retrieve Vendor Contracts.

Steg 2: Anslut Google Sheets

Hämta leverantörsavtalsrader från ert kalkylark.

  1. Öppna Retrieve Vendor Contracts.
  2. Inloggning krävs: Anslut era googleSheetsOAuth2Api-uppgifter.
  3. Ställ in Document till kalkylarkets ID [YOUR_ID] och Sheet till Sheet1.
  4. Bekräfta att noden skickar utdata till Detect Expiring Vendors.

Steg 3: Sätt upp utgångslogik och routing

Filtrera avtal som behöver påminnelser och routa fall med automatisk förnyelse.

  1. Öppna Detect Expiring Vendors och behåll den medföljande JavaScript-logiken som beräknar reminderDate och daysUntilExpiry.
  2. Konfigurera Auto-Renewal Check med Left Value {{ $json["Renewal Type"] }} och Right Value Auto-Renew.
  3. Säkerställ att Detect Expiring Vendors är kopplad till Auto-Renewal Check.
  4. Auto-Renewal Check skickar utdata parallellt till både Draft Slack Alert och Vendor Renewal Agent.

Tips: Verifiera att kolumnrubrikerna i ert Google Sheet matchar kodfälten som Contract End Date och Notice Period (days) för att undvika tomma resultat.

Steg 4: Konfigurera Slack-notiser för automatisk förnyelse

Skicka Slack-varningar för avtal som förnyas automatiskt.

  1. Öppna Draft Slack Alert och behåll meddelandemallen i JavaScript-koden.
  2. Öppna Send Auto-Renew Notice.
  3. Inloggning krävs: Anslut era slackOAuth2Api-uppgifter.
  4. Sätt Text till {{ $json.slack_message }} och välj mål-Channel [YOUR_ID].

⚠️ Vanlig fallgrop: Om Slack-kanalens ID är felaktigt kan meddelanden misslyckas utan felmeddelande – använd Slack-kanalens ID, inte kanalnamnet.

Steg 5: Sätt upp AI-utkast och godkännande

Generera utkast till förnyelsemejl med en LLM och begär godkännande i Slack.

  1. Öppna Vendor Renewal Agent och sätt Text till Here is the contract info: {{ $json.toJsonString()}}.
  2. Öppna OpenAI Chat Engine och välj Model gpt-4.1-mini.
  3. Inloggning krävs: Anslut era openAiApi-uppgifter i OpenAI Chat Engine.
  4. Öppna Structured Result Parser och behåll JSON Schema Example som { "subject": "California", "body": "", "original_json":"" }.
  5. Obs: Structured Result Parser är en subnod till Vendor Renewal Agent – inloggning ska läggas till i OpenAI Chat Engine, inte i parsern.
  6. Öppna Slack Approval Request, sätt Message till {{ $json.output.subject }} {{ $json.output.body }}, och behåll Operation som sendAndWait.
  7. Inloggning krävs: Anslut era slackOAuth2Api-uppgifter i Slack Approval Request.

Steg 6: Bygg och skicka leverantörsmejl

Bygg det slutliga mejlet och skicka det via SMTP efter godkännande.

  1. Öppna Build Vendor Email och behåll den medföljande HTML-mallen och ämneslogiken.
  2. Bekräfta att noden refererar till Vendor Renewal Agent via $('Vendor Renewal Agent').item.json.output.original_json.
  3. Öppna Dispatch Renewal Email och sätt To Email till {{ $json.to }}, Subject till {{ $json.subject }}, och HTML till {{ $json.html }}.
  4. Inloggning krävs: Anslut era smtp-uppgifter i Dispatch Renewal Email.

Steg 7: Testa och aktivera ert arbetsflöde

Validera arbetsflödet med exempeldata och aktivera det för daglig körning.

  1. Klicka på Execute Workflow för att köra från Scheduled Daily Trigger med en testrad i ert ark.
  2. Bekräfta att Send Auto-Renew Notice postar ett Slack-meddelande för fall med automatisk förnyelse.
  3. Bekräfta att Slack Approval Request skickar en förfrågan och att Dispatch Renewal Email skickar ett mejl efter godkännande.
  4. När allt fungerar, växla arbetsflödet till Active för dagliga produktionskörningar.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

Tips för felsökning

  • Google Sheets-inloggningar kan gå ut eller kräva specifika behörigheter. Om det skapar fel, börja med att kontrollera n8n-skärmen Credentials och bekräfta att det anslutna Google-kontot fortfarande har åtkomst till arket.
  • Om du använder Wait-beteende i Slack-steget “skicka och vänta på godkännande” varierar svarstiden. Öka väntetiden om efterföljande noder misslyckas eftersom godkännandepayloaden inte har kommit in ännu.
  • OpenAI-prompter är ofta för generiska från start. Lägg in era tonregler (vänlig, tydlig, kortfattad) och obligatoriska fält (slutdatum, förnyelsetyp, avtalsvärde) tidigt, annars kommer du att skriva om meddelanden varje vecka.

Snabba svar

Hur lång tid tar det att sätta upp den här automatiseringen för förnyelsepåminnelser för avtal?

Cirka 30–60 minuter om kolumnerna i arket är klara.

Krävs kodning för den här uppgiften med förnyelsepåminnelser för avtal?

Nej. Du kopplar främst ihop Google Sheets, Slack och e-post och mappar sedan fält.

Är n8n gratis att använda för det här arbetsflödet för förnyelsepåminnelser för avtal?

Ja. n8n har ett gratis alternativ för egen hosting och en gratis provperiod i n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volymer. Du behöver också räkna med OpenAI API-kostnader (ofta några cent per dag i den här skalan).

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 hosting på en VPS. För egen hosting är Hostinger VPS prisvärd och hanterar n8n bra. Egen hosting ger dig obegränsade körningar men kräver grundläggande serverhantering.

Kan jag anpassa det här arbetsflödet för förnyelsepåminnelser för avtal för andra användningsfall?

Ja, och det bör du troligen. Du kan justera logiken i Detect Expiring Vendors för att ändra hur tidigt du larmar, ändra godkännandefönstret i Slack Approval Request och skriva om instruktionerna till AI-agenten så att de matchar er interna policy. Vissa team lägger till ett andra Slack-meddelande till juridik för avtal med högre värde, med hjälp av kolumnen Contract Value. Andra byter senare ut Google Sheets mot en databas, men behåller samma Slack-godkännandemönster.

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

Oftast beror det på en utgången Slack-token eller att appen saknar behörighet att posta eller använda interaktiva godkännanden. Återanslut Slack-inloggningen i n8n och bekräfta sedan att boten är inbjuden till kanalen (eller kan skicka DM till ekonomiansvarig). Om du testar med flera workspaces, dubbelkolla att du kopplade rätt.

Vilken volym kan det här arbetsflödet för förnyelsepåminnelser för avtal hantera?

För de flesta små team fungerar det bra med hundratals avtal i ett ark.

Är den här automatiseringen för förnyelsepåminnelser för avtal bättre än att använda Zapier eller Make?

Det beror på hur mycket kontroll du behöver. Zapier och Make är bra för snabba, linjära flöden, men det här arbetsflödet vinner på förgrenad logik (automatförnyelse vs manuell), att vänta på Slack-godkännande och egen kod som räknar ut uppsägningsfönster. n8n ger dig också möjligheten att hosta själv, vilket kan vara viktigt om du kör många dagliga kontroller i flera avdelningar. Om du vill ha en godkännandetråd per leverantör, förutsägbar formatering och möjlighet att senare bygga ut loggning brukar n8n passa bättre. Om du är osäker, prata med en automationsexpert så hjälper vi dig att välja det enklaste alternativet.

När det här väl rullar slutar förnyelser att vara en återkommande brandövning. Du får en daglig signal i Slack, ett tydligt godkännandespår och leverantörsmejl som går iväg i tid.

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