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 + Google Chat: milstolpeinlägg klara

Rickard Andersson Partner, Nodenordic.se

Någon glömmer en födelsedag. Eller en årsdag. Det är aldrig illvilligt, men det landar alltid likadant: pinsam tystnad, följt av ett stressat ”oj då”-meddelande som känns… tunt.

Den här Sheets Chat automation träffar People Ops först, men kontorsansvariga och byråledare märker av den också. Du vill ha konsekventa kulturögonblick utan att behöva vakta en kalender varje morgon.

Det här workflowet skannar ert personalark dagligen, använder Gemini för att skriva en ny gratulationstext, publicerar den i Google Chat och loggar vad som hände så att du inte dubbelpostar. Du får se exakt hur det fungerar, vad du behöver och var team oftast snubblar.

Så fungerar den här automatiseringen

Hela n8n-workflowet, från trigger till slutligt resultat:

n8n Workflow Template: Google Sheets + Google Chat: milstolpeinlägg klara

Problemet: milstolpar missas (eller känns copy-pastade)

Medarbetarnas milstolpar är ”små” tills de inte är det. En missad födelsedag kan hänga kvar hos någon hela dagen, särskilt i mindre team där uppskattning är en del av att behålla folk. Även när ni kommer ihåg blir det ytterligare en flik att hålla öppen: att skriva en omtänksam hälsning varje gång, i en morgon som redan har för mycket. Och om ni återanvänder förra månadens mall märker folk det. Den värsta varianten är dubbelpostningen: en välmenande uppföljning som förvandlar en gratulation till brus.

Det blir mycket snabbt. Här är var det oftast fallerar i verkliga team.

  • Ni kollar samma Google Sheet om och om igen, eftersom ingen litar på att ”någon annan har koll”.
  • Meddelanden skrivs i sista minuten, vilket gör att de låter generiska eller lite fel.
  • Någon postar manuellt i Google Chat och glömmer sedan att följa upp, så dubletter dyker upp dagen efter.
  • Arbetsårsjubileum är lätta att missa eftersom de inte ligger i samma mentala kalender som födelsedagar.

Lösningen: dagliga milstolpskontroller + AI-skrivna inlägg i Google Chat

Det här workflowet fungerar som en automatiserad HR-assistent som aldrig glömmer. Varje morgon hämtar det er milstolpsdata för medarbetare från Google Sheets och jämför mot dagens datum. Om födelsedagar matchar loopar det igenom de raderna, ber Gemini skriva ett varmt, icke-repetitivt meddelande och postar det direkt i ert valda Google Chat-utrymme. Samma sak görs för arbetsårsjubileum enligt en egen daglig körning. Efter varje inlägg loggas händelsen tillbaka till Google Sheets, vilket ger ett enkelt revisionsspår och betydligt färre ”har vi redan gjort det här?”-ögonblick. Ärligt talat är det den typen av bakgrundsautomatisering som får ett team att känna sig mer omhändertaget utan att skapa mer jobb.

Workflowet startar med två schemalagda triggers (en för födelsedagar, en för jubileum). Därefter tolkar det data från arket, kontrollerar status med enkel If-logik, genererar meddelandet med Gemini, postar via en HTTP Request till Google Chat och loggar till sist resultatet så att morgondagens körning håller sig korrekt och spårbar.

Det du får: automatisering vs. resultat

Exempel: så här ser det ut

Säg att du har 25 anställda och postar firanden i ett Google Chat-utrymme. Manuellt ser rutinen oftast ut så här: kolla arket (cirka 5 minuter), skriva ett meddelande (cirka 10 minuter), posta det och sedan notera någonstans att det är gjort (ytterligare 5 minuter). Det är ungefär 20 minuter per milstolpe, och en typisk månad kanske ni har 6–8 födelsedagar och jubileum tillsammans, så du lägger runt 2 timmar bara på att hålla jämna steg. Med det här workflowet lägger du cirka 10 minuter en gång för att bekräfta kolumnerna i arket och Google Chat Space ID, och sedan kör det dagligen av sig självt.

