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

Google Sheets + Telegram: smarta aktielarm

Rickard Andersson Partner, Nodenordic.se

Du sätter “enkla” prisvarningar och spenderar sedan dagen med att ifrågasätta dem. Utlöstes den? Var det ett riktigt utbrott eller bara en snabb wick? Och varför blir du bombarderad med samma notis om och om igen?

Den här typen av automatisering för aktieprisvarningar slår först mot aktiva traders, men portföljförvaltare och småföretagare som följer treasury-innehav hamnar i samma röra. Du vill ha varningar du kan lita på, levererade snabbt, utan att behöva leva i fem appar.

Det här n8n-flödet bevakar en Google Sheets-“watchlist”, kontrollerar livepriser varannan minut under marknadstid och skickar Telegram- och e-postvarningar bara när dina nivåer faktiskt bryts (med cooldown). Du ser exakt vad som automatiseras, vad du får tillbaka och hur du gör det till ditt.

Så fungerar den här automatiseringen

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

n8n Workflow Template: Google Sheets + Telegram: smarta aktielarm

Problemet: prisvarningar som spammar dig eller missar rörelsen

Manuell priskoll är lömsk. Det börjar som “jag ska bara kika på grafen”, och plötsligt har du uppdaterat en watchlist 40 gånger och känner dig ändå steget efter. Även när du använder varningar är många upplägg inte smarta nog för verkligt tradingbeteende: snabba spikes, upprepade touchar på samma nivå och olika regler för “över”, “under” eller “båda”. Resultatet blir mentalt brus. Du stänger av notiserna (och missar rörelsen) eller låter dem vara på (och tappar fokus varannan minut).

Friktionen blir bara större. Här är var det faller isär i praktiken.

  • Du får flera varningar för samma aktie eftersom priset fortsätter ligga och pendla runt din nivå.
  • Olika marknader och symboler (NSE/BSE jämfört med USA) skapar formateringsfällor som saboterar “enkel” uppföljning.
  • Det finns ingen pålitlig logg över vad som utlöstes och när, så du kan inte granska dina varningar i efterhand.
  • När ett API strular märker du det sent, eftersom flödet kan misslyckas tyst om du inte övervakar det.

Lösningen: Google Sheets-watchlist → smarta Telegram- + e-postvarningar

Det här flödet gör Google Sheets till en levande watchlist som driver realtidsvarningar. Under marknadstid kör n8n enligt schema (varannan minut) och hämtar dina rader från ett ark: symbol, övre gräns, nedre gräns, riktningsregler och din cooldown-period. Därefter hämtar det senaste priset från Twelve Data API, jämför priset mot dina gränser och avgör om en varning ska triggas just nu. Om den ska det får du ett Telegram-meddelande för omedelbar synlighet och ett mejl som är enklare att söka i senare. Till sist skriver det tillbaka till Google Sheets med senaste varningspris och tidsstämpel så att nästa körning vet att den ska vara tyst tills cooldownen har passerat.

Det börjar med en schemalagd “marknadsfönster”-trigger. Sedan läser och tolkar det dina watchlist-rader, begär livepriser, tillämpar smart varningslogik (inklusive cooldown) och skickar först därefter notiser. Efter det loggar det historik till Sheets och kan mejla dig en lyckad-/misslyckad-status så att du slipper gissa om systemet fortfarande kör.

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

Exempel: så här ser det ut

Säg att du följer 20 symboler och manuellt kollar priser var 10:e minut under en typisk 6-timmarssession. Om varje “snabbkoll” tar cirka 30 sekunder per symbol när du hoppar mellan appar blir det ungefär 1,5 timme ren scanning (och det blir ofta mer). Med det här flödet uppdaterar du nivåer i Google Sheets på kanske 10 minuter, sedan kör n8n automatiskt varannan minut och pingar dig bara när en nivå bryts. De flesta dagar får du en handfull varningar, inte en konstant ström.

Det här behöver du

  • n8n-instans (testa n8n Cloud gratis)
  • Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
  • Google Sheets för att lagra symboler, gränser och cooldown.
  • Telegram för att ta emot omedelbara mobilvarningar (valfritt).
  • Twelve Data API-nyckel (hämta den från twelvedata.com)

Kunskapsnivå: Medel. Du kopplar några autentiseringsuppgifter och håller kolumnerna i Google Sheet i rätt ordning.

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

Så fungerar det

Trigger under marknadstid. Ett Cron-schema kör varannan minut inom ditt definierade tidsfönster, så kontrollerna sker konsekvent utan att du behöver göra något.

Inläsning av watchlist och städning. n8n hämtar rader från Google Sheets och tolkar sedan varje post (symbol, övre/nedre gränser, riktning, cooldown och fälten för senaste varning). Om du någon gång haft ett ark som “funkar tills det inte gör det”, så är det här delen som gör att stökiga rader inte skapar märkligt beteende.

