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 till LINE: yogapåminnelser

Rickard Andersson Partner, Nodenordic.se

Att hålla igång ”dagliga yogapåminnelser” låter enkelt tills du letar efter länkar till positioner, formaterar om meddelanden och inser att du glömde skicka igen.

Den här konfigurationen för Sheets LINE reminders träffar yogalärare först, om vi ska vara ärliga. Men studioägare och marknadsförare som driver community-kanaler känner samma friktion. Du får konsekventa, välskrivna påminnelser som går ut enligt schema – utan den kvällliga copy-paste-rutinen.

Nedan ser du hur arbetsflödet hämtar positioner från Google Sheets, använder Azure OpenAI för att vässa formuleringen, bygger ett LINE Flex Message och loggar vad som skickades så att du kan fortsätta förbättra.

Så fungerar den här automatiseringen

Hela n8n-flödet, från trigger till slutresultat:

n8n Workflow Template: Google Sheets till LINE: yogapåminnelser

Problemet: dagliga påminnelser faller isär när de görs manuellt

Dagligt engagemang är tufft när processen hänger på att du kommer ihåg den. En dag skickar du en riktigt bra yogapåminnelse med en korrekt formaterad bild och en hjälpsam länk. Nästa dag är du upptagen, stressar igenom det och meddelandet ser slarvigt ut – eller så blir det inte skickat alls. Över en månad blir de där små missarna till en tyst kanal och en mindre konsekvent praktik för eleverna. Än värre: ”innehållet” finns redan i Google Sheets, men du lägger ändå kvällstid på att göra om rader till något som LINE-användare faktiskt vill trycka på.

Det bygger snabbt upp. Här är var det oftast brister.

  • Du skriver om samma typ av påminnelsetext varje kväll och tvekar sedan kring tonläget.
  • Bilder och länkar klistras in fel, vilket innebär trasiga tryck och frustrerade användare.
  • Utan en sändlogg upprepar du positioner för ofta eller kan inte bevisa vad som gick ut.
  • När du vill ha ”en karusell av positioner” i stället för ett enkelt meddelande blir manuell formatering en stor tidstjuv.

Lösningen: Google Sheets → Azure OpenAI → LINE Flex Messages (med loggning)

Det här arbetsflödet gör ditt Google Sheet till en automatiserad motor för dagliga påminnelser i LINE. Vid en schemalagd tid (21:30 Bangkok-tid) hämtar n8n yogapositioner som innehåller positionsnamn, en bild-URL och en referenslänk. Azure OpenAI skriver sedan om meddelandet till något mer lättläst och engagerande, så att du inte skickar en stel databasutskrift. Därefter genererar flödet den JSON som LINE behöver för Flex Messages (de visuella, klickbara ”korten”), dubbelkollar formateringen och skickar den färdiga payloaden till LINE. Efter skickning skriver det tillbaka en strukturerad post till Google Sheets så att du vet vad som levererades och kan finslipa framtida rekommendationer.

Arbetsflödet startar enligt schema, hämtar sedan positionsdata från Google Sheets och omvandlar den till en strukturerad lista. Azure OpenAI sköter text och formatering, och HTTP-anropet skickar en LINE Flex Message-karusell som inkluderar bilder och klickbara länkar. Till sist loggas utskicket tillbaka i ditt ark.

Det här får du: automatisering vs. resultat

Exempel: så här ser det ut

Säg att du skickar en påminnelse om ”positioner för i morgon” 5 kvällar i veckan. Manuellt kan du lägga cirka 10 minuter på att välja positioner i Google Sheets, 10 minuter på att skriva ett trevligt meddelande och ytterligare 10 minuter på att bygga ett snyggt LINE-meddelande med bilder och länkar. Det är ungefär 30 minuter per dag, eller cirka 2,5 timmar per vecka. Med det här flödet är ditt ”jobb” att uppdatera arket (kanske 10 minuter totalt) medan den schemalagda triggern, Azure OpenAI-formateringen och LINE-utskicket sker automatiskt.

