Du får en bild på en ingrediensförteckning … och sen börjar det riktiga jobbet. Zooma in, gissa vad en suddig rad säger, googla ”är det här säkert?” och försöka svara självsäkert utan att lova för mycket.
Det är här automatisering med Telegram Gemini verdicts verkligen lönar sig. Supportteam som svarar på produktfrågor märker det varje dag. Detsamma gäller butiksägare som jonglerar DM:s och konsulter som driver hudvårds- eller kosttillskottscommunityn och inte har råd med osäkra råd.
Det här flödet gör om en Telegram-bild (eller ingredienstext) till ett strukturerat, vänligt utlåtande i stil med ”använd / använd inte” med motiveringar, och skickar tillbaka det på sekunder. Du får se hur det fungerar, vad du behöver och vad du ska anpassa för att det ska passa er tonalitet.
Så fungerar den här automatiseringen
Hela n8n-flödet, från trigger till slutresultat:
n8n Workflow Template: Telegram + Google Gemini: snabba ingrediensbesked
flowchart LR
subgraph sg0["Get a Message photo/text Flow"]
direction LR
n0@{ icon: "mdi:brain", form: "rounded", label: "Google Gemini Chat Model", pos: "b", h: 48 }
n1@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser", pos: "b", h: 48 }
n2@{ icon: "mdi:brain", form: "rounded", label: "Google Gemini Chat Model1", pos: "b", h: 48 }
n3@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser1", pos: "b", h: 48 }
n4@{ icon: "mdi:brain", form: "rounded", label: "Google Gemini Chat Model2", 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/telegram.svg' width='40' height='40' /></div><br/>Get a Message photo/text"]
n6@{ icon: "mdi:robot", form: "rounded", label: "Analyzes product images usin..", 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/>Retrieves photo file from Te.."]
n8@{ icon: "mdi:robot", form: "rounded", label: "Analyzes ingredients with us..", pos: "b", h: 48 }
n9["<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/>Sends Use/Do Not Use recomme.."]
n10@{ icon: "mdi:robot", form: "rounded", label: "Analyzes ingredients without..", pos: "b", h: 48 }
n11["<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/>Sends detailed ingredient an.."]
n12@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Routes based on caption pres..", pos: "b", h: 48 }
n13@{ icon: "mdi:robot", form: "rounded", label: "Handles text messages and gr..", pos: "b", h: 48 }
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/telegram.svg' width='40' height='40' /></div><br/>Sends conversational responses"]
n15@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Checks if message contains p..", pos: "b", h: 48 }
n5 --> n15
n0 -.-> n8
n1 -.-> n8
n2 -.-> n10
n4 -.-> n13
n3 -.-> n10
n15 --> n7
n15 --> n13
n12 --> n8
n12 --> n10
n7 --> n6
n13 --> n14
n6 --> n12
n10 --> n11
n8 --> n9
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 trigger
class n1,n3,n6,n8,n10,n13 ai
class n0,n2,n4 aiModel
class n12,n15 decision
classDef customIcon fill:none,stroke:none
class n5,n7,n9,n11,n14 customIcon
Problemet: ingrediensfrågor skapar långsam och riskfylld support
Innehållsfrågor kommer inte in snyggt formaterade. De dyker upp som sneda foton, halvdunkla etiketter, pyttesmå typsnitt och bildtexter som ”är det här okej mot akne?” eller ”säkert för barn?”. Då hamnar du i manuell triage: be om tydligare bilder, skriva om ingredienslistor och googla varje okänd substans. Under tiden väntar kunden (och är ofta redo att köpa direkt). Det värsta är den mentala belastningen. Du översätter inte bara en etikett, du ska låta trygg, konsekvent och ansvarsfull – varje gång.
Det blir snabbt mycket. Här är var det brukar fallera i praktiken.
- Varje foto blir ett litet researchprojekt som lätt tar runt 10 minuter om etiketten är stökig.
- Två olika teammedlemmar svarar olika, så kunder tappar förtroendet och frågar samma sak igen.
- Du lägger tid på att reda ut grunderna (”skicka ingredienslistan”) i stället för att svara på själva frågan.
- När du har bråttom varnar du antingen för mycket eller förklarar för lite – och båda leder till följdfrågor.
Lösningen: Telegram → Gemini-ingredienser och utlåtanden, automatiskt
Det här flödet ger dig en pålitlig ”förstasvarsmotor” för ingredienskontroller. En användare skickar en etikettbild eller en ingredienslista i text till din Telegram-bot. n8n känner av vad som kom in, hämtar bilden vid behov och skickar den till Google Gemini för extrahering och analys av ingredienser. Sedan routas ärendet baserat på kontext: om användaren lade till en bildtext (t.ex. ”säkert vid graviditet?”) returnerar AI:n en enkel rekommendation med motivering; om det saknas bildtext får du en strukturerad genomgång (fördelar, nackdelar, rekommenderas för, rekommenderas inte för). Till sist skickar flödet ett korrekt formaterat, trevligt svar tillbaka till Telegram.
Det börjar med ett Telegram-meddelande, sedan gör Gemini det tunga jobbet på själva etiketten. Därefter väljer flödet rätt svarsstil och skickar tillbaka direkt, så du slipper skriva om samma förklaringar.
Det du får: automatisering vs. resultat
| Vad det här flödet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här kan det se ut
Säg att du driver en liten hudvårdsbutik och får 15 DM:s per dag med ”är det här säkert?”. Manuellt, om varje tar runt 10 minuter mellan att läsa, zooma, söka och skriva ett genomtänkt svar, blir det cirka 2,5 timmar per dag. Med det här flödet skickar kunden en etikettbild till Telegram, Gemini analyserar den och du skickar tillbaka ett strukturerat utlåtande på ungefär en minut (plus en kort väntetid för bearbetning). Det är ungefär 2 timmar tillbaka per dag, utan att du behöver stressa fram svaren.
Det här behöver du
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för självhosting om du föredrar det (Hostinger fungerar bra)
- Telegram för att ta emot bilder och skicka svar.
- Google Gemini API för extrahering och analys av ingredienser.
- Token för Telegram-bot (hämta den från BotFather i Telegram).
Kunskapsnivå: Nybörjare. Du kopplar främst konton, lägger in API-credentials och justerar meddelandetexter.
Vill du slippa sätta upp det själv? Prata med en automationsexpert (gratis konsultation i 15 minuter).
Så fungerar det
Ett Telegram-meddelande triggar flödet. En användare skickar antingen en bild på en produktetikett eller en textlista med ingredienser till din bot, och n8n fångar upp det direkt.
Foto vs. text sorteras automatiskt. Finns ett foto hämtar n8n originalfilen från Telegram och förbereder den för Gemini Vision. Är det bara text (eller till och med en hälsning) routar flödet till en separat hanterare så att användaren ändå får ett användbart svar.
Gemini analyserar ingrediensinnehållet. Bildgrenen extraherar ingredienslistan och skickar den till AI-agenterna som genererar antingen ett utlåtande eller en djupare analys med fördelar/nackdelar.
Ett strukturerat svar skickas tillbaka till Telegram. Finns bildtext? Användaren får en ”använd / använd inte”-rekommendation plus en motivering. Ingen bildtext? De får fördelar, nackdelar, rekommenderas för och rekommenderas inte för, med tre punkter i varje.
Du kan enkelt ändra svarsformatet så att det blir kortare, mer tekniskt eller flerspråkigt utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera Telegram-triggern
Konfigurera Telegram-triggern som tar emot inkommande meddelanden och foton från användare.
- Lägg till och öppna Telegram Intake Trigger.
- Ställ in Updates på
message. - Autentiseringsuppgifter krävs: Anslut era telegramApi-autentiseringsuppgifter (den här noden kräver autentiseringsuppgifter men inga är konfigurerade).
⚠️ Vanlig fallgrop: Om Telegram Intake Trigger saknar autentiseringsuppgifter registreras inte webhooken och arbetsflödet kommer inte att ta emot meddelanden.
Steg 2: Routa foto- kontra textmeddelanden
Avgör om det inkommande meddelandet innehåller ett foto och förgrena sedan till bildanalys eller hantering av textchatt.
- Öppna Photo Presence Check och säkerställ att villkoret kontrollerar
{{ $json.message.photo[3].file_id }}med operatorn exists. - Verifiera att “true”-grenen från Photo Presence Check går till Telegram Photo Fetch.
- Verifiera att “false”-grenen från Photo Presence Check går till Text Chat Handler.
⚠️ Vanlig fallgrop: Om användare skickar mindre bildstorlekar kanske indexet photo[3] inte finns. Överväg att justera indexet om er Telegram-bot tar emot färre storlekar.
Steg 3: Hämta och analysera ingrediensfoton
Hämta Telegram-bildfilen och skicka den till Gemini för extrahering av ingredienser.
- Öppna Telegram Photo Fetch och ställ in File ID på
{{ $json.message.photo[3].file_id }}. - Autentiseringsuppgifter krävs: Anslut era telegramApi-autentiseringsuppgifter i Telegram Photo Fetch.
- Öppna Gemini Image Ingredient Scan och ställ in Resource på
image, Input Type påbinaryoch Operation påanalyze. - Ställ in Text på
Analyze this product image and extract only the list of ingredients. Ignore other text like brand names, slogans, or nutritional info. Return the ingredients as clean text in order and What the product is.. - Ställ in Model på
models/gemini-2.5-flash. - Autentiseringsuppgifter krävs: Anslut era googlePalmApi-autentiseringsuppgifter i Gemini Image Ingredient Scan.
Steg 4: Routa baserat på om bildtext finns
Kontrollera om Telegram-fotot har en bildtext för att välja mellan ett snabbt utlåtande eller en detaljerad analys.
- Öppna Caption Presence Router och bekräfta att den första regeln kontrollerar
{{ $('Telegram Intake Trigger').item.json.message.caption }}med exists. - Bekräfta att den andra regeln kontrollerar
{{ $('Telegram Intake Trigger').item.json.message.caption }}med notExists. - Säkerställ att utgången “caption exists” går till Captioned Ingredient Verdict.
- Säkerställ att utgången “caption not exists” går till Uncaptioned Ingredient Review.
Steg 5: Konfigurera AI-utlåtanden och strukturerad tolkning
Konfigurera AI-agenterna och parsern för strukturerad output för konsekventa resultat vid ingrediensanalys.
- Öppna Captioned Ingredient Verdict och ställ in Text på
Product ingredients :- {{ $json.content.parts[0].text }} User's Caption :- {{ $('Telegram Intake Trigger').item.json.message.caption }}. - Säkerställ att Captioned Ingredient Verdict har Has Output Parser aktiverat och använder Structured Result Decoder A.
- Öppna Structured Result Decoder A och behåll JSON Schema Example som angivet för
recommendationochreason. - Öppna Uncaptioned Ingredient Review och ställ in Text på
Product ingredients :- {{ $('Gemini Image Ingredient Scan').item.json.content.parts[0].text }}. - Säkerställ att Uncaptioned Ingredient Review har Has Output Parser aktiverat och använder Structured Result Decoder B.
- Öppna Structured Result Decoder B och behåll JSON Schema Example för advantages/disadvantages/recommended_for/not_recommended_for.
- Autentiseringsuppgifter krävs: Anslut era googlePalmApi-autentiseringsuppgifter i Gemini Chat Engine B och Gemini Chat Engine C.
- Autentiseringsuppgifter krävs: Gemini Chat Engine A behöver också googlePalmApi-autentiseringsuppgifter (inga är konfigurerade).
- Obs: Structured Result Decoder A och Structured Result Decoder B är AI-undernoder; lägg till autentiseringsuppgifter i deras överordnade chat engines, inte i parsernoderna själva.
Steg 6: Konfigurera hantering av textchatt
Hantera meddelanden utan foto med chatt-AI:n och returnera ett kontextuellt svar.
- Öppna Text Chat Handler och ställ in Text på
{{ $json.message.text }}. - Bekräfta att Text Chat Handler är länkat till Gemini Chat Engine C som språkmodell.
- Verifiera att utgångsgrenen från Text Chat Handler går till Send Chat Reply.
Steg 7: Skicka utdata till Telegram
Skicka tillbaka analysresultat till användaren baserat på AI-utdata.
- Öppna Send Usage Recommendation och ställ in Text på
** {{ $json.output.recommendation }} ** {{ $json.output.reason }}. - Ställ in Chat ID i Send Usage Recommendation på
{{ $('Telegram Intake Trigger').item.json.message.chat.id }}. - Autentiseringsuppgifter krävs: Anslut era telegramApi-autentiseringsuppgifter i Send Usage Recommendation.
- Öppna Send Detailed Analysis och ställ in Text på mallen för flerradig output med poster för
advantages,disadvantages,recommended_forochnot_recommended_for. - Ställ in Chat ID i Send Detailed Analysis på
{{ $('Telegram Intake Trigger').item.json.message.chat.id }}. - Autentiseringsuppgifter krävs: Anslut era telegramApi-autentiseringsuppgifter i Send Detailed Analysis.
- Öppna Send Chat Reply och ställ in Text på
{{ $json.output }}samt Chat ID på{{ $('Telegram Intake Trigger').item.json.message.chat.id }}. - Autentiseringsuppgifter krävs: Anslut era telegramApi-autentiseringsuppgifter i Send Chat Reply.
Steg 8: Testa och aktivera ert arbetsflöde
Validera arbetsflödets beteende med ett riktigt Telegram-meddelande och aktivera det sedan för produktionsanvändning.
- Klicka på Execute Workflow och skicka ett testfoto med en bildtext till er Telegram-bot.
- Bekräfta att flödet Telegram Intake Trigger → Photo Presence Check → Telegram Photo Fetch → Gemini Image Ingredient Scan → Caption Presence Router → Captioned Ingredient Verdict → Send Usage Recommendation körs utan problem.
- Skicka ett foto utan bildtext och bekräfta att det routas till Uncaptioned Ingredient Review → Send Detailed Analysis.
- Skicka ett meddelande med endast text och bekräfta att det routas till Text Chat Handler → Send Chat Reply.
- När ni är nöjda, växla arbetsflödet till Active för att köra kontinuerligt.
Vanliga fallgropar
- Telegram-credentials kan strula om bot-token har ändrats eller om fel bot är kopplad. Om svar slutar skickas: kontrollera Telegram-credentials i n8n först och bekräfta att token fortfarande matchar BotFather.
- Om du använder Wait-noder eller extern AI-bearbetning varierar svarstiderna. Öka väntetiden om nedströmsnoder fallerar på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in er tonalitet tidigt, annars kommer du redigera output i all oändlighet.
Vanliga frågor
Cirka 30 minuter om din Telegram-bot och din Gemini API-nyckel är redo.
Nej. Du kopplar credentials och redigerar några meddelandemallar. n8n sköter routing och logik åt dig.
Ja. n8n har ett gratis alternativ för självhosting och en gratis provperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volymer. Du behöver också räkna med kostnader för användning av Google Gemini API, som beror på hur många bilder du analyserar.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller självhosting på en VPS. För självhosting är Hostinger VPS prisvärt och klarar n8n bra. Självhosting ger dig obegränsade körningar men kräver grundläggande serverhantering.
Ja, och det handlar mest om promptändringar. Uppdatera instruktionerna i AI Agent-noderna (agenten för utlåtande med bildtext och agenten för genomgång utan bildtext) så att de alltid svarar på användarens språk, eller så att de först detekterar språk från meddelandetexten. Många team kortar också ner avsnittet ”fördelar/nackdelar” för mobil och lägger till ett alternativ som ”svara MER för detaljer”. Om du vill ha striktare struktur: behåll Structured Result Decoder-noderna och tajta till fältnamnen så att formateringen inte driver iväg.
Oftast har bot-token roterats eller klistrats in i fel credential i n8n. Kontrollera Telegram-credentials igen och bekräfta sedan att din bot kan ta emot meddelanden (starta bot-chatten i Telegram och skicka ett test). Om bildhämtning misslyckas men textsvar fungerar beror det ofta på att flödet inte kommer åt fil-ID:t korrekt från inkommande update-payload. Inspektera i så fall trigger-output en gång och mappa rätt fält till noden ”Telegram Photo Fetch”.
Om du självhostar n8n finns ingen hård gräns för antal körningar (det beror på din server), och de flesta mindre uppsättningar klarar hundratals meddelanden per dag utan problem.
Ofta ja, eftersom det här flödet behöver grenlogik (foto vs. text, bildtext vs. ingen bildtext) och strukturerade AI-prompter, och n8n hanterar det utan att varje väg blir ett separat betalt steg. Du får också ett alternativ för självhosting, vilket spelar roll om du bearbetar många etikettbilder. Zapier eller Make kan fortfarande funka för en enkel demo i stil med ”skicka bild till AI, posta svar”, men så fort du vill ha pålitlig routing och konsekvent formatering blir det snabbt rörigt. Om du planerar att spara utlåtanden, lägga till säkerhetsdisclaimers och standardisera output mellan agenter är n8n det lugnare valet. Är du osäker, prata med en automationsexpert så hjälper vi dig välja den enklaste uppsättningen.
När detta väl är igång slutar ingrediensfrågor vara en tidstjuv och börjar kännas som ett system. Flödet tar hand om det repetitiva, och du behåller kontrollen över tonläge och vägledning i slutänden.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.