Du hittar en rabattkod, skickar den till en kund och sedan studsar den. Utgången, regionslåst eller hämtad från en skum skraparlista som såg “okej” ut just då.
Det här slår hårt mot growth marketers när kampanjer behöver ett riktigt erbjudande idag. supportteam känner av det när kunder frågar “har ni några rabatter?” och du fastnar i att kolla fem sajter. Om du driver en affiliate-sida eller ett nyhetsbrev ger den här automatiseringen för SerpAPI Telegram codes dig något bättre: verifierade, aktuella rabattalternativ levererade på några minuter.
Du får se hur arbetsflödet hittar koder, filtrerar bort gammalt skräp, avduplicerar resultat för återanvändning och svarar tillbaka i Telegram (och via e-post) med ett felfritt, redo-att-skicka-svar.
Så fungerar automatiseringen
Hela n8n-arbetsflödet, från trigger till slutlig output:
n8n Workflow Template: SerpAPI till Telegram: verifierade rabattkoder vid begäran
flowchart LR
subgraph sg0["Schedule Flow"]
direction LR
n0@{ icon: "mdi:wrench", form: "rounded", label: "SerpAPI", pos: "b", h: 48 }
n1@{ icon: "mdi:robot", form: "rounded", label: "Promo Seeker Agent", pos: "b", h: 48 }
n2@{ icon: "mdi:brain", form: "rounded", label: "Gemini 2.5Pro", pos: "b", h: 48 }
n3@{ icon: "mdi:play-circle", form: "rounded", label: "Schedule Trigger", pos: "b", h: 48 }
n4@{ icon: "mdi:swap-vertical", form: "rounded", label: "Platform", pos: "b", h: 48 }
n5@{ icon: "mdi:cog", form: "rounded", label: "No Operation, do nothing", pos: "b", h: 48 }
n6["<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/>Telegram Trigger"]
n7@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser", pos: "b", h: 48 }
n8@{ icon: "mdi:cog", form: "rounded", label: "Get row(s)", pos: "b", h: 48 }
n9@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Code Exist?", pos: "b", h: 48 }
n10["<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/form.svg' width='40' height='40' /></div><br/>On form submission"]
n11@{ icon: "mdi:message-outline", form: "rounded", label: "Send a message", pos: "b", h: 48 }
n12@{ icon: "mdi:cog", form: "rounded", label: "Upsert row(s)", pos: "b", h: 48 }
n13["<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/>notify telegram"]
n14["<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/webhook.dark.svg' width='40' height='40' /></div><br/>Webhook"]
n15["<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/webhook.dark.svg' width='40' height='40' /></div><br/>Respond to Webhook"]
n0 -.-> n1
n14 --> n5
n4 --> n8
n8 --> n9
n9 --> n13
n9 --> n11
n9 --> n15
n9 --> n1
n2 -.-> n1
n3 --> n5
n6 --> n5
n10 --> n5
n1 --> n12
n5 --> n4
n7 -.-> n1
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 n3,n6,n10 trigger
class n1,n7 ai
class n2 aiModel
class n0 ai
class n9 decision
class n14,n15 api
class n15 disabled
classDef customIcon fill:none,stroke:none
class n6,n10,n13,n14,n15 customIcon
Problemet: rabattkoder blir inaktuella snabbare än din process
Manuell jakt på rabattkoder låter enkelt tills du gör det under press. En kollega pingar dig på Telegram, en kund frågar i chatten eller så ska du precis trycka “skicka” på ett nyhetsbrev och inser att din kodlista är gammal. Så du öppnar flikar. Du söker. Du skummar kupongsajter som kopierar varandra. Sedan försöker du verifiera koden – och det är där det oftast faller isär. Och när en dålig kod slinker igenom är det inte bara ett litet misstag. Det kostar förtroende, slösar supporttid och drar tyst ner konverteringen.
Friktionen bygger på. Här brister det oftast.
- Det kan ta runt 2 timmar att hitta något “nyligen uppdaterat”, och du är ändå inte säker på att det fungerar.
- Koder upprepas mellan källor, så du slösar tid på att dubbelkolla samma inaktuella alternativ.
- Team slutar med röriga kalkylark som inte hålls uppdaterade, vilket gör att ingen längre litar på dem.
- När du väl hittar en kod måste du ändå skriva om den till ett tydligt meddelande för Telegram eller e-post.
Lösningen: SerpAPI + AI-verifiering, levererat till Telegram
Det här arbetsflödet gör “Kan du hitta en fungerande rabattkod?” till ett snabbt, repeterbart system. Det startar från kanalen du redan använder (Telegram, en webhook, ett formulärinskick eller en schemalagd körning). Först normaliserar n8n förfrågan så att “example.com”, “Example” och “https://example.com/” inte skapar tre olika poster. Sedan kontrollerar det din n8n Data Table för att se om du redan har aktuella rabattkoder för den plattformen. Om ja, svarar det direkt.
Om arbetsflödet inte hittar något i cache startar det en agent som använder SerpAPI för att söka på webben och en LLM (Gemini via OpenRouter i arbetsflödet) för att extrahera rabattdetaljer till strukturerad JSON. Den outputen filtreras på aktualitet (senaste 30 dagarna), standardiseras (kod, värde, villkor, utgångsdatum) och lagras med en upsert så att dubbletter städas bort i stället för att mångdubblas. Till sist får den som frågat resultatet via Telegram, plus ett valfritt rikt e-postmeddelande via Gmail.
Arbetsflödet startar när en användare begär koder (Telegram, webhook, formulär eller schema). Därifrån hämtar det antingen kända, fungerande koder från din Data Table eller kör en ny SerpAPI-sökning med AI-verifiering. När resultaten är bekräftade och formaterade skickar n8n ett Telegram-meddelande och kan även mejla samma svar för enkel vidarebefordran.
Vad du får: automatisering vs. resultat
| Vad det här arbetsflödet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att din supportinkorg får 10 förfrågningar i veckan om “rabattkod?” för olika varumärken. Manuellt är även en “snabbkoll” kanske 10 minuter sökande och ytterligare 5 minuter för att verifiera och formatera ett tydligt meddelande, så du landar på ungefär 2,5 timmar i veckan. Med det här arbetsflödet är varje förfrågan ett Telegram-meddelande och du får vanligtvis ett svar tillbaka på under 5 minuter (snabbare om det redan finns i Data Table). Det är runt 2 timmar tillbaka varje vecka, och dina svar blir mer konsekventa.
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)
- SerpAPI för webbsökresultat på beställning
- Telegram-bot för att ta emot förfrågningar och skicka resultat
- OpenRouter API-nyckel (hämta den i din OpenRouter-dashboard)
Svårighetsnivå: Medel. Du kopplar in autentiseringsuppgifter och redigerar några mappningar (plattform, chatt-ID, e-post) i n8n.
Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
En förfrågan kommer in. En användare skriver till din Telegram-bot, ett formulärinskick går in i n8n, en webhook tar emot en payload eller så körs ett schema i bakgrunden för att hålla kampanjer aktuella.
Ditt arbetsflöde kontrollerar det du redan vet. n8n formaterar inkommande “plattform”-input och slår sedan upp matchande rader i en n8n Data Table. Om du redan har aktuella rabattkoder kan det svara direkt utan att göra ännu ett API-anrop.
Ny insamling sker bara när det behövs. När det inte finns någon användbar post startar en AI-agent SerpAPI-sökningar och använder en LLM för att extrahera de faktiska detaljerna (kod, värde, villkor, giltig-till) till strukturerad JSON. Den strukturerade parsningen hjälper till att förhindra att rörig output blir röriga databasrader.
Resultaten levereras och sparas. De bästa träffarna skickas till Telegram och kan valfritt mejlas via Gmail, och upsertas sedan in i Data Table så att nästa förfrågan blir snabbare och mer felfri.
Du kan enkelt ändra aktualitetsfönstret (7 dagar, 14 dagar, 30 dagar) för att matcha din nisch utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera triggertypen
Det här arbetsflödet tar emot förfrågningar om kampanjkoder från flera ingångar som alla sammanfaller i samma bearbetningsflöde.
- Öppna Telegram Update Trigger och bekräfta att Updates inkluderar
messageså att inkommande chattmeddelanden fångas upp. - Öppna Scheduled Run Trigger och definiera schemaregeln under Rule för att styra automatiserade körningar.
- Öppna Form Submission Trigger och verifiera att Form Title är
Promo Seekeroch att Form Description ärtemukan promocode disini. Säkerställ att formulärfälten inkluderarPlatformochemail. - Öppna Incoming Webhook och ställ in Path till
v1/promo-seeker, HTTP Method tillPOSToch Response Mode tillresponseNode.
Körflöde: Telegram Update Trigger, Scheduled Run Trigger, Form Submission Trigger och Incoming Webhook matar alla in i Pass-Through Step.
Steg 2: normalisera indata och fråga datatabellen
Det här steget standardiserar plattforms-/e-postindata och frågar kampanjkodstabellen.
- I Pass-Through Step lämnar ni inställningarna som standard; den fungerar som en routningshubb från alla triggers.
- I Set Platform Inputs bekräftar ni att tilldelningen för query är
{{ $json.Platform || $json.message?.text || $json.body.platform || '' }}och att tilldelningen för receiver är{{ $json.chatId || $json.email || $json.body.email || '' }}. - I Retrieve Table Rows ställer ni in Operation till
get, Match Type tillallConditionsoch Limit till3. - I Retrieve Table Rows ställer ni in filtervillkoret platform till
{{ $json.query }}och väljer datatabellenKode Promo Valid.
Steg 3: konfigurera validering och routningslogik
Det här steget avgör om en kampanjkod finns och routar till notifieringar eller AI-upptäckt.
- I Validate Code Presence ställer ni in villkoret så att det kontrollerar att
{{ $json.platform }}exists. - Bekräfta att Validate Code Presence skickar utdata till tre noder parallellt: Send Telegram Alert, Dispatch Email Notice och Webhook Response Sender.
- Bekräfta att false-grenen i Validate Code Presence routar till Voucher Scout Agent för AI-baserad upptäckt.
Körflöde: Validate Code Presence skickar utdata till Send Telegram Alert, Dispatch Email Notice och Webhook Response Sender parallellt.
⚠️ Vanlig fallgrop: Webhook Response Sender är inaktiverad. Aktivera den om ni behöver ett HTTP-svar för Incoming Webhook-sökvägen.
Steg 4: sätt upp AI-spåret för upptäckt
AI-agenten söker efter giltiga kampanjkoder och strukturerar resultatet för lagring.
- Öppna Voucher Scout Agent och ställ in Text till
platform: {{ $('Set Platform Inputs').item.json.query }}. - Bekräfta att Voucher Scout Agent har Prompt Type satt till
defineoch att Has Output Parser är aktiverad. - Öppna Structured Result Parser och säkerställ att JSON Schema Example matchar kampanjschemat, inklusive
platform,code1,value,termsochvalidUntil. - Öppna Gemini Pro Model och ställ in Model till
google/gemini-2.5-pro. - Öppna Search API Tool för att bekräfta att den är ansluten som ett AI-verktyg till Voucher Scout Agent.
Inloggningsuppgifter krävs: Anslut era openRouterApi-inloggningsuppgifter i Gemini Pro Model.
Inloggningsuppgifter krävs: Anslut era serpApi-inloggningsuppgifter i Search API Tool. Det här verktyget används av Voucher Scout Agent, så säkerställ att inloggningsuppgifterna läggs till i verktygsnoden.
Notering om AI-verktyg: Structured Result Parser är kopplad till Voucher Scout Agent; inga separata inloggningsuppgifter krävs på parsern.
Steg 5: konfigurera datalagring och notifieringar
Det här steget skriver nyfunna kampanjkoder till datatabellen och skickar aviseringar när en kod finns tillgänglig.
- I Upsert Table Rows ställer ni in Operation till
upsertoch väljer datatabellenKode Promo Valid. - Mappa kolumner i Upsert Table Rows med uttryck: platform
{{ $json.output.platform }}, promoCode{{ $json.output.code1 }}, value{{ $json.output.value }}, termsConditions{{ $json.output.terms }}och validUntil{{ $json.output.validUntil }}. - I Send Telegram Alert ställer ni in Chat ID till
{{ $('Telegram Update Trigger').item.json.message.chat.id }}och behåller den HTML-rika Text-mallen som konfigurerad. - I Dispatch Email Notice ställer ni in Send To till
{{ $('Incoming Webhook').item.json.body.email }}och behåller HTML-meddelandet och ämnetKode Promo {{ $json.platform.toUpperCase() || $json.platform }} Sudah Tersedia.
Inloggningsuppgifter krävs: Anslut era gmailOAuth2-inloggningsuppgifter i Dispatch Email Notice.
Tips: Om ni planerar att skicka Telegram-aviseringar från webhook- eller formulärförfrågningar, säkerställ att inkommande payload innehåller ett giltigt chatt-ID eller justera Send Telegram Alert så att den använder {{ $json.receiver }}.
Steg 6: testa och aktivera
Validera varje trigger-väg och bekräfta att utdata levereras som förväntat.
- Klicka på Test Workflow och skicka ett testmeddelande till Telegram Update Trigger eller en POST-begäran till Incoming Webhook på
/v1/promo-seeker. - Verifiera att Retrieve Table Rows returnerar matchande data och att Validate Code Presence routar korrekt.
- Bekräfta att Send Telegram Alert och Dispatch Email Notice skickar meddelanden när en kod finns, och att Voucher Scout Agent körs när ingen finns.
- Kontrollera att Upsert Table Rows lägger till/uppdaterar kampanjkoder efter AI-upptäckt.
- När allt fungerar växlar ni arbetsflödet till Active för produktionsanvändning.
Vanliga fallgropar
- SerpAPI-uppgifter kan löpa ut eller nå kvotgränser. Om resultaten plötsligt ser tomma ut: kontrollera först användningen i din SerpAPI-dashboard och val av autentiseringsuppgifter i SerpAPI-verktygsnoden i n8n.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om nedströmsnoder fallerar på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in din varumärkesröst tidigt, annars kommer du att redigera output i all evighet.
Vanliga frågor
Cirka 30 minuter om du redan har kontona och API-nycklarna.
Nej. Du kopplar in autentiseringsuppgifter och justerar några fält i n8n. Arbetsflödeslogiken är redan byggd.
Ja. n8n har ett gratis self-hosted-alternativ och en gratis testperiod 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 SerpAPI och OpenRouter (ofta några dollar i månaden vid låg volym).
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 hanterar n8n bra. Self-hosting ger dig obegränsade körningar men kräver grundläggande serverhantering.
Ja, och det är en av de första justeringarna du bör göra. Uppdatera systemprompten i Voucher Scout Agent så att den kräver ett 7-dagarsfönster, och behåll sedan schemat i Structured Result Parser oförändrat så att dina Data Table-upserts förblir felfria. Vanliga anpassningar är regional filtrering (endast USA, endast Storbritannien), att ändra gränsen för Data Table-uppslag (standard är 3) och att stänga av e-post så att det blir endast Telegram.
Oftast beror det på en felaktig bot-token eller att boten inte är inställd för att ta emot uppdateringar på det sätt som triggern förväntar sig. Skapa om Telegram-autentiseringsuppgifterna i n8n, bekräfta att token är korrekt och säkerställ att din chatt-ID-mappning matchar dit du försöker skicka meddelanden. Om du kör bakom en brandvägg eller på en ny domän kan webhook-leveransen också brytas, så kontrollera triggerns anslutningsstatus i n8n.
Hundratals per dag i de flesta upplägg, eftersom Data Table-uppslaget förhindrar upprepade sökningar och arbetsflödet bara anropar SerpAPI när det faktiskt behöver nya resultat.
Ofta, ja, eftersom mönstret “agent + strukturerad parsning + databas-upsert” är där enklare verktyg börjar bli klumpiga eller dyra. n8n är också enklare att self-hosta, vilket spelar roll om din volym ökar och du inte vill betala per task. Zapier eller Make kan fortfarande fungera för ett enkelt “sök och skicka meddelande”-proof of concept, men du kommer att lägga mer tid på formatering, avduplicering och grenlogik. Ärligt talat: arbetsflöden för rabattkoder är bara värdefulla om de förblir felfria över tid, och det är exakt vad Data Table-lagret är till för. Prata med en automationsexpert om du vill ha hjälp att välja.
När det här väl rullar slutar förfrågningar om rabattkoder att vara en distraktion och blir en knapp du kan trycka på. Sätt upp det, låt det bygga upp din felfria rabatttabell över tid och gå vidare.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.