Dina AI-utdata ser bra ut… tills de inte gör det. En liten justering i prompten, och plötsligt glider tonen, formatet spricker eller en “hjälpsam” modell börjar hitta på detaljer du aldrig godkände.
Det här är precis den typen av röra som bromsar marknadsansvariga som försöker leverera innehåll i högt tempo. Det drabbar också produktteam som förvaltar interna copilots och byråägare som levererar “varumärkessäkert” AI-arbete till kunder. Med automatiserad prompttestning slutar du gissa och börjar validera.
Det här arbetsflödet kör din prompt mot en känd “ground truth”, poängsätter resultatet, förbättrar prompten automatiskt och sparar sedan den bästa versionen i Google Sheets. Du får se hur det fungerar, vad du behöver och var team oftast går bet.
Så fungerar den här automatiseringen
Hela n8n-arbetsflödet, från trigger till slutligt resultat:
n8n Workflow Template: OpenAI + Google Sheets: prompter som håller varumärket
flowchart LR
subgraph sg0["When clicking ‘Execute workflow’ Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "When clicking ‘Execute workf..", pos: "b", h: 48 }
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Define Initial Prompt & Test..", pos: "b", h: 48 }
n2@{ icon: "mdi:robot", form: "rounded", label: "AI Prompt Optimizer", pos: "b", h: 48 }
n3@{ icon: "mdi:robot", form: "rounded", label: "AI Response Evaluator", pos: "b", h: 48 }
n4["<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/>Manage Loop & State"]
n5@{ icon: "mdi:robot", form: "rounded", label: "AI Response Generator", pos: "b", h: 48 }
n6@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model", pos: "b", h: 48 }
n7@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Check Loop Condition", pos: "b", h: 48 }
n8@{ icon: "mdi:cog", form: "rounded", label: "End Loop", pos: "b", h: 48 }
n9@{ icon: "mdi:robot", form: "rounded", label: "Evaluator Output Parser", pos: "b", h: 48 }
n10@{ icon: "mdi:robot", form: "rounded", label: "Optimizer Output Parser", pos: "b", h: 48 }
n11@{ icon: "mdi:swap-vertical", form: "rounded", label: "Update Prompt & Loop Count", pos: "b", h: 48 }
n6 -.-> n2
n6 -.-> n3
n6 -.-> n5
n2 --> n11
n4 --> n7
n7 --> n8
n7 --> n5
n3 --> n2
n5 --> n3
n9 -.-> n3
n10 -.-> n2
n11 --> n4
n1 --> n4
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 n2,n3,n5,n9,n10 ai
class n6 aiModel
class n7 decision
class n4 code
classDef customIcon fill:none,stroke:none
class n4 customIcon
Problemet: promptjusteringar som i det tysta sänker kvaliteten
Promptarbete är ofta “trial and error”, vilket låter okej tills det kopplas till riktiga leveranser. Du ändrar en mening för att göra tonen vänligare och plötsligt slutar outputen följa ditt format. Eller så träffar den formatet, men börjar låta off-brand. Då är du tillbaka i loopen: kör ett test, skumma resultat, justera igen, upprepa. Den manuella cykeln äter upp en eftermiddag, och den verkliga kostnaden är förtroende. När du inte kan förutsäga output tvekar du att skala AI i kampanjer, support eller kundprojekt.
Friktionen byggs snabbt på. Här är var det brukar fallera.
- Du testar prompts på slumpmässiga exempel, så fel visar sig först efter att något har publicerats.
- Små ändringar skapar regressioner, och ingen märker det förrän en kollega klagar eller en kund flaggar det.
- “Promptkvalitet” förblir subjektivt, vilket gör att granskningar blir tyckande i stället för kontroller.
- Den prompt som presterar bäst ligger i någons anteckningar, inte på en delad plats som teamet kan lita på.
Lösningen: auto-utvärdera, auto-förbättra och logga vinnande prompt
Det här n8n-arbetsflödet behandlar prompt engineering som en optimeringsloop, inte en magkänslekontroll. Du börjar med att definiera en initial prompt, ett testinput och det förväntade svaret (din “ground truth”). Arbetsflödet genererar ett svar med OpenAI, sedan poängsätter en utvärderaragent det från 0–100 baserat på korrekthet och format. Om poängen är för låg skriver en optimeraragent om prompten utifrån orsakerna till misslyckandet, och därefter kör arbetsflödet testet igen. När poängen når 95 eller loopgränsen uppnås sparar du den bästa prompten och kan logga den i Google Sheets för ett strukturerat revisionsspår.
Arbetsflödet startar med en manuell körning (eller en webhook-trigger om du väljer att aktivera det). Sedan cyklar det genom generera → utvärdera → förfina tills det når din kvalitetsnivå. Till sist är den optimerade prompten och strukturerade resultaten redo att lagras och delas.
Det du får: automatisering vs. resultat
| Det här arbetsflödet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att du finslipar en varumärkesröst-prompt för veckovisa produktmejl. Manuellt kanske du gör 10 testkörningar, lägger cirka 5 minuter på att granska varje, och sedan skriver om prompten flera gånger (lätt runt 2 timmar totalt). Med det här arbetsflödet: du sätter testinput och ground truth en gång (cirka 10 minuter), och låter sedan loopen köra tills den når 95 i poäng (ofta ytterligare 10 minuter). Den “bästa prompten” är redo att klistra in i produktion, och den loggas i Google Sheets så att du kan återanvända den nästa vecka.
Det du behöver
- n8n-instans (testa n8n Cloud gratis)
- Self-hosting-alternativ om du föredrar det (Hostinger fungerar bra)
- OpenAI för att generera och förfina svar.
- Google Sheets för att lagra bästa prompt och poäng.
- OpenAI API-nyckel (hämta den från OpenAI API-dashboarden).
Svårighetsnivå: Medel. Du kommer främst att kopiera in värden i setup-noden och koppla in autentiseringsuppgifter, men det hjälper att vara bekväm med testfall och förväntade utdata.
Vill du inte sätta upp detta själv? Prata med en automatiseringsexpert (gratis 15-minuters konsultation).
Så fungerar det
Du startar körningen och sätter testet. Arbetsflödet drar i gång från en manuell trigger (och kan även anpassas till en webhook) och läser in din initiala prompt, testinput och ground truth från ett setup-steg.
Det håller reda på var du befinner dig i loopen. En state manager registrerar aktuell promptversion och antal iterationer, så att du inte tappar bort den bästa kandidaten när arbetsflödet cyklar.
OpenAI genererar, sedan poängsätter en utvärderare. En AI-agent tar fram svaret, en annan agent jämför det med ground truth, och en strukturerad parser gör utvärderingen till en felfri poäng som du kan agera på.
Optimeraren skriver om prompten när kvaliteten är låg. Om poängen ligger under ditt mål (95) uppdaterar refine-agenten prompten och arbetsflödet kör igen tills den godkänns eller når loopgränsen. När det är klart är den slutliga strukturerade outputen redo att skrivas in i Google Sheets för uppföljning.
Du kan enkelt ändra poängtröskeln för att vara striktare (eller mer generös) utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera den manuella triggern
Starta arbetsflödet manuellt så att ni kan iterera på promptoptimeringsloopen under konfigurationen.
- Lägg till noden Manual Execution Start som trigger.
- Koppla Manual Execution Start till Seed Prompt Setup.
Steg 2: anslut OpenAI för alla agentnoder
Alla AI-agenter i det här arbetsflödet använder samma språkmodellanslutning.
- Öppna OpenAI Chat Engine och välj modellen
gpt-4o-mini. - Inloggningsuppgifter krävs: anslut era openAiApi-inloggningsuppgifter i OpenAI Chat Engine.
- Säkerställ att OpenAI Chat Engine är ansluten som språkmodell till Generate AI Reply, Assess AI Output och Refine Prompt Agent.
Obs: Score Output Parser och Prompt Output Parser är undernoder för AI-output-parsing. Lägg till inloggningsuppgifter på den överordnade noden (OpenAI Chat Engine), inte på dessa parsers.
Steg 3: sätt seed-prompt och initiera loopstatus
Definiera den initiala prompten, testindata och ground truth, och initiera sedan loopstatus och stopplogik.
- I Seed Prompt Setup, ställ in initial_prompt till
Extract invoice data from the text and output as JSON. - I Seed Prompt Setup, ställ in test_input till
Invoice #INV-9982. Date: 12th of Oct, 2023. Grand Total: $1,100 (includes 10% VAT). Items: 2x Widget A, 1x Widget B. - I Seed Prompt Setup, ställ in ground_truth till
{ "id": "INV-9982", "date": "2023-10-12", "subtotal": 1000, "vat": 100, "total": 1100, "items": ["Widget A", "Widget A", "Widget B"] } - Öppna Loop State Manager och klistra in den tillhandahållna JavaScript-koden exakt som visat för att hantera
current_prompt,loop_count,current_scoreochstop_loop.
currentLoopCount > 5 || currentScore >= 95. Justera detta om ni vill ha längre optimeringscykler.Steg 4: sätt upp loopen för AI-generering, utvärdering och förfining
Dessa tre agenter genererar output, poängsätter den och förfinar sedan prompten baserat på feedback.
- I Generate AI Reply, ställ in Text till
=Respond to the following input according to the instructions. Input: {{ $json.test_input }}och ställ in System Message till={{ $json.current_prompt }}. - I Assess AI Output, ställ in Text till
=# Input Data {{ $('Loop State Manager').item.json.test_input }} # Expected Ground Truth {{ $('Loop State Manager').item.json.ground_truth }} # Actual Generated Answer {{ $json.output }} Start the evaluation.och behåll System Message som definierad. - Koppla Score Output Parser till Assess AI Output som AI-output-parser och bekräfta schemaexemplet för
scoreochreason. - I Refine Prompt Agent, behåll den tillhandahållna Text och System Message, och koppla sedan Prompt Output Parser som AI-output-parser.
Steg 5: konfigurera loopstyrning och avslut
Öka loopräknaren, utvärdera stoppvillkor och avsluta när loopen ska ta slut.
- I Update Prompt Counter, ställ in next_loop_count till
={{ $('Loop State Manager').item.json.loop_count + 1 }}, improved_prompt till={{ $json.output.improved_prompt }}och change_log till={{ $json.output.change_log }}. - I Evaluate Stop Condition, ställ in det booleska villkoret leftValue till
={{ $json.stop_loop }}med operatorn true. - Koppla true-utgången från Evaluate Stop Condition till Terminate Cycle, och false-utgången till Generate AI Reply.
Steg 6: testa och aktivera ert arbetsflöde
Kör arbetsflödet manuellt för att validera loopbeteendet och aktivera sedan för produktion.
- Klicka på Execute Workflow för att köra från Manual Execution Start.
- Bekräfta att Generate AI Reply producerar output, att Assess AI Output returnerar en
scoreoch att Refine Prompt Agent matar ut enimproved_prompt. - Verifiera att Loop State Manager uppdaterar
loop_countoch stoppar närstop_loopblir true. - När det fungerar, växla arbetsflödet till Active för löpande användning.
Vanliga fallgropar
- OpenAI-autentiseringsuppgifter kan löpa ut eller vara kopplade till fel projekt. Om något slutar fungera, kontrollera först vilket credential som används i noden OpenAI Chat Model.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om nedströmsnoder fallerar på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in din varumärkesröst tidigt, annars kommer du att redigera output i all evighet.
Vanliga frågor
Cirka 30 minuter om du redan har åtkomst till OpenAI och Google Sheets.
Nej. Du kopplar autentiseringsuppgifter och redigerar “initial prompt” samt testvärden. Arbetsflödeslogiken är redan byggd.
Ja. n8n har ett gratis self-hosted-alternativ 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 med kostnader för OpenAI API (oftast några cent per körning, beroende på modell och antal loopar).
Två alternativ: n8n Cloud (hanterat, enklast setup) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärt och hanterar n8n bra. Self-hosting ger dig obegränsade körningar men kräver grundläggande serveradministration.
Ja, men då vill du loopa över en lista av input och ground truth med Split in Batches och sedan slå ihop poängen innan du bestämmer om prompten ska förfinas. Många team lagrar testfall i Google Sheets och matar in dem som items, så att utvärderaren poängsätter över en liten svit i stället för ett enda exempel. Du kan också ändra stoppvillkoret från “poäng ≥ 95” till något som “genomsnittlig poäng ≥ 95” om det passar din kvalitetsnivå.
Oftast är det ett API-nyckelproblem eller att credet i n8n pekar mot fel OpenAI-projekt. Skapa en ny nyckel, uppdatera den i ditt n8n-credential och kör om en enda iteration för att bekräfta. Om det fallerar först efter flera loopar kan du slå i rate limits, så sänk tempot i loopen eller minska tokenanvändningen i prompten.
Så många du vill, så länge du sätter en rimlig loopgräns så att den inte kör för evigt.
För iterativ promptoptimering är n8n oftast ett bättre val eftersom loopar, förgreningar och state management är förstklassiga och inte blir klumpiga direkt. Zapier och Make kan köra enkla flöden som “generera och logga”, men utvärdering över flera iterationer tenderar att bli skör eller dyr. n8n ger dig också self-hosting-alternativet, vilket spelar roll om du testar prompts ofta. Den ärliga brasklappen: om du bara behöver ett enda OpenAI-anrop som skriver till ett sheet kan Zapier kännas snabbare. Prata med en automatiseringsexpert om du vill ha hjälp att välja rätt upplägg.
När detta väl är på plats slutar promptförbättringar att vara mystiska. Arbetsflödet sköter den repetitiva testningen, och du kan fokusera på att leverera arbete du kan stå för.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.