Begäran av livepris + beslutsmotor. För varje symbol anropar flödet Twelve Data för att hämta aktuellt pris och kör sedan “smart varningslogik” i kod. Logiken kontrollerar om priset är över eller under relevant gräns och om cooldownen har passerat sedan senaste varningen.

Varningar och loggning. Om kriterierna är uppfyllda skickar det en e-postvarning och postar ett Telegram-meddelande, och skriver sedan senaste varningstid och pris tillbaka till Google Sheets. En sista statuskontroll kan mejla dig en lyckad- eller misslyckad-notis för administrativ övervakning.

Du kan enkelt justera watchlist-kolumnerna för att ta med extra fält (som börs, positionsstorlek eller anteckningar) och ändra formatet på varningsmeddelandet så att det matchar hur du handlar. Se den fullständiga implementationsguiden nedan för anpassningsalternativ.

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

Steg 1: konfigurera den schemalagda triggern

Ställ in arbetsflödets schema så att det körs under ert önskade marknadsfönster.

  1. Lägg till eller öppna Scheduled Market Window.
  2. Definiera cron-schemat så att det matchar era handelstider (t.ex. vardagar när marknaden är öppen).
  3. Koppla Scheduled Market Window till Retrieve Watchlist Sheet.
Tips: Använd ett smalare schemaläggningsfönster om ert API begränsar antalet anrop per dag.

Steg 2: koppla Google Sheets

Hämta er bevakningslistsdata och logga aviseringar tillbaka till Google Sheets.

  1. Öppna Retrieve Watchlist Sheet och ställ in Authentication till serviceAccount.
  2. Ställ in Sheet Name till =[YOUR_ID] och Document ID till =[YOUR_ID].
  3. Inloggningsuppgifter krävs: Anslut era googleApi-inloggningsuppgifter.
  4. Öppna Log Alert History och ställ in Operation till update, Sheet Name till Sheet1 och Document ID till [YOUR_ID].
  5. Inloggningsuppgifter krävs: Anslut era googleApi-inloggningsuppgifter.
⚠️ Vanlig fallgrop: Om era kalkylbladsrubriker inte matchar symbol, upper_limit och lower_limit kommer Interpret Watchlist Rows att filtrera bort rader och inga aviseringar triggas.

Steg 3: konfigurera bearbetningsnoder

Transformera bevakningslistsdata, hämta livepriser och utvärdera aviseringsvillkor.

  1. I Interpret Watchlist Rows, behåll JavaScript-koden som den är för att validera och normalisera fält.
  2. Öppna Request Live Price Feed och ställ in URL till =https://api.twelvedata.com/time_series?symbol={{ $json.symbol }}&interval={{ $json.cooldown_minutes }}min&apikey=[CONFIGURE_YOUR_API_KEY].
  3. Ersätt [CONFIGURE_YOUR_API_KEY] med er Twelve Data API-nyckel.
  4. I Alert Decision Engine, behåll JavaScript-logiken som jämför priser mot upper_limit och lower_limit.
  5. Koppla Alert Decision Engine till Validate Alert Criteria.
⚠️ Vanlig fallgrop: API-svaret förväntas innehålla values med datetime och close. Om er dataleverantör ändrar struktur, uppdatera Alert Decision Engine.

Steg 4: konfigurera utdata och notifieringar

När aviseringar uppfyller kriterierna skickar arbetsflödet notifieringar och loggar resultat.

  1. I Validate Alert Criteria, bekräfta att villkoret använder ={{ $json.alertMessage }} med operatorn notEmpty.
  2. Validate Alert Criteria skickar utdata parallellt till Dispatch Email Notice, Post Telegram Notice och Log Alert History.
  3. Öppna Dispatch Email Notice och ställ in Subject och Text till =🚨 Stock Alert: {{ $('Alert Decision Engine').item.json.message }}.
  4. Ställ in To Email och From Email till [YOUR_EMAIL].
  5. Inloggningsuppgifter krävs: Anslut era smtp-inloggningsuppgifter.
  6. Öppna Post Telegram Notice och ställ in Text till ={{ $json.alert_message }} och Chat ID till [YOUR_ID].
  7. Inloggningsuppgifter krävs: Anslut era telegramApi-inloggningsuppgifter.
⚠️ Vanlig fallgrop: Post Telegram Notice förväntar sig alert_message men Alert Decision Engine ger ut message. Anpassa fältnamnet eller uppdatera uttrycket till ={{ $json.message }}.

Steg 5: konfigurera routning för lyckat och misslyckat utfall

