Att lyssna på samtal hela dagen är inte det värsta. Det är den röriga uppföljningen: att hoppa mellan transkript, försöka ”sätta poäng” på tonen konsekvent och sedan inse att dina anteckningar inte stämmer med vad någon annan hade skrivit.
QA-chefer känner det först, eftersom kalibrering blir en veckovis diskussion. Men supportansvariga och operativt drivna grundare hamnar också där. Den här automatiseringen för samtalssentiment gör ett Google Sheet med transkript till konsekventa, jämförbara QA-fält som du faktiskt kan agera på.
Du får se hur arbetsflödet läser varje rad, ber OpenAI om strukturerad poängsättning inom nyckelkategorier och sedan skriver tillbaka korrekt formaterade fält i arket för filtrering, coachning och trenduppföljning.
Så fungerar den här automatiseringen
Hela n8n-arbetsflödet, från trigger till slutresultat:
n8n Workflow Template: Google Sheets + OpenAI: sentimentpoäng för samtal
flowchart LR
subgraph sg0["Schedule Flow"]
direction LR
n0@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model", pos: "b", h: 48 }
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Items", pos: "b", h: 48 }
n2@{ icon: "mdi:play-circle", form: "rounded", label: "Schedule Trigger", pos: "b", h: 48 }
n3@{ icon: "mdi:database", form: "rounded", label: "Get All Transcript", pos: "b", h: 48 }
n4@{ icon: "mdi:swap-vertical", form: "rounded", label: "Send only Transcript Field", pos: "b", h: 48 }
n5@{ icon: "mdi:robot", form: "rounded", label: "Analysis Transcript", pos: "b", h: 48 }
n6@{ icon: "mdi:robot", form: "rounded", label: "Structured Output", pos: "b", h: 48 }
n7@{ icon: "mdi:database", form: "rounded", label: "Store Analysis Transcript", pos: "b", h: 48 }
n1 --> n4
n2 --> n3
n0 -.-> n5
n6 -.-> n5
n3 --> n1
n5 --> n7
n7 --> n1
n4 --> n5
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 n2 trigger
class n5,n6 ai
class n0 aiModel
class n3,n7 database
Problemet: manuella samtalsgranskningar skalar inte
När varje samtal ”borde granskas” betyder det i praktiken: några få blir granskade, resten blir en vag känsla av att allt är okej. Manuell QA faller ihop så fort volymen ökar, eller när du har flera granskare med olika standarder. En person flaggar en hälsning som ”kall”, en annan kallar den ”neutral”, och plötsligt blir coachning till en diskussion om åsikter. Och om dina transkript ligger i Google Sheets slutar du med att kopiera utdrag till anteckningar, jaga kolumner och tappa all möjlighet till strukturerad rapportering.
Det adderas snabbt. Här är var friktionen byggs på.
- Att granska ens 20 transkript i veckan kan sluka cirka 3 till 5 timmar fokuserad tid.
- Poängsättningen glider mellan granskare, så ”agentens vänlighet” betyder något olika varje vecka.
- Coachning försenas eftersom insikterna fastnar i fritextanteckningar.
- Du kan inte filtrera pålitligt på ”ärendet löst” eller ”dålig avslutning” om de fälten inte fylls i konsekvent.
Lösningen: automatiserad sentimentpoängsättning i Google Sheets
Det här arbetsflödet bevakar ett Google Sheet som innehåller samtalstranskript (plus agentnamn och kundnamn) och analyserar sedan varje samtal med OpenAI via en strukturerad prompt. I stället för att ge en textklump returnerar det strukturerade, förutsägbara fält: sentiment för hälsning, agentens vänlighet, sentiment för problemlösning, kundens sentiment, sentiment för avslut, om ärendet blev löst samt ett övergripande samtalsbetyg. n8n loopar igenom varje rad, mappar transkriptet till AI-steget, tolkar svaret som strukturerad JSON och skriver tillbaka resultaten i nya kolumner i samma ark. Det betyder att din ”QA-blankett” blir kalkylarket du redan använder, bara uppgraderat med konsekvent poängsättning.
Arbetsflödet startar enligt schema, hämtar alla transkript från Google Sheets och bearbetar dem i batchar. OpenAI poängsätter varje transkript enligt samma kategorier varje gång. Till sist uppdaterar n8n originalraden, så att teamet kan sortera, filtrera och coacha utan att skriva om något.
Vad 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 loggar 50 samtal i veckan i ett Google Sheet. Om en granskare lägger cirka 6 minuter på att läsa varje transkript och fylla i några QA-fält blir det ungefär 5 timmar i veckan, och det blir ändå inte helt konsekvent. Med det här arbetsflödet triggar du det enligt schema, låter det köra i bakgrunden en stund och sedan uppdateras arket automatiskt med sentimentfält och ett slutbetyg. Du granskar fortfarande de samtal som fått lägst betyg, men nu granskar du utifrån en shortlist i stället för en gissning.
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)
- Google Sheets för att lagra transkript och QA-fält
- OpenAI för att poängsätta sentiment och status för ärendelösning
- OpenAI API-nyckel (hämta den i OpenAI:s API-dashboard)
Kunskapsnivå: Nybörjare. Du kopplar konton, bekräftar kolumner i arket och klistrar in din API-nyckel.
Vill du inte sätta upp det här själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
En schemalagd körning startar det. n8n kör på en timer (dagligen eller veckovis är vanligt) så att nya transkript poängsätts utan att någon behöver komma ihåg att trycka på en knapp.
Ditt ark hämtas och bearbetas i batchar. Arbetsflödet hämtar alla rader från Google Sheets och loopar igenom dem. Batchning spelar roll när arket växer, eftersom du inte vill att en enda jättelik körning ska timea ut.
OpenAI poängsätter transkriptet med en strukturerad prompt. Transkripttexten mappas in i AI-steget, som returnerar specifika fält som sentiment för hälsning, kundens sentiment, ”ärendet löst” och ett övergripande betyg.
Resultaten går direkt tillbaka till Google Sheets. Den strukturerade JSON:en tolkas och används för att uppdatera samma rad, med nya kolumner för varje kategori så att du kan filtrera och coacha direkt.
Du kan enkelt justera poängkategorierna så att de matchar din QA-mall (eller betygsskalan) utifrån dina behov. Se hela implementeringsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera den schemalagda triggern
Ställ in arbetsflödet så att det körs automatiskt enligt ett dagligt schema med den befintliga trigger-noden.
- Lägg till eller öppna Scheduled Automation Trigger.
- Ställ in schemaregeln så att den körs vid
triggerAtHour: 19under intervallkonfigurationen. - Koppla Scheduled Automation Trigger till Retrieve All Transcripts så att det matchar arbetsflödets flöde.
Steg 2: anslut Google Sheets
Konfigurera läs- och uppdateringsoperationerna för transkript-arket.
- Öppna Retrieve All Transcripts och ställ in Document till
[YOUR_ID]och Sheet tillSheet1(gid=0). - Under Filters, behåll uppslagskolumnen inställd på
Status. - Autentiseringsuppgifter krävs: Anslut era
googleSheetsOAuth2Api-autentiseringsuppgifter till Retrieve All Transcripts. - Öppna Update Transcript Analysis och bekräfta att Operation är inställd på
updatemed samma inställningar för Document och Sheet. - Autentiseringsuppgifter krävs: Anslut era
googleSheetsOAuth2Api-autentiseringsuppgifter till Update Transcript Analysis.
⚠️ Vanlig fallgrop: Säkerställ att arket innehåller en kolumn Full Transcript eftersom den används som matchningskolumn i Update Transcript Analysis.
Steg 3: sätt upp postloopen och fältmappningen
Loop:a igenom varje transkriptrad och mappa transkripttexten för analys.
- Bekräfta att Retrieve All Transcripts skickar utdata till Iterate Through Records.
- Öppna Iterate Through Records och behåll standardinställningarna för batch för sekventiell bearbetning.
- I Map Transcript Field, ställ in tilldelningen för Full Transcript till
={{ $json["Full Transcript"] }}. - Verifiera loop-kopplingen: Update Transcript Analysis skickar utdata tillbaka till Iterate Through Records.
Steg 4: konfigurera AI-sentimentanalys och strukturerad output
Använd AI-agenten för att analysera varje transkript och returnera ett strukturerat JSON-svar.
- Öppna OpenAI Dialogue Model och ställ in modellen till
gpt-4o-mini. - Autentiseringsuppgifter krävs: Anslut era
openAiApi-autentiseringsuppgifter till OpenAI Dialogue Model. - Öppna Analyze Transcript Sentiment och ställ in Text till
={{ $json["Full Transcript"] }}. - I Analyze Transcript Sentiment, behåll Prompt Type som
defineoch bekräfta att System Message innehåller den tillhandahållna rubricen för sentiment. - Öppna Structured JSON Output och behåll JSON Schema Example som angivet för en konsekvent output-struktur.
- Säkerställ att Structured JSON Output är ansluten som output-parser till Analyze Transcript Sentiment. Autentiseringsuppgifter ska läggas till i OpenAI Dialogue Model, inte i Structured JSON Output.
⚠️ Vanlig fallgrop: Om AI-utdata inte är giltig JSON kommer uppdateringssteget att misslyckas. Behåll schemat för strukturerad output oförändrat om ni inte också uppdaterar kolumnmappningen i Google Sheets.
Steg 5: konfigurera output-mappning i Google Sheets
Skriv tillbaka de AI-genererade sentimentfälten till transkript-arket.
- I Update Transcript Analysis, mappa Status till
Done. - Ställ in Agent Name till
={{ $json.output["Agent Name"] }}och Customer Name till={{ $json.output["Customer Name"] }}. - Ställ in Total Rating till
={{( Number($json.output["Greeting Sentiment"]) + Number($json.output["Closing Sentiment"]) + Number($json.output["Problem Solving"]) + Number($json.output["Agent Friendliness"]))/4}}. - Mappa Full Transcript till
={{ $('Iterate Through Records').item.json['Full Transcript'] }}så att uppdateringen matchar rätt rad. - Mappa resterande sentimentfält med exakt samma uttryck som i noden:
Greeting Sentiment,Closing Sentiment,Problem Solving,Agent Friendliness,Customer Sentiment,Issue ResolvedochConversations Topics.
Full Transcript så att varje rad uppdateras korrekt i stället för att skapa dubbletter.Steg 6: testa och aktivera ert arbetsflöde
Kör ett manuellt test för att validera dataflödet och bekräfta att arbetsflödet är redo för schemaläggning.
- Klicka på Execute Workflow för att trigga Scheduled Automation Trigger manuellt.
- Följ hur Iterate Through Records bearbetar varje transkript och verifiera att Analyze Transcript Sentiment returnerar en strukturerad JSON-output.
- Bekräfta att Update Transcript Analysis uppdaterar rätt rader och skriver värden som
Status: Doneoch sentimentscorerna. - När testet lyckas, slå om arbetsflödet till Active för att aktivera schemalagda körningar.
Vanliga fallgropar
- Google Sheets-inloggningar kan löpa ut eller kräva specifika behörigheter. Om något slutar fungera, kontrollera först n8n:s inställningar för inloggning och åtkomstomfånget för ditt Google-konto.
- Om du använder Wait-noder eller extern rendering varierar bearbetningstiderna. Öka väntetiden om nedströms noder misslyckas på grund av tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in er tonalitet tidigt, annars kommer du att redigera utdata för alltid.
Vanliga frågor
Cirka 30 minuter om ditt ark är klart.
Nej. Du kopplar Google Sheets och OpenAI och bekräftar sedan vilka kolumner som innehåller transkript och namn.
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 volym. Du behöver också räkna med OpenAI API-användning (oftast några dollar i månaden om du inte bearbetar tusentals transkript).
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärt och klarar n8n bra. Self-hosting ger dig obegränsat antal körningar men kräver grundläggande serverhantering.
Ja, och det borde du sannolikt göra. Du kan justera prompten i AI-steget Analyze Transcript Sentiment så att kategorierna matchar ditt scorecard (till exempel lägga till ”policyefterlevnad” eller ”nästa steg bekräftade”). Du kan också ändra parsern för Structured JSON Output för att tvinga igenom dina exakta fältnamn och tillåtna värden. Vanliga anpassningar är poängsättning på en 1–5-skala, att lägga till ämnesetiketter och att flagga samtal som behöver en chefsgranskning.
Oftast är det en behörighetsfråga eller en utgången Google-auktorisering. Koppla om Google Sheets-inloggningen i n8n och bekräfta sedan att arket är delat med samma Google-konto och att arbetsflödet pekar på rätt kalkylark och flik. Om det bara fallerar vid uppdateringar, kontrollera att arbetsflödet har det rad-ID (eller matchande nyckel) som krävs för att skriva tillbaka till rätt rad.
Hundratals per körning är realistiskt för de flesta team, och det går att skala upp därifrån om du batchar och dina OpenAI-gränser tillåter det.
Ofta, ja, om du vill ha strukturerade fält, batchning och mer kontroll över hur AI-utdata valideras. n8n är bekvämt med loopar och jobb som ”bearbeta varje rad”, vilket är exakt så transkript-QA ser ut i verkligheten. Det är också enklare att hålla kostnaderna förutsägbara när du kör många exekveringar, särskilt om du self-hostar. Zapier eller Make kan fortfarande fungera för enklare användning, som att poängsätta en handfull transkript per dag, men du kan slå i begränsningar snabbare. Prata med en automationsexpert om du vill ha hjälp att välja.
När det här väl rullar blir ditt kalkylark ett QA-system som inte blir trött eller inkonsekvent. Du fokuserar på coachning och mönster. Arbetsflödet tar hand om den repetitiva poängsättningen.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.