Någon släpper en 30-sidig PDF i din inkorg och ber om ”viktigaste punkterna innan dagens slut”. Du skummar, missar detaljer, och sedan börjar följdfrågorna.
Den här typen av workflow för Gemini e-postsammanfattningar träffar marknadschefer och byråledare hela tiden, och även grundare känner av det när de är standardpersonen för ”kan du granska det här?”. Du gör uppladdade PDF:er och briefs till en felfri, lättläst sammanfattning som landar tillbaka i Gmail, plus en länk där folk kan ställa frågor senare.
Nedan ser du exakt vad automatiseringen gör, vad du behöver för att köra den och hur delarna hänger ihop så att du kan lita på resultatet.
Så här fungerar automatiseringen
Här är hela workflowet du kommer att sätta upp:
n8n Workflow Template: Gmail + Google Gemini: dokumentsammanfattningar via mejl
flowchart LR
subgraph sg0["On form submission4 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/form.svg' width='40' height='40' /></div><br/>On form submission4"]
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Items1", pos: "b", h: 48 }
n2@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If2", pos: "b", h: 48 }
n3@{ icon: "mdi:cog", form: "rounded", label: "Aggregate1", pos: "b", h: 48 }
n4@{ icon: "mdi:brain", form: "rounded", label: "Google Gemini Chat Model5", 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/code.svg' width='40' height='40' /></div><br/>split the binary item"]
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/>Parsing the document"]
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/>Check the parsing status"]
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Provide the markdown"]
n9@{ icon: "mdi:brain", form: "rounded", label: "Google Gemini Chat Model6", pos: "b", h: 48 }
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/markdown.dark.svg' width='40' height='40' /></div><br/>Markdown"]
n11@{ icon: "mdi:message-outline", form: "rounded", label: "Gmail", pos: "b", h: 48 }
n12["<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"]
n13@{ icon: "mdi:cog", form: "rounded", label: "Convert to File", pos: "b", h: 48 }
n14@{ icon: "mdi:robot", form: "rounded", label: "AI Agent", pos: "b", h: 48 }
n15@{ icon: "mdi:brain", form: "rounded", label: "Google Gemini Chat Model", pos: "b", h: 48 }
n16@{ icon: "mdi:robot", form: "rounded", label: "Information Extractor", pos: "b", h: 48 }
n17@{ icon: "mdi:brain", form: "rounded", label: "Google Gemini Chat Model1", pos: "b", h: 48 }
n18@{ icon: "mdi:cog", form: "rounded", label: "Convert to File4", pos: "b", h: 48 }
n19@{ icon: "mdi:cube-outline", form: "rounded", label: "Pinecone Vector Store", pos: "b", h: 48 }
n20@{ icon: "mdi:vector-polygon", form: "rounded", label: "Embeddings Mistral Cloud", pos: "b", h: 48 }
n21@{ icon: "mdi:robot", form: "rounded", label: "Default Data Loader", pos: "b", h: 48 }
n22@{ icon: "mdi:robot", form: "rounded", label: "Recursive Character Text Spl..", pos: "b", h: 48 }
n31@{ icon: "mdi:robot", form: "rounded", label: "Translator Agent", pos: "b", h: 48 }
n32@{ icon: "mdi:robot", form: "rounded", label: "Analyzer Agent", pos: "b", h: 48 }
n2 --> n8
n2 --> n7
n12 --> n13
n10 --> n12
n3 --> n31
n32 --> n10
n32 --> n14
n32 --> n16
n32 --> n18
n13 --> n11
n18 --> n19
n1 --> n3
n1 --> n6
n31 --> n32
n31 --> n18
n21 -.-> n19
n0 --> n5
n6 --> n7
n8 --> n1
n5 --> n1
n7 --> n2
n20 -.-> n19
n15 -.-> n14
n17 -.-> n16
n4 -.-> n31
n9 -.-> n32
n22 -.-> n21
end
subgraph sg1["When chat message received Flow"]
direction LR
n23@{ icon: "mdi:play-circle", form: "rounded", label: "When chat message received", pos: "b", h: 48 }
n24@{ icon: "mdi:robot", form: "rounded", label: "Question and Answer Chain", pos: "b", h: 48 }
n25@{ icon: "mdi:brain", form: "rounded", label: "Google Gemini Chat Model2", pos: "b", h: 48 }
n26@{ icon: "mdi:cube-outline", form: "rounded", label: "Vector Store Retriever", pos: "b", h: 48 }
n27@{ icon: "mdi:cube-outline", form: "rounded", label: "Pinecone Vector Store1", pos: "b", h: 48 }
n28@{ icon: "mdi:vector-polygon", form: "rounded", label: "Embeddings Mistral Cloud1", pos: "b", h: 48 }
n29@{ icon: "mdi:robot", form: "rounded", label: "AI Agent1", pos: "b", h: 48 }
n30@{ icon: "mdi:brain", form: "rounded", label: "Google Gemini Chat Model3", pos: "b", h: 48 }
n27 -.-> n26
n26 -.-> n24
n28 -.-> n27
n25 -.-> n24
n30 -.-> n29
n24 --> n29
n23 --> n24
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 n0,n23 trigger
class n14,n16,n21,n22,n31,n32,n24,n29 ai
class n4,n9,n15,n17,n25,n30 aiModel
class n19,n26,n27 ai
class n20,n28 ai
class n2 decision
class n6,n7,n8 api
class n5,n12 code
classDef customIcon fill:none,stroke:none
class n0,n5,n6,n7,n8,n10,n12 customIcon
Varför det här spelar roll: flaskhalsar i dokumentgranskning
Manuell dokumentgranskning är lömsk. Det handlar inte bara om lästiden, utan om kontextbytena, omformateringen och ”vänta, var var det där citatet?”-jakten när någon svarar två dagar senare. En enda kundbrief kan leda till tre olika sammanfattningar i Slack, mejl och ett dokument, alla lite inkonsekventa. Och om filen inte är på engelska så bromsar folk antingen, eller klistrar in bitar i slumpmässiga verktyg, vilket är riskfyllt och rörigt. Det är helt ärligt så bra team tappar momentum.
Friktionen byggs på. Här brukar det oftast fallera.
- Du lägger ungefär en timme per lång PDF bara på att få ut en sammanhängande berättelse åt någon annan.
- Folk ställer följdfrågor, men originalanteckningarna är utspridda, så du läser om avsnitt du redan ”gjort klart”.
- Icke-engelska dokument saktar ner allt eftersom översättning blir ett separat miniprojekt.
- Sammanfattningar går inte att återanvända senare, vilket gör att varje ny kollega ställer samma frågor igen.
Vad du bygger: uppladdning-till-sammanfattning via e-post + sökbar Q&A
Det här workflowet börjar med ett enkelt n8n-formulär där någon laddar upp ett dokument och anger sin e-postadress. Automatiseringen delar upp och bearbetar filen, skickar den till en parsingtjänst (Llama Cloud API) för att extrahera korrekt formaterad text och kontrollerar sedan status tills det parsade resultatet är klart. Därefter kliver Google Gemini-agenter in: en kan översätta innehållet när det inte är på engelska, och en annan analyserar det för att plocka ut innebörd, inte bara textstycken. Resultatet formateras till läsbar HTML, görs om till en fil för referens och mejlas via Gmail. Samtidigt lagrar workflowet det parsade och analyserade innehållet i Pinecone som embeddings, vilket är det som gör den bifogade chatbotlänken användbar senare.
Flödet startar när formuläret skickas in. Det går igenom extrahering och batchning, sedan översättning och analys, och avslutas med två leveranser: en Gmail-sammanfattning plus en Q&A-upplevelse som bygger på samma källdokument.
Det här bygger du
| Det som automatiseras | Det du uppnår |
|---|---|
|
|
Förväntade resultat
Säg att ditt team granskar 10 PDF:er i veckan (briefs, offerter, research). Manuellt tar till och med en ”snabb genomläsning + sammanställning” ofta runt 45 minuter per styck, så du landar på ungefär 7 timmar per vecka, och då är följdfrågorna inte ens med. Med det här workflowet är den mänskliga tiden främst uppladdningen: cirka 2 minuter per dokument, sedan väntar du på att parsing och Gemini-analys blir klara. Du får fortfarande en stabil Gmail-sammanfattning, men du slutar också att svara på samma frågor om och om igen eftersom folk kan använda chatbotlänken.
Innan du börjar
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
- Åtkomst till Google Gemini API för översättnings- och analysagenter.
- Llama Cloud API för att extrahera text från uppladdade filer.
- Pinecone-konto för att lagra embeddings för chatbotsök.
- Gmail-konto för att skicka sammanfattningar via Gmail-noden.
Kunskapsnivå: Mellan. Du kopplar några API:er, konfigurerar inloggningsuppgifter och gör mindre ändringar i prompts och e-postformatering.
Vill du att någon bygger detta åt dig? Prata med en automationsexpert (gratis 15-minuters konsultation).
Steg för steg
En formulärinskickning startar allt. ”Form Intake Trigger” samlar in uppladdade fil(er) och mottagarens e-postadress så att resten kan köras utan handpåläggning.
Dokumentet extraheras i batcher. Workflowet delar upp binärfiler, loopar över items och skickar varje dokument till Llama Cloud via HTTP Request-noder, och kontrollerar sedan parsingstatus tills Markdown-resultatet är tillgängligt.
Gemini gör råtexten användbar. En översättningsagent kontrollerar språk och översätter vid behov, och därefter tar innehållsanalysagenten fram en läsbar sammanfattning och strukturerad nyckelinformation (sånt du kan skanna snabbt och sedan dela).
Två utdata skapas: e-post + återhämtning. Markdown konverteras till HTML, formateras och skickas via Gmail, medan Pinecone lagrar parsat och analyserat innehåll med embeddings så att chatboten kan svara på följdfrågor senare.
Du kan enkelt modifiera analys-prompten för att matcha din tonalitet eller rapportstil 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 formulärtriggern
Konfigurera intagsformuläret som tar emot flera filer och mottagarens e-postadress.
- Lägg till noden Form Intake Trigger och ställ in Form Title till
form which gets multiple files. - Under Form Fields säkerställer ni att filfälten inkluderar
file1ochfile2, och lägger till ett obligatoriskt textfält med etikettenprovide your mail Id. - Verifiera att arbetsflödet startar med Form Intake Trigger → Split Binary Files.
provide your mail Id, eftersom den refereras senare i Dispatch Gmail Email.Steg 2: dela upp och parsa uppladdade dokument
Dela upp flera uppladdade binärer och skicka varje fil till parsnings-API:et.
- I Split Binary Files behåller ni den förifyllda JavaScript Code som den är för att dela upp varje binär till ett eget item.
- Konfigurera Document Parsing Request med URL
https://api.cloud.llamaindex.ai/api/parsing/upload, MethodPOSToch Content Typemultipart-form-data. - I Document Parsing Request lägger ni till headern Authorization med värdet
Bearer [CONFIGURE_YOUR_TOKEN]och behåller accept inställt påapplication/json. - Ställ in body-parametern så att den använder formBinaryData med Input Data Field Name
data. - Koppla Document Parsing Request → Verify Parsing Status → Status Condition Check.
- I Status Condition Check säkerställer ni att villkoret använder
{{ $json.status }}är lika medSUCCESS. - Koppla “true”-utgången från Status Condition Check till Fetch Markdown Result med URL
https://api.cloud.llamaindex.ai/api/parsing/job/{{ $json.id }}/result/markdown.
Steg 3: batcha och aggregera markdown-utdata
Samla alla markdown-utdata i en enda aggregerad datamängd för AI-bearbetning.
- Säkerställ att Fetch Markdown Result är kopplad till Iterate Batches.
- Från Iterate Batches bekräftar ni att utgång 1 är kopplad till Collect Markdown och att utgång 2 loopar tillbaka till Document Parsing Request.
- I Collect Markdown ställer ni in Fields to Aggregate så att
markdowningår.
Steg 4: konfigurera AI-översättning och innehållsanalys
Översätt eventuell icke-engelsk indata och kör flera analysgrenar parallellt.
- Koppla Collect Markdown till Language Translation Agent och ställ in Text till
{{ $('Collect Markdown').item.json.markdown }}. - Koppla Gemini Chat Model A som språkmodell för Language Translation Agent och ställ in Model Name till
models/gemini-1.5-flash. - Konfigurera Content Analysis Agent med Text inställt på
{{ $json.output }}och koppla Gemini Chat Model B som språkmodell medmodels/gemini-1.5-flash. - Konfigurera Readability Agent med Text
{{ $json.output }}och koppla Gemini Chat Model Core som språkmodell. - Konfigurera Extract Key Information med Text
{{ $json.output }}och koppla Gemini Chat Model Extract som språkmodell. - Notera den parallella exekveringen: Language Translation Agent skickar utdata både till Content Analysis Agent och Prepare Output File parallellt, och Content Analysis Agent skickar utdata till Convert Markdown to HTML, Readability Agent, Extract Key Information och Prepare Output File parallellt.
Steg 5: generera HTML och e-postutskick
Konvertera markdown till HTML, formatera det som text och skicka analysen via e-post.
- I Convert Markdown to HTML ställer ni in Mode till
markdownToHtml, Markdown till{{ $json.output }}och Destination Key tillhtml. - Behåll den förifyllda JavaScript-koden i Format HTML Text för att konvertera HTML till formaterad oformaterad text.
- I Generate Text File ställer ni in Operation till
toTextoch Source Property tilltextContent. - I Dispatch Gmail Email ställer ni in Send To till
{{ $('Form Intake Trigger').item.json['provide your mail Id'] }}, Subject tillAnalysis of the documents providedoch behåller meddelandetexten som konfigurerad.
Steg 6: indexera dokument i Pinecone Vector Store
Förbered utdata för indexering och skicka dem till Pinecone med embeddings.
- I Prepare Output File ställer ni in Operation till
toTextoch Source Property tilloutput. - Konfigurera Pinecone Vector Index med Mode
insertoch välj ert[YOUR_ID]-index. - Säkerställ att Mistral Embeddings är ansluten till Pinecone Vector Index som embeddings-leverantör.
- Bekräfta att Default Document Loader använder Data Type
binaryoch är ansluten via Recursive Text Splitter till Pinecone Vector Index.
Steg 7: konfigurera retrieval QA-chattupplevelsen
Aktivera chattbaserad frågor och svar med de indexerade dokumenten.
- Ställ in Chat Message Trigger till Public
trueför att tillåta externa frågor. - Koppla Chat Message Trigger → Retrieval QA Chain → Response Rephrase Agent.
- Koppla Gemini Chat Model QA som språkmodell för Retrieval QA Chain.
- Koppla Pinecone Vector Index Q till Vector Store Fetcher, och sedan till Retrieval QA Chain som retriever.
- Koppla Mistral Embeddings Q till Pinecone Vector Index Q för stöd för embeddings.
- Koppla Gemini Chat Model Reply som språkmodell för Response Rephrase Agent med Text inställt på
{{ $json.response }}.
Steg 8: testa och aktivera ert arbetsflöde
Validera dokumentintaget, analyspipelinen och chattens frågor och svar end-to-end innan ni slår på det.
- Klicka på Execute Workflow och skicka in Form Intake Trigger med två filer och en giltig e-postadress.
- Bekräfta att Status Condition Check når successpåret och att Fetch Markdown Result returnerar markdown-innehåll.
- Verifiera att Convert Markdown to HTML skapar ett
html-fält och att Dispatch Gmail Email skickar den formaterade analysen. - Öppna chatt-URL:en från Chat Message Trigger och skicka en fråga; bekräfta att Response Rephrase Agent returnerar ett tydligt svar.
- När ni är nöjda, växla arbetsflödet till Active för användning i produktion.
Felsökningstips
- Gmail-inloggningsuppgifter kan gå ut eller kräva specifika behörigheter. Om det skapar fel, kontrollera först n8n Credentials-posten för Gmail och din Google Cloud OAuth consent/scope-konfiguration.
- Om du använder Wait-liknande polling (statuskontroller) eller extern parsing varierar bearbetningstider. Öka väntetid/poll-intervall om efterföljande noder misslyckas eftersom Markdown-resultatet inte är klart ännu.
- Standardinstruktionerna i Google Gemini-agentnoderna är generiska. Lägg till din föredragna struktur (punkter, sektioner, ton) tidigt, annars kommer du att skriva om varje sammanfattning.
Snabba svar
Cirka en timme om du redan har API-nycklarna.
Nej. Du kopplar konton, klistrar in API-nycklar och justerar ett par prompts och e-postfält.
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 in Gemini-användning samt kostnader för Llama Cloud och Pinecone, som beror på hur många sidor du bearbetar.
Två alternativ: n8n Cloud (hanterad, 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 dig obegränsade körningar men kräver grundläggande serveradministration.
Ja, och det bör du troligen. De flesta team anpassar prompten för Content Analysis Agent (hur ”bra” ser ut), noden Extract Key Information (vilka fält du vill plocka ut) och formateringen i Dispatch Gmail Email (vilka sektioner som visas först). Du kan också byta hur uppladdningen sker: behåll formuläret eller trigga från Google Drive istället med ett Drive-triggerupplägg. Om du vill ha djupare Q&A kan du trimma Retrieval QA Chain och agenten för omformulering av svar så att svaren blir kortare, mer försiktiga eller mer ”säljorienterade”, beroende på var de ska användas.
Oftast handlar det om OAuth-scopes eller en utgången token. Anslut Gmail på nytt i n8n Credentials, bekräfta att Gmail API är aktiverat i Google Cloud och säkerställ att kontot har behörighet att skicka som den Från-adress du valt. Om det bara misslyckas ibland kan även rate limits eller stora bilagor vara orsaken.
Det skalar till många dokument, men genomströmningen beror mer på extern parsing och modellens latens än på n8n i sig. På n8n Cloud begränsas du främst av planens månatliga körningar, medan egen hosting tar bort körningstak och flyttar begränsningen till din serverstorlek. I praktiken börjar de flesta team med ”några dussin PDF:er per dag” och ökar när de är nöjda med parsingtillförlitlighet och Pinecone-kostnader.
Ofta, ja. Det här workflowet blandar långkörande parsing, polling för status, batchning av filer och AI-bearbetning i flera steg, vilket är där Zapier och Make kan bli klumpiga eller dyra. n8n är också enklare att bygga ut till RAG (Pinecone + retrieval chains) eftersom du kan hålla hela systemet ”sammanfattning + chatbot” på ett ställe. Om du bara behöver ”ladda upp PDF → få en kort sammanfattning via mejl” kan enklare verktyg räcka. När du bryr dig om flerspråkshantering, återanvändbara embeddings och en chattupplevelse för uppföljning passar n8n oftast bättre. Prata med en automationsexpert om du vill ha hjälp att välja.
När detta väl är igång slutar ”kan du sammanfatta det här?” att vara en tidsbomb i din inkorg. Du får tydligare slutsatser, snabbare svar och ett enda ställe att hantera följdfrågor.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.