Ditt team börjar äntligen använda en OpenAI-assistent för dokumentfrågor, och svaren ser “nästan” användbara ut. Sedan klistrar du in dem i Google Docs och allt blir kaos: konstiga markörer, trasiga källhänvisningar, och ingen kan se vilken mening som kommer från vilken fil.
Innehållsansvariga märker det när de behöver publiceringsklar text. Marknadsansvariga ser det under godkännanden. Och en solo-founder vill bara ha något de kan leverera utan en session för att städa upp källhänvisningar. Den här automatiseringen för OpenAI-källhänvisningar fixar formateringen och håller källorna läsbara, så att folk faktiskt litar på svaret.
Nedan ser du hur arbetsflödet hämtar assistentens källhänvisningar, plockar fram underliggande fildetaljer och outputar strukturerad Markdown (eller valfri HTML) som du kan klistra in direkt i Google Docs.
Så fungerar den här automatiseringen
Hela n8n-arbetsflödet, från trigger till slutlig output:
n8n Workflow Template: OpenAI-assistent till Google Docs, rena källhänvisningar
flowchart LR
subgraph sg0["Chat Entry Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Chat Entry Trigger", pos: "b", h: 48 }
n1@{ icon: "mdi:robot", form: "rounded", label: "OpenAI Assistant Lookup", pos: "b", h: 48 }
n2@{ icon: "mdi:memory", form: "rounded", label: "Sliding Memory Buffer", pos: "b", h: 48 }
n3["<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/>Fetch Thread Messages"]
n4@{ icon: "mdi:swap-vertical", form: "rounded", label: "Divide Thread Messages", pos: "b", h: 48 }
n5@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Message Content", pos: "b", h: 48 }
n6@{ icon: "mdi:swap-vertical", form: "rounded", label: "Extract Citation Entries", 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/httprequest.dark.svg' width='40' height='40' /></div><br/>Fetch File Metadata"]
n8@{ icon: "mdi:swap-vertical", form: "rounded", label: "Normalize Fields", pos: "b", h: 48 }
n9@{ icon: "mdi:cog", form: "rounded", label: "Combine Items", 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/code.svg' width='40' height='40' /></div><br/>Finalize Formatted Output"]
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/markdown.dark.svg' width='40' height='40' /></div><br/>Markdown to HTML Option"]
n9 --> n10
n8 --> n9
n2 -.-> n1
n3 --> n4
n10 --> n11
n7 --> n8
n1 --> n3
n5 --> n6
n6 --> n7
n4 --> n5
n0 --> n1
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 trigger
class n1 ai
class n2 ai
class n3,n7 api
class n10 code
class n11 disabled
classDef customIcon fill:none,stroke:none
class n3,n7,n10,n11 customIcon
Problemet: AI-svar med källhänvisningar är fortfarande inte “Docs-klara”
OpenAI:s filhämtning är kraftfull, men sista milen är smärtsam. Assistenten kan returnera källhänvisningar, men de är ofta insvepta i märkliga tecken, inkonsekventa markörer eller referenser som inte går att mappa snyggt till en källista som människor kan läsa. Du lägger tid på att lista ut “vad källa 3 faktiskt är”, leta filnamn och manuellt göra om råa referenser till något som ser professionellt ut i Google Docs. Ännu värre: ett litet formateringsfel kan få hela svaret att kännas opålitligt, även när källorna i grunden är bra.
Friktionen blir ännu större när fler än en person rör innehållet.
- Att klistra in ett assistentsvar i Google Docs drar ofta med konstiga symboler och skräp som kräver manuell städning.
- Källnummer kan finnas, men “källan” bakom dem är oklar om du inte själv hämtar fildetaljer.
- Redaktörer tappar tid när de ska verifiera påståenden eftersom källor inte är klickbara eller standardiserade i det format teamet förväntar sig.
- Små inkonsekvenser mellan svar skapar extra granskningsrundor, vilket sänker takten när du försöker publicera snabbt.
Lösningen: formatera OpenAI Assistant-källhänvisningar till strukturerad Markdown
Det här n8n-arbetsflödet fungerar som ett “finish-lager” för källhänvisningar till din OpenAI-assistent. Det startar när ett chattmeddelande träffar din webhook-trigger och skickar sedan prompten till en OpenAI-assistent som redan är konfigurerad med en vektorstore (dina interna filer för retrieval). När assistenten har svarat hämtar arbetsflödet hela trådens meddelanden via HTTP, delar upp innehållet i delar och extraherar varje källhänvisning det kan hitta. För varje källhänvisning hämtar det underliggande filmetadata (så du får riktiga filnamn och identifierare i stället för mystiska markörer). Till sist normaliserar och kombinerar det allt till en enda, strukturerad output som innehåller läsbara källänkar i Markdown, med en valfri Markdown-till-HTML-konvertering om du föredrar att klistra in i vissa editorer.
Arbetsflödet börjar med ett chattinlägg. Sedan samlar det in assistentens svar plus källreferenser, löser upp dessa referenser till faktiska fildetaljer och formaterar slutsvaret till något du kan klistra in i Google Docs utan pinsamma artefakter. Strukturerad text, tydliga källor, klart.
Det du får: automatisering vs. resultat
| Vad det här arbetsflödet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att ditt team tar fram 10 svar med källor i veckan för briefs, enablement-dokument eller helpcenter-artiklar. Manuellt är det vanligt att lägga cirka 20 minuter per svar på att städa konstiga tecken, koppla källhänvisningar tillbaka till filer och formatera källor så de är läsbara i Google Docs. Det är ungefär 3 timmar i veckan av ren städning. Med det här arbetsflödet lägger du frågan i chatten, väntar en minut eller två på retrieval plus formatering och klistrar in den strukturerade Markdown-outputen. “Mänsklig tid” blir en snabb granskning, inte ett rekonstruktionsjobb.
Det här behöver du
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
- OpenAI-assistent med en vektorstore för filhämtning
- Google Drive om ditt team lagrar källfiler där
- OpenAI API-nyckel (hämta den från OpenAI API-dashboarden)
Kunskapsnivå: Mellan. Du kopplar credentials, klistrar in en API-nyckel och justerar ett kodblock för exakt den källhänvisningsstil du vill ha.
Vill du inte sätta upp det här själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
Ett chattmeddelande triggar körningen. Arbetsflödet börjar i Chat Entry Trigger (webhook-stil), så du kan mata in en fråga från ett chatt-UI, ett internt verktyg eller till och med ett enkelt formulär.
Assistenten genererar ett svar med källhänvisningar. n8n skickar prompten till din OpenAI-assistent, som använder sin vektorstore för att söka i dina uppladdade filer och returnera ett svar med källhänvisningar bifogade.
Källhänvisningar extraheras och löses upp. Arbetsflödet hämtar trådens meddelanden via HTTP, delar upp meddelandeinnehåll i chunkar och plockar sedan ut varje källhänvisning. För varje källhänvisning gör det ytterligare en HTTP-förfrågan för att hämta filmetadata så att källistan kan visa riktiga filnamn (och stabila identifierare) i stället för otydliga markörer.
Output formateras för människor. Efter normalisering och aggregering genererar ett sista kodsteg strukturerad Markdown med länkade källor. Om du föredrar HTML kan Markdown-noden konvertera så att din mål-editor renderar det snyggt.
Du kan enkelt ändra den slutliga källstilen så att den matchar er interna standard utifrån era behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementation
Steg 1: konfigurera chatttriggern
Det här arbetsflödet startar när ett chattmeddelande tas emot och lämnar sedan över konversationen till OpenAI-assistenten.
- Lägg till eller öppna Chat Entry Trigger som arbetsflödets trigger.
- Behåll standardinställningarna under Options för Chat Entry Trigger.
- (Valfritt) Låt Flowpast Branding ligga kvar som en dokumentationsnotering för synlighet i teamet.
Steg 2: anslut OpenAI
Assistentuppslagningen och API-anropen använder OpenAI-autentiseringsuppgifter för att hämta trådmeddelanden och filmetadata.
- Öppna OpenAI Assistant Lookup och ställ in Resource till
assistant. - Ställ in Assistant ID till ert assistentvärde (ersätt
[YOUR_ID]). - Öppna Fetch Thread Messages och verifiera att URL är
=https://api.openai.com/v1/threads/{{ $json.threadId }}/messages. - I Fetch Thread Messages, behåll Authentication som
predefinedCredentialTypeoch Node Credential Type somopenAiApi. - Öppna Fetch File Metadata och bekräfta att URL är
=https://api.openai.com/v1/files/{{ $json.file_citation.file_id }}. - I Fetch File Metadata, behåll Query Parameters → limit satt till
1.
Credential Required: Anslut era openAiApi-autentiseringsuppgifter i OpenAI Assistant Lookup.
Credential Required: Anslut era openAiApi-autentiseringsuppgifter i Fetch Thread Messages och Fetch File Metadata.
OpenAI-verktyg som Sliding Memory Buffer är kopplade till assistenten—se till att autentiseringsuppgifter läggs till i OpenAI Assistant Lookup (inte i minnesnoden).
Steg 3: konfigurera meddelandeparsning
Den här delen delar upp tråden i enskilda meddelandeposter och extraherar citeringsannoteringar för vidare uppslagning.
- Bekräfta att OpenAI Assistant Lookup kopplas direkt till Fetch Thread Messages.
- I Divide Thread Messages, ställ in Field to Split Out till
data. - I Split Message Content, ställ in Field to Split Out till
content. - I Extract Citation Entries, ställ in Field to Split Out till
text.annotations. - Säkerställ att körordningen följer Fetch Thread Messages → Divide Thread Messages → Split Message Content → Extract Citation Entries.
Steg 4: konfigurera citeringsmetadata och formatering
Metadata hämtas för varje citat, normaliseras, aggregeras och används sedan för att infoga filnamn i assistentens output.
- Koppla Extract Citation Entries till Fetch File Metadata för att slå upp fildetaljer.
- I Normalize Fields, ställ in tilldelningar:
- id →
={{ $json.id }} - filename →
={{ $json.filename }} - text →
={{ $('Extract Citation Entries').item.json.text }}
- id →
- I Combine Items, ställ in Aggregate till
aggregateAllItemData. - I Finalize Formatted Output, behåll Mode satt till
runOnceForEachItemoch använd den angivna JavaScript Code:let saida = $('OpenAI Assistant Lookup').item.json.output; for (let i of $input.item.json.data) { saida = saida.replaceAll(i.text, " _("+ i.filename+")_ "); } $input.item.json.output = saida; return $input.item;
⚠️ Vanlig fallgrop: Om Normalize Fields inte refererar till Extract Citation Entries kommer text-ersättningen i Finalize Formatted Output att misslyckas.
Steg 5: konfigurera output-rendering
Det slutliga meddelandet kan valfritt konverteras från Markdown till HTML.
- Koppla Finalize Formatted Output till Markdown to HTML Option.
- I Markdown to HTML Option, ställ in HTML till
={{ $json.output }}och Destination Key tilloutput. - Om ni vill ha HTML-output, aktivera Markdown to HTML Option (den är inaktiverad som standard).
output från Finalize Formatted Output.Sista steget: testa och aktivera ert arbetsflöde
Kör ett fullständigt test för att validera att citat ersätts med filnamn och aktivera sedan arbetsflödet för användning i drift.
- Klicka Execute Workflow och skicka ett testmeddelande via Chat Entry Trigger.
- Verifiera att Fetch Thread Messages hämtar meddelanden och att Extract Citation Entries ger ut annoteringsobjekt.
- Bekräfta att Finalize Formatted Output ersätter citeringstext med filnamn i
output. - Om ni använder HTML, säkerställ att Markdown to HTML Option matar ut HTML i fältet
output. - Växla arbetsflödet till Active när testet har slutförts utan fel.
Vanliga fallgropar
- OpenAI-credentials kan löpa ut eller begränsas av projektinställningar. Om saker slutar fungera, kontrollera först status på din OpenAI API-nyckel och projektbehörigheter i OpenAI-dashboarden.
- Om du använder Wait-noder eller extern rendering varierar bearbetningstiderna. Öka väntetiden om noder längre fram fallerar på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in er varumärkesröst tidigt, annars kommer du redigera output för alltid.
Vanliga frågor
Cirka 30 minuter om din assistent och API-nyckel är redo.
Nej, inte för kärnarbetsflödet. Du kan vilja göra mindre justeringar i den sista formateringskoden för att matcha din föredragna källhänvisningsstil.
Ja. n8n har ett gratis self-hosted-alternativ och en gratis testperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volym. Du behöver också räkna med OpenAI API-användning, vilket vanligtvis är några dollar i månaden för lätt intern Q&A men skalar med volym.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärd och hanterar n8n bra. Self-hosting ger dig obegränsade körningar men kräver grundläggande serverhantering.
Ja. Du kan behålla Markdown-outputen från kodnoden “Finalize Formatted Output” och sedan aktivera noden “Markdown to HTML Option” för att konvertera den. Vanliga anpassningar är att ändra länkstil, lägga till en rubrik för avsnittet “Källor” och byta från numrerade källhänvisningar till författare–titel-stil om ditt team föredrar det.
Oftast beror det på en utgången eller felaktig API-nyckel i n8n. Skapa en ny OpenAI API-nyckel, uppdatera credential i dina OpenAI-noder och bekräfta att ditt OpenAI-projekt tillåter assistenten och filhämtningsfunktionerna du anropar. Om det bara fallerar på dagar med hög belastning kan du slå i rate limits, så sänk takten på förfrågningar eller batcha färre meddelanden per körning.
Väldigt många.
Ofta, ja, om du bryr dig om parsing av källhänvisningar och kontroll över formateringen. Det här arbetsflödet bygger på att dela upp meddelandeinnehåll, aggregera flera objekt och köra en sista kodbaserad formatterare, och de delarna blir ofta klumpiga (eller dyra) i enklare automationsverktyg. n8n är också enklare att self-hosta, vilket spelar roll när du har många interna frågor och inte vill betala per liten delsteg. Zapier eller Make kan fortfarande fungera bra för en enkel “skicka prompt, få svar”-setup, men det är i städlagret du kommer märka skillnaden. Prata med en automationsexpert om du vill ha hjälp att välja.
Tydliga källhänvisningar förändrar hur människor ser på AI-svar. Sätt upp det här en gång, så får ditt team inklistringsklar output som känns som att den kom från en noggrann människa.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.