Det här behöver du

  • n8n-instans (testa n8n Cloud gratis)
  • Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
  • Google Sheets som källa för sanning kring medarbetarnas milstolpar.
  • Google Chat för att posta firanden i ett Space.
  • Google Gemini (PaLM/Gemini)-API-åtkomst för att skriva meddelanden.
  • Google Chat API-nyckel/token (från Google Cloud Console API-credentials).

Kunskapsnivå: Nybörjare. Du kopplar konton, klistrar in ID:n/tokens och bekräftar att kolumnerna i arket matchar det workflowet förväntar sig.

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

Så fungerar det

Ett dagligt schema kickar igång. Workflowet körs enligt schema (separat för födelsedagar och jubileum), så att ni inte är beroende av att någon ”kommer ihåg att köra det”.

Er milstolpsdata hämtas från Google Sheets. Det hämtar kolumnerna för födelsedag och anställningsdatum och normaliserar sedan datumen mot ”idag”, så att matchningen blir tillförlitlig även om formateringen i arket är lite inkonsekvent.

Gemini skriver meddelandet för varje person. Raderna bearbetas i batcher och varje milstolpe får ett nytt promptstyrt meddelande. Det är så du undviker att samma slitna formulering dyker upp varje månad.

Google Chat får inlägget och körningen loggas. Workflowet skickar sluttexten till ert valda Space via en HTTP-förfrågan och skriver sedan en loggrad tillbaka till Google Sheets så att du kan se vad som skickats och när.

Du kan enkelt justera ton och stil så att meddelandena matchar er varumärkesröst. Se hela implementeringsguiden nedan för anpassningsalternativ.

Steg-för-steg-guide för implementation

Steg 1: konfigurera den schemalagda triggern

Konfigurera de två schematriggrarna så att de körs dagligen, så att arbetsflödet kontrollerar födelsedagar och jubileer vid rätt tidpunkt.

  1. Öppna Scheduled Automation Start och ställ in schemaregeln att köras vid 9 (trigger vid timme 9).
  2. Öppna Scheduled Anniversary Start och ställ in schemaregeln att köras vid 9 (trigger vid timme 9).
  3. Bekräfta exekveringsflödet: Scheduled Automation StartAssign Birthday Settings och Scheduled Anniversary StartAssign Anniversary Settings.

Steg 2: anslut Google Sheets

Anslut Google Sheets-datakällorna och loggningsdestinationerna för födelsedagar, jubileer och händelsespårning.

  1. Öppna Retrieve Birthday Dates och välj er Google Sheets-fil och bladlista. Document är Copy of N8N Wishes Excel och Sheet är Birthday List.
  2. Öppna Retrieve Anniversary Dates och välj er Google Sheets-fil och bladlista. Document är Copy of N8N Wishes Excel och Sheet är Work Anni.
  3. Öppna Log Birthday Event och bekräfta att Operation är inställd på append med fälten: TimeStamp = {{ $now }}, Event Type = Birthday , Employee Name = {{ $('Iterate Birthday Records').first().json["EMPLOYEE NAME "] }}.
  4. Öppna Log Anniversary Event och bekräfta att Operation är inställd på append med fälten: TimeStamp = {{ $now }}, Event Type = Anniversary, Employee Name = {{ $('Iterate Anniversary Records').first().json.matches[0].name }}.
  5. Inloggningsuppgifter krävs: Anslut era googleSheetsOAuth2Api-inloggningsuppgifter till Retrieve Birthday Dates, Retrieve Anniversary Dates, Log Birthday Event och Log Anniversary Event.

Steg 3: konfigurera inställningar och dataparsning