Det här behöver du

  • n8n-instans (testa n8n Cloud gratis)
  • Alternativ för egen drift om du föredrar det (Hostinger fungerar bra)
  • Google Sheets för din positionsdatabas och sändloggar
  • LINE Messaging API för att leverera push-meddelanden till användare
  • Azure OpenAI API-åtkomst (hämta nycklar i Azure Portal)

Kunskapsnivå: Mellan. Du kopplar konton, klistrar in API-uppgifter och testar några körningar för att bekräfta att LINE-payloads ser rätt ut.

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

Så fungerar det

En schemalagd utskickstid startar allt. n8n kör varje dag 21:30 i Asia/Bangkok, så påminnelsen går ut även när du är upptagen (eller sover).

Positionsdata hämtas från Google Sheets och städas upp. Arbetsflödet hämtar PoseName, bild-URI och URL, och omvandlar det till en strukturerad lista som är enkel att använda för meddelandegenerering.

Azure OpenAI skriver och formaterar innehållet. Ett AI-steg skapar texten för ”vad du ska göra i dag” i en vänlig ton, och ett annat steg förbereder den specifikt för LINE så att meddelandet blir lättläst på mobil.

LINE Flex Message-JSON skapas, normaliseras och skickas. Arbetsflödet bygger Flex-karusellens payload, reparerar automatiskt felaktig JSON vid behov och skickar den via ett HTTP-anrop till LINE Push Message-endpointen. Därefter lägger det till en sändpost tillbaka i Google Sheets.

Du kan enkelt ändra logiken för urval av positioner för att rotera efter svårighetsgrad eller undvika upprepningar baserat på loggen. Se hela implementationsguiden nedan för anpassningsalternativ.

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

Steg 1: Konfigurera schematriggern

Det här arbetsflödet startar enligt ett tidsschema, så börja med att ställa in triggern.

  1. Lägg till och öppna Scheduled Pose Trigger.
  2. Ställ in schemaregeln så att den körs vid Hour 21 och Minute 30 (enligt konfiguration).
  3. Bekräfta att arbetsflödets tidszon i inställningarna är Asia/Bangkok för konsekvent timing.

Steg 2: Anslut Google Sheets för pose-data och loggar

Dessa noder läser pose-data och skriver loggar till Google Sheets.

  1. Öppna Retrieve Pose Names och ställ in sheet-intervallet till B18:D28 under Data Location On Sheet.
  2. Välj Sheet Name NotePad och ställ in Document ID till ert kalkylark (ersätt [YOUR_ID]).
  3. Inloggning krävs: Anslut era googleSheetsOAuth2Api-uppgifter i Retrieve Pose Names.
  4. Öppna Yoga Pose Sheet Tool och ställ in Sheet Name till Yoga med korrekt Document ID.
  5. Inloggning krävs: Anslut era googleSheetsOAuth2Api-uppgifter i Yoga Pose Sheet Tool. Verktyget används av AI Task Orchestrator.
  6. Öppna Append Pose Log 2 och verifiera kolumnmappningarna: Date {{ $('Scheduled Pose Trigger').first().json.timestamp }}, Pose {{ $json.name }}, Sequence {{ $json.sequence }}.
  7. Inloggning krävs: Anslut era googleSheetsOAuth2Api-uppgifter i Append Pose Log 2.
  8. Öppna Append Yoga Log och verifiera mappningarna: Date {{ $('Scheduled Pose Trigger').first().json.timestamp }}, JSON {{ $('Assemble Line Payload').item.json.LineBody }}, Text {{ $('Format Pose Text').item.json.text }}.
  9. Inloggning krävs: Anslut era googleSheetsOAuth2Api-uppgifter i Append Yoga Log.

⚠️ Vanlig fallgrop: Ersätt alla [YOUR_ID]-platshållare i Google Sheets-noderna med ert faktiska kalkylarks-ID, annars kommer arbetsflödet att misslyckas med att läsa/skriva data.

Steg 3: Transformera pose-data och expandera pose-poster

