Ditt team ber om ”den där PDF:en” i chatten, och du slutar med att gräva igenom Drive-mappar, gamla mejl och filnamn du halvt minns. Det är inte svårt. Det är bara konstant.
Marknadschefer som jagar senaste brand kitet märker det först. Sedan dras även driftkoordinatorer och kundnära ansvariga för kundkonton in. Den här automatiseringen för LINE file links förvandlar de här meddelandena till rätt Google Drive-URL, snabbt, utan att du behöver agera mänsklig sökmotor.
Nedan ser du exakt hur flödet beter sig, vilka resultat du kan förvänta dig och vad du behöver för att koppla det till din egen LINE BOT och din Google Sheets-katalog.
Så fungerar automatiseringen
Hela n8n-flödet, från trigger till slutligt resultat:
n8n Workflow Template: LINE + Google Sheets: direkta Google Drive-fillänkar
flowchart LR
subgraph sg0["AI Agent Flow"]
direction LR
n0["<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"]
n1@{ icon: "mdi:database", form: "rounded", label: "Google Sheets Lookup", pos: "b", h: 48 }
n2@{ icon: "mdi:swap-horizontal", form: "rounded", label: "IF File Exists", pos: "b", h: 48 }
n3@{ icon: "mdi:robot", form: "rounded", label: "AI Agent", pos: "b", h: 48 }
n4@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model", pos: "b", h: 48 }
n5@{ icon: "mdi:swap-vertical", form: "rounded", label: "Edit Fields", 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/httprequest.dark.svg' width='40' height='40' /></div><br/>HTTP Request - Found"]
n0 --> n5
n3 --> n1
n5 --> n3
n2 --> n6
n4 -.-> n3
n1 --> n2
end
subgraph sg1["Flow 2"]
direction LR
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/httprequest.dark.svg' width='40' height='40' /></div><br/>HTTP Request - Not Found"]
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 ai
class n4 aiModel
class n2 decision
class n1 database
class n0,n6,n7 api
class n7 disabled
classDef customIcon fill:none,stroke:none
class n0,n6,n7 customIcon
Problemet: att hitta rätt Drive-fil i chatten är en tidstjuv
En enkel fråga som ”Kan du skicka file 1.pdf?” låter harmlös tills du inser att den sällan innehåller hela namnet, rätt version eller rätt mapp. Så du söker i Google Drive, öppnar några filer för att bekräfta, och klistrar sedan in en länk tillbaka i LINE. Gör du det några gånger om dagen har du tappat en timme utan att märka det. Än värre: du börjar tveka innan du svarar eftersom du inte vill skicka fel fil, vilket bromsar allt och skapar följdmeddelanden som är ännu svårare att hålla ordning på.
Det växer snabbt. Här är var det oftast fallerar.
- Folk frågar med naturligt språk, men din filstruktur kräver exakta namn.
- ”Senaste versionen” finns i någons huvud, inte i länken du delade förra månaden.
- Att klistra in URL:er i stress leder till fel behörigheter och trasiga länkar.
- En person blir standardpersonen som ”hittar filer”, och deras dag hackas sönder av små avbrott.
Lösningen: LINE frågar, AI extraherar filnamnet, Sheets returnerar Drive-länken
Det här flödet ger din LINE BOT en pålitlig ”filuppslagning”-förmåga med n8n, OpenAI och ett Google Sheet som filkatalog. En användare skickar ett meddelande till din bot (till exempel ”Hitta file 1.pdf åt mig”). Flödet fångar texten och en AI-agent läser meddelandet och plockar ut det mest sannolika filnamnet eller filreferensen. Därefter söker n8n i ett Google Sheet där du sparar filnamn (eller alias) tillsammans med deras Google Drive-URL:er. Om den hittar en träff svarar flödet direkt via LINE Messaging API med rätt länk. Om den inte hittar någon, skickar den ett artigt ”hittades inte”-svar så att dialogen ändå går vidare.
Flödet startar med en inkommande LINE-webhook. Därifrån mappar den meddelandetexten, använder GPT för att extrahera filnamnet och gör sedan en uppslagning i Google Sheets. Slutligen väljer den rätt svarsväg: skicka Drive-länken eller skicka ett meddelande om att ingen träff hittades.
Vad du får: automatisering vs. resultat
| Vad det här flödet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut i praktiken
Säg att teamet får 20 ”skicka den där filen”-förfrågningar per vecka i LINE. Manuellt tar det kanske 10 minuter per gång att hitta rätt objekt i Drive, kontrollera det och kopiera länken, så du lägger cirka 3 timmar i veckan på ren hämtning. Med det här flödet blir ”jobbet” att skicka meddelandet du ändå hade skickat, och sedan vänta några sekunder på svaret. Du hanterar fortfarande riktiga specialfall, men rutinärendena försvinner i princip.
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)
- LINE Messaging API för att ta emot meddelanden och svara.
- Google Sheets för att lagra filnamn och Drive-URL:er.
- OpenAI API-nyckel (hämta den i din OpenAI-dashboard).
Nivå: Medel. Du klistrar in inloggningsuppgifter, ändrar ett Sheet-ID och sätter en webhook-URL i LINE:s developer-konsol.
Vill du inte sätta upp det här själv? Prata med en automatiseringsexpert (gratis 15-minuters konsultation).
Så fungerar det
Ett LINE-meddelande träffar din webhook. Flödet startar när din LINE BOT tar emot ett användarmeddelande och vidarebefordrar det till n8n:s endpoint ”Incoming LINE Hook”.
Meddelandetexten struktureras och mappas. n8n plockar ut relevant text ur webhook-payloaden (så att AI:n ser frågan, inte en hög metadata).
AI extraherar vad användaren faktiskt vill ha. Agenten för filnamnsextrahering (som kör på en OpenAI-chatmodell) tolkar ”Hitta onboarding-PDF:en” eller ”file 1.pdf” och gör om det till ett sökbart filnamn eller nyckelord.
Google Sheets fungerar som en katalog. n8n söker i kalkylarket efter en matchande rad, kontrollerar om filen finns och svarar sedan via LINE Messaging API med Google Drive-URL:en. Ingen match? Då skickar den i stället ett ”kunde inte hitta”-svar.
Du kan enkelt justera dina matchningsregler (exakt namn vs. alias) för att hantera mer ”mänskliga” förfrågningar utifrån dina behov. Se hela implementationsguiden nedan för alternativ för anpassning.
Steg-för-steg-guide för implementering
Steg 1: konfigurera webhook-triggern
Konfigurera den inkommande LINE-webhooken som startar arbetsflödet när en användare skickar ett meddelande.
- Lägg till en Incoming LINE Hook-nod och ställ in HTTP Method på
POST. - Ställ in Path till
line-webhook. - Kopiera webhook-URL:en från Incoming LINE Hook efter att ni har sparat och registrera den i er LINE Messaging API-kanal som webhook-endpoint.
- Koppla Incoming LINE Hook till Map Message Text för att följa exekveringsflödet.
Steg 2: anslut Google Sheets
Konfigurera uppslagningen i ert kalkylblad som matchar extraherade filnamn mot fil-URL:er.
- Lägg till en Spreadsheet File Search-nod och ställ in Operation på
lookup. - Ställ in Range till
=A:B. - Ställ in Lookup Column till
Filename. - Ställ in Lookup Value till
{{ $json.output }}. - Ställ in Authentication till
oAuth2och välj mål-kalkylbladet i Sheet ID. - Credential Required: Anslut era
googleSheetsOAuth2Api-inloggningsuppgifter.
Steg 3: konfigurera AI-extrahering av filnamn
Mappa användarens meddelande till AI-agenten och konfigurera språkmodellen som extraherar filnamn.
- I Map Message Text, lägg till en tilldelning med namnet textinput med värdet
{{ $json.body.events[0].message.text }}. - I Filename Extraction Agent, ställ in Text till
{{ $json.textinput }}. - Bekräfta att Agent är
conversationalAgentoch att Prompt Type ärdefine. - Låt Has Output Parser vara aktiverat för att endast returnera det extraherade filnamnet.
- Säkerställ att OpenAI Conversation Model är ansluten som språkmodell för Filename Extraction Agent.
- Credential Required: Anslut era
openAiApi-inloggningsuppgifter i OpenAI Conversation Model.
Steg 4: konfigurera routning och svarsåtgärder
Routa baserat på om en fil-URL finns och skicka sedan rätt svar till LINE.
- I Check File Presence, ställ in villkoret så att det kontrollerar
{{ $json['File URL'] }}med OperationisEmpty. - Koppla false-grenen från Check File Presence till Reply with File Link.
- I Reply with File Link, 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['File URL'] }}" } ]}. - Credential Required: Anslut era
httpHeaderAuth-inloggningsuppgifter i Reply with File Link. - Valfritt: aktivera Reply No File Message (för närvarande inaktiverad) och ställ in dess JSON Body-text till ett vänligt meddelande när ingen fil hittas. Koppla den sedan till true-grenen från Check File Presence.
- Credential Required: Anslut era
httpHeaderAuth-inloggningsuppgifter i Reply No File Message.
Steg 5: testa och aktivera ert arbetsflöde
Verifiera flödet från början till slut och aktivera det sedan för användning i produktion.
- Klicka på Execute Workflow och skicka ett testmeddelande till er LINE-bot som innehåller ett filnamn som finns i ert ark.
- Bekräfta att Spreadsheet File Search returnerar en rad med
File URLoch att Reply with File Link skickar tillbaka URL:en till LINE. - Testa ett meddelande utan ett giltigt filnamn för att bekräfta att Check File Presence routar korrekt och att Reply No File Message (om aktiverad) svarar.
- När resultatet ser korrekt ut, slå på arbetsflödet till Active så att webhooken tar emot produktionstrafik.
Vanliga fallgropar
- LINE Messaging API-uppgifter kan gå ut eller få fel scope. Om det slutar fungera, kontrollera först kanalinställningarna i LINE Developer Console och din sparade access token i n8n.
- Om du justerar flödet och lägger till Wait-noder (eller om OpenAI-svaret är långsamt) kan processtiden variera. Öka väntetiden om noder längre fram fallerar på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in era namnkonventioner och exempel tidigt, annars kommer du att sitta och finjustera matchningar i all evighet.
Vanliga frågor
Cirka 30 minuter om din LINE BOT och ditt Google Sheet är redo.
Nej. Du kopplar konton, klistrar in några tokens och uppdaterar Google Sheet-ID:t.
Ja. n8n har ett gratis alternativ för egen hosting och en gratis provperiod på n8n Cloud. Cloud-planer startar på 20 USD/månad för högre volym. Du behöver också räkna med OpenAI API-kostnader, som vanligtvis ligger på några cent per batch av förfrågningar för lättviktig extrahering.
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 klarar n8n bra. Egen hosting ger obegränsade körningar men kräver grundläggande serverhantering.
Ja, och det bör du sannolikt göra. En enkel väg är att lägga till alias-kolumner i Google Sheets (som ”brand kit”, ”media kit”, ”deck”) och justera Sheets-uppslagningen så att den söker i de fälten också. Du kan även justera prompten för agenten som extraherar filnamn så att den returnerar ett normaliserat nyckelord, inte bara ett bokstavligt filnamn. Vanliga anpassningar är versionslåsning (”endast senaste”), avdelningsspecifika mappar och ett ”topp 3 matchningar”-svar när frågan är vag.
Oftast beror det på en ogiltig eller utgången Channel Access Token som är sparad i n8n, eller att webhook-URL:en i LINE Developer Console inte matchar din aktiva n8n-webhook. Kontrollera också att din bot har rätt att svara och att du använder rätt reply token från payloaden för inkommande meddelande. Om det funkar i testläge men misslyckas senare kan det vara en tokenrotation eller en ändrad kanalinställning.
Väldigt många.
Ofta, ja, eftersom det här flödet behöver förgrening (hittad vs. inte hittad), ett AI-steg för extrahering och en ren webhook-till-HTTP-svarsloop, vilket n8n hanterar utan att kännas begränsat. Zapier eller Make kan fungera, men flerstegslogik och högre volymer blir ofta dyrt och svårare att felsöka. n8n ger dig också möjlighet till egen hosting när du vill ha mer kontroll. Om du bara gör ett enkelt tvåstegsflöde ”meddelande in, meddelande ut” kan andra verktyg vara snabbare att starta med. Prata med en automatiseringsexpert om du vill ha en snabb rekommendation baserat på din volym och ditt team.
Sätt upp det här en gång, så slutar avbrotten med ”kan du skicka den där filen?” att vara ditt problem. Flödet sköter uppslagningen, och teamet får rätt länk i LINE utan fram och tillbaka.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.