Konfigurera organisationsinställningar och säkerställ att logiken för datumparsning är i linje med era kolumnrubriker i arket.

  1. Öppna Assign Birthday Settings och ställ in: Agency Name till [YOUR_AGENCY], google chat api key till [CONFIGURE_YOUR_API_KEY], google chat space id till [YOUR_ID] och google chat token till [CONFIGURE_YOUR_TOKEN].
  2. Öppna Assign Anniversary Settings och ställ in samma fyra fält med era jubileespecifika värden.
  3. Öppna Capture Today Date och bekräfta att todayIso är inställd på {{$today}} och att Include Other Fields är aktiverat.
  4. Öppna Parse Birthday Data och verifiera att er kolumnrubrik för födelsedag matchar Employee DOB i koden.
  5. Öppna Parse Anniversary Data och verifiera att er kolumnrubrik för anställningsdatum matchar Date Joined \n(dd-MMM-yyyy) eller Date Joined.
  6. Bekräfta villkorsstyrd routning: Parse Birthday DataBirthday Status Check och Parse Anniversary DataAnniversary Status Check.

⚠️ Vanlig fallgrop: Om era rubriker i Google Sheet inte exakt matchar Employee DOB eller Date Joined \n(dd-MMM-yyyy) kommer parsningnoderna inte att returnera några träffar.

Steg 4: konfigurera AI-generering av meddelanden

Anslut Gemini och säkerställ att varje LLM-nod använder rätt prompt och datareferenser.

  1. Öppna Compose Birthday Note och behåll prompttexten som den är, inklusive uttryck som {{ $json['EMPLOYEE NAME '] }} och {{ $('Assign Birthday Settings').item.json['Agency Name'] }}.
  2. Öppna Compose Anniversary Note och behåll prompttexten som den är, inklusive uttryck som {{ $json.matches[0].name }}, {{ $json.matches[0].yearsOfService }} och {{ $('Assign Anniversary Settings').first().json['Agency Name'] }}.
  3. Bekräfta språkmodellkopplingarna: Gemini Chat Engine är ansluten till Compose Birthday Note och Gemini Chat Engine 2 är ansluten till Compose Anniversary Note.
  4. Inloggningsuppgifter krävs: Anslut era googlePalmApi-inloggningsuppgifter till Gemini Chat Engine och Gemini Chat Engine 2. Dessa inloggningsuppgifter läggs till på föräldranoderna, inte kedjenoderna.

Steg 5: konfigurera publicering av meddelanden och loggning

Säkerställ att meddelanden publiceras i Google Chat och att varje händelse loggas för spårbarhet.

  1. Öppna Post Birthday Chat och bekräfta att URL använder https://chat.googleapis.com/v1/spaces/{{ $('Assign Birthday Settings').item.json['google chat space id'] }}/messages?key={{ $('Assign Birthday Settings').item.json['google chat api key'] }}&token={{ $('Assign Birthday Settings').item.json['google chat token'] }}.
  2. I Post Birthday Chat ställer ni in Method till POST och JSON Body till {"text": {{ JSON.stringify($json.text) }}}.
  3. Öppna Post Anniversary Chat och bekräfta att URL använder https://chat.googleapis.com/v1/spaces/{{ $('Assign Anniversary Settings').item.json['google chat space id'] }}/messages?key={{ $('Assign Anniversary Settings').item.json['google chat api key'] }}&token={{ $('Assign Anniversary Settings').item.json['google chat token'] }}.
  4. I Post Anniversary Chat ställer ni in Method till POST och JSON Body till {"text": {{ JSON.stringify($json.text) }}}.
  5. Verifiera loopordningen: Iterate Birthday RecordsCompose Birthday NotePost Birthday ChatLog Birthday Event och Iterate Anniversary RecordsCompose Anniversary NotePost Anniversary ChatLog Anniversary Event.

Tips: Noderna Post Birthday Chat och Post Anniversary Chat använder API key- och token-fält från inställningsnoderna—uppdatera dessa fält innan ni testar för att undvika 401-fel.

Steg 6: testa och aktivera ert arbetsflöde