Det här steget formaterar pose-datan och delar upp den i enskilda poster för loggning.

  1. Öppna Transform Pose Data och behåll JavaScript-koden som den är för att bygga outputText och poseNamesOnly.
  2. Säkerställ att Expand Pose List använder Field to Split Out satt till output.yogaPoses.
  3. Bekräfta körflödet: Retrieve Pose NamesTransform Pose DataGenerate Flex JSON, och AI Task OrchestratorExpand Pose ListAppend Pose Log 2.

Steg 4: Sätt upp AI- och parsningkedjan

Flera Azure OpenAI-modeller och parsers genererar och rensar meddelandet samt Flex-JSON.

  1. Konfigurera alla Azure OpenAI-språkmodeller som används i detta arbetsflöde: Azure Chat Engine A, Azure Chat Engine B, Azure Chat Engine C, Azure Chat Engine D, Azure Chat Engine Prime, Azure Chat Engine E och Azure Chat Engine F med modellen 4o.
  2. Inloggning krävs: Anslut era azureOpenAiApi-uppgifter för var och en av Azure Chat Engine-noderna ovan.
  3. I Compose Pose Message, behåll Text satt till Let's calm down and focus on these poses today.{{ $('Transform Pose Data').item.json.poseNamesOnly }}have a great practice!.
  4. I Format Pose Text, behåll Text satt till {{ $json.text }} för att formatera instruktörsmeddelandet.
  5. I Generate Flex JSON, behåll Text satt till {{ $json.outputText }} och säkerställ att hasOutputParser är aktiverat.
  6. Behåll Structured Parser Main och Auto Repair Parser anslutna till AI Task Orchestrator för att normalisera JSON pose-data.
  7. Behåll Structured Parser Flex och Auto Repair Flex Parser anslutna till Generate Flex JSON för att reparera och validera Flex-utdata.

Tips: Auto Repair Parser, Structured Parser Main, Structured Parser Flex och Auto Repair Flex Parser är AI-undernoder. Lägg till inloggningsuppgifter i deras överordnade Azure Chat Engine-noder (inte i parser-noderna i sig).

Steg 5: Bygg ihop och skicka Line Flex-meddelandet

Det här avsnittet bygger Line-payloaden, normaliserar JSON och skickar meddelandet.

  1. I Assemble Line Payload, bekräfta att LineBody är satt till JSON-body som innehåller text och Flex-karusell, inklusive uttrycken: {{ $json.text.replaceAll("\n","\\n").replaceAll("\n","").removeMarkdown().removeTags().replaceAll('"',"") }} och {{ $('Generate Flex JSON').all().flatMap(item => JSON.stringify(item.json.output)).join(',') }}.
  2. Öppna Normalize JSON Output och behåll Text satt till Fix this JSON {{ $json.LineBody }} med hasOutputParser aktiverat.
  3. Öppna Send Line Flex Message och ställ in URL till https://api.line.me/v2/bot/message/push med Method POST och JSON Body satt till {{ $json.text }}.
  4. Inloggning krävs: Anslut era httpHeaderAuth-uppgifter i Send Line Flex Message.
  5. Säkerställ att mottagar-ID:t för meddelandet i Assemble Line Payload är satt till ert Line-användar-ID (ersätt [YOUR_ID] i fältet "to").

⚠️ Vanlig fallgrop: Om Line-payloadens JSON är ogiltig kommer anropet att misslyckas. Steget Normalize JSON Output förlitar sig på Azure Chat Engine F för att fixa strukturen—säkerställ att inloggningsuppgifter är aktiva och att modellåtkomst är aktiverad.

Steg 6: Testa och aktivera ert arbetsflöde

