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
flowchart LR
subgraph sg0["Flow 1"]
direction LR
n0@{ icon: "mdi:cog", form: "rounded", label: "Market Hours Trigger", pos: "b", h: 48 }
n1@{ icon: "mdi:database", form: "rounded", label: "Read Stock Watchlist", pos: "b", h: 48 }
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/code.svg' width='40' height='40' /></div><br/>Parse Watchlist Data"]
n3["<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/>Fetch Live Stock Price"]
n4["<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/>Smart Alert Logic"]
n5@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Check Alert Conditions", pos: "b", h: 48 }
n6@{ icon: "mdi:message-outline", form: "rounded", label: "Send Email Alert", pos: "b", h: 48 }
n7["<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/telegram.svg' width='40' height='40' /></div><br/>Send Telegram Alert"]
n8@{ icon: "mdi:database", form: "rounded", label: "Update Alert History", pos: "b", h: 48 }
n9@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Alert Status Check", pos: "b", h: 48 }
n10@{ icon: "mdi:message-outline", form: "rounded", label: "Success Notification", pos: "b", h: 48 }
n11@{ icon: "mdi:message-outline", form: "rounded", label: "Error Notification", pos: "b", h: 48 }
n4 --> n5
n9 --> n10
n9 --> n11
n0 --> n1
n2 --> n3
n1 --> n2
n8 --> n9
n5 --> n6
n5 --> n7
n5 --> n8
n3 --> 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 n5,n9 decision
class n1,n8 database
class n3 api
class n2,n4 code
classDef customIcon fill:none,stroke:none
class n2,n3,n4,n7 customIcon
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
| Vad det här flödet automatiserar | Resultat du får |
|---|---|
|
|
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.
- Lägg till eller öppna Scheduled Market Window.
- Definiera cron-schemat så att det matchar era handelstider (t.ex. vardagar när marknaden är öppen).
- Koppla Scheduled Market Window till Retrieve Watchlist Sheet.
Steg 2: koppla Google Sheets
Hämta er bevakningslistsdata och logga aviseringar tillbaka till Google Sheets.
- Öppna Retrieve Watchlist Sheet och ställ in Authentication till
serviceAccount. - Ställ in Sheet Name till
=[YOUR_ID]och Document ID till=[YOUR_ID]. - Inloggningsuppgifter krävs: Anslut era googleApi-inloggningsuppgifter.
- Öppna Log Alert History och ställ in Operation till
update, Sheet Name tillSheet1och Document ID till[YOUR_ID]. - Inloggningsuppgifter krävs: Anslut era googleApi-inloggningsuppgifter.
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.
- I Interpret Watchlist Rows, behåll JavaScript-koden som den är för att validera och normalisera fält.
- Ö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]. - Ersätt
[CONFIGURE_YOUR_API_KEY]med er Twelve Data API-nyckel. - I Alert Decision Engine, behåll JavaScript-logiken som jämför priser mot
upper_limitochlower_limit. - Koppla Alert Decision Engine till Validate Alert Criteria.
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.
- I Validate Alert Criteria, bekräfta att villkoret använder
={{ $json.alertMessage }}med operatorn notEmpty. - Validate Alert Criteria skickar utdata parallellt till Dispatch Email Notice, Post Telegram Notice och Log Alert History.
- Öppna Dispatch Email Notice och ställ in Subject och Text till
=🚨 Stock Alert: {{ $('Alert Decision Engine').item.json.message }}. - Ställ in To Email och From Email till
[YOUR_EMAIL]. - Inloggningsuppgifter krävs: Anslut era smtp-inloggningsuppgifter.
- Öppna Post Telegram Notice och ställ in Text till
={{ $json.alert_message }}och Chat ID till[YOUR_ID]. - Inloggningsuppgifter krävs: Anslut era telegramApi-inloggningsuppgifter.
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.
- I Verify Alert Status, bekräfta att villkoret använder
={{ $json.symbol }}med operatorn notEmpty. - Koppla true-grenen till Success Email Notice och false-grenen till Failure Email Notice.
- Ställ in Subject i Success Email Notice till
✅ Stock Monitor: Alert Sent Successfully. - Ställ in Subject i Failure Email Notice till
❌ Stock Monitor: Alert Failed. - 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.
- Använd Execute Workflow för att köra ett manuellt test från Scheduled Market Window.
- Verifiera att data hämtas i Retrieve Watchlist Sheet och formateras korrekt av Interpret Watchlist Rows.
- Kontrollera att Dispatch Email Notice, Post Telegram Notice och Log Alert History körs parallellt när villkoren uppfylls.
- Bekräfta att antingen Success Email Notice eller Failure Email Notice skickas baserat på Verify Alert Status.
- Slå på arbetsflödet till Active för produktionsanvändning när testerna är godkända.
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
Cirka 30 minuter om dina konton och ditt ark är redo.
Nej. Du kommer mest att koppla konton och klistra in några ID:n och nycklar.
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).
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.
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.
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.
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.
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.