Konkurrentanalys låter enkelt tills du har fem flikar öppna, kopierar priser till ett kalkylark och sedan inser att du missade “frakt” på hälften av sajterna. Sedan gör du om allt nästa vecka. Samma röra, nytt datum.
Det här är typen av arbete som dränerar marknadsförare först, men e-handelsansvariga och byråfolk känner av det också. Med Telegram Sheets logging skickar du ett enda meddelande och arbetsflödet bygger strukturerade rader i Google Sheets från riktiga konkurrentsidor.
Nedan ser du hur automatiseringen körs, vilka resultat du kan förvänta dig och vad du behöver för att göra den pålitlig för veckovisa (eller dagliga) priskontroller.
Så här fungerar automatiseringen
Hela n8n-flödet, från trigger till slutlig output:
n8n Workflow Template: Telegram till Google Sheets, konkurrentdata loggas
flowchart LR
subgraph sg0["AI Agent Flow"]
direction LR
n0@{ icon: "mdi:robot", form: "rounded", label: "AI Agent", pos: "b", h: 48 }
n1@{ icon: "mdi:memory", form: "rounded", label: "Simple Memory", pos: "b", h: 48 }
n2@{ icon: "mdi:brain", form: "rounded", label: "OpenRouter Chat Model", pos: "b", h: 48 }
n5["<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/>Receive Message Trigger from.."]
n7@{ icon: "mdi:cog", form: "rounded", label: "Sub-workflow to trigger Typi..", pos: "b", h: 48 }
n9@{ icon: "mdi:wrench", form: "rounded", label: "MCP Client", 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/>Send AI’s output to the user.."]
n0 --> n13
n9 -.-> n0
n1 -.-> n0
n2 -.-> n0
n5 --> n0
n5 --> n7
end
subgraph sg1["Trigger by the main workflow Flow"]
direction LR
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/>Typing action"]
n8["<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/>Reply Error Message"]
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/n8n.svg' width='40' height='40' /></div><br/>Check if the execution in N8.."]
n11@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If the N8N execution is fini..", pos: "b", h: 48 }
n12@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Check if the N8N status is s..", pos: "b", h: 48 }
n14@{ icon: "mdi:cog", form: "rounded", label: "Wait for the typing action t..", pos: "b", h: 48 }
n15@{ icon: "mdi:play-circle", form: "rounded", label: "Trigger by the main workflow", pos: "b", h: 48 }
n6 --> n14
n15 --> n6
n11 --> n6
n11 --> n12
n12 --> n8
n10 --> n11
n14 --> n10
end
subgraph sg2["When clicking ‘Test workflow’ Flow"]
direction LR
n3@{ icon: "mdi:play-circle", form: "rounded", label: "When clicking ‘Test workflow’", pos: "b", h: 48 }
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Set Telegram Webhook"]
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 n15,n3 trigger
class n0 ai
class n2 aiModel
class n9 ai
class n1 ai
class n11,n12 decision
class n5,n4 api
classDef customIcon fill:none,stroke:none
class n5,n13,n6,n8,n10,n4 customIcon
Problemet: konkurrentanalys är manuell, rörig och svår att upprepa
Priser och positionering ändras hela tiden, men de flesta team “bevakar konkurrenter” med en webbläsare, ett kalkylark och goda intentioner. Någon öppnar några produktsidor, kopierar priset, kanske tar en SKU eller rubrik och klistrar in det i Google Sheets. Det funkar… tills det inte gör det. Sidor laddar långsamt, layouter ändras, du glömmer var en siffra kom ifrån och arket fylls med inkonsekvent formatering. Värst av allt: processen är så störig att den till slut slutar göras, vilket betyder att beslut fattas på gammal data.
Friktionen växer. Här är var det brukar falla isär i verkligheten.
- Att kontrollera ens 10 konkurrentprodukter kan äta upp ett par timmar när du räknar in tiden för att “hitta sidan igen”.
- Copy-paste-misstag smyger sig in, och du märker det sällan förrän en rapport ser “fel” ut.
- Alla spårar olika fält, så jämförelser blir till diskussioner om vad siffrorna egentligen betyder.
- Du tappar snabbt kontext eftersom arket inte visar hur datan samlades in eller när den senast uppdaterades.
Lösningen: skicka ett Telegram-meddelande, extrahera konkurrentdata och logga den strukturerat
Det här arbetsflödet gör konkurrentkontroller till en enkel förfrågan i chatten. Du skickar ett meddelande till din Telegram-bot med det du vill ha (ett konkurrentnamn, en produkt-URL eller en förfrågan i stil med “hämta pris för de här artiklarna”). n8n tar emot meddelandet via en webhook, behåller kontext med en minnesbuffer (smidigt när du ställer följdfrågor) och skickar din förfrågan vidare till en AI-agent. Agenten avgör vilket verktyg som ska användas och anropar sedan Bright Data via en MCP-koppling för att extrahera live-information från webben. Till sist formaterar arbetsflödet resultaten till konsekventa fält och lägger till dem i Google Sheets (och valfritt Excel 365), vilket skapar en prydlig, tidsstämplad logg som du faktiskt kan lita på.
Arbetsflödet startar med Telegram och en webhook-trigger. Därifrån tolkar AI-agenten din avsikt, kör rätt Bright Data-extraktion och validerar outputen. När resultaten ser kompletta ut skickar arbetsflödet en sammanfattning tillbaka till Telegram och loggar de strukturerade raderna i Google Sheets.
Det du får: automatisering vs. resultat
| Det här arbetsflödet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut i praktiken
Säg att du följer 15 konkurrentprodukter varje måndag och normalt lägger cirka 8 minuter per produkt på att hitta sidan, bekräfta aktuellt pris och klistra in detaljer i ett ark. Det är ungefär 2 timmar i veckan. Med det här arbetsflödet skickar du en Telegram-förfrågan (kanske 2 minuter), väntar på extraktion och formatering (ofta 10–20 minuter beroende på sidorna), och sedan är ditt Google Sheet uppdaterat. Du gör fortfarande en snabb stickkontroll av några rader, men du gör inte längre det tidsödande grovjobbet.
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)
- Telegram för chattbaserade researchförfrågningar.
- Bright Data MCP för att extrahera konkurrentpriser/detaljer.
- Google Sheets för att lagra strukturerade, delningsbara rader med research.
- OpenRouter API-nyckel (hämta den i din OpenRouter-dashboard).
- Telegram bot-token (hämta den från BotFather i Telegram).
- Bright Data API-token (hämta den från ditt Bright Data-konto).
Kunskapsnivå: Medel. Du kopplar konton, sätter upp en webhook och klistrar in ett par API-nycklar i n8n-credentials.
Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
Ett Telegram-meddelande triggar arbetsflödet. Din bot tar emot en förfrågan (som “hämta pris för de här URL:erna” eller “kolla konkurrent X”), och n8n fångar den via Telegrams inkommande webhook.
Kontext sparas så att agenten håller kursen. Noden för samtalsminne sparar ett kort fönster av det du redan har frågat, vilket gör att följdfrågor som “ta även med frakt” inte kräver att du upprepar allt.
AI-agenten avgör vad som ska köras och genomför extraktionen. Med OpenRouters chattmodell och MCP-verktygskopplingen väljer agenten relevant Bright Data-verktyg och kör det. Om arbetsflödet behöver vänta på att det blir klart pausar det en kort stund och kontrollerar körstatus innan det går vidare.
Resultat valideras, loggas och sammanfattas tillbaka till dig. När extraktionsoutputen ser användbar ut formaterar arbetsflödet fälten och lägger till dem i Google Sheets (och valfritt Microsoft Excel 365). Du får också ett svar i Telegram så att du vet att det fungerade, eller ett felmeddelande om något kom tillbaka tomt.
Du kan enkelt ändra kolumnerna i Google Sheets så att de matchar din rapportstruktur, eller byta destination till en databas som Postgres om du vill ha mer kontroll. Se hela implementeringsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementation
Steg 1: konfigurera webhook-triggern
Konfigurera Telegrams webhook-endpoint och en manuell uppsättningstrigger så att Telegram kan leverera inkommande meddelanden till det här arbetsflödet.
- Lägg till och konfigurera Telegram Incoming Webhook med HTTP Method inställt på
POSToch Path inställt på4f1caff9-e22f-426b-b5da-f5175be0a7bc. - Använd Manual Test Trigger för att köra engångssetup för webhook-registreringen.
- I Configure Telegram Webhook, ställ in URL till
https://api.telegram.org/bot[CONFIGURE_YOUR_API_KEY]/setWebhook. - I Configure Telegram Webhook, aktivera Send Body och ställ in body-parametern url till
.
[CONFIGURE_YOUR_API_KEY] i Configure Telegram Webhook med er riktiga Telegram bot API-nyckel, annars misslyckas webhook-registreringen.Steg 2: koppla Telegram-åtgärder
Koppla upp Telegram-åtgärder för skrivindikatorer, AI-svar och felsvar.
- Öppna Send Typing Indicator och ställ in Operation till
sendChatAction. - I Send Typing Indicator, ställ in Chat ID till
={{ $('Primary Workflow Trigger').item.json.chatId }}. - Öppna Deliver AI Response och ställ in Text till
={{ $json.output }}. - I Deliver AI Response, ställ in Chat ID till
={{ $('Telegram Incoming Webhook').item.json.body.message.chat.id }}. - I Send Error Reply, ställ in Text till
There's an error with the bot. Please try again later.och Chat ID till={{ $('Primary Workflow Trigger').item.json.chatId }}. - Inloggningsuppgifter krävs: Anslut era telegramApi-inloggningsuppgifter i Send Typing Indicator, Deliver AI Response och Send Error Reply.
Steg 3: konfigurera AI-assistenten
Konfigurera AI-agenten, minnet och verktygsintegrationerna som genererar svar från inkommande Telegram-meddelanden.
- I Intelligent Assistant, ställ in Text till
={{ $json.body.message.text }}för att skicka det inkommande meddelandet till agenten. - Säkerställ att OpenRouter Chat Engine använder Model
anthropic/claude-3.7-sonnet. - Inloggningsuppgifter krävs: Anslut era openRouterApi-inloggningsuppgifter i OpenRouter Chat Engine.
- Verifiera att Conversation Memory är ansluten som minne för Intelligent Assistant och använder Session Key
={{ $json.body.message.chat.id }}. - Verifiera att MCP Tool Connector är ansluten som ett verktyg för Intelligent Assistant med SSE Endpoint inställt på
http://localhost:8000.
Steg 4: konfigurera körning av underarbetsflöde och statuspollning
Det här arbetsflödet triggar ett underarbetsflöde parallellt och pollar dess körningsstatus medan användaren ser en skrivindikator.
- I Run Sub-Workflow (Configure Required), välj målflödet i Workflow ID och behåll Mode inställt på
each. - I Run Sub-Workflow (Configure Required), ställ in workflowInputs för att skicka vidare
chatIdsom={{ $json.body.message.chat.id }}ochexecutionIdsom={{ $execution.id }}. - Bekräfta att Primary Workflow Trigger har indata för executionId och chatId så att underarbetsflödet kan rapportera tillbaka.
- I Pause Typing Delay, ställ in Amount till
10sekunder för att tidsätta pollningscykeln. - I Check Execution Status, ställ in Resource till
execution, Operation tillgetoch Execution ID till={{ $('Primary Workflow Trigger').item.json.executionId }}. - Inloggningsuppgifter krävs: Anslut era n8nApi-inloggningsuppgifter i Check Execution Status.
- Notera den parallella körningen: Telegram Incoming Webhook skickar utdata till både Intelligent Assistant och Run Sub-Workflow (Configure Required) parallellt.
Steg 5: lägg till felhantering
Konfigurera statuskontrollerna som avgör om pollningen ska fortsätta eller om ett felsvar ska skickas.
- I Execution Finished?, verifiera att villkoret kontrollerar
={{ $json.finished }}med en boolean-åtgärd false för att fortsätta polla tills det är klart. - I Validate Execution Result, bekräfta att villkoret kontrollerar att
={{ $json.status }}är notEqualssuccessför att styra fel. - Säkerställ att felvägen från Validate Execution Result leder till Send Error Reply.
Steg 6: testa och aktivera ert arbetsflöde
Kör end-to-end-tester för att bekräfta webhook-setup, generering av AI-svar och pollningsloopen för status.
- Klicka på Execute Workflow på Manual Test Trigger för att registrera webhooken hos Telegram.
- Skicka ett meddelande till er Telegram-bot och bekräfta att Telegram Incoming Webhook tar emot payloaden.
- Verifiera att AI-svaret levereras av Deliver AI Response med
={{ $json.output }}som meddelandeinnehåll. - Bekräfta att skrivindikator-loopen körs: Send Typing Indicator → Pause Typing Delay → Check Execution Status → Execution Finished?.
- Om fel uppstår, säkerställ att Send Error Reply postar till Telegram med det konfigurerade felmeddelandet.
- Aktivera arbetsflödet för att hålla webhooken aktiv för produktionstrafik.
Vanliga fallgropar
- Telegram-credentials och webhook-URL:er måste matcha exakt. Om svar slutar komma, dubbelkolla “setWebhook”-anropet i din HTTP Request-nod och bekräfta att bot-token fortfarande är giltig.
- Om du använder Wait-noder eller externa extraktionskörningar varierar processtiderna. Öka väntetiden om efterföljande noder fallerar på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in din tonalitet tidigt, annars kommer du att redigera output i all evighet.
Vanliga frågor
Cirka en timme om du redan har nycklarna och kontona.
Nej. Du kommer att klistra in API-nycklar och välja några alternativ i n8n.
Ja. n8n har ett gratis alternativ för egen hosting och en gratis provperiod på n8n Cloud. Molnplanerna börjar på 20 USD/månad för högre volymer. Du behöver också räkna in användning av OpenRouter-modeller och Bright Data-kostnader baserat på vad du extraherar.
Två alternativ: n8n Cloud (driftat, enklast att komma igång) eller egen hosting på en VPS. För egen hosting är Hostinger VPS prisvärt och hanterar n8n bra. Egen hosting ger dig obegränsade körningar men kräver grundläggande serveradministration.
Ja, men då vill du justera batchning och output-mappningen. Arbetsflödet använder redan split-in-batches-beteende och körningskontroller, så du kan mata in en lista med URL:er och loopa igenom dem. Vanliga anpassningar är att lägga till kolumner som “frakt”, “variant” och “kampanjtext”, byta flik i Google Sheets per konkurrent och spara rå HTML eller länkar till skärmdumpar för granskning.
Oftast beror det på webhook-setupen eller en ogiltig bot-token. Kör webhook-konfigurationen igen, bekräfta att din n8n-webhook-URL inte har ändrats och säkerställ att Telegram-noden använder samma bot-credentials. Om Telegram-svar fungerar men inkommande meddelanden inte triggar arbetsflödet, är det nästan alltid webhook-URL:en.
Några hundra rader per körning är realistiskt, och fler om du batchar det smart.
För det här användningsfallet är n8n oftast bättre, eftersom det hanterar logik i flera steg, väntan/pollning tills något är klart och agent-liknande verktygsanrop utan att tvinga in dig i dyra “premium”-steg. Zapier och Make kan fungera, men agent + web-extraktion tenderar att bli klumpigt snabbt. Dessutom spelar egen hosting roll här om du kör frekventa kontroller och inte vill tänka på task-counts varje vecka. Om du bara behöver “Telegram-meddelande → lägg till en rad” fungerar Zapier ärligt talat bra. Prata med en automationsexpert om du vill ha hjälp att välja.
När det här väl rullar blir konkurrentkontroller ett snabbt meddelande, inte ett halvdagsprojekt. Sätt upp det, håll arket strukturerat och gå vidare till beslut som faktiskt driver intäkter.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.