Validera varje steg innan ni slår på arbetsflödet.

  1. Kör Scheduled Pose Trigger manuellt för att starta en testkörning.
  2. Verifiera att Retrieve Pose Names hämtar rader från NotePad och att Transform Pose Data ger ut outputText och poseNamesOnly.
  3. Bekräfta att Generate Flex JSON skapar giltiga Flex-poster och att Compose Pose Message samt Format Pose Text ger ut en slutlig meddelandesträng.
  4. Kontrollera att Send Line Flex Message får ett 200-svar och att ett Line-meddelande visas i den avsedda chatten.
  5. Bekräfta att loggar läggs till i Append Yoga Log och Append Pose Log 2 med korrekt tidsstämpel och innehåll.
  6. Aktivera arbetsflödet genom att växla Active till ON för produktionsschemaläggning.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • Google Sheets-autentisering kan gå ut eller kräva specifika behörigheter. Om saker slutar fungera, kontrollera först n8n-skärmen Credentials och arkets delningsinställningar.
  • Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om efterföljande noder fallerar på tomma svar.
  • LINE Messaging API-anrop misslyckas tyst när din JSON är lite fel. Om sändnoden ger fel, titta på HTTP-svarets body och verifiera sedan strukturen på din Flex-payload och din channel access token.
  • Standardprompter i AI-noder är generiska. Lägg in din tonalitet tidigt, annars kommer du att redigera utdata för alltid.

Vanliga frågor

Hur lång tid tar det att sätta upp den här automatiseringen för Sheets LINE reminders?

Cirka 45 minuter om dina LINE- och Azure-konton är klara.

Behöver jag kunna koda för att automatisera Sheets LINE reminders?

Nej. Du kopplar främst autentiseringsuppgifter och klistrar in ID:n och tokens. Den enda ”tekniska” delen är att testa LINE-meddelandets utdata och justera text om du vill ha en specifik stil.

Är n8n gratis att använda för det här arbetsflödet för Sheets LINE reminders?

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 Azure OpenAI-användning, som oftast är liten för ett dagligt meddelande men beror på modell och promptstorlek.

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 kör n8n bra. Egen drift ger dig obegränsat antal körningar men kräver grundläggande serverhantering.

Kan jag anpassa det här arbetsflödet för Sheets LINE reminders för olika rotationsupplägg av positioner?

Ja, men då vill du använda din sändlogg. Enklast är att justera Google Sheets-hämtningen och logiken för urval av positioner direkt efter ”Retrieve Pose Names”, och sedan filtrera bort positioner som redan finns i ”Append Yoga Log” eller ”Append Pose Log 2”. Vanliga justeringar är att rotera efter svårighetsgrad, prioritera nya positioner och införa ”inga upprepningar på 14 dagar”.

Varför misslyckas min LINE-koppling i det här arbetsflödet?

Oftast beror det på en ogiltig eller utgången channel access token. Uppdatera token i autentiseringsuppgifterna för HTTP-anropet, kör sedan en enskild testkörning och granska HTTP-svarets body. Om token är okej är nästa orsak ofta formen på Flex Message-payloaden (LINE är petigt) eller att du skickar till fel användar-/grupp-ID. Rate limits är mer ovanligt vid ett meddelande per dag, men kan dyka upp om du plötsligt broadcastar till många mottagare.

Hur många påminnelser klarar den här automatiseringen för Sheets LINE reminders?

Betydligt fler än de flesta små team behöver. På n8n Cloud beror din månatliga körningsgräns på plan, och varje daglig körning är vanligtvis bara en körning. Om du kör egen drift finns ingen körningsgräns, så de verkliga begränsningarna blir serverstorlek samt throughput i LINE/Azure-API:erna.

Är den här automatiseringen för Sheets LINE reminders bättre än att använda Zapier eller Make?

Ofta, ja. Det här flödet bygger på strukturerad AI-utdata (inklusive automatisk JSON-reparation) och mer avancerad payload-uppbyggnad, vilket är ett område där n8n brukar kännas mindre begränsat än ”tvåstegs”-verktyg. Du kan också köra egen drift, vilket spelar roll om du inte vill att varje daglig körning ska räknas mot en dyr task-gräns. Zapier eller Make kan fortfarande fungera om du håller meddelandet enkelt och hoppar över Flex-karuseller. Om du är osäker, prata med en automatiseringsexpert så kvalitetssäkrar vi bästa väg framåt.

När det här väl rullar slutar dagliga yogapåminnelser att vara en uppgift du ”försöker komma ihåg”. De bara händer – och du har loggen som bevis.

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