Matloggning misslyckas oftast av en tråkig anledning. Du äter, du har fullt upp, du glömmer, och på kvällen gissar du vad ”den där nudelgrejen” ens var.
LINE-kalorispårning med automatisering hjälper när det egentligen handlar om konsekvens. Det är en räddare i nöden för upptagna yrkespersoner som lever i chattappar, för personliga tränare som behöver mer strukturerade klientloggar, och för småföretagare som inte vill underhålla ännu en app. Du skickar en text eller en bild, och loggen uppdateras av sig själv.
Det här arbetsflödet kopplar LINE till Google Sheets, använder AI för att uppskatta kalorier från måltidsfoton och skickar en snabb bekräftelse tillbaka. Nedan ser du exakt vad det gör, vad du behöver och vad du ska justera för att det ska matcha hur du faktiskt äter.
Så fungerar automatiseringen
Se hur det här löser problemet:
n8n Workflow Template: LINE + Google Sheets: smidig kalorispårning
flowchart LR
subgraph sg0["AI Agent Flow"]
direction LR
n0@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Switch", pos: "b", h: 48 }
n1@{ icon: "mdi:robot", form: "rounded", label: "AI Agent", pos: "b", h: 48 }
n2@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model", pos: "b", h: 48 }
n3@{ icon: "mdi:robot", form: "rounded", label: "Analyze image", pos: "b", h: 48 }
n4@{ icon: "mdi:swap-vertical", form: "rounded", label: "Edit Fields1", pos: "b", h: 48 }
n5@{ icon: "mdi:memory", form: "rounded", label: "Simple Memory", 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/code.svg' width='40' height='40' /></div><br/>Code"]
n7@{ icon: "mdi:database", form: "rounded", label: "Append row in sheet", pos: "b", h: 48 }
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/code.svg' width='40' height='40' /></div><br/>Code1"]
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/webhook.dark.svg' width='40' height='40' /></div><br/>LINE webhook"]
n10@{ icon: "mdi:swap-horizontal", form: "rounded", label: "user verification", 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/httprequest.dark.svg' width='40' height='40' /></div><br/>images download"]
n12@{ icon: "mdi:swap-vertical", form: "rounded", label: "only message", 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/httprequest.dark.svg' width='40' height='40' /></div><br/>send LINE"]
n6 --> n7
n8 --> n4
n0 --> n12
n0 --> n11
n1 --> n13
n4 --> n13
n9 --> n10
n12 --> n1
n3 --> n6
n3 --> n8
n5 -.-> n1
n11 --> n3
n2 -.-> n1
n10 --> 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 n1,n3 ai
class n2 aiModel
class n5 ai
class n0,n10 decision
class n7 database
class n9,n11,n13 api
class n6,n8 code
classDef customIcon fill:none,stroke:none
class n6,n8,n9,n11,n13 customIcon
Utmaningen: konsekvent kalorispårning utan krångel
Manuell kalorispårning ser enkel ut tills du försöker göra det varje dag. Du måste komma ihåg att logga, öppna en app, söka efter rätt livsmedel, välja portionsstorlek och sedan hoppas att du inte råkade välja ”stor” av misstag. Om du spårar för viktnedgång, prestation eller medicinska skäl spelar de där små missarna roll, eftersom de i det tysta förvränger veckobilden. Och om du hjälper någon annan att spåra (klienter, patienter, familj) slutar det med att du jagar detaljer som borde ha fångats i stunden de åt. Friktionen är helt ärligt den verkliga fienden.
Det blir mycket snabbt. Här är var det faller isär i verkliga livet.
- Du tar ändå bilder på maten, men de blir liggande i kamerarullen och blir aldrig en användbar logg.
- Att klistra in måltider i kalkylark är segt, så du ”tar igen det senare” och tappar precision.
- När du väl loggar blir posterna inkonsekventa (olika namn, saknade kalorier, slumpmässiga format).
- De flesta appar passar inte ditt arbetssätt, så du överger dem efter en vecka eller två.
Lösningen: LINE-meddelanden som automatiskt loggar kalorier i Sheets
Det här arbetsflödet gör LINE till din enklaste matdagbok. Du skickar till din LINE-bot antingen ett textmeddelande (”kycklingsallad, dressing vid sidan”) eller en bild på måltiden. Om det är text kan AI-agenten svara samtalsmässigt direkt i LINE, vilket är smidigt när du vill ha snabb vägledning eller en lätt notering. Om det är en bild laddar automatiseringen ner fotot via LINE:s API, kontrollerar om det faktiskt innehåller mat och använder sedan OpenAI Vision för att identifiera rätten och uppskatta kalorier. Arbetsflödet formaterar resultatet till strukturerad JSON, lägger till en ny rad i Google Sheets och svarar i LINE med en bekräftelse så att du vet att det sparades korrekt.
Arbetsflödet startar med en LINE-webhook och routar sedan baserat på meddelandetyp (text vs. bild). Bilder går genom ett Vision-analys- och tolkningssteg och sedan in i Google Sheets. Till sist formateras svaret och skickas tillbaka till LINE via en HTTP-förfrågan.
Vad som förändras: före vs. efter
| Det här tar bort | Effekten du märker |
|---|---|
|
|
Effekt i verkligheten
Säg att du loggar 3 måltider per dag. Manuellt kan även en ”snabb” inmatning ta runt 10 minuter (öppna app, söka mat, välja portion, fixa namn), så du lägger ungefär 30 minuter dagligen. Med det här arbetsflödet skickar du ett meddelande till din LINE-bot på cirka en minut per måltid och låter AI-svaret och uppdateringen i Sheet ske i bakgrunden. Det är runt 25 minuter tillbaka varje dag, vilket blir ett par timmar på en vecka.
Krav
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för egen drift om du föredrar det (Hostinger fungerar bra)
- LINE Messaging API för att ta emot meddelanden via din bot.
- Google Sheets för att lagra din strukturerade måltidslogg.
- OpenAI API-nyckel (hämta den i OpenAI-dashboarden).
Nivå: Medel. Du klistrar in tokens, kopplar konton och byter ut några platshållar-ID:n noggrant.
Behöver du hjälp att implementera detta? Prata med en automationsexpert (gratis 15-minuters konsultation).
Flödet i arbetsflödet
LINE-webhook tar emot meddelandet. En webhook från LINE Messaging API (i n8n) fångar varje inkommande event, och arbetsflödet kontrollerar sedan avsändaren så att bara godkända användare kan logga till ditt sheet.
Meddelandetypen routas. En switch skickar text i en gren och bilder i en annan, så att du inte råkar försöka ”analysera” en textnotering som om den vore ett foto.
AI bearbetar innehållet. Text kan gå till den samtalsbaserade AI-agenten (med korttidsminne för kontext), medan bilder laddas ner från LINE:s servrar och inspekteras med OpenAI Vision för att identifiera rätter och uppskatta kalorier – men bara när mat finns i bilden.
Resultat loggas och bekräftas. Kaloriutdata tolkas till en strukturerad form, läggs till i Google Sheets, och sedan skickas ett formaterat svar tillbaka till LINE via en HTTP-förfrågan.
Du kan enkelt modifiera sheet-kolumnerna för att inkludera protein eller måltidstider utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera webhook-triggern
Konfigurera webhooken som tar emot LINE-händelser och styr åtkomsten innan bearbetning.
- Lägg till och öppna Incoming LINE Hook, ställ sedan in HTTP Method till
POSToch Path till0980b700-284e-4e52-a33e-71e087eea37f. - Konfigurera er LINE-webhook-URL i LINE Developer Console så att den pekar på produktions-URL:en för Incoming LINE Hook.
- Öppna Validate User Access och ställ in villkoret Left Value till
{{ $json.body.events[0].source.userId }}och Right Value till ert auktoriserade LINE-användar-id i stället för[YOUR_ID]. - Koppla Incoming LINE Hook till Validate User Access och säkerställ att den routar vidare till Route by Message Type.
⚠️ Vanlig fallgrop: Om LINE-webhook-URL:en inte uppdateras efter att ni aktiverar workflowet kommer meddelanden inte att nå Incoming LINE Hook.
Steg 2: Routa meddelanden och extrahera text eller bilder
Dela upp flödet baserat på meddelandetyp och extrahera rätt payload för AI-bearbetning.
- I Route by Message Type, behåll de två reglerna som jämför Left Value
{{ $json.body.events[0].message.type }}medtextochimage. - Koppla utgången text till Extract Text Message och ställ in tilldelningsvärdet till
{{ $json.body.events[0].message.text }}. - Koppla utgången image till Download Image Asset och ställ in URL till
=https://api-data.line.me/v2/bot/message/{{ $json.body.events[0].message.id }}/content. - I Download Image Asset, lägg till headern Authorization med
Bearer [CONFIGURE_YOUR_TOKEN]och låt Send Headers vara aktiverat.
Tips: LINE-token som används i Download Image Asset bör matcha kanalen som används för webhooken i Incoming LINE Hook.
Steg 3: Sätt upp AI-bearbetning och minne
Konfigurera AI-noderna för textsvar och kaloriuppskattning från bilder, inklusive minne och modellkopplingar.
- Öppna Conversational AI Handler och ställ in Text till
{{ $json.text }}, med systemmeddelandet satt tillYou are an AI assistant. Your job is to respond to user messages.. - Säkerställ att OpenAI Chat Engine är ansluten som språkmodell för Conversational AI Handler och välj modellen
gpt-4.1-mini. Credential Required: Anslut era openAiApi-credentials. - Koppla Session Memory Buffer till ingången ai_memory på Conversational AI Handler och ställ in Session Key till
{{ $('Incoming LINE Hook').item.json.body.events[0].source.userId }}. - Öppna Inspect Image Content och verifiera att Resource är
image, Input Type ärbase64, Operation äranalyze, och att prompten matchar kravet på kaloridata som endast JSON. Credential Required: Anslut era openAiApi-credentials.
⚠️ Vanlig fallgrop: Session Memory Buffer är en subnod—lägg till credentials i OpenAI Chat Engine och Inspect Image Content, inte i minnesnoden.
Steg 4: Tolka AI-utdata och lagra i Google Sheets
Tolka AI-utdata från bilder till strukturerade fält och lägg till dem i ett kalkylark.
- Säkerställ att Download Image Asset är kopplad till Inspect Image Content.
- Bekräfta att Inspect Image Content skickar utdata till både Parse Calorie Output och Format LINE Message parallellt.
- Öppna Append Sheet Row och ställ in Operation till
append, Document ID till ert kalkylark (ersätt[YOUR_ID]), och Sheet Name till målfliken (ersätt[YOUR_ID]). - Mappa kolumner i Append Sheet Row: date till
{{ $now.format('yyyy-MM-dd') }}, menu till{{ $json.dishName }}, och cal till{{ $json.calories }}. Credential Required: Anslut era googleSheetsOAuth2Api-credentials.
Tips: Om era rubriker i arket skiljer sig, uppdatera fältnamnen i schema i Append Sheet Row så att de matchar kolumn-id:n.
Steg 5: Formatera och skicka LINE-svar
Bygg LINE-svarsmeddelandet och skicka tillbaka det till användaren.
- I Format LINE Message, behåll koden som bygger ett sammanfattningsmeddelande och säkerställ att den outputtar
message. - Öppna Map Reply Text och mappa output till
{{ $json.message }}. - I Post LINE Reply, ställ in URL till
https://api.line.me/v2/bot/message/replyoch Method tillPOST. - Ställ in JSON Body till
{ "replyToken": "{{ $('Incoming LINE Hook').item.json.body.events[0].replyToken }}", "messages": [ { "type": "text", "text":{{ JSON.stringify($json.output) }} } ] }. - Lägg till headers i Post LINE Reply: Authorization
Bearer [CONFIGURE_YOUR_TOKEN]och Content-Typeapplication/json.
Körningsnotering: Inspect Image Content skickar utdata till både Parse Calorie Output och Format LINE Message parallellt, så loggning i arket och svarsformatering sker samtidigt.
Steg 6: Testa och aktivera ert workflow
Verifiera beteendet end-to-end med både text- och bildindata, och aktivera sedan workflowet.
- Klicka på Execute Workflow och skicka ett LINE-textmeddelande för att trigga Incoming LINE Hook; bekräfta att Conversational AI Handler returnerar ett svar och att Post LINE Reply postar det tillbaka.
- Skicka en LINE-bild på en maträtt; bekräfta att Download Image Asset lyckas, att Inspect Image Content returnerar JSON, att Parse Calorie Output tolkar den, och att Append Sheet Row skapar en ny rad.
- Verifiera att svarsmeddelandet från Post LINE Reply innehåller den formaterade sammanfattningen från Format LINE Message.
- Slå på workflowet Active för att aktivera hantering av produktionswebhook.
Tänk på
- Inloggningsuppgifter för LINE Messaging API kan löpa ut eller ha fel behörigheter. Om det skapar fel, kontrollera först din channel access token och webhook-inställningarna i LINE Developers.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om efterföljande noder fallerar på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in er tonalitet tidigt, annars kommer du redigera utdata för alltid.
Vanliga frågor
Cirka en timme om din LINE-kanal och ditt Google Sheet är redo.
Ja, men du vill ha någon som är bekväm med att kopiera tokens och redigera ID:n. Ingen kodning krävs för standardupplägget.
Ja. n8n har ett gratis alternativ för egen drift 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 in OpenAI API-användning, vilket oftast är några cent per bild beroende på modell och trafik.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen drift på en VPS. För egen drift är Hostinger VPS prisvärd och hanterar n8n bra. Egen drift ger dig obegränsade körningar men kräver grundläggande serverhantering.
Du kan anpassa kolumnerna i Google Sheets i steget ”Append Sheet Row” och justera utdataformateringen i ”Parse Calorie Output” och ”Format LINE Message”. Vanliga justeringar är att lägga till måltidstid, lägga till en tillförlitlighetsnotis och spara det råa rättnamnet bredvid en strukturerad etikett. Om du vill att boten ska bete sig mer som en coach, ändra instruktionerna som AI-agenten använder så att svaren matchar din ton och dina regler.
Oftast beror det på en felaktig channel access token eller att webhook-URL:en inte matchar i din LINE Developers-konsol. Generera en ny token, uppdatera den i HTTP Request-noderna som skickar svar och laddar ner bilder, och testa igen med ett nytt meddelande. Kontrollera också logiken i ”Validate User Access”, eftersom ett användar-ID som inte matchar kan se ut som en ”trasig” anslutning även när API:et fungerar. Om du skickar bilder, bekräfta att din bot har behörighet att hämta innehållet från LINE:s content-endpoint.
På n8n Cloud beror kapaciteten främst på din plans månatliga körningar, och Starter-planen räcker för personligt bruk. Om du kör egen drift finns ingen hård gräns; din server och OpenAI:s rate limits blir det praktiska taket. I praktiken kan de flesta bearbeta måltider hela dagen utan märkbara fördröjningar, om de inte kör detta för många användare samtidigt.
Ofta, ja. Det här arbetsflödet bygger på routningslogik (text vs. bild), anrop till externa API:er och hantering av strukturerad tolkning, vilket n8n klarar utan att det blir en hög med betalda tasks. Du får också egen drift, vilket är viktigt om du vill ha förutsägbara kostnader när användningen växer. Zapier eller Make kan vara enklare för ett grundflöde ”meddelande → sheet-rad”, men bildanalys och villkorshantering blir vanligtvis klumpigt. Om du är osäker, prata med en automationsexpert så hjälper vi dig att välja den renaste lösningen.
När detta väl är live blir loggning en vana med ett enda meddelande i stället för ett dagligt måste. Arbetsflödet tar hand om de repetitiva delarna så att ditt Sheet förblir korrekt utan att du behöver tänka på det.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.