Kör ett manuellt test för att verifiera hela flödet end-to-end innan ni schemalägger det för användning i produktion.

  1. Klicka på Execute Workflow och trigga Scheduled Automation Start eller Scheduled Anniversary Start manuellt för att testa varje gren.
  2. Bekräfta att en lyckad körning ser ut så här: ett genererat meddelande i Post Birthday Chat eller Post Anniversary Chat, följt av en ny rad i Log Birthday Event eller Log Anniversary Event.
  3. Om inga händelser hittas, verifiera att Birthday Status Check och Anniversary Status Check matchar korrekt mot NO_BIRTHDAY_TODAY och NO_ANNIVERSARY_TODAY.
  4. När testerna går igenom växlar ni arbetsflödet till Active så att schemana körs dagligen klockan 09.00.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • Google Sheets-autentisering kan löpa ut eller sakna åtkomst till rätt kalkylark. Om det strular: kontrollera först anslutningsstatusen för n8n-credentials och delningsbehörigheterna för arket.
  • Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om efterföljande noder fallerar på tomma svar.
  • Standardprompter i AI-noder är generiska. Lägg in er varumärkesröst tidigt, annars kommer du att redigera utdata i all oändlighet.

Vanliga frågor

Hur lång tid tar det att sätta upp den här Sheets Chat automation-automatiseringen?

Cirka 30 minuter om dina Google-konton och arket är redo.

Behöver jag kunna koda för att automatisera milstolpsinlägg?

Nej. Du kopplar främst konton och klistrar in några ID:n och tokens.

Är n8n gratis att använda för det här Sheets Chat automation-workflowet?

Ja. n8n har ett gratis self-hosted-alternativ 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 Gemini API-användning, som vanligtvis är små för korta meddelanden.

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

Kan jag anpassa det här Sheets Chat automation-workflowet för olika meddelandestilar och kanaler?

Ja, och det är det bästa. Du kan justera formuleringarna i Gemini chain-noderna “Compose Birthday Note” och “Compose Anniversary Note” och sedan återanvända samma struktur för att posta i ett annat Google Chat Space. Vanliga anpassningar är att lägga till era företagsvärderingar, att använda emojis eller inte och att tagga en chef vid jubileum. Om du vill posta någon annanstans (som Slack) behåller du Google Sheets + datumlogiken och byter ut postenoden.

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

Oftast är det ett problem med API-nyckel/token eller att Space ID är fel. Skapa om eller dubbelkolla dina Google Chat API-credentials i Google Cloud och uppdatera sedan värdena i workflowets inställningsnoder (de där du anger Space ID, key och token). Bekräfta också att API:t är aktiverat för rätt Google Cloud-projekt. Om det fungerar en gång och sedan fallerar senare kan rate limits dyka upp när du bearbetar många rader i en körning.

Hur många anställda kan den här Sheets Chat automation-automatiseringen hantera?

För de flesta små team hanterar den hela listan utan problem eftersom den bara postar när datumen matchar. På n8n Cloud Starter kan du köra tusentals körningar per månad, och det här workflowet använder vanligtvis bara några få per dag om du inte har många milstolpar samtidigt. Om du self-hostar finns inget tak för antal körningar (det beror främst på din server). I praktiken är även några hundra anställda helt okej för dagliga scanningar och en liten batch med inlägg.

Är den här Sheets Chat automation-automatiseringen bättre än att använda Zapier eller Make?

Ofta, ja, eftersom det här workflowet behöver loopar, villkorskontroller och strukturerad loggning utan att du betalar extra för varje gren. n8n ger dig också ett self-hosting-alternativ, vilket spelar roll när du vill ha förutsägbara kostnader. Zapier eller Make kan fortfarande fungera om du håller det väldigt enkelt, men AI + batchning + loggning blir snabbt rörigt. Om du redan är djupt inne i Google Workspace är n8n:s flexibilitet en tydlig fördel. Prata med en automationsexpert om du vill ha en snabb rekommendation för din setup.

När det här väl rullar slutar milstolpar vara något ni ”försöker komma ihåg”. Workflowet tar hand om de repetitiva delarna, och teamet får den konsekvens de förtjänar.

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