Din FAQ ligger ”någonstans i ett dokument”, den senaste produktuppdateringen är ”i Slack”, och det korrekta svaret är ”fråga Jess”. Under tiden fortsätter kunder och kollegor att ställa samma frågor, och varje svar blir ett litet researchprojekt. Det är här Google Sheets Slack-automatisering verkligen gör nytta.
Det här slår mot supportansvariga först (trycket i inkorgen är på riktigt). Men ops managers som underhåller SOP:ar och byråägare som bygger kunders kunskapsbaser känner också av det. Resultatet: snabbare svar som håller sig synkade med arket som är er källa till sanningen, plus en tydlig logg över varje fråga och svar.
Nedan ser du hur arbetsflödet gör ett enkelt Google-ark till en levande FAQ-motor, skickar godkännanden via Gmail och skickar rätt uppdateringar till Slack så att teamet behåller kontrollen.
Så fungerar den här automatiseringen
Se hur detta löser problemet:
n8n Workflow Template: Google Sheets + Slack: snabba, korrekta FAQ-svar
flowchart LR
subgraph sg0["When chat message received 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/>Respond to Webhook"]
n1@{ icon: "mdi:play-circle", form: "rounded", label: "When chat message received", pos: "b", h: 48 }
n2@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser1", pos: "b", h: 48 }
n3@{ icon: "mdi:memory", form: "rounded", label: "Simple Memory", pos: "b", h: 48 }
n4@{ icon: "mdi:robot", form: "rounded", label: "AI Agent Orchestration", pos: "b", h: 48 }
n5@{ icon: "mdi:swap-vertical", form: "rounded", label: "format data for subworkflows", pos: "b", h: 48 }
n6@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Intent Router", pos: "b", h: 48 }
n7@{ icon: "mdi:robot", form: "rounded", label: "AI Agent Chat", pos: "b", h: 48 }
n8@{ icon: "mdi:robot", form: "rounded", label: "AI Agent (Chat Composer)", pos: "b", h: 48 }
n9@{ icon: "mdi:robot", form: "rounded", label: "AI Agent (Brief Writer)1", pos: "b", h: 48 }
n10@{ icon: "mdi:robot", form: "rounded", label: "AI Agent (Draft Writer)", pos: "b", h: 48 }
n11@{ icon: "mdi:robot", form: "rounded", label: "AI Agent Optimizer", pos: "b", h: 48 }
n12@{ icon: "mdi:database", form: "rounded", label: "Fetch Optimized Draft from S..", pos: "b", h: 48 }
n13@{ icon: "mdi:robot", form: "rounded", label: "AI Agent (Publisher)", pos: "b", h: 48 }
n14@{ icon: "mdi:swap-vertical", form: "rounded", label: "Prepare Publishing Metadata", pos: "b", h: 48 }
n15@{ icon: "mdi:message-outline", form: "rounded", label: "Send Content for Approval", pos: "b", h: 48 }
n16@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Check Approval Status", pos: "b", h: 48 }
n17@{ icon: "mdi:message-outline", form: "rounded", label: "Publish to Recipient", pos: "b", h: 48 }
n18["<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/slack.svg' width='40' height='40' /></div><br/>Send Success Notification to.."]
n19@{ icon: "mdi:database", form: "rounded", label: "Fetch Published Version from..", pos: "b", h: 48 }
n20@{ icon: "mdi:database", form: "rounded", label: "Fetch Performance Metrics", pos: "b", h: 48 }
n21@{ icon: "mdi:robot", form: "rounded", label: "AI Agent (Monitor)", pos: "b", h: 48 }
n22@{ icon: "mdi:brain", form: "rounded", label: "Content Classifier Model", pos: "b", h: 48 }
n23@{ icon: "mdi:brain", form: "rounded", label: "Analytics Summary Model", pos: "b", h: 48 }
n24@{ icon: "mdi:swap-vertical", form: "rounded", label: "Format Intent Payload", pos: "b", h: 48 }
n25@{ icon: "mdi:swap-vertical", form: "rounded", label: "Format Intent Payload Brief", pos: "b", h: 48 }
n26@{ icon: "mdi:swap-vertical", form: "rounded", label: "Format Intent Payload Draft", pos: "b", h: 48 }
n27@{ icon: "mdi:swap-vertical", form: "rounded", label: "Format Payload Data Optimizer", pos: "b", h: 48 }
n28@{ icon: "mdi:swap-vertical", form: "rounded", label: "Prepare MetaData Monitor", pos: "b", h: 48 }
n29@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model Monitor", pos: "b", h: 48 }
n30@{ icon: "mdi:memory", form: "rounded", label: "Short-Term Memory Monitor", pos: "b", h: 48 }
n31@{ icon: "mdi:robot", form: "rounded", label: "Output Parser (JSON Enforcem..", pos: "b", h: 48 }
n32@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model Publisher", pos: "b", h: 48 }
n33@{ icon: "mdi:memory", form: "rounded", label: "Short-Term Memory Publisher", pos: "b", h: 48 }
n34@{ icon: "mdi:robot", form: "rounded", label: "Output Parser (JSON Enforcem..", pos: "b", h: 48 }
n35@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model Optmizer", pos: "b", h: 48 }
n36@{ icon: "mdi:memory", form: "rounded", label: "Short-Term Memory Optmizer", pos: "b", h: 48 }
n37@{ icon: "mdi:database", form: "rounded", label: "Get Context from Google Shee..", pos: "b", h: 48 }
n38@{ icon: "mdi:robot", form: "rounded", label: "Output Parser (JSON Enforcem..", pos: "b", h: 48 }
n39@{ icon: "mdi:memory", form: "rounded", label: "Short-Term Memory Draft", pos: "b", h: 48 }
n40@{ icon: "mdi:database", form: "rounded", label: "Get Context from Google Shee..", pos: "b", h: 48 }
n41@{ icon: "mdi:robot", form: "rounded", label: "Output Parser (JSON Enforcem..", pos: "b", h: 48 }
n42@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model Brief", pos: "b", h: 48 }
n43@{ icon: "mdi:memory", form: "rounded", label: "Short-Term Memory Brief", pos: "b", h: 48 }
n44@{ icon: "mdi:database", form: "rounded", label: "Get Context from Google Shee..", pos: "b", h: 48 }
n45@{ icon: "mdi:robot", form: "rounded", label: "Output Parser (JSON Enforcem..", pos: "b", h: 48 }
n46@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model Chat Compo..", pos: "b", h: 48 }
n47@{ icon: "mdi:memory", form: "rounded", label: "Short-Term Memory Chat Compo..", pos: "b", h: 48 }
n48@{ icon: "mdi:database", form: "rounded", label: "Get row(s) in sheet in Googl..", pos: "b", h: 48 }
n49@{ icon: "mdi:robot", form: "rounded", label: "Output Parser (JSON Enforcem..", pos: "b", h: 48 }
n50@{ icon: "mdi:database", form: "rounded", label: "Logging Chat Composer", pos: "b", h: 48 }
n51@{ icon: "mdi:database", form: "rounded", label: "Logging Brief ", pos: "b", h: 48 }
n52@{ icon: "mdi:database", form: "rounded", label: "Logging Draft", pos: "b", h: 48 }
n53@{ icon: "mdi:database", form: "rounded", label: "Logging Optimizer", pos: "b", h: 48 }
n54@{ icon: "mdi:database", form: "rounded", label: "Logging Published Data", pos: "b", h: 48 }
n55@{ icon: "mdi:database", form: "rounded", label: "Logging Monitor Data", pos: "b", h: 48 }
n56@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model Human Chat", pos: "b", h: 48 }
n57@{ icon: "mdi:memory", form: "rounded", label: "Simple Memory Chat", pos: "b", h: 48 }
n58@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser Chat", pos: "b", h: 48 }
n59@{ icon: "mdi:database", form: "rounded", label: "Get Reference from Content I..", pos: "b", h: 48 }
n60@{ icon: "mdi:database", form: "rounded", label: "Get Data from Content Version", pos: "b", h: 48 }
n61@{ icon: "mdi:database", form: "rounded", label: "Get Data from Conversion Logs", pos: "b", h: 48 }
n7 --> n0
n6 --> n24
n6 --> n25
n6 --> n26
n6 --> n27
n6 --> n14
n6 --> n28
n52 --> n7
n3 -.-> n4
n51 --> n7
n53 --> n7
n21 --> n55
n11 --> n53
n57 -.-> n7
n13 --> n54
n13 --> n15
n55 --> n7
n16 --> n17
n16 --> n18
n24 --> n8
n50 --> n7
n4 --> n5
n54 --> n7
n10 --> n52
n23 -.-> n10
n42 -.-> n9
n43 -.-> n9
n39 -.-> n10
n9 --> n51
n8 --> n50
n22 -.-> n4
n28 --> n21
n20 -.-> n21
n29 -.-> n21
n15 --> n16
n30 -.-> n21
n2 -.-> n4
n35 -.-> n11
n36 -.-> n11
n1 --> n4
n25 --> n9
n26 --> n10
n32 -.-> n13
n14 --> n13
n33 -.-> n13
n56 -.-> n7
n5 --> n6
n27 --> n11
n60 -.-> n4
n61 -.-> n4
n58 -.-> n7
n46 -.-> n8
n47 -.-> n8
n59 -.-> n4
n12 -.-> n13
n19 -.-> n21
n44 -.-> n9
n45 -.-> n9
n41 -.-> n10
n37 -.-> n11
n40 -.-> n10
n31 -.-> n21
n38 -.-> n11
n34 -.-> n13
n49 -.-> n8
n48 -.-> n8
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 trigger
class n2,n4,n7,n8,n9,n10,n11,n13,n21,n31,n34,n38,n41,n45,n49,n58 ai
class n22,n23,n29,n32,n35,n42,n46,n56 aiModel
class n3,n30,n33,n36,n39,n43,n47,n57 ai
class n6,n16 decision
class n12,n19,n20,n37,n40,n44,n48,n50,n51,n52,n53,n54,n55,n59,n60,n61 database
class n0 api
classDef customIcon fill:none,stroke:none
class n0,n18 customIcon
Utmaningen: snabba FAQ-svar som inte glider off-brand
Manuell FAQ-hantering fallerar på lömska sätt. En person svarar ur minnet, en annan klistrar in en gammal textsnutt och en tredje försöker tolka en produkttabell medan kunden väntar. Även när ni ”har dokumentation” är det sällan samma dokument som alla använder, och det uppdateras nästan aldrig samma dag som något ändras. Resultatet blir långsamma svar, inkonsekventa budskap och en ständig känsla av att ett enda fel svar kan skapa ett större supportärende.
Det här eskalerar snabbt. Här är det som brukar spåra ur.
- Folk letar i dokument, chattar och gamla ärenden, vilket lätt kan bränna cirka 10 minuter per fråga.
- Svaren glider över tid, så två kunder kan få två olika ”officiella” svar samma vecka.
- Det finns ingen pålitlig spårbarhet, så du kan inte se vilka frågor som återkommer (eller vem som svarade vad).
- Godkännanden blir röriga, eftersom personen som ska granska svaret ser det för sent eller inte alls.
Lösningen: en Google-ark-baserad FAQ-assistent med kontroll via Slack + Gmail
Det här arbetsflödet behandlar Google Sheets som den enda platsen teamet är överens om är ”sann”, och använder sedan AI för att utforma svar som är förankrade i innehållet i arket (inte slumpmässiga gissningar). En fråga kommer in via chattriggern, automatiseringen hämtar relevanta rader eller intervall från det ark du valt, och modellen genererar ett kortfattat svar baserat enbart på det den kan se. Därefter loggar den frågan och det utkastade svaret tillbaka i Sheets, vilket innebär att du automatiskt bygger en sökbar historik. När avsikten kräver det kan flödet begära godkännande via e-post, kontrollera godkännandestatus och sedan skicka den slutliga leveransen samt en Slack-notis om att det är klart så att teamet vet att det är levererat.
Arbetsflödet startar när ett användarmeddelande kommer in (till exempel från en chatbot eller en intern Slack-liknande prompt). Det routar förfrågan utifrån intent, hämtar rätt kontext från Google Sheets, skriver ett utkast till svar och registrerar utbytet. Till sist hanterar Gmail godkännanden och Slack står för synlighet, så att inget viktigt begravs.
Vad som förändras: före vs. efter
| Det här elimineras | Effekten du märker |
|---|---|
|
|
Praktisk effekt i verkligheten
Säg att teamet svarar på cirka 20 återkommande frågor per dag (frakt, prissättning, kontoåtkomst, SOP:ar). Manuellt antar vi ungefär 10 minuter per fråga för att leta, bekräfta och formulera, alltså cirka 3 timmar per dag. Med det här arbetsflödet lägger du kanske 1 minut på att skumma igenom utkastet och trycka skicka, och godkännanden triggas bara för meddelanden du markerar som känsliga. Det är ungefär 2 timmar tillbaka de flesta dagar, plus färre ”vänta, det där är inte vår policy längre”-ögonblick.
Krav
- n8n-instans (testa n8n Cloud gratis)
- Självhostningsalternativ om du föredrar det (Hostinger fungerar bra)
- Google Sheets som källa till sanningen för din FAQ eller SOP.
- Slack för att skicka notifieringar om klart och uppdateringar.
- Gmail för att skicka och bekräfta godkännanden.
- OpenAI API-nyckel (eller kompatibel LLM) (hämta den i din LLM-leverantörs dashboard)
Kunskapsnivå: Medel. Du kopplar konton, väljer ark/intervall och justerar prompts så att svaren matchar er ton.
Behöver du hjälp att implementera detta? Prata med en automationsexpert (gratis 15-minuters konsultation).
Arbetsflödet steg för steg
En fråga kommer in. Chattmeddelande-triggern tar emot en användarfråga (från en intern assistent, en supportkonsol eller ett annat system som matar in frågor). Arbetsflödet kan också köras manuellt för test.
Intent routas. Orkestratorn och routnings-switchen avgör vilken typ av förfrågan det är (FAQ-svar, brief, utkast, optimering, publicering eller bevakning). För FAQ-spåret förbereds en strukturerad payload så att efterföljande steg inte behöver ”gissa” vad de ska göra.
Google Sheets blir ert kunskapslager. Arbetsflödet hämtar relevant kontext från Sheets (din FAQ-tabell, rader i produktkatalogen, SOP-steg eller interna dokument). Sedan genererar AI-agenten ett svar som är förankrat i det hämtade innehållet, och en strukturerad output-parser håller svaret korrekt formaterat och konsekvent.
Loggning och godkännanden sker automatiskt. Utkastet till svar och originalfrågan loggas tillbaka till Google Sheets, så att du bygger ett levande arkiv. Om godkännande krävs skickar Gmail en förfrågan, kontrollerar status, skickar sedan den slutliga leveransen och postar en Slack-notis om att det är klart.
Du kan enkelt ändra arkinsvall och godkännanderegler så att det matchar hur teamet arbetar. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera chat-triggern
Det här arbetsflödet startar när ett chattmeddelande tas emot och routar sedan begäran in i AI-orkestreringspipelinen.
- Lägg till och öppna Chat Message Trigger.
- Lämna Options som standard om ni vill ha standardbeteendet för chatt-webhooken.
- Bekräfta att noden är kopplad direkt till AI Orchestrator Hub.
Steg 2: anslut datakällor i Google Sheets
Flera Google Sheets-verktyg används för kontexthämtning och loggning genom hela innehållslivscykeln.
- I Fetch Content Items ställer ni in Document till
SEO Content Automationoch Sheet tillcontent_items. - I Fetch Content Versions ställer ni in Document till
SEO Content Automationoch Sheet tillcontent_versions. - I Fetch Conversation Logs ställer ni in Document till
SEO Content Automationoch Sheet tillconversation_logs. - Inloggningsuppgifter krävs: Anslut era googleSheetsOAuth2Api-inloggningsuppgifter till Fetch Content Items, Fetch Content Versions och Fetch Conversation Logs.
- Upprepa samma anslutning av Google Sheets-inloggningsuppgifter för alla Google Sheets-verktyg och loggare (10+ noder) som läser/skriver innehållsversioner, optimerade utkast, publicerade poster, konversationsloggar och prestandamått.
Steg 3: konfigurera AI-orkestreringslagret
Orkestreringslagret klassificerar avsikt, berikar kontext och förbereder payloads för nedströms AI-agenter.
- Öppna AI Orchestrator Hub och behåll Text inställt på
=User message: {{ $json.chatInput }} Session ID: {{ $json.sessionId }}. - Säkerställ att AI Orchestrator Hub har Has Output Parser aktiverat och är ansluten till Structured Output Decoder.
- Anslut Basic Memory Buffer till AI Orchestrator Hub som AI-minne med Context Window Length inställt på
7. - Inloggningsuppgifter krävs: Anslut era openAiApi-inloggningsuppgifter till Content Classifier LLM (språkmodell för AI Orchestrator Hub).
- Bekräfta att Prepare Subflow Payloads mappar intent, topic, content_id och parameter med uttryck som
{{ $json.output.intent }}.
Steg 4: konfigurera avsiktsrouting och payload-mappning
Avsiktsrouting avgör vilken AI-gren som körs (chat, brief, draft, optimize, publish eller monitor).
- Öppna Intent Routing Switch och verifiera att varje regel jämför Left Value
{{ $json.intent }}med någon avchat,brief,draft,optimize,publishellermonitor. - För chat-vägen: verifiera att Map Intent Payload mappar intent, topic, content och parameter med uttryck som
{{ $json.intent }}. - För brief-vägen: verifiera att Map Intent Payload Brief mappar samma fält från avsiktspayloaden.
- För draft-vägen: verifiera att Map Intent Payload Draft inkluderar brief_id inställt på
{{ $json.brief_id }}. - För optimize-vägen: bekräfta att Build Optimizer Payload sätter intent till
optimizeoch content tillC001(eller ersätt med er strategi för innehålls-ID). - För publish-vägen: verifiera att Assemble Publish Metadata sätter intent till
publish, topic tillAI Seo Basicsoch content_id tillC001(redigera för er innehållskatalog). - För monitor-vägen: säkerställ att Prepare Monitor Metadata mappar content_id från
{{ $json.content }}och inkluderar parameter.
intent-värde.Steg 5: konfigurera grenen för chattrespons
Den här grenen hanterar konversationssvar och loggar dem till Google Sheets.
- I Chat Response Agent behåller ni Text inställt på
=User message: {{ $json.content }} Intent: {{ $json.intent }} Topic: {{ $json.topic || "general" }} Context (from Google Sheets or memory): {{ $json.context || $memory || "No context retrieved" }}. - Inloggningsuppgifter krävs: Anslut era openAiApi-inloggningsuppgifter till Chat Composer Model (språkmodell för Chat Response Agent).
- Behåll Chat Composer Memory ansluten som AI-minne och Fetch Conversation Records ansluten som ett AI-verktyg. Lägg till Google Sheets-inloggningsuppgifter till Fetch Conversation Records.
- Säkerställ att Chat Composer JSON Parser är ansluten som output parser till Chat Response Agent.
- I Log Chat Responses bekräftar ni att Operation är
appendOrUpdateoch att fälten inkluderarinput,intent,responseochtimestampmed uttryck som{{ $json.output.reply }}och{{ $now }}. - Inloggningsuppgifter krävs: Anslut era googleSheetsOAuth2Api-inloggningsuppgifter till Log Chat Responses.
Steg 6: konfigurera agenter för brief, draft och optimering
Dessa grenar genererar briefs och utkast, optimerar innehåll och loggar versioner till Google Sheets.
- I Brief Drafting Agent verifierar ni att fältet Text inkluderar
{{ $json.topic }},{{ $json.intent }},{{ $json.content }}och{{ $json.context || $memory || 'No context found' }}. - Inloggningsuppgifter krävs: Anslut era openAiApi-inloggningsuppgifter till Brief Chat Model (språkmodell för Brief Drafting Agent).
- Anslut Fetch Brief Context som ett AI-verktyg och Brief Memory Buffer som AI-minne till Brief Drafting Agent. Lägg till Google Sheets-inloggningsuppgifter till Fetch Brief Context.
- I Article Draft Agent behåller ni innehållsprompten och säkerställer att Draft JSON Parser är ansluten som output parser.
- Inloggningsuppgifter krävs: Anslut era openAiApi-inloggningsuppgifter till Analytics Summary LLM (språkmodell för Article Draft Agent).
- Koppla Fetch Draft Context (AI-verktyg) och Draft Memory Buffer (AI-minne) till Article Draft Agent; lägg till Google Sheets-inloggningsuppgifter till Fetch Draft Context.
- I Content Optimization Agent bekräftar ni att optimeringsfälten använder uttryck som
{{ $json.parameter.goal || 'Improve SEO, tone, and readability' }}och{{ $json.parameter.focus_keywords ? $json.parameter.focus_keywords.join(', ') : 'N/A' }}. - Inloggningsuppgifter krävs: Anslut era openAiApi-inloggningsuppgifter till Optimizer Chat Model (språkmodell för Content Optimization Agent).
- Anslut Fetch Optimizer Context och Optimizer Memory Buffer till Content Optimization Agent; lägg till Google Sheets-inloggningsuppgifter till Fetch Optimizer Context.
- Säkerställ att loggnoderna Log Brief Records, Log Draft Records och Log Optimization Records använder Operation
appendOrUpdateoch har Google Sheets-inloggningsuppgifter anslutna.
Steg 7: konfigurera publicerings- och godkännandeflödet
Publiceringsgrenen förbereder metadata, begär godkännande och skickar notiser när den har godkänts.
- Verifiera att Assemble Publish Metadata sätter intent till
publishoch anger ett giltigt content_id. - I Publishing Prep Agent behåller ni fältet Text med
{{ $json.parameter.platform || 'Internal CMS' }}och kopplar Publisher JSON Parser. - Inloggningsuppgifter krävs: Anslut era openAiApi-inloggningsuppgifter till Publisher Chat Model (språkmodell för Publishing Prep Agent).
- Anslut Retrieve Optimized Draft som ett AI-verktyg för Publishing Prep Agent och lägg till Google Sheets-inloggningsuppgifter till Retrieve Optimized Draft.
- Publishing Prep Agent skickar output till både Log Published Records och Email Approval Request parallellt.
- I Email Approval Request ställer ni in Operation till
sendAndWait, Message till{{ $json.output.publish_data.html_body }}och Subject till{{ $json.output.publish_data.title }}. Inloggningsuppgifter krävs: Anslut era gmailOAuth2-inloggningsuppgifter. - I Approval Status Check behåller ni villkoret att
{{ $json.data.approved }}är lika medtrue. - Approval Status Check skickar output till både Email Final Delivery och Slack Success Alert parallellt.
- I Email Final Delivery ställer ni in Message till
{{ $('Publishing Prep Agent').item.json.output.publish_data.html_body }}och Subject till{{ $('Publishing Prep Agent').item.json.output.publish_data.title }}. Inloggningsuppgifter krävs: Anslut era gmailOAuth2-inloggningsuppgifter. - I Slack Success Alert ställer ni in Text till
Your {{ $('Publishing Prep Agent').item.json.output.publish_data.title }} has been Successfully Published.och väljer en kanal. Inloggningsuppgifter krävs: Anslut era slackApi-inloggningsuppgifter.
Steg 8: konfigurera prestandaövervakning
Den här grenen hämtar publicerade versioner och analysdata och sammanfattar sedan prestanda i Google Sheets.
- I Prepare Monitor Metadata bekräftar ni att content_id mappar till
{{ $json.content }}och att parameter mappar till{{ $json.parameter }}. - Anslut Retrieve Published Version och Load Performance Metrics som AI-verktyg för Performance Monitor Agent och lägg till Google Sheets-inloggningsuppgifter till båda.
- Inloggningsuppgifter krävs: Anslut era openAiApi-inloggningsuppgifter till Monitor Chat Model (språkmodell för Performance Monitor Agent).
- Säkerställ att Monitor Memory Buffer är kopplad som AI-minne och Monitor JSON Parser som output parser till Performance Monitor Agent.
- I Log Monitor Metrics ställer ni in Operation till
appendoch verifierar att fälten mappar till{{ $json.output.performance_summary.* }}och{{ $json.output.timestamp }}. Inloggningsuppgifter krävs: Anslut era googleSheetsOAuth2Api-inloggningsuppgifter.
Steg 9: sammanställ det slutliga svaret till användaren
Alla grenar leder in i en gemensam responsgenerator innan svaret skickas tillbaka till webhooken.
- I AI Reply Composer behåller ni Text inställt på
{{ JSON.stringify($json, null, 2) }}plus svars-instruktionerna. - Inloggningsuppgifter krävs: Anslut era openAiApi-inloggningsuppgifter till Human Chat Model (språkmodell för AI Reply Composer).
- Säkerställ att Chat Output Parser är ansluten som output parser till AI Reply Composer.
- Bekräfta att Webhook Response Sender är ansluten efter AI Reply Composer med Respond With inställt på
textoch Response Body inställt på{{ $json.output.reply }}.
Steg 10: testa och aktivera ert arbetsflöde
Validera alla grenar och säkerställ att inloggningsuppgifter fungerar innan ni aktiverar arbetsflödet för produktion.
- Klicka på Execute Workflow och skicka ett testmeddelande via Chat Message Trigger (t.ex. “Create a brief about AI SEO basics”).
- Verifiera att ett strukturerat svar når AI Reply Composer och att Webhook Response Sender returnerar ett chatvänligt svar.
- Kontrollera Google Sheets för nya rader i Log Brief Records, Log Draft Records eller Log Optimization Records beroende på avsikten.
- Testa publish-vägen för att säkerställa att Email Approval Request skickar, att Approval Status Check routar korrekt och att både Email Final Delivery och Slack Success Alert triggas parallellt efter godkännande.
- När allt är verifierat, slå på arbetsflödet Active för produktionsanvändning.
Se upp med
- Google Sheets-inloggningar kan löpa ut eller kräva specifika behörigheter. Om något slutar fungera, kontrollera först n8n:s test av credential-anslutningen och arkets delningsinställningar.
- Om du använder Wait-noder eller extern bearbetning kan timing variera. Öka väntetiden om efterföljande noder fallerar eftersom de får tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in er tonalitet tidigt, annars kommer du att ”justera ton” på vartenda svar.
Vanliga frågor
Oftast ungefär en timme om dina Google-, Slack- och Gmail-konton redan är anslutna.
Ja, men någon behöver vara bekväm med att koppla konton och redigera några prompts. Ingen kodning, dock.
Ja. n8n har ett gratis självhostat alternativ 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 API-kostnader för OpenAI (eller annan LLM), vilket vanligtvis är småpengar per svar för normala FAQ-stora prompts.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller självhostning på en VPS. För självhostning är Hostinger VPS prisvärd och hanterar n8n bra. Självhostning ger dig obegränsade körningar men kräver grundläggande serverhantering.
Du kan ändra vad assistenten ”vet” genom att peka hämtstegen från Google Sheets mot ett annat sheet-ID och intervall (till exempel en flik för kund-FAQ:er och en annan för interna SOP:ar). Om du bara vill ha godkännanden för vissa ämnen justerar du routningen och godkännandekontrollen så att frågor om ”fakturering” eller ”policy” triggar Gmail medan rutinfrågor inte gör det. Många team justerar också prompten i AI Reply Composer för att tvinga fram formatering som ”kort svar + länk till källrad”.
Oftast beror det på en utgången token eller att Slack-appen installerades utan rätt scopes för att posta i målkanalen. Anslut Slack-credentialn igen i n8n och bekräfta sedan att kanal-ID:t är korrekt och att appen får posta där. Om det bara fallerar under stressiga perioder kan du också slå i rate limits, så att glesa ut notifieringar lite kan hjälpa.
Med n8n Cloud Starter kan du köra en bra volym för små team, och högre nivåer hanterar mer. Om du självhostar beror kapaciteten mest på din server och din AI-leverantörs begränsningar, inte på n8n i sig. I praktiken kör de flesta team dussintals eller ett par hundra Q&A-utkast per dag utan att tänka på det, så länge Sheet-intervall hålls städade och prompterna är slimmade.
Ofta, ja. Det här arbetsflödet använder mer avancerad routning, strukturerad parsing, minne och multi-agent-logik, och den typen av förgrening kan bli dyr eller klumpig i Zapier/Make. n8n ger dig också möjligheten att självhosta för obegränsade körningar, vilket blir viktigt när Q&A-volymen ökar. Zapier eller Make kan fortfarande fungera bra för ett enkelt flöde som ”ny rad i Sheets → skicka Slack-meddelande”. Om du vill ha hjälp att välja, prata med en automationsexpert.
När svaren är förankrade i Google Sheets och levereras via Slack och Gmail med inbyggd loggning slutar återkommande frågor att kännas som avbrott. Det är helt enkelt ett lugnare sätt att driva support och intern ops.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.