Matfoto-incheckningar låter enkla tills du jagar detaljer hela dagen: ”Vad var det för sås?” ”Hur stor var portionen?” ”Kan du skicka bilden igen?” Det blir en rörig tråd utan någon struktur, och din kalorisammanfattning i Telegram hamnar till slut i någons huvud.
Hälsocoacher känner av det först eftersom incheckningarna kommer nonstop. Men produktteam som bygger nutritionsfunktioner och ansvariga som driver grupputmaningar fastnar i samma fram och tillbaka. Du behöver konsekventa inlägg och ett strukturerat underlag – inte ännu en chattbaserad skattjakt.
Det här arbetsflödet gör ett matfoto i Telegram till en strukturerad kalorisammanfattning i Gmail. Du får veta vad det gör, vad du behöver och hur du sätter det i drift utan att behöva passa det.
så fungerar automatiseringen
Här är hela arbetsflödet du kommer att sätta upp:
n8n Workflow Template: Telegram till Gmail – kalorisammanfattningar från matbilder
flowchart LR
subgraph sg0["Telegram Intake Flow"]
direction LR
n0@{ icon: "mdi:robot", form: "rounded", label: "Cuisine Analysis Agent", pos: "b", h: 48 }
n1@{ icon: "mdi:robot", form: "rounded", label: "Structured Result Parser", 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/telegram.svg' width='40' height='40' /></div><br/>Telegram Intake Trigger"]
n3@{ icon: "mdi:brain", form: "rounded", label: "OpenRouter Chat Engine", 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/code.svg' width='40' height='40' /></div><br/>Compose Email Body"]
n5@{ icon: "mdi:message-outline", form: "rounded", label: "Dispatch Email Notice", pos: "b", h: 48 }
n4 --> n5
n2 --> n0
n3 -.-> n0
n0 --> n4
n1 -.-> n0
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 n2 trigger
class n0,n1 ai
class n3 aiModel
class n4 code
classDef customIcon fill:none,stroke:none
class n2,n4 customIcon
varför detta spelar roll: matfoton blir inte automatiskt användbar data
Ett matfoto i en chatt är hjälpsamt, men det är ingen logg. Så fort du behöver totaler, konsekvens eller ens en enkel vy som ”vad åt du den här veckan?”, tvingas du till manuell tolkning. Någon måste uppskatta ingredienser, gissa portionsstorlekar och göra om det till något du kan följa upp. Och eftersom allt sker i chatten försvinner sammanhanget snabbt. Ett missat svar, en otydlig bild – och du är tillbaka i följdfrågor som stjäl fokus och saktar ner varje klient eller användare.
Det skenar snabbt. Här är var det fallerar i verkliga arbetsflöden.
- Portions- och ingrediensdetaljer är inkonsekventa, så sammanfattningar varierar beroende på vem som ”räknar” den dagen.
- Manuell kaloriuppskattning tar cirka 10 minuter per bild när du räknar in följdfrågor och dokumentation.
- Det finns inget tillförlitligt revisionsspår, vilket innebär tvister och ”vad baserade du det på?”-meddelanden senare.
- Även om du sparar bilderna kan du inte söka eller aggregera dem utan strukturerade fält som rättrubrik och totala kalorier.
det du bygger: Telegram-bild → kalorisammanfattning i Gmail
Det här arbetsflödet startar när någon skickar ett matfoto i Telegram. Bilden skickas vidare till en LLM med bildförmåga (via en OpenRouter-chattmodell) som identifierar troliga ingredienser, gissar grova gramvikter och uppskattar kalorier per ingrediens. Sedan tvingas resultatet in i en strikt JSON-struktur (så du inte får svamlig text när du behöver ett konsekvent underlag). Till sist skapar flödet en prydlig e-posttext och skickar resultatet till Gmail, så att du får en sökbar, tidsstämplad och lätt vidarebefordrad sammanfattning för varje incheckning. Vill du kan du bygga vidare med samma mönster för att logga till Sheets eller notifiera Slack, men kärnan är enkel: strukturerade nutritionsinsikter utan manuell loggning.
Arbetsflödet börjar med intag från Telegram. AI-agenten analyserar bilden och tar fram strukturerade fält som ingredienser och totala kalorier. Gmail tar sedan emot den slutliga sammanfattningen, som blir ditt revisionsspår och din ”single source of truth”.
det du bygger
| det som automatiseras | det du uppnår |
|---|---|
|
|
förväntade resultat
Säg att du hanterar 10 foto-incheckningar per dag. Manuellt, om varje tar cirka 10 minuter att tolka, reda ut och skriva ihop, blir det ungefär 100 minuter dagligen. Med det här flödet är ”jobbet” att skicka bilden i Telegram (cirka en minut) och sedan vänta på modellens svar och att mejlet landar (oftast ett par minuter). Du vinner tillbaka runt 90 minuter en vanlig dag, och dina sammanfattningar blir konsekventa även när det är mycket att göra.
innan du börjar
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
- Telegram för att ta emot matfoton i chatten
- Gmail för att leverera de strukturerade sammanfattningarna
- Inloggningsuppgifter till en LLM med bildförmåga (via OpenRouter-dashboard/API-nycklar)
Svårighetsgrad: Medel. Du kopplar konton, lägger in autentisering/credentials och miljövariabler och testar med ett riktigt Telegram-foto.
Vill du att någon bygger detta åt dig? Prata med en automationsspecialist (gratis konsultation i 15 minuter).
steg för steg
Ett Telegram-foto triggar körningen. När en användare skickar en bild (eller en bild-URL-payload) till din Telegram-bot fångar n8n upp meddelandet och förbereder det för analys.
Arbetsflödet normaliserar indata. Matfoton kan komma som URL:er, Base64 eller olika meddelandeformat beroende på kanal. Den här versionen är byggd kring Telegram-intag, men den är designad med ett ”normalisera först”-tänk så att du kan anpassa den senare.
AI-agenten analyserar fotot och returnerar strikt JSON. En modell med bildförmåga härleder ingredienser och ungefärliga mängder, uppskattar kalorier och levererar ett strukturerat resultat. Den strukturerade output-parsern tvingar igenom ett schema med exempelvis rättrubrik, ingredienser (namn/mängd/kalorier), totala kalorier och en kort nutritionsbedömning.
Gmail tar emot en tydlig sammanfattning. Ett compose-steg formaterar JSON till ett läsbart mejl, och sedan skickar Gmail det till den adress du väljer. Mejltråden blir din konsekventa logg, redo för granskning eller vidarebefordran.
Du kan enkelt justera output-fälten för att inkludera makron eller nya anteckningar utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera Telegram-triggern
Sätt upp den inkommande triggern så att arbetsflödet startar när en Telegram-användare skickar ett meddelande med en matbild.
- Lägg till och öppna Telegram Intake Trigger.
- Ställ in Updates på
message. - Ställ in Additional Fields → Download på
true. - Autentiseringsuppgifter krävs: Anslut era telegramApi-autentiseringsuppgifter.
{{$json.message.photo[0].file_id}} från det inkommande meddelandet.Steg 2: Anslut OpenRouter
Ange LLM-anslutningen som agenten använder för att analysera matbilden.
- Öppna OpenRouter Chat Engine.
- Ställ in Model på
openai/gpt-5-mini. - Autentiseringsuppgifter krävs: Anslut era openRouterApi-autentiseringsuppgifter.
Steg 3: Sätt upp Cuisine Analysis Agent
Konfigurera agentprompten och utdataparsningen så att den returnerar strukturerad näringsanalys på japanska.
- Öppna Cuisine Analysis Agent.
- Ställ in Prompt Type på
define. - Ställ in Text till följande prompt och behåll uttrycket för bildreferensen:
=あなたは料理と栄養の専門家です。提供された料理の画像を分析して、以下の情報を日本語で提供してください:
1. 料理名
2. 推定される主な食材とその分量(グラム)
3. 各食材のカロリー
4. 合計推定カロリー
5. 栄養バランスの簡単な評価
画像URL: {{ $json.message.photo[0].file_id }} - Säkerställ att Has Output Parser är aktiverat och kopplat till Structured Result Parser.
- Öppna Structured Result Parser och ställ in Schema Type på
manual. - Klistra in schemat i Input Schema exakt som det anges i noden:
{ "type": "object", "properties": { "dishName": { "type": "string", "description": "料理名" }, "ingredients": { "type": "array", "description": "食材リスト", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "食材名" }, "amount": { "type": "number", "description": "分量(グラム)" }, "calories": { "type": "number", "description": "カロリー(kcal)" } } } }, "totalCalories": { "type": "number", "description": "合計カロリー(kcal)" }, "nutritionEvaluation": { "type": "string", "description": "栄養バランスの評価" } }, "required": ["dishName", "ingredients", "totalCalories", "nutritionEvaluation"] }
Steg 4: Konfigurera noder för e-postutskick
Bygg HTML-mejlet och skicka det via Gmail.
- Öppna Compose Email Body och behåll JavaScript-koden som formaterar HTML-mejlet och ämnesraden från
$input.first().json.output. - Öppna Dispatch Email Notice och ställ in Send To på
[YOUR_EMAIL]. - Ställ in Message på
={{ $json.htmlBody }}. - Ställ in Subject på
={{ $json.subject }}. - Autentiseringsuppgifter krävs: Anslut era gmailOAuth2-autentiseringsuppgifter.
Steg 5: Testa och aktivera ert arbetsflöde
Kör ett manuellt test från Telegram, verifiera e-postutdata och aktivera sedan arbetsflödet.
- Klicka på Test Workflow och skicka ett fotomeddelande till er Telegram-bot.
- Bekräfta att Cuisine Analysis Agent returnerar strukturerad JSON och att Compose Email Body ger
subjectochhtmlBody. - Verifiera att Dispatch Email Notice skickar ett mejl med den formaterade näringsanalysen.
- Klicka på Activate för att aktivera körningar i produktion.
tips för felsökning
- Telegram-botens autentisering kan fallera om bot-token ändras eller om boten blockeras. Om meddelanden slutar trigga körningar, kontrollera anslutningen i Telegram Trigger-noden och verifiera att boten fortfarande tar emot uppdateringar.
- Om du använder Wait-logik eller om bildmodellen är långsam varierar processtiderna. Öka väntetiden eller lägg till en retry-väg om nedströmsnoder fallerar på tomma eller ofullständiga svar.
- Gmail kan tyst vägra att skicka om scopes är fel eller om kontot har säkerhetsbegränsningar. Kontrollera OAuth-scopes/behörigheter i Gmail-noden igen och bekräfta att ”From”-adressen får skicka.
snabba svar
Cirka 30 minuter om din Telegram-bot och Gmail-åtkomst redan är klara.
Nej. Du kopplar konton, lägger till dina LLM-inloggningsuppgifter och testar med ett riktigt foto.
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 med OpenRouter/LLM-API-kostnader, som vanligtvis är några cent per bild beroende på modell.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen hosting på en VPS. För egen hosting är Hostinger VPS prisvärd och hanterar n8n bra. Egen hosting ger obegränsade körningar men kräver grundläggande serverhantering.
Ja, och det är hela poängen. Du kan utöka schemat i Structured Result Parser till att inkludera fält för protein/fett/kolhydrater, eller lägga till mikronäringsämnen om din modellprompt stödjer det. Om du hellre vill lagra resultat kan du skicka den tolkade JSON:en till Google Sheets efter output-parsern. Du kan också byta ut Gmail-noden ”Dispatch Email Notice” mot Slack eller ett HTTP-svar när du vill ha omedelbar återkoppling i appen i stället för e-post.
Oftast beror det på en ogiltig bot-token eller att boten inte längre tar emot uppdateringar i den chatten. Återanslut Telegram Trigger-credentials i n8n, bekräfta att boten fortfarande är medlem i chatten och skicka sedan ett nytt testfoto för att skapa en ny trigger-händelse.
På en typisk n8n Cloud-plan klarar det enkelt dagliga incheckningar för ett mindre program, men den praktiska gränsen styrs av dina LLM-rate limits och hur snabbt modellen returnerar bildresultat. Om du kör egen hosting begränsas du främst av serverresurser och den externa modellleverantören, inte av n8n i sig.
Ofta, ja, eftersom den här typen av automation gynnas av striktare kontroll över parsing och felhantering. n8n gör det enklare att tvinga fram ett JSON-schema, göra retries vid tillfälliga modellfel och formatera utdata exakt som du vill innan det når Gmail. Egen hosting är också en stor fördel om du hanterar många incheckningar och inte vill att prissättning per uppgift ska dra iväg. Samtidigt kan Zapier eller Make gå snabbare för en enkel prototyp ”foto in, mejl ut” med färre rörliga delar. Prata med en automationsspecialist om du vill ha hjälp att välja rätt upplägg.
När detta väl rullar slutar matfoto-incheckningar vara ett jobb med manuell tolkning och blir i stället korrekta, sökbara underlag. Ärligt talat är det skillnaden mellan ”vi följer upp nutrition” och ”vi kan skala nutritionsuppföljning”.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.