Routa loggutfall till e-postnotifieringar för lyckat eller misslyckat resultat.

  1. I Verify Alert Status, bekräfta att villkoret använder ={{ $json.symbol }} med operatorn notEmpty.
  2. Koppla true-grenen till Success Email Notice och false-grenen till Failure Email Notice.
  3. Ställ in Subject i Success Email Notice till ✅ Stock Monitor: Alert Sent Successfully.
  4. Ställ in Subject i Failure Email Notice till ❌ Stock Monitor: Alert Failed.
  5. Inloggningsuppgifter krävs: Anslut era smtp-inloggningsuppgifter för både Success Email Notice och Failure Email Notice.

Steg 6: testa och aktivera ert arbetsflöde

Kör ett manuellt test för att bekräfta att aviseringar och notifieringar fungerar korrekt, och aktivera sedan arbetsflödet.

  1. Använd Execute Workflow för att köra ett manuellt test från Scheduled Market Window.
  2. Verifiera att data hämtas i Retrieve Watchlist Sheet och formateras korrekt av Interpret Watchlist Rows.
  3. Kontrollera att Dispatch Email Notice, Post Telegram Notice och Log Alert History körs parallellt när villkoren uppfylls.
  4. Bekräfta att antingen Success Email Notice eller Failure Email Notice skickas baserat på Verify Alert Status.
  5. Slå på arbetsflödet till Active för produktionsanvändning när testerna är godkända.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • Google Sheets-autentiseringsuppgifter kan gå ut eller kräva specifika behörigheter. Om det skapar fel, börja med att kontrollera n8n:s credential-test och dina delningsinställningar för Google Service Account på arket.
  • Twelve Data kan hastighetsbegränsa eller kortvarigt returnera tomma svar under volatila perioder. Om efterföljande noder fallerar, lägg till lite längre väntetid eller retry-logik innan steget som fattar varningsbeslut.
  • Telegram-botåtkomst är känslig för chatt-ID och botbehörigheter. Om meddelanden slutar komma, verifiera att boten fortfarande är med i chatten och att chatt-ID:t i n8n matchar den destination du förväntar dig.

Vanliga frågor

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

Cirka 30 minuter om dina konton och ditt ark är redo.

Behöver jag kunna koda för att automatisera aktieprisvarningar?

Nej. Du kommer mest att koppla konton och klistra in några ID:n och nycklar.

Är n8n gratis att använda för det här flödet för aktieprisvarningar?

Ja. n8n har ett gratis alternativ för egen hosting 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 Twelve Data API-användning (gratisnivån räcker ofta för att komma igång, och sedan uppgraderar du om du övervakar många symboler).

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

Två alternativ: n8n Cloud (hanterat, enklast att sätta upp) 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 serveradministration.

Kan jag anpassa det här flödet för aktieprisvarningar för enbart NSE-varningar?

Ja, och det är till stor del en ändring i din watchlist. Behåll bara symboler med suffixet .NSE i Google Sheets och justera sedan tolkningslogiken i steget “Interpret Watchlist Rows” om du vill ha striktare validering. Vanliga anpassningar är att ändra formatet på varningsmeddelandet, lägga till en kolumn “anteckningar” för att visa varför du bevakar en nivå, och routa vissa symboler till en annan Telegram-chatt.

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

Oftast handlar det om behörigheter. Bekräfta att Google Service Account som används i n8n har åtkomst till det specifika arket och dubbelkolla Sheet ID:t du klistrade in i flödet. Om det fungerade tidigare och plötsligt slutade fungera, uppdatera eller skapa om Google Sheets-autentiseringsuppgiften i n8n eftersom tokens och scopes kan ändras. Säkerställ också att kolumnerna fortfarande ligger i förväntad ordning, eftersom saknade kolumner kan se ut som ett auth-fel när tolken fallerar.

Hur många symboler kan den här automatiseringen för aktieprisvarningar hantera?

I en mindre setup fungerar dussintals symboler bra, och egen hosting kan skala vidare om din server och dina API-gränser tillåter det.

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

Ofta, ja, eftersom flödet “cooldown + smart beslutslogik + skriva tillbaka till arket” blir klumpigt (och dyrt) i enklare automationsverktyg. n8n hanterar grenlogik snyggt, och med egen hosting betalar du inte per liten kontroll varannan minut. En annan praktisk fördel: du kan lägga till övervakningsmejl för lyckat/misslyckat utan att bygga ett separat system. Zapier eller Make kan fortfarande vara bra för grundläggande varningar om du bara kollar några symboler en gång i timmen. Om du är osäker, prata med en automationsexpert och få ett rakt svar för din setup.

När det här väl kör är din watchlist inte längre ett kalkylark du vaktar, utan ett system som knackar dig på axeln bara när det är relevant. Den där känslan av lugn är faktiskt hela poängen.

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